  AManifest = class sealed external 'android' name 'Manifest' (JLObject)
  public
    type
      Innerpermission_group = class;
      Arr1Innerpermission_group = array of Innerpermission_group;
      Arr2Innerpermission_group = array of Arr1Innerpermission_group;
      Arr3Innerpermission_group = array of Arr2Innerpermission_group;
      Innerpermission = class;
      Arr1Innerpermission = array of Innerpermission;
      Arr2Innerpermission = array of Arr1Innerpermission;
      Arr3Innerpermission = array of Arr2Innerpermission;
      Innerpermission_group = class sealed external 'android' name 'permission_group' (JLObject)
      public
        const
          ACCOUNTS = 'android.permission-group.ACCOUNTS';
          COST_MONEY = 'android.permission-group.COST_MONEY';
          DEVELOPMENT_TOOLS = 'android.permission-group.DEVELOPMENT_TOOLS';
          HARDWARE_CONTROLS = 'android.permission-group.HARDWARE_CONTROLS';
          LOCATION = 'android.permission-group.LOCATION';
          MESSAGES = 'android.permission-group.MESSAGES';
          NETWORK = 'android.permission-group.NETWORK';
          PERSONAL_INFO = 'android.permission-group.PERSONAL_INFO';
          PHONE_CALLS = 'android.permission-group.PHONE_CALLS';
          STORAGE = 'android.permission-group.STORAGE';
          SYSTEM_TOOLS = 'android.permission-group.SYSTEM_TOOLS';
      public
        constructor create(); overload;
      end;

      Innerpermission = class sealed external 'android' name 'permission' (JLObject)
      public
        const
          ACCESS_CHECKIN_PROPERTIES = 'android.permission.ACCESS_CHECKIN_PROPERTIES';
          ACCESS_COARSE_LOCATION = 'android.permission.ACCESS_COARSE_LOCATION';
          ACCESS_FINE_LOCATION = 'android.permission.ACCESS_FINE_LOCATION';
          ACCESS_LOCATION_EXTRA_COMMANDS = 'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS';
          ACCESS_MOCK_LOCATION = 'android.permission.ACCESS_MOCK_LOCATION';
          ACCESS_NETWORK_STATE = 'android.permission.ACCESS_NETWORK_STATE';
          ACCESS_SURFACE_FLINGER = 'android.permission.ACCESS_SURFACE_FLINGER';
          ACCESS_WIFI_STATE = 'android.permission.ACCESS_WIFI_STATE';
          ACCOUNT_MANAGER = 'android.permission.ACCOUNT_MANAGER';
          ADD_VOICEMAIL = 'com.android.voicemail.permission.ADD_VOICEMAIL';
          AUTHENTICATE_ACCOUNTS = 'android.permission.AUTHENTICATE_ACCOUNTS';
          BATTERY_STATS = 'android.permission.BATTERY_STATS';
          BIND_APPWIDGET = 'android.permission.BIND_APPWIDGET';
          BIND_DEVICE_ADMIN = 'android.permission.BIND_DEVICE_ADMIN';
          BIND_INPUT_METHOD = 'android.permission.BIND_INPUT_METHOD';
          BIND_REMOTEVIEWS = 'android.permission.BIND_REMOTEVIEWS';
          BIND_TEXT_SERVICE = 'android.permission.BIND_TEXT_SERVICE';
          BIND_VPN_SERVICE = 'android.permission.BIND_VPN_SERVICE';
          BIND_WALLPAPER = 'android.permission.BIND_WALLPAPER';
          BLUETOOTH = 'android.permission.BLUETOOTH';
          BLUETOOTH_ADMIN = 'android.permission.BLUETOOTH_ADMIN';
          BRICK = 'android.permission.BRICK';
          BROADCAST_PACKAGE_REMOVED = 'android.permission.BROADCAST_PACKAGE_REMOVED';
          BROADCAST_SMS = 'android.permission.BROADCAST_SMS';
          BROADCAST_STICKY = 'android.permission.BROADCAST_STICKY';
          BROADCAST_WAP_PUSH = 'android.permission.BROADCAST_WAP_PUSH';
          CALL_PHONE = 'android.permission.CALL_PHONE';
          CALL_PRIVILEGED = 'android.permission.CALL_PRIVILEGED';
          CAMERA = 'android.permission.CAMERA';
          CHANGE_COMPONENT_ENABLED_STATE = 'android.permission.CHANGE_COMPONENT_ENABLED_STATE';
          CHANGE_CONFIGURATION = 'android.permission.CHANGE_CONFIGURATION';
          CHANGE_NETWORK_STATE = 'android.permission.CHANGE_NETWORK_STATE';
          CHANGE_WIFI_MULTICAST_STATE = 'android.permission.CHANGE_WIFI_MULTICAST_STATE';
          CHANGE_WIFI_STATE = 'android.permission.CHANGE_WIFI_STATE';
          CLEAR_APP_CACHE = 'android.permission.CLEAR_APP_CACHE';
          CLEAR_APP_USER_DATA = 'android.permission.CLEAR_APP_USER_DATA';
          CONTROL_LOCATION_UPDATES = 'android.permission.CONTROL_LOCATION_UPDATES';
          DELETE_CACHE_FILES = 'android.permission.DELETE_CACHE_FILES';
          DELETE_PACKAGES = 'android.permission.DELETE_PACKAGES';
          DEVICE_POWER = 'android.permission.DEVICE_POWER';
          DIAGNOSTIC = 'android.permission.DIAGNOSTIC';
          DISABLE_KEYGUARD = 'android.permission.DISABLE_KEYGUARD';
          DUMP = 'android.permission.DUMP';
          EXPAND_STATUS_BAR = 'android.permission.EXPAND_STATUS_BAR';
          FACTORY_TEST = 'android.permission.FACTORY_TEST';
          FLASHLIGHT = 'android.permission.FLASHLIGHT';
          FORCE_BACK = 'android.permission.FORCE_BACK';
          GET_ACCOUNTS = 'android.permission.GET_ACCOUNTS';
          GET_PACKAGE_SIZE = 'android.permission.GET_PACKAGE_SIZE';
          GET_TASKS = 'android.permission.GET_TASKS';
          GLOBAL_SEARCH = 'android.permission.GLOBAL_SEARCH';
          HARDWARE_TEST = 'android.permission.HARDWARE_TEST';
          INJECT_EVENTS = 'android.permission.INJECT_EVENTS';
          INSTALL_LOCATION_PROVIDER = 'android.permission.INSTALL_LOCATION_PROVIDER';
          INSTALL_PACKAGES = 'android.permission.INSTALL_PACKAGES';
          INTERNAL_SYSTEM_WINDOW = 'android.permission.INTERNAL_SYSTEM_WINDOW';
          INTERNET = 'android.permission.INTERNET';
          KILL_BACKGROUND_PROCESSES = 'android.permission.KILL_BACKGROUND_PROCESSES';
          MANAGE_ACCOUNTS = 'android.permission.MANAGE_ACCOUNTS';
          MANAGE_APP_TOKENS = 'android.permission.MANAGE_APP_TOKENS';
          MASTER_CLEAR = 'android.permission.MASTER_CLEAR';
          MODIFY_AUDIO_SETTINGS = 'android.permission.MODIFY_AUDIO_SETTINGS';
          MODIFY_PHONE_STATE = 'android.permission.MODIFY_PHONE_STATE';
          MOUNT_FORMAT_FILESYSTEMS = 'android.permission.MOUNT_FORMAT_FILESYSTEMS';
          MOUNT_UNMOUNT_FILESYSTEMS = 'android.permission.MOUNT_UNMOUNT_FILESYSTEMS';
          NFC = 'android.permission.NFC';
          PERSISTENT_ACTIVITY = 'android.permission.PERSISTENT_ACTIVITY';
          PROCESS_OUTGOING_CALLS = 'android.permission.PROCESS_OUTGOING_CALLS';
          READ_CALENDAR = 'android.permission.READ_CALENDAR';
          READ_CONTACTS = 'android.permission.READ_CONTACTS';
          READ_FRAME_BUFFER = 'android.permission.READ_FRAME_BUFFER';
          READ_HISTORY_BOOKMARKS = 'com.android.browser.permission.READ_HISTORY_BOOKMARKS';
          READ_INPUT_STATE = 'android.permission.READ_INPUT_STATE';
          READ_LOGS = 'android.permission.READ_LOGS';
          READ_PHONE_STATE = 'android.permission.READ_PHONE_STATE';
          READ_PROFILE = 'android.permission.READ_PROFILE';
          READ_SMS = 'android.permission.READ_SMS';
          READ_SYNC_SETTINGS = 'android.permission.READ_SYNC_SETTINGS';
          READ_SYNC_STATS = 'android.permission.READ_SYNC_STATS';
          REBOOT = 'android.permission.REBOOT';
          RECEIVE_BOOT_COMPLETED = 'android.permission.RECEIVE_BOOT_COMPLETED';
          RECEIVE_MMS = 'android.permission.RECEIVE_MMS';
          RECEIVE_SMS = 'android.permission.RECEIVE_SMS';
          RECEIVE_WAP_PUSH = 'android.permission.RECEIVE_WAP_PUSH';
          RECORD_AUDIO = 'android.permission.RECORD_AUDIO';
          REORDER_TASKS = 'android.permission.REORDER_TASKS';
          RESTART_PACKAGES = 'android.permission.RESTART_PACKAGES';
          SEND_SMS = 'android.permission.SEND_SMS';
          SET_ACTIVITY_WATCHER = 'android.permission.SET_ACTIVITY_WATCHER';
          SET_ALARM = 'com.android.alarm.permission.SET_ALARM';
          SET_ALWAYS_FINISH = 'android.permission.SET_ALWAYS_FINISH';
          SET_ANIMATION_SCALE = 'android.permission.SET_ANIMATION_SCALE';
          SET_DEBUG_APP = 'android.permission.SET_DEBUG_APP';
          SET_ORIENTATION = 'android.permission.SET_ORIENTATION';
          SET_POINTER_SPEED = 'android.permission.SET_POINTER_SPEED';
          SET_PREFERRED_APPLICATIONS = 'android.permission.SET_PREFERRED_APPLICATIONS';
          SET_PROCESS_LIMIT = 'android.permission.SET_PROCESS_LIMIT';
          SET_TIME = 'android.permission.SET_TIME';
          SET_TIME_ZONE = 'android.permission.SET_TIME_ZONE';
          SET_WALLPAPER = 'android.permission.SET_WALLPAPER';
          SET_WALLPAPER_HINTS = 'android.permission.SET_WALLPAPER_HINTS';
          SIGNAL_PERSISTENT_PROCESSES = 'android.permission.SIGNAL_PERSISTENT_PROCESSES';
          STATUS_BAR = 'android.permission.STATUS_BAR';
          SUBSCRIBED_FEEDS_READ = 'android.permission.SUBSCRIBED_FEEDS_READ';
          SUBSCRIBED_FEEDS_WRITE = 'android.permission.SUBSCRIBED_FEEDS_WRITE';
          SYSTEM_ALERT_WINDOW = 'android.permission.SYSTEM_ALERT_WINDOW';
          UPDATE_DEVICE_STATS = 'android.permission.UPDATE_DEVICE_STATS';
          USE_CREDENTIALS = 'android.permission.USE_CREDENTIALS';
          USE_SIP = 'android.permission.USE_SIP';
          VIBRATE = 'android.permission.VIBRATE';
          WAKE_LOCK = 'android.permission.WAKE_LOCK';
          WRITE_APN_SETTINGS = 'android.permission.WRITE_APN_SETTINGS';
          WRITE_CALENDAR = 'android.permission.WRITE_CALENDAR';
          WRITE_CONTACTS = 'android.permission.WRITE_CONTACTS';
          WRITE_EXTERNAL_STORAGE = 'android.permission.WRITE_EXTERNAL_STORAGE';
          WRITE_GSERVICES = 'android.permission.WRITE_GSERVICES';
          WRITE_HISTORY_BOOKMARKS = 'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS';
          WRITE_PROFILE = 'android.permission.WRITE_PROFILE';
          WRITE_SECURE_SETTINGS = 'android.permission.WRITE_SECURE_SETTINGS';
          WRITE_SETTINGS = 'android.permission.WRITE_SETTINGS';
          WRITE_SMS = 'android.permission.WRITE_SMS';
          WRITE_SYNC_SETTINGS = 'android.permission.WRITE_SYNC_SETTINGS';
      public
        constructor create(); overload;
      end;

  public
    constructor create(); overload;
  end;

  AR = class sealed external 'android' name 'R' (JLObject)
  public
    type
      Innerxml = class;
      Arr1Innerxml = array of Innerxml;
      Arr2Innerxml = array of Arr1Innerxml;
      Arr3Innerxml = array of Arr2Innerxml;
      Innerstyle = class;
      Arr1Innerstyle = array of Innerstyle;
      Arr2Innerstyle = array of Arr1Innerstyle;
      Arr3Innerstyle = array of Arr2Innerstyle;
      Innerstring = class;
      Arr1Innerstring = array of Innerstring;
      Arr2Innerstring = array of Arr1Innerstring;
      Arr3Innerstring = array of Arr2Innerstring;
      Innerraw = class;
      Arr1Innerraw = array of Innerraw;
      Arr2Innerraw = array of Arr1Innerraw;
      Arr3Innerraw = array of Arr2Innerraw;
      Innerplurals = class;
      Arr1Innerplurals = array of Innerplurals;
      Arr2Innerplurals = array of Arr1Innerplurals;
      Arr3Innerplurals = array of Arr2Innerplurals;
      Innermipmap = class;
      Arr1Innermipmap = array of Innermipmap;
      Arr2Innermipmap = array of Arr1Innermipmap;
      Arr3Innermipmap = array of Arr2Innermipmap;
      Innermenu = class;
      Arr1Innermenu = array of Innermenu;
      Arr2Innermenu = array of Arr1Innermenu;
      Arr3Innermenu = array of Arr2Innermenu;
      Innerlayout = class;
      Arr1Innerlayout = array of Innerlayout;
      Arr2Innerlayout = array of Arr1Innerlayout;
      Arr3Innerlayout = array of Arr2Innerlayout;
      Innerinterpolator = class;
      Arr1Innerinterpolator = array of Innerinterpolator;
      Arr2Innerinterpolator = array of Arr1Innerinterpolator;
      Arr3Innerinterpolator = array of Arr2Innerinterpolator;
      Innerinteger = class;
      Arr1Innerinteger = array of Innerinteger;
      Arr2Innerinteger = array of Arr1Innerinteger;
      Arr3Innerinteger = array of Arr2Innerinteger;
      Innerid = class;
      Arr1Innerid = array of Innerid;
      Arr2Innerid = array of Arr1Innerid;
      Arr3Innerid = array of Arr2Innerid;
      Innerfraction = class;
      Arr1Innerfraction = array of Innerfraction;
      Arr2Innerfraction = array of Arr1Innerfraction;
      Arr3Innerfraction = array of Arr2Innerfraction;
      Innerdrawable = class;
      Arr1Innerdrawable = array of Innerdrawable;
      Arr2Innerdrawable = array of Arr1Innerdrawable;
      Arr3Innerdrawable = array of Arr2Innerdrawable;
      Innerdimen = class;
      Arr1Innerdimen = array of Innerdimen;
      Arr2Innerdimen = array of Arr1Innerdimen;
      Arr3Innerdimen = array of Arr2Innerdimen;
      Innercolor = class;
      Arr1Innercolor = array of Innercolor;
      Arr2Innercolor = array of Arr1Innercolor;
      Arr3Innercolor = array of Arr2Innercolor;
      Innerbool = class;
      Arr1Innerbool = array of Innerbool;
      Arr2Innerbool = array of Arr1Innerbool;
      Arr3Innerbool = array of Arr2Innerbool;
      Innerattr = class;
      Arr1Innerattr = array of Innerattr;
      Arr2Innerattr = array of Arr1Innerattr;
      Arr3Innerattr = array of Arr2Innerattr;
      Innerarray = class;
      Arr1Innerarray = array of Innerarray;
      Arr2Innerarray = array of Arr1Innerarray;
      Arr3Innerarray = array of Arr2Innerarray;
      Inneranimator = class;
      Arr1Inneranimator = array of Inneranimator;
      Arr2Inneranimator = array of Arr1Inneranimator;
      Arr3Inneranimator = array of Arr2Inneranimator;
      Inneranim = class;
      Arr1Inneranim = array of Inneranim;
      Arr2Inneranim = array of Arr1Inneranim;
      Arr3Inneranim = array of Arr2Inneranim;
      Innerxml = class sealed external 'android' name 'xml' (JLObject)
      public
        constructor create(); overload;
      end;

      Innerstyle = class sealed external 'android' name 'style' (JLObject)
      public
        const
          Animation = 16973824;
          Animation_Activity = 16973825;
          Animation_Dialog = 16973826;
          Animation_InputMethod = 16973910;
          Animation_Toast = 16973828;
          Animation_Translucent = 16973827;
          DeviceDefault_ButtonBar = 16974287;
          DeviceDefault_ButtonBar_AlertDialog = 16974288;
          DeviceDefault_Light_ButtonBar = 16974290;
          DeviceDefault_Light_ButtonBar_AlertDialog = 16974291;
          DeviceDefault_Light_SegmentedButton = 16974292;
          DeviceDefault_SegmentedButton = 16974289;
          Holo_ButtonBar = 16974053;
          Holo_ButtonBar_AlertDialog = 16974055;
          Holo_Light_ButtonBar = 16974054;
          Holo_Light_ButtonBar_AlertDialog = 16974056;
          Holo_Light_SegmentedButton = 16974058;
          Holo_SegmentedButton = 16974057;
          MediaButton = 16973879;
          MediaButton_Ffwd = 16973883;
          MediaButton_Next = 16973881;
          MediaButton_Pause = 16973885;
          MediaButton_Play = 16973882;
          MediaButton_Previous = 16973880;
          MediaButton_Rew = 16973884;
          TextAppearance = 16973886;
          TextAppearance_DeviceDefault = 16974253;
          TextAppearance_DeviceDefault_DialogWindowTitle = 16974264;
          TextAppearance_DeviceDefault_Inverse = 16974254;
          TextAppearance_DeviceDefault_Large = 16974255;
          TextAppearance_DeviceDefault_Large_Inverse = 16974256;
          TextAppearance_DeviceDefault_Medium = 16974257;
          TextAppearance_DeviceDefault_Medium_Inverse = 16974258;
          TextAppearance_DeviceDefault_SearchResult_Subtitle = 16974262;
          TextAppearance_DeviceDefault_SearchResult_Title = 16974261;
          TextAppearance_DeviceDefault_Small = 16974259;
          TextAppearance_DeviceDefault_Small_Inverse = 16974260;
          TextAppearance_DeviceDefault_Widget = 16974265;
          TextAppearance_DeviceDefault_Widget_ActionBar_Menu = 16974286;
          TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle = 16974279;
          TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse = 16974283;
          TextAppearance_DeviceDefault_Widget_ActionBar_Title = 16974278;
          TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse = 16974282;
          TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle = 16974281;
          TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse = 16974285;
          TextAppearance_DeviceDefault_Widget_ActionMode_Title = 16974280;
          TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse = 16974284;
          TextAppearance_DeviceDefault_Widget_Button = 16974266;
          TextAppearance_DeviceDefault_Widget_DropDownHint = 16974271;
          TextAppearance_DeviceDefault_Widget_DropDownItem = 16974272;
          TextAppearance_DeviceDefault_Widget_EditText = 16974274;
          TextAppearance_DeviceDefault_Widget_IconMenu_Item = 16974267;
          TextAppearance_DeviceDefault_Widget_PopupMenu = 16974275;
          TextAppearance_DeviceDefault_Widget_PopupMenu_Large = 16974276;
          TextAppearance_DeviceDefault_Widget_PopupMenu_Small = 16974277;
          TextAppearance_DeviceDefault_Widget_TabWidget = 16974268;
          TextAppearance_DeviceDefault_Widget_TextView = 16974269;
          TextAppearance_DeviceDefault_Widget_TextView_PopupMenu = 16974270;
          TextAppearance_DeviceDefault_Widget_TextView_SpinnerItem = 16974273;
          TextAppearance_DeviceDefault_WindowTitle = 16974263;
          TextAppearance_DialogWindowTitle = 16973889;
          TextAppearance_Holo = 16974075;
          TextAppearance_Holo_DialogWindowTitle = 16974103;
          TextAppearance_Holo_Inverse = 16974076;
          TextAppearance_Holo_Large = 16974077;
          TextAppearance_Holo_Large_Inverse = 16974078;
          TextAppearance_Holo_Medium = 16974079;
          TextAppearance_Holo_Medium_Inverse = 16974080;
          TextAppearance_Holo_SearchResult_Subtitle = 16974084;
          TextAppearance_Holo_SearchResult_Title = 16974083;
          TextAppearance_Holo_Small = 16974081;
          TextAppearance_Holo_Small_Inverse = 16974082;
          TextAppearance_Holo_Widget = 16974085;
          TextAppearance_Holo_Widget_ActionBar_Menu = 16974112;
          TextAppearance_Holo_Widget_ActionBar_Subtitle = 16974099;
          TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse = 16974109;
          TextAppearance_Holo_Widget_ActionBar_Title = 16974098;
          TextAppearance_Holo_Widget_ActionBar_Title_Inverse = 16974108;
          TextAppearance_Holo_Widget_ActionMode_Subtitle = 16974101;
          TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse = 16974111;
          TextAppearance_Holo_Widget_ActionMode_Title = 16974100;
          TextAppearance_Holo_Widget_ActionMode_Title_Inverse = 16974110;
          TextAppearance_Holo_Widget_Button = 16974086;
          TextAppearance_Holo_Widget_DropDownHint = 16974091;
          TextAppearance_Holo_Widget_DropDownItem = 16974092;
          TextAppearance_Holo_Widget_EditText = 16974094;
          TextAppearance_Holo_Widget_IconMenu_Item = 16974087;
          TextAppearance_Holo_Widget_PopupMenu = 16974095;
          TextAppearance_Holo_Widget_PopupMenu_Large = 16974096;
          TextAppearance_Holo_Widget_PopupMenu_Small = 16974097;
          TextAppearance_Holo_Widget_TabWidget = 16974088;
          TextAppearance_Holo_Widget_TextView = 16974089;
          TextAppearance_Holo_Widget_TextView_PopupMenu = 16974090;
          TextAppearance_Holo_Widget_TextView_SpinnerItem = 16974093;
          TextAppearance_Holo_WindowTitle = 16974102;
          TextAppearance_Inverse = 16973887;
          TextAppearance_Large = 16973890;
          TextAppearance_Large_Inverse = 16973891;
          TextAppearance_Medium = 16973892;
          TextAppearance_Medium_Inverse = 16973893;
          TextAppearance_Small = 16973894;
          TextAppearance_Small_Inverse = 16973895;
          TextAppearance_StatusBar_EventContent = 16973927;
          TextAppearance_StatusBar_EventContent_Title = 16973928;
          TextAppearance_StatusBar_Icon = 16973926;
          TextAppearance_StatusBar_Title = 16973925;
          TextAppearance_SuggestionHighlight = 16974104;
          TextAppearance_Theme = 16973888;
          TextAppearance_Theme_Dialog = 16973896;
          TextAppearance_Widget = 16973897;
          TextAppearance_Widget_Button = 16973898;
          TextAppearance_Widget_DropDownHint = 16973904;
          TextAppearance_Widget_DropDownItem = 16973905;
          TextAppearance_Widget_EditText = 16973900;
          TextAppearance_Widget_IconMenu_Item = 16973899;
          TextAppearance_Widget_PopupMenu_Large = 16973952;
          TextAppearance_Widget_PopupMenu_Small = 16973953;
          TextAppearance_Widget_TabWidget = 16973901;
          TextAppearance_Widget_TextView = 16973902;
          TextAppearance_Widget_TextView_PopupMenu = 16973903;
          TextAppearance_Widget_TextView_SpinnerItem = 16973906;
          TextAppearance_WindowTitle = 16973907;
          Theme = 16973829;
          Theme_Black = 16973832;
          Theme_Black_NoTitleBar = 16973833;
          Theme_Black_NoTitleBar_Fullscreen = 16973834;
          Theme_DeviceDefault = 16974120;
          Theme_DeviceDefault_Dialog = 16974126;
          Theme_DeviceDefault_Dialog_MinWidth = 16974127;
          Theme_DeviceDefault_Dialog_NoActionBar = 16974128;
          Theme_DeviceDefault_Dialog_NoActionBar_MinWidth = 16974129;
          Theme_DeviceDefault_DialogWhenLarge = 16974134;
          Theme_DeviceDefault_DialogWhenLarge_NoActionBar = 16974135;
          Theme_DeviceDefault_InputMethod = 16974142;
          Theme_DeviceDefault_Light = 16974123;
          Theme_DeviceDefault_Light_DarkActionBar = 16974143;
          Theme_DeviceDefault_Light_Dialog = 16974130;
          Theme_DeviceDefault_Light_Dialog_MinWidth = 16974131;
          Theme_DeviceDefault_Light_Dialog_NoActionBar = 16974132;
          Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth = 16974133;
          Theme_DeviceDefault_Light_DialogWhenLarge = 16974136;
          Theme_DeviceDefault_Light_DialogWhenLarge_NoActionBar = 16974137;
          Theme_DeviceDefault_Light_NoActionBar = 16974124;
          Theme_DeviceDefault_Light_NoActionBar_Fullscreen = 16974125;
          Theme_DeviceDefault_Light_Panel = 16974139;
          Theme_DeviceDefault_NoActionBar = 16974121;
          Theme_DeviceDefault_NoActionBar_Fullscreen = 16974122;
          Theme_DeviceDefault_Panel = 16974138;
          Theme_DeviceDefault_Wallpaper = 16974140;
          Theme_DeviceDefault_Wallpaper_NoTitleBar = 16974141;
          Theme_Dialog = 16973835;
          Theme_Holo = 16973931;
          Theme_Holo_Dialog = 16973935;
          Theme_Holo_Dialog_MinWidth = 16973936;
          Theme_Holo_Dialog_NoActionBar = 16973937;
          Theme_Holo_Dialog_NoActionBar_MinWidth = 16973938;
          Theme_Holo_DialogWhenLarge = 16973943;
          Theme_Holo_DialogWhenLarge_NoActionBar = 16973944;
          Theme_Holo_InputMethod = 16973951;
          Theme_Holo_Light = 16973934;
          Theme_Holo_Light_DarkActionBar = 16974105;
          Theme_Holo_Light_Dialog = 16973939;
          Theme_Holo_Light_Dialog_MinWidth = 16973940;
          Theme_Holo_Light_Dialog_NoActionBar = 16973941;
          Theme_Holo_Light_Dialog_NoActionBar_MinWidth = 16973942;
          Theme_Holo_Light_DialogWhenLarge = 16973945;
          Theme_Holo_Light_DialogWhenLarge_NoActionBar = 16973946;
          Theme_Holo_Light_NoActionBar = 16974064;
          Theme_Holo_Light_NoActionBar_Fullscreen = 16974065;
          Theme_Holo_Light_Panel = 16973948;
          Theme_Holo_NoActionBar = 16973932;
          Theme_Holo_NoActionBar_Fullscreen = 16973933;
          Theme_Holo_Panel = 16973947;
          Theme_Holo_Wallpaper = 16973949;
          Theme_Holo_Wallpaper_NoTitleBar = 16973950;
          Theme_InputMethod = 16973908;
          Theme_Light = 16973836;
          Theme_Light_NoTitleBar = 16973837;
          Theme_Light_NoTitleBar_Fullscreen = 16973838;
          Theme_Light_Panel = 16973914;
          Theme_Light_WallpaperSettings = 16973922;
          Theme_NoDisplay = 16973909;
          Theme_NoTitleBar = 16973830;
          Theme_NoTitleBar_Fullscreen = 16973831;
          Theme_NoTitleBar_OverlayActionModes = 16973930;
          Theme_Panel = 16973913;
          Theme_Translucent = 16973839;
          Theme_Translucent_NoTitleBar = 16973840;
          Theme_Translucent_NoTitleBar_Fullscreen = 16973841;
          Theme_Wallpaper = 16973918;
          Theme_Wallpaper_NoTitleBar = 16973919;
          Theme_Wallpaper_NoTitleBar_Fullscreen = 16973920;
          Theme_WallpaperSettings = 16973921;
          Theme_WithActionBar = 16973929;
          Widget = 16973842;
          Widget_AbsListView = 16973843;
          Widget_ActionBar = 16973954;
          Widget_ActionBar_TabBar = 16974068;
          Widget_ActionBar_TabText = 16974067;
          Widget_ActionBar_TabView = 16974066;
          Widget_ActionButton = 16973956;
          Widget_ActionButton_CloseMode = 16973960;
          Widget_ActionButton_Overflow = 16973959;
          Widget_AutoCompleteTextView = 16973863;
          Widget_Button = 16973844;
          Widget_Button_Inset = 16973845;
          Widget_Button_Small = 16973846;
          Widget_Button_Toggle = 16973847;
          Widget_CalendarView = 16974059;
          Widget_CompoundButton = 16973848;
          Widget_CompoundButton_CheckBox = 16973849;
          Widget_CompoundButton_RadioButton = 16973850;
          Widget_CompoundButton_Star = 16973851;
          Widget_DatePicker = 16974062;
          Widget_DeviceDefault = 16974144;
          Widget_DeviceDefault_ActionBar = 16974187;
          Widget_DeviceDefault_ActionBar_Solid = 16974195;
          Widget_DeviceDefault_ActionBar_TabBar = 16974194;
          Widget_DeviceDefault_ActionBar_TabText = 16974193;
          Widget_DeviceDefault_ActionBar_TabView = 16974192;
          Widget_DeviceDefault_ActionButton = 16974182;
          Widget_DeviceDefault_ActionButton_CloseMode = 16974186;
          Widget_DeviceDefault_ActionButton_Overflow = 16974183;
          Widget_DeviceDefault_ActionButton_TextButton = 16974184;
          Widget_DeviceDefault_ActionMode = 16974185;
          Widget_DeviceDefault_AutoCompleteTextView = 16974151;
          Widget_DeviceDefault_Button = 16974145;
          Widget_DeviceDefault_Button_Borderless = 16974188;
          Widget_DeviceDefault_Button_Borderless_Small = 16974149;
          Widget_DeviceDefault_Button_Inset = 16974147;
          Widget_DeviceDefault_Button_Small = 16974146;
          Widget_DeviceDefault_Button_Toggle = 16974148;
          Widget_DeviceDefault_CalendarView = 16974190;
          Widget_DeviceDefault_CompoundButton_CheckBox = 16974152;
          Widget_DeviceDefault_CompoundButton_RadioButton = 16974169;
          Widget_DeviceDefault_CompoundButton_Star = 16974173;
          Widget_DeviceDefault_DatePicker = 16974191;
          Widget_DeviceDefault_DropDownItem = 16974177;
          Widget_DeviceDefault_DropDownItem_Spinner = 16974178;
          Widget_DeviceDefault_EditText = 16974154;
          Widget_DeviceDefault_ExpandableListView = 16974155;
          Widget_DeviceDefault_GridView = 16974156;
          Widget_DeviceDefault_HorizontalScrollView = 16974171;
          Widget_DeviceDefault_ImageButton = 16974157;
          Widget_DeviceDefault_Light = 16974196;
          Widget_DeviceDefault_Light_ActionBar = 16974243;
          Widget_DeviceDefault_Light_ActionBar_Solid = 16974247;
          Widget_DeviceDefault_Light_ActionBar_Solid_Inverse = 16974248;
          Widget_DeviceDefault_Light_ActionBar_TabBar = 16974246;
          Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse = 16974249;
          Widget_DeviceDefault_Light_ActionBar_TabText = 16974245;
          Widget_DeviceDefault_Light_ActionBar_TabText_Inverse = 16974251;
          Widget_DeviceDefault_Light_ActionBar_TabView = 16974244;
          Widget_DeviceDefault_Light_ActionBar_TabView_Inverse = 16974250;
          Widget_DeviceDefault_Light_ActionButton = 16974239;
          Widget_DeviceDefault_Light_ActionButton_CloseMode = 16974242;
          Widget_DeviceDefault_Light_ActionButton_Overflow = 16974240;
          Widget_DeviceDefault_Light_ActionMode = 16974241;
          Widget_DeviceDefault_Light_ActionMode_Inverse = 16974252;
          Widget_DeviceDefault_Light_AutoCompleteTextView = 16974203;
          Widget_DeviceDefault_Light_Button = 16974197;
          Widget_DeviceDefault_Light_Button_Borderless_Small = 16974201;
          Widget_DeviceDefault_Light_Button_Inset = 16974199;
          Widget_DeviceDefault_Light_Button_Small = 16974198;
          Widget_DeviceDefault_Light_Button_Toggle = 16974200;
          Widget_DeviceDefault_Light_CalendarView = 16974238;
          Widget_DeviceDefault_Light_CompoundButton_CheckBox = 16974204;
          Widget_DeviceDefault_Light_CompoundButton_RadioButton = 16974224;
          Widget_DeviceDefault_Light_CompoundButton_Star = 16974228;
          Widget_DeviceDefault_Light_DropDownItem = 16974232;
          Widget_DeviceDefault_Light_DropDownItem_Spinner = 16974233;
          Widget_DeviceDefault_Light_EditText = 16974206;
          Widget_DeviceDefault_Light_ExpandableListView = 16974207;
          Widget_DeviceDefault_Light_GridView = 16974208;
          Widget_DeviceDefault_Light_HorizontalScrollView = 16974226;
          Widget_DeviceDefault_Light_ImageButton = 16974209;
          Widget_DeviceDefault_Light_ListPopupWindow = 16974235;
          Widget_DeviceDefault_Light_ListView = 16974210;
          Widget_DeviceDefault_Light_ListView_DropDown = 16974205;
          Widget_DeviceDefault_Light_PopupMenu = 16974236;
          Widget_DeviceDefault_Light_PopupWindow = 16974211;
          Widget_DeviceDefault_Light_ProgressBar = 16974212;
          Widget_DeviceDefault_Light_ProgressBar_Horizontal = 16974213;
          Widget_DeviceDefault_Light_ProgressBar_Inverse = 16974217;
          Widget_DeviceDefault_Light_ProgressBar_Large = 16974216;
          Widget_DeviceDefault_Light_ProgressBar_Large_Inverse = 16974219;
          Widget_DeviceDefault_Light_ProgressBar_Small = 16974214;
          Widget_DeviceDefault_Light_ProgressBar_Small_Inverse = 16974218;
          Widget_DeviceDefault_Light_ProgressBar_Small_Title = 16974215;
          Widget_DeviceDefault_Light_RatingBar = 16974221;
          Widget_DeviceDefault_Light_RatingBar_Indicator = 16974222;
          Widget_DeviceDefault_Light_RatingBar_Small = 16974223;
          Widget_DeviceDefault_Light_ScrollView = 16974225;
          Widget_DeviceDefault_Light_SeekBar = 16974220;
          Widget_DeviceDefault_Light_Spinner = 16974227;
          Widget_DeviceDefault_Light_Tab = 16974237;
          Widget_DeviceDefault_Light_TabWidget = 16974229;
          Widget_DeviceDefault_Light_TextView = 16974202;
          Widget_DeviceDefault_Light_TextView_SpinnerItem = 16974234;
          Widget_DeviceDefault_Light_WebTextView = 16974230;
          Widget_DeviceDefault_Light_WebView = 16974231;
          Widget_DeviceDefault_ListPopupWindow = 16974180;
          Widget_DeviceDefault_ListView = 16974158;
          Widget_DeviceDefault_ListView_DropDown = 16974153;
          Widget_DeviceDefault_PopupMenu = 16974181;
          Widget_DeviceDefault_PopupWindow = 16974159;
          Widget_DeviceDefault_ProgressBar = 16974160;
          Widget_DeviceDefault_ProgressBar_Horizontal = 16974161;
          Widget_DeviceDefault_ProgressBar_Large = 16974164;
          Widget_DeviceDefault_ProgressBar_Small = 16974162;
          Widget_DeviceDefault_ProgressBar_Small_Title = 16974163;
          Widget_DeviceDefault_RatingBar = 16974166;
          Widget_DeviceDefault_RatingBar_Indicator = 16974167;
          Widget_DeviceDefault_RatingBar_Small = 16974168;
          Widget_DeviceDefault_ScrollView = 16974170;
          Widget_DeviceDefault_SeekBar = 16974165;
          Widget_DeviceDefault_Spinner = 16974172;
          Widget_DeviceDefault_Tab = 16974189;
          Widget_DeviceDefault_TabWidget = 16974174;
          Widget_DeviceDefault_TextView = 16974150;
          Widget_DeviceDefault_TextView_SpinnerItem = 16974179;
          Widget_DeviceDefault_WebTextView = 16974175;
          Widget_DeviceDefault_WebView = 16974176;
          Widget_DropDownItem = 16973867;
          Widget_DropDownItem_Spinner = 16973868;
          Widget_EditText = 16973859;
          Widget_ExpandableListView = 16973860;
          Widget_FragmentBreadCrumbs = 16973961;
          Widget_Gallery = 16973877;
          Widget_GridView = 16973874;
          Widget_Holo = 16973962;
          Widget_Holo_ActionBar = 16974004;
          Widget_Holo_ActionBar_Solid = 16974113;
          Widget_Holo_ActionBar_TabBar = 16974071;
          Widget_Holo_ActionBar_TabText = 16974070;
          Widget_Holo_ActionBar_TabView = 16974069;
          Widget_Holo_ActionButton = 16973999;
          Widget_Holo_ActionButton_CloseMode = 16974003;
          Widget_Holo_ActionButton_Overflow = 16974000;
          Widget_Holo_ActionButton_TextButton = 16974001;
          Widget_Holo_ActionMode = 16974002;
          Widget_Holo_AutoCompleteTextView = 16973968;
          Widget_Holo_Button = 16973963;
          Widget_Holo_Button_Borderless = 16974050;
          Widget_Holo_Button_Borderless_Small = 16974106;
          Widget_Holo_Button_Inset = 16973965;
          Widget_Holo_Button_Small = 16973964;
          Widget_Holo_Button_Toggle = 16973966;
          Widget_Holo_CalendarView = 16974060;
          Widget_Holo_CompoundButton_CheckBox = 16973969;
          Widget_Holo_CompoundButton_RadioButton = 16973986;
          Widget_Holo_CompoundButton_Star = 16973990;
          Widget_Holo_DatePicker = 16974063;
          Widget_Holo_DropDownItem = 16973994;
          Widget_Holo_DropDownItem_Spinner = 16973995;
          Widget_Holo_EditText = 16973971;
          Widget_Holo_ExpandableListView = 16973972;
          Widget_Holo_GridView = 16973973;
          Widget_Holo_HorizontalScrollView = 16973988;
          Widget_Holo_ImageButton = 16973974;
          Widget_Holo_Light = 16974005;
          Widget_Holo_Light_ActionBar = 16974049;
          Widget_Holo_Light_ActionBar_Solid = 16974114;
          Widget_Holo_Light_ActionBar_Solid_Inverse = 16974115;
          Widget_Holo_Light_ActionBar_TabBar = 16974074;
          Widget_Holo_Light_ActionBar_TabBar_Inverse = 16974116;
          Widget_Holo_Light_ActionBar_TabText = 16974073;
          Widget_Holo_Light_ActionBar_TabText_Inverse = 16974118;
          Widget_Holo_Light_ActionBar_TabView = 16974072;
          Widget_Holo_Light_ActionBar_TabView_Inverse = 16974117;
          Widget_Holo_Light_ActionButton = 16974045;
          Widget_Holo_Light_ActionButton_CloseMode = 16974048;
          Widget_Holo_Light_ActionButton_Overflow = 16974046;
          Widget_Holo_Light_ActionMode = 16974047;
          Widget_Holo_Light_ActionMode_Inverse = 16974119;
          Widget_Holo_Light_AutoCompleteTextView = 16974011;
          Widget_Holo_Light_Button = 16974006;
          Widget_Holo_Light_Button_Borderless_Small = 16974107;
          Widget_Holo_Light_Button_Inset = 16974008;
          Widget_Holo_Light_Button_Small = 16974007;
          Widget_Holo_Light_Button_Toggle = 16974009;
          Widget_Holo_Light_CalendarView = 16974061;
          Widget_Holo_Light_CompoundButton_CheckBox = 16974012;
          Widget_Holo_Light_CompoundButton_RadioButton = 16974032;
          Widget_Holo_Light_CompoundButton_Star = 16974036;
          Widget_Holo_Light_DropDownItem = 16974040;
          Widget_Holo_Light_DropDownItem_Spinner = 16974041;
          Widget_Holo_Light_EditText = 16974014;
          Widget_Holo_Light_ExpandableListView = 16974015;
          Widget_Holo_Light_GridView = 16974016;
          Widget_Holo_Light_HorizontalScrollView = 16974034;
          Widget_Holo_Light_ImageButton = 16974017;
          Widget_Holo_Light_ListPopupWindow = 16974043;
          Widget_Holo_Light_ListView = 16974018;
          Widget_Holo_Light_ListView_DropDown = 16974013;
          Widget_Holo_Light_PopupMenu = 16974044;
          Widget_Holo_Light_PopupWindow = 16974019;
          Widget_Holo_Light_ProgressBar = 16974020;
          Widget_Holo_Light_ProgressBar_Horizontal = 16974021;
          Widget_Holo_Light_ProgressBar_Inverse = 16974025;
          Widget_Holo_Light_ProgressBar_Large = 16974024;
          Widget_Holo_Light_ProgressBar_Large_Inverse = 16974027;
          Widget_Holo_Light_ProgressBar_Small = 16974022;
          Widget_Holo_Light_ProgressBar_Small_Inverse = 16974026;
          Widget_Holo_Light_ProgressBar_Small_Title = 16974023;
          Widget_Holo_Light_RatingBar = 16974029;
          Widget_Holo_Light_RatingBar_Indicator = 16974030;
          Widget_Holo_Light_RatingBar_Small = 16974031;
          Widget_Holo_Light_ScrollView = 16974033;
          Widget_Holo_Light_SeekBar = 16974028;
          Widget_Holo_Light_Spinner = 16974035;
          Widget_Holo_Light_Tab = 16974052;
          Widget_Holo_Light_TabWidget = 16974037;
          Widget_Holo_Light_TextView = 16974010;
          Widget_Holo_Light_TextView_SpinnerItem = 16974042;
          Widget_Holo_Light_WebTextView = 16974038;
          Widget_Holo_Light_WebView = 16974039;
          Widget_Holo_ListPopupWindow = 16973997;
          Widget_Holo_ListView = 16973975;
          Widget_Holo_ListView_DropDown = 16973970;
          Widget_Holo_PopupMenu = 16973998;
          Widget_Holo_PopupWindow = 16973976;
          Widget_Holo_ProgressBar = 16973977;
          Widget_Holo_ProgressBar_Horizontal = 16973978;
          Widget_Holo_ProgressBar_Large = 16973981;
          Widget_Holo_ProgressBar_Small = 16973979;
          Widget_Holo_ProgressBar_Small_Title = 16973980;
          Widget_Holo_RatingBar = 16973983;
          Widget_Holo_RatingBar_Indicator = 16973984;
          Widget_Holo_RatingBar_Small = 16973985;
          Widget_Holo_ScrollView = 16973987;
          Widget_Holo_SeekBar = 16973982;
          Widget_Holo_Spinner = 16973989;
          Widget_Holo_Tab = 16974051;
          Widget_Holo_TabWidget = 16973991;
          Widget_Holo_TextView = 16973967;
          Widget_Holo_TextView_SpinnerItem = 16973996;
          Widget_Holo_WebTextView = 16973992;
          Widget_Holo_WebView = 16973993;
          Widget_ImageButton = 16973862;
          Widget_ImageWell = 16973861;
          Widget_KeyboardView = 16973911;
          Widget_ListPopupWindow = 16973957;
          Widget_ListView = 16973870;
          Widget_ListView_DropDown = 16973872;
          Widget_ListView_Menu = 16973873;
          Widget_ListView_White = 16973871;
          Widget_PopupMenu = 16973958;
          Widget_PopupWindow = 16973878;
          Widget_ProgressBar = 16973852;
          Widget_ProgressBar_Horizontal = 16973855;
          Widget_ProgressBar_Inverse = 16973915;
          Widget_ProgressBar_Large = 16973853;
          Widget_ProgressBar_Large_Inverse = 16973916;
          Widget_ProgressBar_Small = 16973854;
          Widget_ProgressBar_Small_Inverse = 16973917;
          Widget_RatingBar = 16973857;
          Widget_ScrollView = 16973869;
          Widget_SeekBar = 16973856;
          Widget_Spinner = 16973864;
          Widget_Spinner_DropDown = 16973955;
          Widget_TabWidget = 16973876;
          Widget_TextView = 16973858;
          Widget_TextView_PopupMenu = 16973865;
          Widget_TextView_SpinnerItem = 16973866;
          Widget_WebView = 16973875;
      public
        constructor create(); overload;
      end;

      Innerstring = class sealed external 'android' name 'string' (JLObject)
      public
        const
          VideoView_error_button = 17039376;
          VideoView_error_text_invalid_progressive_playback = 17039381;
          VideoView_error_text_unknown = 17039377;
          VideoView_error_title = 17039378;
          cancel = 17039360;
          copy = 17039361;
          copyUrl = 17039362;
          cut = 17039363;
          defaultMsisdnAlphaTag = 17039365;
          defaultVoiceMailAlphaTag = 17039364;
          dialog_alert_title = 17039380;
          emptyPhoneNumber = 17039366;
          httpErrorBadUrl = 17039367;
          httpErrorUnsupportedScheme = 17039368;
          no = 17039369;
          ok = 17039370;
          paste = 17039371;
          search_go = 17039372;
          selectAll = 17039373;
          selectTextMode = 17039382;
          status_bar_notification_info_overflow = 17039383;
          unknownName = 17039374;
          untitled = 17039375;
          yes = 17039379;
      public
        constructor create(); overload;
      end;

      Innerraw = class sealed external 'android' name 'raw' (JLObject)
      public
        constructor create(); overload;
      end;

      Innerplurals = class sealed external 'android' name 'plurals' (JLObject)
      public
        constructor create(); overload;
      end;

      Innermipmap = class sealed external 'android' name 'mipmap' (JLObject)
      public
        const
          sym_def_app_icon = 17629184;
      public
        constructor create(); overload;
      end;

      Innermenu = class sealed external 'android' name 'menu' (JLObject)
      public
        constructor create(); overload;
      end;

      Innerlayout = class sealed external 'android' name 'layout' (JLObject)
      public
        const
          activity_list_item = 17367040;
          browser_link_context_header = 17367054;
          expandable_list_content = 17367041;
          list_content = 17367060;
          preference_category = 17367042;
          select_dialog_item = 17367057;
          select_dialog_multichoice = 17367059;
          select_dialog_singlechoice = 17367058;
          simple_dropdown_item_1line = 17367050;
          simple_expandable_list_item_1 = 17367046;
          simple_expandable_list_item_2 = 17367047;
          simple_gallery_item = 17367051;
          simple_list_item_1 = 17367043;
          simple_list_item_2 = 17367044;
          simple_list_item_activated_1 = 17367062;
          simple_list_item_activated_2 = 17367063;
          simple_list_item_checked = 17367045;
          simple_list_item_multiple_choice = 17367056;
          simple_list_item_single_choice = 17367055;
          simple_selectable_list_item = 17367061;
          simple_spinner_dropdown_item = 17367049;
          simple_spinner_item = 17367048;
          test_list_item = 17367052;
          two_line_list_item = 17367053;
      public
        constructor create(); overload;
      end;

      Innerinterpolator = class sealed external 'android' name 'interpolator' (JLObject)
      public
        const
          accelerate_cubic = 17563650;
          accelerate_decelerate = 17563654;
          accelerate_quad = 17563648;
          accelerate_quint = 17563652;
          anticipate = 17563655;
          anticipate_overshoot = 17563657;
          bounce = 17563658;
          cycle = 17563660;
          decelerate_cubic = 17563651;
          decelerate_quad = 17563649;
          decelerate_quint = 17563653;
          linear = 17563659;
          overshoot = 17563656;
      public
        constructor create(); overload;
      end;

      Innerinteger = class sealed external 'android' name 'integer' (JLObject)
      public
        const
          config_longAnimTime = 17694722;
          config_mediumAnimTime = 17694721;
          config_shortAnimTime = 17694720;
          status_bar_notification_info_maxnum = 17694723;
      public
        constructor create(); overload;
      end;

      Innerid = class sealed external 'android' name 'id' (JLObject)
      public
        const
          addToDictionary = 16908330;
          background = 16908288;
          button1 = 16908313;
          button2 = 16908314;
          button3 = 16908315;
          candidatesArea = 16908317;
          checkbox = 16908289;
          closeButton = 16908327;
          content = 16908290;
          copy = 16908321;
          copyUrl = 16908323;
          custom = 16908331;
          cut = 16908320;
          edit = 16908291;
          empty = 16908292;
          extractArea = 16908316;
          hint = 16908293;
          home = 16908332;
          icon = 16908294;
          icon1 = 16908295;
          icon2 = 16908296;
          input = 16908297;
          inputArea = 16908318;
          inputExtractEditText = 16908325;
          keyboardView = 16908326;
          list = 16908298;
          message = 16908299;
          paste = 16908322;
          primary = 16908300;
          progress = 16908301;
          secondaryProgress = 16908303;
          selectAll = 16908319;
          selectTextMode = 16908333;
          selectedIcon = 16908302;
          startSelectingText = 16908328;
          stopSelectingText = 16908329;
          summary = 16908304;
          switchInputMethod = 16908324;
          tabcontent = 16908305;
          tabhost = 16908306;
          tabs = 16908307;
          text1 = 16908308;
          text2 = 16908309;
          title = 16908310;
          toggle = 16908311;
          widget_frame = 16908312;
      public
        constructor create(); overload;
      end;

      Innerfraction = class sealed external 'android' name 'fraction' (JLObject)
      public
        constructor create(); overload;
      end;

      Innerdrawable = class sealed external 'android' name 'drawable' (JLObject)
      public
        const
          alert_dark_frame = 17301504;
          alert_light_frame = 17301505;
          arrow_down_float = 17301506;
          arrow_up_float = 17301507;
          bottom_bar = 17301658;
          btn_default = 17301508;
          btn_default_small = 17301509;
          btn_dialog = 17301527;
          btn_dropdown = 17301510;
          btn_minus = 17301511;
          btn_plus = 17301512;
          btn_radio = 17301513;
          btn_star = 17301514;
          btn_star_big_off = 17301515;
          btn_star_big_on = 17301516;
          button_onoff_indicator_off = 17301518;
          button_onoff_indicator_on = 17301517;
          checkbox_off_background = 17301519;
          checkbox_on_background = 17301520;
          dark_header = 17301669;
          dialog_frame = 17301521;
          dialog_holo_dark_frame = 17301682;
          dialog_holo_light_frame = 17301683;
          divider_horizontal_bright = 17301522;
          divider_horizontal_dark = 17301524;
          divider_horizontal_dim_dark = 17301525;
          divider_horizontal_textfield = 17301523;
          edit_text = 17301526;
          editbox_background = 17301528;
          editbox_background_normal = 17301529;
          editbox_dropdown_dark_frame = 17301530;
          editbox_dropdown_light_frame = 17301531;
          gallery_thumb = 17301532;
          ic_btn_speak_now = 17301668;
          ic_delete = 17301533;
          ic_dialog_alert = 17301543;
          ic_dialog_dialer = 17301544;
          ic_dialog_email = 17301545;
          ic_dialog_info = 17301659;
          ic_dialog_map = 17301546;
          ic_input_add = 17301547;
          ic_input_delete = 17301548;
          ic_input_get = 17301549;
          ic_lock_idle_alarm = 17301550;
          ic_lock_idle_charging = 17301534;
          ic_lock_idle_lock = 17301535;
          ic_lock_idle_low_battery = 17301536;
          ic_lock_lock = 17301551;
          ic_lock_power_off = 17301552;
          ic_lock_silent_mode = 17301553;
          ic_lock_silent_mode_off = 17301554;
          ic_media_ff = 17301537;
          ic_media_next = 17301538;
          ic_media_pause = 17301539;
          ic_media_play = 17301540;
          ic_media_previous = 17301541;
          ic_media_rew = 17301542;
          ic_menu_add = 17301555;
          ic_menu_agenda = 17301556;
          ic_menu_always_landscape_portrait = 17301557;
          ic_menu_call = 17301558;
          ic_menu_camera = 17301559;
          ic_menu_close_clear_cancel = 17301560;
          ic_menu_compass = 17301561;
          ic_menu_crop = 17301562;
          ic_menu_day = 17301563;
          ic_menu_delete = 17301564;
          ic_menu_directions = 17301565;
          ic_menu_edit = 17301566;
          ic_menu_gallery = 17301567;
          ic_menu_help = 17301568;
          ic_menu_info_details = 17301569;
          ic_menu_manage = 17301570;
          ic_menu_mapmode = 17301571;
          ic_menu_month = 17301572;
          ic_menu_more = 17301573;
          ic_menu_my_calendar = 17301574;
          ic_menu_mylocation = 17301575;
          ic_menu_myplaces = 17301576;
          ic_menu_preferences = 17301577;
          ic_menu_recent_history = 17301578;
          ic_menu_report_image = 17301579;
          ic_menu_revert = 17301580;
          ic_menu_rotate = 17301581;
          ic_menu_save = 17301582;
          ic_menu_search = 17301583;
          ic_menu_send = 17301584;
          ic_menu_set_as = 17301585;
          ic_menu_share = 17301586;
          ic_menu_slideshow = 17301587;
          ic_menu_sort_alphabetically = 17301660;
          ic_menu_sort_by_size = 17301661;
          ic_menu_today = 17301588;
          ic_menu_upload = 17301589;
          ic_menu_upload_you_tube = 17301590;
          ic_menu_view = 17301591;
          ic_menu_week = 17301592;
          ic_menu_zoom = 17301593;
          ic_notification_clear_all = 17301594;
          ic_notification_overlay = 17301595;
          ic_partial_secure = 17301596;
          ic_popup_disk_full = 17301597;
          ic_popup_reminder = 17301598;
          ic_popup_sync = 17301599;
          ic_search_category_default = 17301600;
          ic_secure = 17301601;
          list_selector_background = 17301602;
          menu_frame = 17301603;
          menu_full_frame = 17301604;
          menuitem_background = 17301605;
          picture_frame = 17301606;
          presence_audio_away = 17301679;
          presence_audio_busy = 17301680;
          presence_audio_online = 17301681;
          presence_away = 17301607;
          presence_busy = 17301608;
          presence_invisible = 17301609;
          presence_offline = 17301610;
          presence_online = 17301611;
          presence_video_away = 17301676;
          presence_video_busy = 17301677;
          presence_video_online = 17301678;
          progress_horizontal = 17301612;
          progress_indeterminate_horizontal = 17301613;
          radiobutton_off_background = 17301614;
          radiobutton_on_background = 17301615;
          screen_background_dark = 17301656;
          screen_background_dark_transparent = 17301673;
          screen_background_light = 17301657;
          screen_background_light_transparent = 17301674;
          spinner_background = 17301616;
          spinner_dropdown_background = 17301617;
          star_big_off = 17301619;
          star_big_on = 17301618;
          star_off = 17301621;
          star_on = 17301620;
          stat_notify_call_mute = 17301622;
          stat_notify_chat = 17301623;
          stat_notify_error = 17301624;
          stat_notify_missed_call = 17301631;
          stat_notify_more = 17301625;
          stat_notify_sdcard = 17301626;
          stat_notify_sdcard_prepare = 17301675;
          stat_notify_sdcard_usb = 17301627;
          stat_notify_sync = 17301628;
          stat_notify_sync_noanim = 17301629;
          stat_notify_voicemail = 17301630;
          stat_sys_data_bluetooth = 17301632;
          stat_sys_download = 17301633;
          stat_sys_download_done = 17301634;
          stat_sys_headset = 17301635;
          stat_sys_phone_call = 17301636;
          stat_sys_phone_call_forward = 17301637;
          stat_sys_phone_call_on_hold = 17301638;
          stat_sys_speakerphone = 17301639;
          stat_sys_upload = 17301640;
          stat_sys_upload_done = 17301641;
          stat_sys_vp_phone_call = 17301671;
          stat_sys_vp_phone_call_on_hold = 17301672;
          stat_sys_warning = 17301642;
          status_bar_item_app_background = 17301643;
          status_bar_item_background = 17301644;
          sym_action_call = 17301645;
          sym_action_chat = 17301646;
          sym_action_email = 17301647;
          sym_call_incoming = 17301648;
          sym_call_missed = 17301649;
          sym_call_outgoing = 17301650;
          sym_contact_card = 17301652;
          sym_def_app_icon = 17301651;
          title_bar = 17301653;
          title_bar_tall = 17301670;
          toast_frame = 17301654;
          zoom_plate = 17301655;
      public
        constructor create(); overload;
      end;

      Innerdimen = class sealed external 'android' name 'dimen' (JLObject)
      public
        const
          app_icon_size = 17104896;
          dialog_min_width_major = 17104899;
          dialog_min_width_minor = 17104900;
          notification_large_icon_height = 17104902;
          notification_large_icon_width = 17104901;
          thumbnail_height = 17104897;
          thumbnail_width = 17104898;
      public
        constructor create(); overload;
      end;

      Innercolor = class sealed external 'android' name 'color' (JLObject)
      public
        const
          background_dark = 17170446;
          background_light = 17170447;
          black = 17170444;
          darker_gray = 17170432;
          holo_blue_bright = 17170459;
          holo_blue_dark = 17170451;
          holo_blue_light = 17170450;
          holo_green_dark = 17170453;
          holo_green_light = 17170452;
          holo_orange_dark = 17170457;
          holo_orange_light = 17170456;
          holo_purple = 17170458;
          holo_red_dark = 17170455;
          holo_red_light = 17170454;
          primary_text_dark = 17170433;
          primary_text_dark_nodisable = 17170434;
          primary_text_light = 17170435;
          primary_text_light_nodisable = 17170436;
          secondary_text_dark = 17170437;
          secondary_text_dark_nodisable = 17170438;
          secondary_text_light = 17170439;
          secondary_text_light_nodisable = 17170440;
          tab_indicator_text = 17170441;
          tertiary_text_dark = 17170448;
          tertiary_text_light = 17170449;
          transparent = 17170445;
          white = 17170443;
          widget_edittext_dark = 17170442;
      public
        constructor create(); overload;
      end;

      Innerbool = class sealed external 'android' name 'bool' (JLObject)
      public
        constructor create(); overload;
      end;

      Innerattr = class sealed external 'android' name 'attr' (JLObject)
      public
        const
          absListViewStyle = 16842858;
          accessibilityEventTypes = 16843648;
          accessibilityFeedbackType = 16843650;
          accessibilityFlags = 16843652;
          accountPreferences = 16843423;
          accountType = 16843407;
          action = 16842797;
          actionBarDivider = 16843675;
          actionBarItemBackground = 16843676;
          actionBarSize = 16843499;
          actionBarSplitStyle = 16843656;
          actionBarStyle = 16843470;
          actionBarTabBarStyle = 16843508;
          actionBarTabStyle = 16843507;
          actionBarTabTextStyle = 16843509;
          actionBarWidgetTheme = 16843671;
          actionButtonStyle = 16843480;
          actionDropDownStyle = 16843479;
          actionLayout = 16843515;
          actionMenuTextAppearance = 16843616;
          actionMenuTextColor = 16843617;
          actionModeBackground = 16843483;
          actionModeCloseButtonStyle = 16843511;
          actionModeCloseDrawable = 16843484;
          actionModeCopyDrawable = 16843538;
          actionModeCutDrawable = 16843537;
          actionModePasteDrawable = 16843539;
          actionModeSelectAllDrawable = 16843646;
          actionModeSplitBackground = 16843677;
          actionModeStyle = 16843668;
          actionOverflowButtonStyle = 16843510;
          actionProviderClass = 16843657;
          actionViewClass = 16843516;
          activatedBackgroundIndicator = 16843517;
          activityCloseEnterAnimation = 16842938;
          activityCloseExitAnimation = 16842939;
          activityOpenEnterAnimation = 16842936;
          activityOpenExitAnimation = 16842937;
          addStatesFromChildren = 16842992;
          adjustViewBounds = 16843038;
          alertDialogIcon = 16843605;
          alertDialogStyle = 16842845;
          alertDialogTheme = 16843529;
          alignmentMode = 16843642;
          allContactsName = 16843468;
          allowBackup = 16843392;
          allowClearUserData = 16842757;
          allowParallelSyncs = 16843570;
          allowSingleTap = 16843353;
          allowTaskReparenting = 16843268;
          alpha = 16843551;
          alphabeticShortcut = 16843235;
          alwaysDrawnWithCache = 16842991;
          alwaysRetainTaskState = 16843267;
          angle = 16843168;
          animateFirstView = 16843477;
          animateLayoutChanges = 16843506;
          animateOnClick = 16843356;
          animation = 16843213;
          animationCache = 16842989;
          animationDuration = 16843026;
          animationOrder = 16843214;
          animationResolution = 16843546;
          antialias = 16843034;
          anyDensity = 16843372;
          apiKey = 16843281;
          author = 16843444;
          authorities = 16842776;
          autoAdvanceViewId = 16843535;
          autoCompleteTextViewStyle = 16842859;
          autoLink = 16842928;
          autoStart = 16843445;
          autoText = 16843114;
          autoUrlDetect = 16843404;
          background = 16842964;
          backgroundDimAmount = 16842802;
          backgroundDimEnabled = 16843295;
          backgroundSplit = 16843659;
          backgroundStacked = 16843658;
          backupAgent = 16843391;
          baseline = 16843548;
          baselineAlignBottom = 16843042;
          baselineAligned = 16843046;
          baselineAlignedChildIndex = 16843047;
          borderlessButtonStyle = 16843563;
          bottom = 16843184;
          bottomBright = 16842957;
          bottomDark = 16842953;
          bottomLeftRadius = 16843179;
          bottomMedium = 16842958;
          bottomOffset = 16843351;
          bottomRightRadius = 16843180;
          breadCrumbShortTitle = 16843524;
          breadCrumbTitle = 16843523;
          bufferType = 16843086;
          button = 16843015;
          buttonBarButtonStyle = 16843567;
          buttonBarStyle = 16843566;
          buttonStyle = 16842824;
          buttonStyleInset = 16842826;
          buttonStyleSmall = 16842825;
          buttonStyleToggle = 16842827;
          cacheColorHint = 16843009;
          calendarViewShown = 16843596;
          calendarViewStyle = 16843613;
          canRetrieveWindowContent = 16843653;
          candidatesTextStyleSpans = 16843312;
          capitalize = 16843113;
          centerBright = 16842956;
          centerColor = 16843275;
          centerDark = 16842952;
          centerMedium = 16842959;
          centerX = 16843170;
          centerY = 16843171;
          checkBoxPreferenceStyle = 16842895;
          checkMark = 16843016;
          checkable = 16843237;
          checkableBehavior = 16843232;
          checkboxStyle = 16842860;
          checked = 16843014;
          checkedButton = 16843080;
          childDivider = 16843025;
          childIndicator = 16843020;
          childIndicatorLeft = 16843023;
          childIndicatorRight = 16843024;
          choiceMode = 16843051;
          clearTaskOnLaunch = 16842773;
          clickable = 16842981;
          clipChildren = 16842986;
          clipOrientation = 16843274;
          clipToPadding = 16842987;
          codes = 16843330;
          collapseColumns = 16843083;
          color = 16843173;
          colorActivatedHighlight = 16843664;
          colorBackground = 16842801;
          colorBackgroundCacheHint = 16843435;
          colorFocusedHighlight = 16843663;
          colorForeground = 16842800;
          colorForegroundInverse = 16843270;
          colorLongPressedHighlight = 16843662;
          colorMultiSelectHighlight = 16843665;
          colorPressedHighlight = 16843661;
          columnCount = 16843639;
          columnDelay = 16843215;
          columnOrderPreserved = 16843640;
          columnWidth = 16843031;
          compatibleWidthLimitDp = 16843621;
          completionHint = 16843122;
          completionHintView = 16843123;
          completionThreshold = 16843124;
          configChanges = 16842783;
          configure = 16843357;
          constantSize = 16843158;
          content = 16843355;
          contentAuthority = 16843408;
          contentDescription = 16843379;
          cropToPadding = 16843043;
          cursorVisible = 16843090;
          customNavigationLayout = 16843474;
          customTokens = 16843579;
          cycles = 16843220;
          dashGap = 16843175;
          dashWidth = 16843174;
          data = 16842798;
          datePickerStyle = 16843612;
          dateTextAppearance = 16843593;
          debuggable = 16842767;
          defaultValue = 16843245;
          delay = 16843212;
          dependency = 16843244;
          descendantFocusability = 16842993;
          description = 16842784;
          detachWallpaper = 16843430;
          detailColumn = 16843427;
          detailSocialSummary = 16843428;
          detailsElementBackground = 16843598;
          dial = 16843010;
          dialogIcon = 16843252;
          dialogLayout = 16843255;
          dialogMessage = 16843251;
          dialogPreferenceStyle = 16842897;
          dialogTheme = 16843528;
          dialogTitle = 16843250;
          digits = 16843110;
          direction = 16843217;
          directionDescriptions = 16843681;
          directionPriority = 16843218;
          disableDependentsState = 16843249;
          disabledAlpha = 16842803;
          displayOptions = 16843472;
          dither = 16843036;
          divider = 16843049;
          dividerHeight = 16843050;
          dividerHorizontal = 16843564;
          dividerPadding = 16843562;
          dividerVertical = 16843530;
          drawSelectorOnTop = 16843004;
          drawable = 16843161;
          drawableBottom = 16843118;
          drawableEnd = 16843667;
          drawableLeft = 16843119;
          drawablePadding = 16843121;
          drawableRight = 16843120;
          drawableStart = 16843666;
          drawableTop = 16843117;
          drawingCacheQuality = 16842984;
          dropDownAnchor = 16843363;
          dropDownHeight = 16843395;
          dropDownHintAppearance = 16842888;
          dropDownHorizontalOffset = 16843436;
          dropDownItemStyle = 16842886;
          dropDownListViewStyle = 16842861;
          dropDownSelector = 16843125;
          dropDownSpinnerStyle = 16843478;
          dropDownVerticalOffset = 16843437;
          dropDownWidth = 16843362;
          duplicateParentState = 16842985;
          duration = 16843160;
          editTextBackground = 16843602;
          editTextColor = 16843601;
          editTextPreferenceStyle = 16842898;
          editTextStyle = 16842862;
          editable = 16843115;
          editorExtras = 16843300;
          ellipsize = 16842923;
          ems = 16843096;
          enabled = 16842766;
          endColor = 16843166;
          endYear = 16843133;
          enterFadeDuration = 16843532;
          entries = 16842930;
          entryValues = 16843256;
          eventsInterceptionEnabled = 16843389;
          excludeFromRecents = 16842775;
          exitFadeDuration = 16843533;
          expandableListPreferredChildIndicatorLeft = 16842834;
          expandableListPreferredChildIndicatorRight = 16842835;
          expandableListPreferredChildPaddingLeft = 16842831;
          expandableListPreferredItemIndicatorLeft = 16842832;
          expandableListPreferredItemIndicatorRight = 16842833;
          expandableListPreferredItemPaddingLeft = 16842830;
          expandableListViewStyle = 16842863;
          expandableListViewWhiteStyle = 16843446;
          exported = 16842768;
          extraTension = 16843371;
          factor = 16843219;
          fadeDuration = 16843384;
          fadeEnabled = 16843390;
          fadeOffset = 16843383;
          fadeScrollbars = 16843434;
          fadingEdge = 16842975;
          fadingEdgeLength = 16842976;
          fastScrollAlwaysVisible = 16843573;
          fastScrollEnabled = 16843302;
          fastScrollOverlayPosition = 16843578;
          fastScrollPreviewBackgroundLeft = 16843575;
          fastScrollPreviewBackgroundRight = 16843576;
          fastScrollTextColor = 16843609;
          fastScrollThumbDrawable = 16843574;
          fastScrollTrackDrawable = 16843577;
          fillAfter = 16843197;
          fillBefore = 16843196;
          fillEnabled = 16843343;
          fillViewport = 16843130;
          filter = 16843035;
          filterTouchesWhenObscured = 16843460;
          finishOnCloseSystemDialogs = 16843431;
          finishOnTaskLaunch = 16842772;
          firstDayOfWeek = 16843581;
          fitsSystemWindows = 16842973;
          flipInterval = 16843129;
          focusable = 16842970;
          focusableInTouchMode = 16842971;
          focusedMonthDateColor = 16843587;
          footerDividersEnabled = 16843311;
          foreground = 16843017;
          foregroundGravity = 16843264;
          format = 16843013;
          fragment = 16843491;
          fragmentCloseEnterAnimation = 16843495;
          fragmentCloseExitAnimation = 16843496;
          fragmentFadeEnterAnimation = 16843497;
          fragmentFadeExitAnimation = 16843498;
          fragmentOpenEnterAnimation = 16843493;
          fragmentOpenExitAnimation = 16843494;
          freezesText = 16843116;
          fromAlpha = 16843210;
          fromDegrees = 16843187;
          fromXDelta = 16843206;
          fromXScale = 16843202;
          fromYDelta = 16843208;
          fromYScale = 16843204;
          fullBright = 16842954;
          fullDark = 16842950;
          functionalTest = 16842787;
          galleryItemBackground = 16842828;
          galleryStyle = 16842864;
          gestureColor = 16843381;
          gestureStrokeAngleThreshold = 16843388;
          gestureStrokeLengthThreshold = 16843386;
          gestureStrokeSquarenessThreshold = 16843387;
          gestureStrokeType = 16843385;
          gestureStrokeWidth = 16843380;
          glEsVersion = 16843393;
          gradientRadius = 16843172;
          grantUriPermissions = 16842779;
          gravity = 16842927;
          gridViewStyle = 16842865;
          groupIndicator = 16843019;
          hand_hour = 16843011;
          hand_minute = 16843012;
          handle = 16843354;
          handleProfiling = 16842786;
          hapticFeedbackEnabled = 16843358;
          hardwareAccelerated = 16843475;
          hasCode = 16842764;
          headerBackground = 16843055;
          headerDividersEnabled = 16843310;
          height = 16843093;
          hint = 16843088;
          homeAsUpIndicator = 16843531;
          homeLayout = 16843549;
          horizontalDivider = 16843053;
          horizontalGap = 16843327;
          horizontalScrollViewStyle = 16843603;
          horizontalSpacing = 16843028;
          host = 16842792;
          icon = 16842754;
          iconPreview = 16843337;
          iconifiedByDefault = 16843514;
          id = 16842960;
          ignoreGravity = 16843263;
          imageButtonStyle = 16842866;
          imageWellStyle = 16842867;
          imeActionId = 16843366;
          imeActionLabel = 16843365;
          imeExtractEnterAnimation = 16843368;
          imeExtractExitAnimation = 16843369;
          imeFullscreenBackground = 16843308;
          imeOptions = 16843364;
          imeSubtypeExtraValue = 16843502;
          imeSubtypeLocale = 16843500;
          imeSubtypeMode = 16843501;
          immersive = 16843456;
          inAnimation = 16843127;
          includeFontPadding = 16843103;
          includeInGlobalSearch = 16843374;
          indeterminate = 16843065;
          indeterminateBehavior = 16843070;
          indeterminateDrawable = 16843067;
          indeterminateDuration = 16843069;
          indeterminateOnly = 16843066;
          indeterminateProgressStyle = 16843544;
          indicatorLeft = 16843021;
          indicatorRight = 16843022;
          inflatedId = 16842995;
          initOrder = 16842778;
          initialLayout = 16843345;
          innerRadius = 16843359;
          innerRadiusRatio = 16843163;
          inputMethod = 16843112;
          inputType = 16843296;
          insetBottom = 16843194;
          insetLeft = 16843191;
          insetRight = 16843192;
          insetTop = 16843193;
          installLocation = 16843447;
          interpolator = 16843073;
          isAlwaysSyncable = 16843571;
          isAuxiliary = 16843647;
          isDefault = 16843297;
          isIndicator = 16843079;
          isModifier = 16843334;
          isRepeatable = 16843336;
          isScrollContainer = 16843342;
          isSticky = 16843335;
          itemBackground = 16843056;
          itemIconDisabledAlpha = 16843057;
          itemPadding = 16843565;
          itemTextAppearance = 16843052;
          keepScreenOn = 16843286;
          key = 16843240;
          keyBackground = 16843315;
          keyEdgeFlags = 16843333;
          keyHeight = 16843326;
          keyIcon = 16843340;
          keyLabel = 16843339;
          keyOutputText = 16843338;
          keyPreviewHeight = 16843321;
          keyPreviewLayout = 16843319;
          keyPreviewOffset = 16843320;
          keyTextColor = 16843318;
          keyTextSize = 16843316;
          keyWidth = 16843325;
          keyboardMode = 16843341;
          keycode = 16842949;
          killAfterRestore = 16843420;
          &label = 16842753;
          labelTextSize = 16843317;
          largeHeap = 16843610;
          largeScreens = 16843398;
          largestWidthLimitDp = 16843622;
          launchMode = 16842781;
          layerType = 16843604;
          layout = 16842994;
          layoutAnimation = 16842988;
          layout_above = 16843140;
          layout_alignBaseline = 16843142;
          layout_alignBottom = 16843146;
          layout_alignLeft = 16843143;
          layout_alignParentBottom = 16843150;
          layout_alignParentLeft = 16843147;
          layout_alignParentRight = 16843149;
          layout_alignParentTop = 16843148;
          layout_alignRight = 16843145;
          layout_alignTop = 16843144;
          layout_alignWithParentIfMissing = 16843154;
          layout_below = 16843141;
          layout_centerHorizontal = 16843152;
          layout_centerInParent = 16843151;
          layout_centerVertical = 16843153;
          layout_column = 16843084;
          layout_columnSpan = 16843645;
          layout_gravity = 16842931;
          layout_height = 16842997;
          layout_margin = 16842998;
          layout_marginBottom = 16843002;
          layout_marginLeft = 16842999;
          layout_marginRight = 16843001;
          layout_marginTop = 16843000;
          layout_row = 16843643;
          layout_rowSpan = 16843644;
          layout_scale = 16843155;
          layout_span = 16843085;
          layout_toLeftOf = 16843138;
          layout_toRightOf = 16843139;
          layout_weight = 16843137;
          layout_width = 16842996;
          layout_x = 16843135;
          layout_y = 16843136;
          left = 16843181;
          lineSpacingExtra = 16843287;
          lineSpacingMultiplier = 16843288;
          lines = 16843092;
          linksClickable = 16842929;
          listChoiceBackgroundIndicator = 16843504;
          listChoiceIndicatorMultiple = 16843290;
          listChoiceIndicatorSingle = 16843289;
          listDivider = 16843284;
          listDividerAlertDialog = 16843525;
          listPopupWindowStyle = 16843519;
          listPreferredItemHeight = 16842829;
          listPreferredItemHeightLarge = 16843654;
          listPreferredItemHeightSmall = 16843655;
          listPreferredItemPaddingLeft = 16843683;
          listPreferredItemPaddingRight = 16843684;
          listSelector = 16843003;
          listSeparatorTextViewStyle = 16843272;
          listViewStyle = 16842868;
          listViewWhiteStyle = 16842869;
          logo = 16843454;
          longClickable = 16842982;
          loopViews = 16843527;
          manageSpaceActivity = 16842756;
          mapViewStyle = 16842890;
          marqueeRepeatLimit = 16843293;
          max = 16843062;
          maxDate = 16843584;
          maxEms = 16843095;
          maxHeight = 16843040;
          maxItemsPerRow = 16843060;
          maxLength = 16843104;
          maxLevel = 16843186;
          maxLines = 16843091;
          maxRows = 16843059;
          maxSdkVersion = 16843377;
          maxWidth = 16843039;
          measureAllChildren = 16843018;
          measureWithLargestChild = 16843476;
          menuCategory = 16843230;
          mimeType = 16842790;
          minDate = 16843583;
          minEms = 16843098;
          minHeight = 16843072;
          minLevel = 16843185;
          minLines = 16843094;
          minResizeHeight = 16843670;
          minResizeWidth = 16843669;
          minSdkVersion = 16843276;
          minWidth = 16843071;
          mode = 16843134;
          moreIcon = 16843061;
          multiprocess = 16842771;
          name = 16842755;
          navigationMode = 16843471;
          negativeButtonText = 16843254;
          nextFocusDown = 16842980;
          nextFocusForward = 16843580;
          nextFocusLeft = 16842977;
          nextFocusRight = 16842978;
          nextFocusUp = 16842979;
          noHistory = 16843309;
          normalScreens = 16843397;
          notificationTimeout = 16843651;
          numColumns = 16843032;
          numStars = 16843076;
          numeric = 16843109;
          numericShortcut = 16843236;
          onClick = 16843375;
          oneshot = 16843159;
          opacity = 16843550;
          order = 16843242;
          orderInCategory = 16843231;
          ordering = 16843490;
          orderingFromXml = 16843239;
          orientation = 16842948;
          outAnimation = 16843128;
          overScrollFooter = 16843459;
          overScrollHeader = 16843458;
          overScrollMode = 16843457;
          overridesImplicitlyEnabledSubtype = 16843682;
          packageNames = 16843649;
          padding = 16842965;
          paddingBottom = 16842969;
          paddingLeft = 16842966;
          paddingRight = 16842968;
          paddingTop = 16842967;
          panelBackground = 16842846;
          panelColorBackground = 16842849;
          panelColorForeground = 16842848;
          panelFullBackground = 16842847;
          panelTextAppearance = 16842850;
          password = 16843100;
          path = 16842794;
          pathPattern = 16842796;
          pathPrefix = 16842795;
          permission = 16842758;
          permissionGroup = 16842762;
          persistent = 16842765;
          persistentDrawingCache = 16842990;
          phoneNumber = 16843111;
          pivotX = 16843189;
          pivotY = 16843190;
          popupAnimationStyle = 16843465;
          popupBackground = 16843126;
          popupCharacters = 16843332;
          popupKeyboard = 16843331;
          popupLayout = 16843323;
          popupMenuStyle = 16843520;
          popupWindowStyle = 16842870;
          port = 16842793;
          positiveButtonText = 16843253;
          preferenceCategoryStyle = 16842892;
          preferenceInformationStyle = 16842893;
          preferenceLayoutChild = 16842900;
          preferenceScreenStyle = 16842891;
          preferenceStyle = 16842894;
          previewImage = 16843482;
          priority = 16842780;
          privateImeOptions = 16843299;
          process = 16842769;
          progress = 16843063;
          progressBarPadding = 16843545;
          progressBarStyle = 16842871;
          progressBarStyleHorizontal = 16842872;
          progressBarStyleInverse = 16843399;
          progressBarStyleLarge = 16842874;
          progressBarStyleLargeInverse = 16843401;
          progressBarStyleSmall = 16842873;
          progressBarStyleSmallInverse = 16843400;
          progressBarStyleSmallTitle = 16843279;
          progressDrawable = 16843068;
          prompt = 16843131;
          propertyName = 16843489;
          protectionLevel = 16842761;
          publicKey = 16843686;
          queryActionMsg = 16843227;
          queryAfterZeroResults = 16843394;
          queryHint = 16843608;
          quickContactBadgeStyleSmallWindowLarge = 16843443;
          quickContactBadgeStyleSmallWindowMedium = 16843442;
          quickContactBadgeStyleSmallWindowSmall = 16843441;
          quickContactBadgeStyleWindowLarge = 16843440;
          quickContactBadgeStyleWindowMedium = 16843439;
          quickContactBadgeStyleWindowSmall = 16843438;
          radioButtonStyle = 16842878;
          radius = 16843176;
          rating = 16843077;
          ratingBarStyle = 16842876;
          ratingBarStyleIndicator = 16843280;
          ratingBarStyleSmall = 16842877;
          readPermission = 16842759;
          repeatCount = 16843199;
          repeatMode = 16843200;
          reqFiveWayNav = 16843314;
          reqHardKeyboard = 16843305;
          reqKeyboardType = 16843304;
          reqNavigation = 16843306;
          reqTouchScreen = 16843303;
          required = 16843406;
          requiresFadingEdge = 16843685;
          requiresSmallestWidthDp = 16843620;
          resizeMode = 16843619;
          resizeable = 16843405;
          resource = 16842789;
          restoreAnyVersion = 16843450;
          restoreNeedsApplication = 16843421;
          right = 16843183;
          ringtonePreferenceStyle = 16842899;
          ringtoneType = 16843257;
          rotation = 16843558;
          rotationX = 16843559;
          rotationY = 16843560;
          rowCount = 16843637;
          rowDelay = 16843216;
          rowEdgeFlags = 16843329;
          rowHeight = 16843058;
          rowOrderPreserved = 16843638;
          saveEnabled = 16842983;
          scaleGravity = 16843262;
          scaleHeight = 16843261;
          scaleType = 16843037;
          scaleWidth = 16843260;
          scaleX = 16843556;
          scaleY = 16843557;
          scheme = 16842791;
          screenDensity = 16843467;
          screenOrientation = 16842782;
          screenSize = 16843466;
          scrollHorizontally = 16843099;
          scrollViewStyle = 16842880;
          scrollX = 16842962;
          scrollY = 16842963;
          scrollbarAlwaysDrawHorizontalTrack = 16842856;
          scrollbarAlwaysDrawVerticalTrack = 16842857;
          scrollbarDefaultDelayBeforeFade = 16843433;
          scrollbarFadeDuration = 16843432;
          scrollbarSize = 16842851;
          scrollbarStyle = 16842879;
          scrollbarThumbHorizontal = 16842852;
          scrollbarThumbVertical = 16842853;
          scrollbarTrackHorizontal = 16842854;
          scrollbarTrackVertical = 16842855;
          scrollbars = 16842974;
          scrollingCache = 16843006;
          searchButtonText = 16843269;
          searchMode = 16843221;
          searchSettingsDescription = 16843402;
          searchSuggestAuthority = 16843222;
          searchSuggestIntentAction = 16843225;
          searchSuggestIntentData = 16843226;
          searchSuggestPath = 16843223;
          searchSuggestSelection = 16843224;
          searchSuggestThreshold = 16843373;
          secondaryProgress = 16843064;
          seekBarStyle = 16842875;
          segmentedButtonStyle = 16843568;
          selectAllOnFocus = 16843102;
          selectable = 16843238;
          selectableItemBackground = 16843534;
          selectedDateVerticalBar = 16843591;
          selectedWeekBackgroundColor = 16843586;
          settingsActivity = 16843301;
          shadowColor = 16843105;
          shadowDx = 16843106;
          shadowDy = 16843107;
          shadowRadius = 16843108;
          shape = 16843162;
          shareInterpolator = 16843195;
          sharedUserId = 16842763;
          sharedUserLabel = 16843361;
          shouldDisableView = 16843246;
          showAsAction = 16843481;
          showDefault = 16843258;
          showDividers = 16843561;
          showSilent = 16843259;
          showWeekNumber = 16843582;
          shownWeekCount = 16843585;
          shrinkColumns = 16843082;
          singleLine = 16843101;
          smallIcon = 16843422;
          smallScreens = 16843396;
          smoothScrollbar = 16843313;
          soundEffectsEnabled = 16843285;
          spacing = 16843027;
          spinnerDropDownItemStyle = 16842887;
          spinnerItemStyle = 16842889;
          spinnerMode = 16843505;
          spinnerStyle = 16842881;
          spinnersShown = 16843595;
          splitMotionEvents = 16843503;
          src = 16843033;
          stackFromBottom = 16843005;
          starStyle = 16842882;
          startColor = 16843165;
          startOffset = 16843198;
          startYear = 16843132;
          stateNotNeeded = 16842774;
          state_above_anchor = 16842922;
          state_accelerated = 16843547;
          state_activated = 16843518;
          state_active = 16842914;
          state_checkable = 16842911;
          state_checked = 16842912;
          state_drag_can_accept = 16843624;
          state_drag_hovered = 16843625;
          state_empty = 16842921;
          state_enabled = 16842910;
          state_expanded = 16842920;
          state_first = 16842916;
          state_focused = 16842908;
          state_hovered = 16843623;
          state_last = 16842918;
          state_long_pressable = 16843324;
          state_middle = 16842917;
          state_multiline = 16843597;
          state_pressed = 16842919;
          state_selected = 16842913;
          state_single = 16842915;
          state_window_focused = 16842909;
          staticWallpaperPreview = 16843569;
          stepSize = 16843078;
          stopWithTask = 16843626;
          streamType = 16843273;
          stretchColumns = 16843081;
          stretchMode = 16843030;
          subtitle = 16843473;
          subtitleTextStyle = 16843513;
          subtypeExtraValue = 16843674;
          subtypeLocale = 16843673;
          suggestActionMsg = 16843228;
          suggestActionMsgColumn = 16843229;
          summary = 16843241;
          summaryColumn = 16843426;
          summaryOff = 16843248;
          summaryOn = 16843247;
          supportsUploading = 16843419;
          switchMinWidth = 16843632;
          switchPadding = 16843633;
          switchPreferenceStyle = 16843629;
          switchTextAppearance = 16843630;
          switchTextOff = 16843628;
          switchTextOn = 16843627;
          syncable = 16842777;
          tabStripEnabled = 16843453;
          tabStripLeft = 16843451;
          tabStripRight = 16843452;
          tabWidgetStyle = 16842883;
          tag = 16842961;
          targetActivity = 16843266;
          targetClass = 16842799;
          targetDescriptions = 16843680;
          targetPackage = 16842785;
          targetSdkVersion = 16843376;
          taskAffinity = 16842770;
          taskCloseEnterAnimation = 16842942;
          taskCloseExitAnimation = 16842943;
          taskOpenEnterAnimation = 16842940;
          taskOpenExitAnimation = 16842941;
          taskToBackEnterAnimation = 16842946;
          taskToBackExitAnimation = 16842947;
          taskToFrontEnterAnimation = 16842944;
          taskToFrontExitAnimation = 16842945;
          tension = 16843370;
          testOnly = 16843378;
          text = 16843087;
          textAllCaps = 16843660;
          textAppearance = 16842804;
          textAppearanceButton = 16843271;
          textAppearanceInverse = 16842805;
          textAppearanceLarge = 16842816;
          textAppearanceLargeInverse = 16842819;
          textAppearanceLargePopupMenu = 16843521;
          textAppearanceListItem = 16843678;
          textAppearanceListItemSmall = 16843679;
          textAppearanceMedium = 16842817;
          textAppearanceMediumInverse = 16842820;
          textAppearanceSearchResultSubtitle = 16843424;
          textAppearanceSearchResultTitle = 16843425;
          textAppearanceSmall = 16842818;
          textAppearanceSmallInverse = 16842821;
          textAppearanceSmallPopupMenu = 16843522;
          textCheckMark = 16842822;
          textCheckMarkInverse = 16842823;
          textColor = 16842904;
          textColorAlertDialogListItem = 16843526;
          textColorHighlight = 16842905;
          textColorHighlightInverse = 16843599;
          textColorHint = 16842906;
          textColorHintInverse = 16842815;
          textColorLink = 16842907;
          textColorLinkInverse = 16843600;
          textColorPrimary = 16842806;
          textColorPrimaryDisableOnly = 16842807;
          textColorPrimaryInverse = 16842809;
          textColorPrimaryInverseDisableOnly = 16843403;
          textColorPrimaryInverseNoDisable = 16842813;
          textColorPrimaryNoDisable = 16842811;
          textColorSecondary = 16842808;
          textColorSecondaryInverse = 16842810;
          textColorSecondaryInverseNoDisable = 16842814;
          textColorSecondaryNoDisable = 16842812;
          textColorTertiary = 16843282;
          textColorTertiaryInverse = 16843283;
          textCursorDrawable = 16843618;
          textEditNoPasteWindowLayout = 16843541;
          textEditPasteWindowLayout = 16843540;
          textEditSideNoPasteWindowLayout = 16843615;
          textEditSidePasteWindowLayout = 16843614;
          textEditSuggestionItemLayout = 16843636;
          textFilterEnabled = 16843007;
          textIsSelectable = 16843542;
          textOff = 16843045;
          textOn = 16843044;
          textScaleX = 16843089;
          textSelectHandle = 16843463;
          textSelectHandleLeft = 16843461;
          textSelectHandleRight = 16843462;
          textSelectHandleWindowStyle = 16843464;
          textSize = 16842901;
          textStyle = 16842903;
          textSuggestionsWindowStyle = 16843635;
          textViewStyle = 16842884;
          theme = 16842752;
          thickness = 16843360;
          thicknessRatio = 16843164;
          thumb = 16843074;
          thumbOffset = 16843075;
          thumbTextPadding = 16843634;
          thumbnail = 16843429;
          tileMode = 16843265;
          tint = 16843041;
          title = 16843233;
          titleCondensed = 16843234;
          titleTextStyle = 16843512;
          toAlpha = 16843211;
          toDegrees = 16843188;
          toXDelta = 16843207;
          toXScale = 16843203;
          toYDelta = 16843209;
          toYScale = 16843205;
          top = 16843182;
          topBright = 16842955;
          topDark = 16842951;
          topLeftRadius = 16843177;
          topOffset = 16843352;
          topRightRadius = 16843178;
          track = 16843631;
          transcriptMode = 16843008;
          transformPivotX = 16843552;
          transformPivotY = 16843553;
          translationX = 16843554;
          translationY = 16843555;
          &type = 16843169;
          typeface = 16842902;
          uiOptions = 16843672;
          uncertainGestureColor = 16843382;
          unfocusedMonthDateColor = 16843588;
          unselectedAlpha = 16843278;
          updatePeriodMillis = 16843344;
          useDefaultMargins = 16843641;
          useIntrinsicSizeAsMinimum = 16843536;
          useLevel = 16843167;
          userVisible = 16843409;
          value = 16842788;
          valueFrom = 16843486;
          valueTo = 16843487;
          valueType = 16843488;
          variablePadding = 16843157;
          versionCode = 16843291;
          versionName = 16843292;
          verticalCorrection = 16843322;
          verticalDivider = 16843054;
          verticalGap = 16843328;
          verticalScrollbarPosition = 16843572;
          verticalSpacing = 16843029;
          visibility = 16842972;
          visible = 16843156;
          vmSafeMode = 16843448;
          voiceLanguage = 16843349;
          voiceLanguageModel = 16843347;
          voiceMaxResults = 16843350;
          voicePromptText = 16843348;
          voiceSearchMode = 16843346;
          wallpaperCloseEnterAnimation = 16843413;
          wallpaperCloseExitAnimation = 16843414;
          wallpaperIntraCloseEnterAnimation = 16843417;
          wallpaperIntraCloseExitAnimation = 16843418;
          wallpaperIntraOpenEnterAnimation = 16843415;
          wallpaperIntraOpenExitAnimation = 16843416;
          wallpaperOpenEnterAnimation = 16843411;
          wallpaperOpenExitAnimation = 16843412;
          webTextViewStyle = 16843449;
          webViewStyle = 16842885;
          weekDayTextAppearance = 16843592;
          weekNumberColor = 16843589;
          weekSeparatorLineColor = 16843590;
          weightSum = 16843048;
          widgetLayout = 16843243;
          width = 16843097;
          windowActionBar = 16843469;
          windowActionBarOverlay = 16843492;
          windowActionModeOverlay = 16843485;
          windowAnimationStyle = 16842926;
          windowBackground = 16842836;
          windowCloseOnTouchOutside = 16843611;
          windowContentOverlay = 16842841;
          windowDisablePreview = 16843298;
          windowEnableSplitTouch = 16843543;
          windowEnterAnimation = 16842932;
          windowExitAnimation = 16842933;
          windowFrame = 16842837;
          windowFullscreen = 16843277;
          windowHideAnimation = 16842935;
          windowIsFloating = 16842839;
          windowIsTranslucent = 16842840;
          windowMinWidthMajor = 16843606;
          windowMinWidthMinor = 16843607;
          windowNoDisplay = 16843294;
          windowNoTitle = 16842838;
          windowShowAnimation = 16842934;
          windowShowWallpaper = 16843410;
          windowSoftInputMode = 16843307;
          windowTitleBackgroundStyle = 16842844;
          windowTitleSize = 16842842;
          windowTitleStyle = 16842843;
          writePermission = 16842760;
          x = 16842924;
          xlargeScreens = 16843455;
          y = 16842925;
          yesNoPreferenceStyle = 16842896;
          zAdjustment = 16843201;
      public
        constructor create(); overload;
      end;

      Innerarray = class sealed external 'android' name 'array' (JLObject)
      public
        const
          emailAddressTypes = 17235968;
          imProtocols = 17235969;
          organizationTypes = 17235970;
          phoneTypes = 17235971;
          postalAddressTypes = 17235972;
      public
        constructor create(); overload;
      end;

      Inneranimator = class sealed external 'android' name 'animator' (JLObject)
      public
        const
          fade_in = 17498112;
          fade_out = 17498113;
      public
        constructor create(); overload;
      end;

      Inneranim = class sealed external 'android' name 'anim' (JLObject)
      public
        const
          accelerate_decelerate_interpolator = 17432580;
          accelerate_interpolator = 17432581;
          anticipate_interpolator = 17432583;
          anticipate_overshoot_interpolator = 17432585;
          bounce_interpolator = 17432586;
          cycle_interpolator = 17432588;
          decelerate_interpolator = 17432582;
          fade_in = 17432576;
          fade_out = 17432577;
          linear_interpolator = 17432587;
          overshoot_interpolator = 17432584;
          slide_in_left = 17432578;
          slide_out_right = 17432579;
      public
        constructor create(); overload;
      end;

  public
    constructor create(); overload;
  end;

  AAAbstractAccountAuthenticator = class abstract external 'android.accounts' name 'AbstractAccountAuthenticator' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    function getIBinder(): AOIBinder; overload; virtual; final;
    function editProperties(para1: AAAccountAuthenticatorResponse; para2: JLString): AOBundle; overload; virtual; abstract;
    function addAccount(para1: AAAccountAuthenticatorResponse; para2: JLString; para3: JLString; para4: Arr1JLString; para5: AOBundle): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function addAccount(para1: AAAccountAuthenticatorResponse; para2: JLString; para3: JLString; var para4: array of JLString; para5: AOBundle): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function confirmCredentials(para1: AAAccountAuthenticatorResponse; para2: AAAccount; para3: AOBundle): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function getAuthToken(para1: AAAccountAuthenticatorResponse; para2: AAAccount; para3: JLString; para4: AOBundle): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function getAuthTokenLabel(para1: JLString): JLString; overload; virtual; abstract;
    function updateCredentials(para1: AAAccountAuthenticatorResponse; para2: AAAccount; para3: JLString; para4: AOBundle): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function hasFeatures(para1: AAAccountAuthenticatorResponse; para2: AAAccount; para3: Arr1JLString): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function hasFeatures(para1: AAAccountAuthenticatorResponse; para2: AAAccount; var para3: array of JLString): AOBundle; overload; virtual; abstract;  // throws android.accounts.NetworkErrorException
    function getAccountRemovalAllowed(para1: AAAccountAuthenticatorResponse; para2: AAAccount): AOBundle; overload; virtual;  // throws android.accounts.NetworkErrorException
  end;

  AAAccountManager = class external 'android.accounts' name 'AccountManager' (JLObject)
  public
    const
      ERROR_CODE_REMOTE_EXCEPTION = 1;
      ERROR_CODE_NETWORK_ERROR = 3;
      ERROR_CODE_CANCELED = 4;
      ERROR_CODE_INVALID_RESPONSE = 5;
      ERROR_CODE_UNSUPPORTED_OPERATION = 6;
      ERROR_CODE_BAD_ARGUMENTS = 7;
      ERROR_CODE_BAD_REQUEST = 8;
      KEY_ACCOUNT_NAME = 'authAccount';
      KEY_ACCOUNT_TYPE = 'accountType';
      KEY_AUTHTOKEN = 'authtoken';
      KEY_INTENT = 'intent';
      KEY_PASSWORD = 'password';
      KEY_ACCOUNTS = 'accounts';
      KEY_ACCOUNT_AUTHENTICATOR_RESPONSE = 'accountAuthenticatorResponse';
      KEY_ACCOUNT_MANAGER_RESPONSE = 'accountManagerResponse';
      KEY_AUTHENTICATOR_TYPES = 'authenticator_types';
      KEY_AUTH_FAILED_MESSAGE = 'authFailedMessage';
      KEY_AUTH_TOKEN_LABEL = 'authTokenLabelKey';
      KEY_BOOLEAN_RESULT = 'booleanResult';
      KEY_ERROR_CODE = 'errorCode';
      KEY_ERROR_MESSAGE = 'errorMessage';
      KEY_USERDATA = 'userdata';
      KEY_CALLER_UID = 'callerUid';
      KEY_CALLER_PID = 'callerPid';
      KEY_ANDROID_PACKAGE_NAME = 'androidPackageName';
      ACTION_AUTHENTICATOR_INTENT = 'android.accounts.AccountAuthenticator';
      AUTHENTICATOR_META_DATA_NAME = 'android.accounts.AccountAuthenticator';
      AUTHENTICATOR_ATTRIBUTES_NAME = 'account-authenticator';
      LOGIN_ACCOUNTS_CHANGED_ACTION = 'android.accounts.LOGIN_ACCOUNTS_CHANGED';
  public
    class function get(para1: ACContext): AAAccountManager; static; overload;
    function getPassword(para1: AAAccount): JLString; overload; virtual;
    function getUserData(para1: AAAccount; para2: JLString): JLString; overload; virtual;
    function getAuthenticatorTypes(): Arr1AAAuthenticatorDescription; overload; virtual;
    function getAccounts(): Arr1AAAccount; overload; virtual;
    function getAccountsByType(para1: JLString): Arr1AAAccount; overload; virtual;
    function hasFeatures(para1: AAAccount; para2: Arr1JLString; para3: AAAccountManagerCallback; para4: AOHandler): AAAccountManagerFuture; overload; virtual;
    function hasFeatures(para1: AAAccount; var para2: array of JLString; para3: AAAccountManagerCallback; para4: AOHandler): AAAccountManagerFuture; overload; virtual;
    function getAccountsByTypeAndFeatures(para1: JLString; para2: Arr1JLString; para3: AAAccountManagerCallback; para4: AOHandler): AAAccountManagerFuture; overload; virtual;
    function getAccountsByTypeAndFeatures(para1: JLString; var para2: array of JLString; para3: AAAccountManagerCallback; para4: AOHandler): AAAccountManagerFuture; overload; virtual;
    function addAccountExplicitly(para1: AAAccount; para2: JLString; para3: AOBundle): jboolean; overload; virtual;
    function removeAccount(para1: AAAccount; para2: AAAccountManagerCallback; para3: AOHandler): AAAccountManagerFuture; overload; virtual;
    procedure invalidateAuthToken(para1: JLString; para2: JLString); overload; virtual;
    function peekAuthToken(para1: AAAccount; para2: JLString): JLString; overload; virtual;
    procedure setPassword(para1: AAAccount; para2: JLString); overload; virtual;
    procedure clearPassword(para1: AAAccount); overload; virtual;
    procedure setUserData(para1: AAAccount; para2: JLString; para3: JLString); overload; virtual;
    procedure setAuthToken(para1: AAAccount; para2: JLString; para3: JLString); overload; virtual;
    function blockingGetAuthToken(para1: AAAccount; para2: JLString; para3: jboolean): JLString; overload; virtual;  // throws android.accounts.OperationCanceledException, java.io.IOException, android.accounts.AuthenticatorException
    function getAuthToken(para1: AAAccount; para2: JLString; para3: AOBundle; para4: AAActivity; para5: AAAccountManagerCallback; para6: AOHandler): AAAccountManagerFuture; overload; virtual;
    function getAuthToken(para1: AAAccount; para2: JLString; para3: jboolean; para4: AAAccountManagerCallback; para5: AOHandler): AAAccountManagerFuture; overload; virtual;
    function getAuthToken(para1: AAAccount; para2: JLString; para3: AOBundle; para4: jboolean; para5: AAAccountManagerCallback; para6: AOHandler): AAAccountManagerFuture; overload; virtual;
    function addAccount(para1: JLString; para2: JLString; para3: Arr1JLString; para4: AOBundle; para5: AAActivity; para6: AAAccountManagerCallback; para7: AOHandler): AAAccountManagerFuture; overload; virtual;
    function addAccount(para1: JLString; para2: JLString; var para3: array of JLString; para4: AOBundle; para5: AAActivity; para6: AAAccountManagerCallback; para7: AOHandler): AAAccountManagerFuture; overload; virtual;
    function confirmCredentials(para1: AAAccount; para2: AOBundle; para3: AAActivity; para4: AAAccountManagerCallback; para5: AOHandler): AAAccountManagerFuture; overload; virtual;
    function updateCredentials(para1: AAAccount; para2: JLString; para3: AOBundle; para4: AAActivity; para5: AAAccountManagerCallback; para6: AOHandler): AAAccountManagerFuture; overload; virtual;
    function editProperties(para1: JLString; para2: AAActivity; para3: AAAccountManagerCallback; para4: AOHandler): AAAccountManagerFuture; overload; virtual;
    function getAuthTokenByFeatures(para1: JLString; para2: JLString; para3: Arr1JLString; para4: AAActivity; para5: AOBundle; para6: AOBundle; para7: AAAccountManagerCallback; para8: AOHandler): AAAccountManagerFuture; overload; virtual;
    function getAuthTokenByFeatures(para1: JLString; para2: JLString; var para3: array of JLString; para4: AAActivity; para5: AOBundle; para6: AOBundle; para7: AAAccountManagerCallback; para8: AOHandler): AAAccountManagerFuture; overload; virtual;
    class function newChooseAccountIntent(para1: AAAccount; para2: JUArrayList; para3: Arr1JLString; para4: jboolean; para5: JLString; para6: JLString; para7: Arr1JLString; para8: AOBundle): ACIntent; static; overload;
    class function newChooseAccountIntent(para1: AAAccount; para2: JUArrayList; var para3: array of JLString; para4: jboolean; para5: JLString; para6: JLString; var para7: array of JLString; para8: AOBundle): ACIntent; static; overload;
    procedure addOnAccountsUpdatedListener(para1: AAOnAccountsUpdateListener; para2: AOHandler; para3: jboolean); overload; virtual;
    procedure removeOnAccountsUpdatedListener(para1: AAOnAccountsUpdateListener); overload; virtual;
  end;

  AAAccountManagerCallback = interface external 'android.accounts' name 'AccountManagerCallback' 
    procedure run(para1: AAAccountManagerFuture); overload;
  end;

  AAAccountManagerFuture = interface external 'android.accounts' name 'AccountManagerFuture' 
    function cancel(para1: jboolean): jboolean; overload;
    function isCancelled(): jboolean; overload;
    function isDone(): jboolean; overload;
    function getResult(): JLObject; overload;  // throws android.accounts.OperationCanceledException, java.io.IOException, android.accounts.AuthenticatorException
    function getResult(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws android.accounts.OperationCanceledException, java.io.IOException, android.accounts.AuthenticatorException
  end;

  AAOnAccountsUpdateListener = interface external 'android.accounts' name 'OnAccountsUpdateListener' 
    procedure onAccountsUpdated(para1: Arr1AAAccount); overload;
    procedure onAccountsUpdated(var para1: array of AAAccount); overload;
  end;

  AAAnimatorInflater = class external 'android.animation' name 'AnimatorInflater' (JLObject)
  public
    constructor create(); overload;
    class function loadAnimator(para1: ACContext; para2: jint): AAAnimator; static; overload;  // throws android.content.res.Resources$NotFoundException
  end;

  AALayoutTransition = class external 'android.animation' name 'LayoutTransition' (JLObject)
  public
    type
      InnerTransitionListener = interface;
      Arr1InnerTransitionListener = array of InnerTransitionListener;
      Arr2InnerTransitionListener = array of Arr1InnerTransitionListener;
      Arr3InnerTransitionListener = array of Arr2InnerTransitionListener;
      InnerTransitionListener = interface external 'android.animation' name 'TransitionListener' 
        procedure startTransition(para1: AALayoutTransition; para2: AVViewGroup; para3: AVView; para4: jint); overload;
        procedure endTransition(para1: AALayoutTransition; para2: AVViewGroup; para3: AVView; para4: jint); overload;
      end;

  public
    const
      CHANGE_APPEARING = 0;
      CHANGE_DISAPPEARING = 1;
      APPEARING = 2;
      DISAPPEARING = 3;
  public
    constructor create(); overload;
    procedure setDuration(para1: jlong); overload; virtual;
    procedure setStartDelay(para1: jint; para2: jlong); overload; virtual;
    function getStartDelay(para1: jint): jlong; overload; virtual;
    procedure setDuration(para1: jint; para2: jlong); overload; virtual;
    function getDuration(para1: jint): jlong; overload; virtual;
    procedure setStagger(para1: jint; para2: jlong); overload; virtual;
    function getStagger(para1: jint): jlong; overload; virtual;
    procedure setInterpolator(para1: jint; para2: AATimeInterpolator); overload; virtual;
    function getInterpolator(para1: jint): AATimeInterpolator; overload; virtual;
    procedure setAnimator(para1: jint; para2: AAAnimator); overload; virtual;
    function getAnimator(para1: jint): AAAnimator; overload; virtual;
    procedure setAnimateParentHierarchy(para1: jboolean); overload; virtual;
    function isChangingLayout(): jboolean; overload; virtual;
    function isRunning(): jboolean; overload; virtual;
    procedure addChild(para1: AVViewGroup; para2: AVView); overload; virtual;
    procedure showChild(para1: AVViewGroup; para2: AVView); overload; virtual;
    procedure removeChild(para1: AVViewGroup; para2: AVView); overload; virtual;
    procedure hideChild(para1: AVViewGroup; para2: AVView); overload; virtual;
    procedure addTransitionListener(para1: AALayoutTransition.InnerTransitionListener); overload; virtual;
    procedure removeTransitionListener(para1: AALayoutTransition.InnerTransitionListener); overload; virtual;
    function getTransitionListeners(): JUList; overload; virtual;
  end;

  AATimeInterpolator = interface external 'android.animation' name 'TimeInterpolator' 
    function getInterpolation(para1: jfloat): jfloat; overload;
  end;

  AATypeEvaluator = interface external 'android.animation' name 'TypeEvaluator' 
    function evaluate(para1: jfloat; para2: JLObject; para3: JLObject): JLObject; overload;
  end;

  AAAlarmManager = class external 'android.app' name 'AlarmManager' (JLObject)
  public
    const
      RTC_WAKEUP = 0;
      RTC = 1;
      ELAPSED_REALTIME_WAKEUP = 2;
      ELAPSED_REALTIME = 3;
      INTERVAL_FIFTEEN_MINUTES = jlong(900000);
      INTERVAL_HALF_HOUR = jlong(1800000);
      INTERVAL_HOUR = jlong(3600000);
      INTERVAL_HALF_DAY = jlong(43200000);
      INTERVAL_DAY = jlong(86400000);
  public
    procedure &set(para1: jint; para2: jlong; para3: AAPendingIntent); overload; virtual;
    procedure setRepeating(para1: jint; para2: jlong; para3: jlong; para4: AAPendingIntent); overload; virtual;
    procedure setInexactRepeating(para1: jint; para2: jlong; para3: jlong; para4: AAPendingIntent); overload; virtual;
    procedure cancel(para1: AAPendingIntent); overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    procedure setTimeZone(para1: JLString); overload; virtual;
  end;

  AADownloadManager = class external 'android.app' name 'DownloadManager' (JLObject)
  public
    type
      InnerQuery = class;
      Arr1InnerQuery = array of InnerQuery;
      Arr2InnerQuery = array of Arr1InnerQuery;
      Arr3InnerQuery = array of Arr2InnerQuery;
      InnerRequest = class;
      Arr1InnerRequest = array of InnerRequest;
      Arr2InnerRequest = array of Arr1InnerRequest;
      Arr3InnerRequest = array of Arr2InnerRequest;
      InnerQuery = class external 'android.app' name 'Query' (JLObject)
      public
        constructor create(); overload;
        function setFilterById(para1: Arr1jlong): AADownloadManager.InnerQuery; overload; virtual;
        function setFilterById(const para1: array of jlong): AADownloadManager.InnerQuery; overload; virtual;
        function setFilterByStatus(para1: jint): AADownloadManager.InnerQuery; overload; virtual;
      end;

      InnerRequest = class external 'android.app' name 'Request' (JLObject)
      public
        const
          NETWORK_MOBILE = 1;
          NETWORK_WIFI = 2;
          VISIBILITY_VISIBLE = 0;
          VISIBILITY_VISIBLE_NOTIFY_COMPLETED = 1;
          VISIBILITY_HIDDEN = 2;
          VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION = 3;
      public
        constructor create(para1: ANUri); overload;
        function setDestinationUri(para1: ANUri): AADownloadManager.InnerRequest; overload; virtual;
        function setDestinationInExternalFilesDir(para1: ACContext; para2: JLString; para3: JLString): AADownloadManager.InnerRequest; overload; virtual;
        function setDestinationInExternalPublicDir(para1: JLString; para2: JLString): AADownloadManager.InnerRequest; overload; virtual;
        procedure allowScanningByMediaScanner(); overload; virtual;
        function addRequestHeader(para1: JLString; para2: JLString): AADownloadManager.InnerRequest; overload; virtual;
        function setTitle(para1: JLCharSequence): AADownloadManager.InnerRequest; overload; virtual;
        function setDescription(para1: JLCharSequence): AADownloadManager.InnerRequest; overload; virtual;
        function setMimeType(para1: JLString): AADownloadManager.InnerRequest; overload; virtual;
        function setShowRunningNotification(para1: jboolean): AADownloadManager.InnerRequest; overload; virtual;
        function setNotificationVisibility(para1: jint): AADownloadManager.InnerRequest; overload; virtual;
        function setAllowedNetworkTypes(para1: jint): AADownloadManager.InnerRequest; overload; virtual;
        function setAllowedOverRoaming(para1: jboolean): AADownloadManager.InnerRequest; overload; virtual;
        function setVisibleInDownloadsUi(para1: jboolean): AADownloadManager.InnerRequest; overload; virtual;
      end;

  public
    const
      COLUMN_ID = '_id';
      COLUMN_TITLE = 'title';
      COLUMN_DESCRIPTION = 'description';
      COLUMN_URI = 'uri';
      COLUMN_MEDIA_TYPE = 'media_type';
      COLUMN_TOTAL_SIZE_BYTES = 'total_size';
      COLUMN_LOCAL_URI = 'local_uri';
      COLUMN_LOCAL_FILENAME = 'local_filename';
      COLUMN_STATUS = 'status';
      COLUMN_REASON = 'reason';
      COLUMN_BYTES_DOWNLOADED_SO_FAR = 'bytes_so_far';
      COLUMN_LAST_MODIFIED_TIMESTAMP = 'last_modified_timestamp';
      COLUMN_MEDIAPROVIDER_URI = 'mediaprovider_uri';
      STATUS_PENDING = 1;
      STATUS_RUNNING = 2;
      STATUS_PAUSED = 4;
      STATUS_SUCCESSFUL = 8;
      STATUS_FAILED = 16;
      ERROR_UNKNOWN = 1000;
      ERROR_FILE_ERROR = 1001;
      ERROR_UNHANDLED_HTTP_CODE = 1002;
      ERROR_HTTP_DATA_ERROR = 1004;
      ERROR_TOO_MANY_REDIRECTS = 1005;
      ERROR_INSUFFICIENT_SPACE = 1006;
      ERROR_DEVICE_NOT_FOUND = 1007;
      ERROR_CANNOT_RESUME = 1008;
      ERROR_FILE_ALREADY_EXISTS = 1009;
      PAUSED_WAITING_TO_RETRY = 1;
      PAUSED_WAITING_FOR_NETWORK = 2;
      PAUSED_QUEUED_FOR_WIFI = 3;
      PAUSED_UNKNOWN = 4;
      ACTION_DOWNLOAD_COMPLETE = 'android.intent.action.DOWNLOAD_COMPLETE';
      ACTION_NOTIFICATION_CLICKED = 'android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED';
      ACTION_VIEW_DOWNLOADS = 'android.intent.action.VIEW_DOWNLOADS';
      INTENT_EXTRAS_SORT_BY_SIZE = 'android.app.DownloadManager.extra_sortBySize';
      EXTRA_DOWNLOAD_ID = 'extra_download_id';
      EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS = 'extra_click_download_ids';
  public
    function enqueue(para1: AADownloadManager.InnerRequest): jlong; overload; virtual;
    function remove(para1: Arr1jlong): jint; overload; virtual;
    function remove(const para1: array of jlong): jint; overload; virtual;
    function query(para1: AADownloadManager.InnerQuery): ADCursor; overload; virtual;
    function openDownloadedFile(para1: jlong): AOParcelFileDescriptor; overload; virtual;  // throws java.io.FileNotFoundException
    function getUriForDownloadedFile(para1: jlong): ANUri; overload; virtual;
    function getMimeTypeForDownloadedFile(para1: jlong): JLString; overload; virtual;
    class function getMaxBytesOverMobile(para1: ACContext): JLLong; static; overload;
    class function getRecommendedMaxBytesOverMobile(para1: ACContext): JLLong; static; overload;
    function addCompletedDownload(para1: JLString; para2: JLString; para3: jboolean; para4: JLString; para5: JLString; para6: jlong; para7: jboolean): jlong; overload; virtual;
  end;

  AAFragmentTransaction = class abstract external 'android.app' name 'FragmentTransaction' (JLObject)
  public
    const
      TRANSIT_ENTER_MASK = 4096;
      TRANSIT_EXIT_MASK = 8192;
      TRANSIT_UNSET = -1;
      TRANSIT_NONE = 0;
      TRANSIT_FRAGMENT_OPEN = 4097;
      TRANSIT_FRAGMENT_CLOSE = 8194;
      TRANSIT_FRAGMENT_FADE = 4099;
  public
    constructor create(); overload;
    function add(para1: AAFragment; para2: JLString): AAFragmentTransaction; overload; virtual; abstract;
    function add(para1: jint; para2: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function add(para1: jint; para2: AAFragment; para3: JLString): AAFragmentTransaction; overload; virtual; abstract;
    function replace(para1: jint; para2: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function replace(para1: jint; para2: AAFragment; para3: JLString): AAFragmentTransaction; overload; virtual; abstract;
    function remove(para1: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function hide(para1: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function show(para1: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function detach(para1: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function attach(para1: AAFragment): AAFragmentTransaction; overload; virtual; abstract;
    function isEmpty(): jboolean; overload; virtual; abstract;
    function setCustomAnimations(para1: jint; para2: jint): AAFragmentTransaction; overload; virtual; abstract;
    function setCustomAnimations(para1: jint; para2: jint; para3: jint; para4: jint): AAFragmentTransaction; overload; virtual; abstract;
    function setTransition(para1: jint): AAFragmentTransaction; overload; virtual; abstract;
    function setTransitionStyle(para1: jint): AAFragmentTransaction; overload; virtual; abstract;
    function addToBackStack(para1: JLString): AAFragmentTransaction; overload; virtual; abstract;
    function isAddToBackStackAllowed(): jboolean; overload; virtual; abstract;
    function disallowAddToBackStack(): AAFragmentTransaction; overload; virtual; abstract;
    function setBreadCrumbTitle(para1: jint): AAFragmentTransaction; overload; virtual; abstract;
    function setBreadCrumbTitle(para1: JLCharSequence): AAFragmentTransaction; overload; virtual; abstract;
    function setBreadCrumbShortTitle(para1: jint): AAFragmentTransaction; overload; virtual; abstract;
    function setBreadCrumbShortTitle(para1: JLCharSequence): AAFragmentTransaction; overload; virtual; abstract;
    function commit(): jint; overload; virtual; abstract;
    function commitAllowingStateLoss(): jint; overload; virtual; abstract;
  end;

  AAInstrumentation = class external 'android.app' name 'Instrumentation' (JLObject)
  public
    type
      InnerActivityResult = class;
      Arr1InnerActivityResult = array of InnerActivityResult;
      Arr2InnerActivityResult = array of Arr1InnerActivityResult;
      Arr3InnerActivityResult = array of Arr2InnerActivityResult;
      InnerActivityMonitor = class;
      Arr1InnerActivityMonitor = array of InnerActivityMonitor;
      Arr2InnerActivityMonitor = array of Arr1InnerActivityMonitor;
      Arr3InnerActivityMonitor = array of Arr2InnerActivityMonitor;
      InnerActivityResult = class sealed external 'android.app' name 'ActivityResult' (JLObject)
      public
        constructor create(para1: jint; para2: ACIntent); overload;
        function getResultCode(): jint; overload; virtual;
        function getResultData(): ACIntent; overload; virtual;
      end;

      InnerActivityMonitor = class external 'android.app' name 'ActivityMonitor' (JLObject)
      public
        constructor create(para1: ACIntentFilter; para2: AAInstrumentation.InnerActivityResult; para3: jboolean); overload;
        constructor create(para1: JLString; para2: AAInstrumentation.InnerActivityResult; para3: jboolean); overload;
        function getFilter(): ACIntentFilter; overload; virtual; final;
        function getResult(): AAInstrumentation.InnerActivityResult; overload; virtual; final;
        function isBlocking(): jboolean; overload; virtual; final;
        function getHits(): jint; overload; virtual; final;
        function getLastActivity(): AAActivity; overload; virtual; final;
        function waitForActivity(): AAActivity; overload; virtual; final;
        function waitForActivityWithTimeout(para1: jlong): AAActivity; overload; virtual; final;
      end;

  public
    const
      REPORT_KEY_IDENTIFIER = 'id';
      REPORT_KEY_STREAMRESULT = 'stream';
  public
    constructor create(); overload;
    procedure onCreate(para1: AOBundle); overload; virtual;
    procedure start(); overload; virtual;
    procedure onStart(); overload; virtual;
    function onException(para1: JLObject; para2: JLThrowable): jboolean; overload; virtual;
    procedure sendStatus(para1: jint; para2: AOBundle); overload; virtual;
    procedure finish(para1: jint; para2: AOBundle); overload; virtual;
    procedure setAutomaticPerformanceSnapshots(); overload; virtual;
    procedure startPerformanceSnapshot(); overload; virtual;
    procedure endPerformanceSnapshot(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    function getContext(): ACContext; overload; virtual;
    function getComponentName(): ACComponentName; overload; virtual;
    function getTargetContext(): ACContext; overload; virtual;
    function isProfiling(): jboolean; overload; virtual;
    procedure startProfiling(); overload; virtual;
    procedure stopProfiling(); overload; virtual;
    procedure setInTouchMode(para1: jboolean); overload; virtual;
    procedure waitForIdle(para1: JLRunnable); overload; virtual;
    procedure waitForIdleSync(); overload; virtual;
    procedure runOnMainSync(para1: JLRunnable); overload; virtual;
    function startActivitySync(para1: ACIntent): AAActivity; overload; virtual;
    procedure addMonitor(para1: AAInstrumentation.InnerActivityMonitor); overload; virtual;
    function addMonitor(para1: ACIntentFilter; para2: AAInstrumentation.InnerActivityResult; para3: jboolean): AAInstrumentation.InnerActivityMonitor; overload; virtual;
    function addMonitor(para1: JLString; para2: AAInstrumentation.InnerActivityResult; para3: jboolean): AAInstrumentation.InnerActivityMonitor; overload; virtual;
    function checkMonitorHit(para1: AAInstrumentation.InnerActivityMonitor; para2: jint): jboolean; overload; virtual;
    function waitForMonitor(para1: AAInstrumentation.InnerActivityMonitor): AAActivity; overload; virtual;
    function waitForMonitorWithTimeout(para1: AAInstrumentation.InnerActivityMonitor; para2: jlong): AAActivity; overload; virtual;
    procedure removeMonitor(para1: AAInstrumentation.InnerActivityMonitor); overload; virtual;
    function invokeMenuActionSync(para1: AAActivity; para2: jint; para3: jint): jboolean; overload; virtual;
    function invokeContextMenuAction(para1: AAActivity; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure sendStringSync(para1: JLString); overload; virtual;
    procedure sendKeySync(para1: AVKeyEvent); overload; virtual;
    procedure sendKeyDownUpSync(para1: jint); overload; virtual;
    procedure sendCharacterSync(para1: jint); overload; virtual;
    procedure sendPointerSync(para1: AVMotionEvent); overload; virtual;
    procedure sendTrackballEventSync(para1: AVMotionEvent); overload; virtual;
    function newApplication(para1: JLClassLoader; para2: JLString; para3: ACContext): AAApplication; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.ClassNotFoundException
    class function newApplication(para1: JLClass; para2: ACContext): AAApplication; static; overload;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.ClassNotFoundException
    procedure callApplicationOnCreate(para1: AAApplication); overload; virtual;
    function newActivity(para1: JLClass; para2: ACContext; para3: AOIBinder; para4: AAApplication; para5: ACIntent; para6: ACPActivityInfo; para7: JLCharSequence; para8: AAActivity; para9: JLString; para10: JLObject): AAActivity; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException
    function newActivity(para1: JLClassLoader; para2: JLString; para3: ACIntent): AAActivity; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.ClassNotFoundException
    procedure callActivityOnCreate(para1: AAActivity; para2: AOBundle); overload; virtual;
    procedure callActivityOnDestroy(para1: AAActivity); overload; virtual;
    procedure callActivityOnRestoreInstanceState(para1: AAActivity; para2: AOBundle); overload; virtual;
    procedure callActivityOnPostCreate(para1: AAActivity; para2: AOBundle); overload; virtual;
    procedure callActivityOnNewIntent(para1: AAActivity; para2: ACIntent); overload; virtual;
    procedure callActivityOnStart(para1: AAActivity); overload; virtual;
    procedure callActivityOnRestart(para1: AAActivity); overload; virtual;
    procedure callActivityOnResume(para1: AAActivity); overload; virtual;
    procedure callActivityOnStop(para1: AAActivity); overload; virtual;
    procedure callActivityOnSaveInstanceState(para1: AAActivity; para2: AOBundle); overload; virtual;
    procedure callActivityOnPause(para1: AAActivity); overload; virtual;
    procedure callActivityOnUserLeaving(para1: AAActivity); overload; virtual;
    procedure startAllocCounting(); overload; virtual;
    procedure stopAllocCounting(); overload; virtual;
    function getAllocCounts(): AOBundle; overload; virtual;
    function getBinderCounts(): AOBundle; overload; virtual;
  end;

  AAKeyguardManager = class external 'android.app' name 'KeyguardManager' (JLObject)
  public
    type
      InnerOnKeyguardExitResult = interface;
      Arr1InnerOnKeyguardExitResult = array of InnerOnKeyguardExitResult;
      Arr2InnerOnKeyguardExitResult = array of Arr1InnerOnKeyguardExitResult;
      Arr3InnerOnKeyguardExitResult = array of Arr2InnerOnKeyguardExitResult;
      InnerKeyguardLock = class;
      Arr1InnerKeyguardLock = array of InnerKeyguardLock;
      Arr2InnerKeyguardLock = array of Arr1InnerKeyguardLock;
      Arr3InnerKeyguardLock = array of Arr2InnerKeyguardLock;
      InnerOnKeyguardExitResult = interface external 'android.app' name 'OnKeyguardExitResult' 
        procedure onKeyguardExitResult(para1: jboolean); overload;
      end;

      InnerKeyguardLock = class external 'android.app' name 'KeyguardLock' 
      end;

  public
    function newKeyguardLock(para1: JLString): AAKeyguardManager.InnerKeyguardLock; overload; virtual;
    function inKeyguardRestrictedInputMode(): jboolean; overload; virtual;
    procedure exitKeyguardSecurely(para1: AAKeyguardManager.InnerOnKeyguardExitResult); overload; virtual;
  end;

  AALoaderManager = class abstract external 'android.app' name 'LoaderManager' (JLObject)
  public
    type
      InnerLoaderCallbacks = interface;
      Arr1InnerLoaderCallbacks = array of InnerLoaderCallbacks;
      Arr2InnerLoaderCallbacks = array of Arr1InnerLoaderCallbacks;
      Arr3InnerLoaderCallbacks = array of Arr2InnerLoaderCallbacks;
      InnerLoaderCallbacks = interface external 'android.app' name 'LoaderCallbacks' 
        function onCreateLoader(para1: jint; para2: AOBundle): ACLoader; overload;
        procedure onLoadFinished(para1: ACLoader; para2: JLObject); overload;
        procedure onLoaderReset(para1: ACLoader); overload;
      end;

  public
    constructor create(); overload;
    function initLoader(para1: jint; para2: AOBundle; para3: AALoaderManager.InnerLoaderCallbacks): ACLoader; overload; virtual; abstract;
    function restartLoader(para1: jint; para2: AOBundle; para3: AALoaderManager.InnerLoaderCallbacks): ACLoader; overload; virtual; abstract;
    procedure destroyLoader(para1: jint); overload; virtual; abstract;
    function getLoader(para1: jint): ACLoader; overload; virtual; abstract;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual; abstract;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual; abstract;
    class procedure enableDebugLogging(para1: jboolean); static; overload;
  end;

  AALocalActivityManager = class external 'android.app' name 'LocalActivityManager' (JLObject)
  public
    constructor create(para1: AAActivity; para2: jboolean); overload;
    function startActivity(para1: JLString; para2: ACIntent): AVWindow; overload; virtual;
    function destroyActivity(para1: JLString; para2: jboolean): AVWindow; overload; virtual;
    function getCurrentActivity(): AAActivity; overload; virtual;
    function getCurrentId(): JLString; overload; virtual;
    function getActivity(para1: JLString): AAActivity; overload; virtual;
    procedure dispatchCreate(para1: AOBundle); overload; virtual;
    function saveInstanceState(): AOBundle; overload; virtual;
    procedure dispatchResume(); overload; virtual;
    procedure dispatchPause(para1: jboolean); overload; virtual;
    procedure dispatchStop(); overload; virtual;
    procedure removeAllActivities(); overload; virtual;
    procedure dispatchDestroy(para1: jboolean); overload; virtual;
  end;

  AANotificationManager = class external 'android.app' name 'NotificationManager' (JLObject)
  public
    procedure notify(para1: jint; para2: AANotification); overload; virtual;
    procedure notify(para1: JLString; para2: jint; para3: AANotification); overload; virtual;
    procedure cancel(para1: jint); overload; virtual;
    procedure cancel(para1: JLString; para2: jint); overload; virtual;
    procedure cancelAll(); overload; virtual;
  end;

  AAUiModeManager = class external 'android.app' name 'UiModeManager' (JLObject)
  public
    class var
      fACTION_ENTER_CAR_MODE: JLString; external name 'ACTION_ENTER_CAR_MODE';
      fACTION_EXIT_CAR_MODE: JLString; external name 'ACTION_EXIT_CAR_MODE';
      fACTION_ENTER_DESK_MODE: JLString; external name 'ACTION_ENTER_DESK_MODE';
      fACTION_EXIT_DESK_MODE: JLString; external name 'ACTION_EXIT_DESK_MODE';
  public
    const
      MODE_NIGHT_AUTO = 0;
      MODE_NIGHT_NO = 1;
      MODE_NIGHT_YES = 2;
      ENABLE_CAR_MODE_GO_CAR_HOME = 1;
      DISABLE_CAR_MODE_GO_HOME = 1;
  public
    procedure enableCarMode(para1: jint); overload; virtual;
    procedure disableCarMode(para1: jint); overload; virtual;
    function getCurrentModeType(): jint; overload; virtual;
    procedure setNightMode(para1: jint); overload; virtual;
    function getNightMode(): jint; overload; virtual;
  end;

  AAWallpaperManager = class external 'android.app' name 'WallpaperManager' (JLObject)
  public
    const
      ACTION_LIVE_WALLPAPER_CHOOSER = 'android.service.wallpaper.LIVE_WALLPAPER_CHOOSER';
      WALLPAPER_PREVIEW_META_DATA = 'android.wallpaper.preview';
      COMMAND_TAP = 'android.wallpaper.tap';
      COMMAND_SECONDARY_TAP = 'android.wallpaper.secondaryTap';
      COMMAND_DROP = 'android.home.drop';
  public
    class function getInstance(para1: ACContext): AAWallpaperManager; static; overload;
    function getDrawable(): AGDDrawable; overload; virtual;
    function peekDrawable(): AGDDrawable; overload; virtual;
    function getFastDrawable(): AGDDrawable; overload; virtual;
    function peekFastDrawable(): AGDDrawable; overload; virtual;
    procedure forgetLoadedWallpaper(); overload; virtual;
    function getWallpaperInfo(): AAWallpaperInfo; overload; virtual;
    procedure setResource(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure setBitmap(para1: AGBitmap); overload; virtual;  // throws java.io.IOException
    procedure setStream(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    function getDesiredMinimumWidth(): jint; overload; virtual;
    function getDesiredMinimumHeight(): jint; overload; virtual;
    procedure suggestDesiredDimensions(para1: jint; para2: jint); overload; virtual;
    procedure setWallpaperOffsets(para1: AOIBinder; para2: jfloat; para3: jfloat); overload; virtual;
    procedure setWallpaperOffsetSteps(para1: jfloat; para2: jfloat); overload; virtual;
    procedure sendWallpaperCommand(para1: AOIBinder; para2: JLString; para3: jint; para4: jint; para5: jint; para6: AOBundle); overload; virtual;
    procedure clearWallpaperOffsets(para1: AOIBinder); overload; virtual;
    procedure clear(); overload; virtual;  // throws java.io.IOException
  end;

  AAADevicePolicyManager = class external 'android.app.admin' name 'DevicePolicyManager' (JLObject)
  public
    const
      ACTION_ADD_DEVICE_ADMIN = 'android.app.action.ADD_DEVICE_ADMIN';
      EXTRA_DEVICE_ADMIN = 'android.app.extra.DEVICE_ADMIN';
      EXTRA_ADD_EXPLANATION = 'android.app.extra.ADD_EXPLANATION';
      ACTION_SET_NEW_PASSWORD = 'android.app.action.SET_NEW_PASSWORD';
      PASSWORD_QUALITY_UNSPECIFIED = 0;
      PASSWORD_QUALITY_BIOMETRIC_WEAK = 32768;
      PASSWORD_QUALITY_SOMETHING = 65536;
      PASSWORD_QUALITY_NUMERIC = 131072;
      PASSWORD_QUALITY_ALPHABETIC = 262144;
      PASSWORD_QUALITY_ALPHANUMERIC = 327680;
      PASSWORD_QUALITY_COMPLEX = 393216;
      RESET_PASSWORD_REQUIRE_ENTRY = 1;
      WIPE_EXTERNAL_STORAGE = 1;
      ENCRYPTION_STATUS_UNSUPPORTED = 0;
      ENCRYPTION_STATUS_INACTIVE = 1;
      ENCRYPTION_STATUS_ACTIVATING = 2;
      ENCRYPTION_STATUS_ACTIVE = 3;
      ACTION_START_ENCRYPTION = 'android.app.action.START_ENCRYPTION';
  public
    function isAdminActive(para1: ACComponentName): jboolean; overload; virtual;
    function getActiveAdmins(): JUList; overload; virtual;
    procedure removeActiveAdmin(para1: ACComponentName); overload; virtual;
    function hasGrantedPolicy(para1: ACComponentName; para2: jint): jboolean; overload; virtual;
    procedure setPasswordQuality(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordQuality(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumLength(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumLength(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumUpperCase(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumUpperCase(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumLowerCase(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumLowerCase(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumLetters(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumLetters(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumNumeric(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumNumeric(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumSymbols(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumSymbols(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordMinimumNonLetter(para1: ACComponentName; para2: jint); overload; virtual;
    function getPasswordMinimumNonLetter(para1: ACComponentName): jint; overload; virtual;
    procedure setPasswordHistoryLength(para1: ACComponentName; para2: jint); overload; virtual;
    procedure setPasswordExpirationTimeout(para1: ACComponentName; para2: jlong); overload; virtual;
    function getPasswordExpirationTimeout(para1: ACComponentName): jlong; overload; virtual;
    function getPasswordExpiration(para1: ACComponentName): jlong; overload; virtual;
    function getPasswordHistoryLength(para1: ACComponentName): jint; overload; virtual;
    function getPasswordMaximumLength(para1: jint): jint; overload; virtual;
    function isActivePasswordSufficient(): jboolean; overload; virtual;
    function getCurrentFailedPasswordAttempts(): jint; overload; virtual;
    procedure setMaximumFailedPasswordsForWipe(para1: ACComponentName; para2: jint); overload; virtual;
    function getMaximumFailedPasswordsForWipe(para1: ACComponentName): jint; overload; virtual;
    function resetPassword(para1: JLString; para2: jint): jboolean; overload; virtual;
    procedure setMaximumTimeToLock(para1: ACComponentName; para2: jlong); overload; virtual;
    function getMaximumTimeToLock(para1: ACComponentName): jlong; overload; virtual;
    procedure lockNow(); overload; virtual;
    procedure wipeData(para1: jint); overload; virtual;
    function setStorageEncryption(para1: ACComponentName; para2: jboolean): jint; overload; virtual;
    function getStorageEncryption(para1: ACComponentName): jboolean; overload; virtual;
    function getStorageEncryptionStatus(): jint; overload; virtual;
    procedure setCameraDisabled(para1: ACComponentName; para2: jboolean); overload; virtual;
    function getCameraDisabled(para1: ACComponentName): jboolean; overload; virtual;
  end;

  AABBackupDataInput = class external 'android.app.backup' name 'BackupDataInput' (JLObject)
  public
    function readNextHeader(): jboolean; overload; virtual;  // throws java.io.IOException
    function getKey(): JLString; overload; virtual;
    function getDataSize(): jint; overload; virtual;
    function readEntityData(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readEntityData(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure skipEntityData(); overload; virtual;  // throws java.io.IOException
  end;

  AABBackupDataOutput = class external 'android.app.backup' name 'BackupDataOutput' (JLObject)
  public
    function writeEntityHeader(para1: JLString; para2: jint): jint; overload; virtual;  // throws java.io.IOException
    function writeEntityData(para1: Arr1jbyte; para2: jint): jint; overload; virtual;  // throws java.io.IOException
    function writeEntityData(var para1: array of jbyte; para2: jint): jint; overload; virtual;  // throws java.io.IOException
  end;

  AABBackupHelper = interface external 'android.app.backup' name 'BackupHelper' 
    procedure performBackup(para1: AOParcelFileDescriptor; para2: AABBackupDataOutput; para3: AOParcelFileDescriptor); overload;
    procedure restoreEntity(para1: AABBackupDataInputStream); overload;
    procedure writeNewStateDescription(para1: AOParcelFileDescriptor); overload;
  end;

  AABBackupManager = class external 'android.app.backup' name 'BackupManager' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    procedure dataChanged(); overload; virtual;
    class procedure dataChanged(para1: JLString); static; overload;
    function requestRestore(para1: AABRestoreObserver): jint; overload; virtual;
  end;

  AABFileBackupHelperBase = class external 'android.app.backup' name 'FileBackupHelperBase' (JLObject)
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    procedure writeNewStateDescription(para1: AOParcelFileDescriptor); overload; virtual;
  end;

  AABFullBackupDataOutput = class external 'android.app.backup' name 'FullBackupDataOutput' (JLObject)
  end;

  AABRestoreObserver = class abstract external 'android.app.backup' name 'RestoreObserver' (JLObject)
  public
    constructor create(); overload;
    procedure restoreStarting(para1: jint); overload; virtual;
    procedure onUpdate(para1: jint; para2: JLString); overload; virtual;
    procedure restoreFinished(para1: jint); overload; virtual;
  end;

  AAAppWidgetHost = class external 'android.appwidget' name 'AppWidgetHost' (JLObject)
  public
    constructor create(para1: ACContext; para2: jint); overload;
    procedure startListening(); overload; virtual;
    procedure stopListening(); overload; virtual;
    function allocateAppWidgetId(): jint; overload; virtual;
    procedure deleteAppWidgetId(para1: jint); overload; virtual;
    procedure deleteHost(); overload; virtual;
    class procedure deleteAllHosts(); static; overload;
    function createView(para1: ACContext; para2: jint; para3: AAAppWidgetProviderInfo): AAAppWidgetHostView; overload; virtual; final;
  strict protected
    function onCreateView(para1: ACContext; para2: jint; para3: AAAppWidgetProviderInfo): AAAppWidgetHostView; overload; virtual;
    procedure onProviderChanged(para1: jint; para2: AAAppWidgetProviderInfo); overload; virtual;
    procedure clearViews(); overload; virtual;
  end;

  AAAppWidgetManager = class external 'android.appwidget' name 'AppWidgetManager' (JLObject)
  public
    const
      ACTION_APPWIDGET_PICK = 'android.appwidget.action.APPWIDGET_PICK';
      ACTION_APPWIDGET_CONFIGURE = 'android.appwidget.action.APPWIDGET_CONFIGURE';
      EXTRA_APPWIDGET_ID = 'appWidgetId';
      EXTRA_APPWIDGET_IDS = 'appWidgetIds';
      EXTRA_CUSTOM_INFO = 'customInfo';
      EXTRA_CUSTOM_EXTRAS = 'customExtras';
      INVALID_APPWIDGET_ID = 0;
      ACTION_APPWIDGET_UPDATE = 'android.appwidget.action.APPWIDGET_UPDATE';
      ACTION_APPWIDGET_DELETED = 'android.appwidget.action.APPWIDGET_DELETED';
      ACTION_APPWIDGET_DISABLED = 'android.appwidget.action.APPWIDGET_DISABLED';
      ACTION_APPWIDGET_ENABLED = 'android.appwidget.action.APPWIDGET_ENABLED';
      META_DATA_APPWIDGET_PROVIDER = 'android.appwidget.provider';
  public
    class function getInstance(para1: ACContext): AAAppWidgetManager; static; overload;
    procedure updateAppWidget(para1: Arr1jint; para2: AWRemoteViews); overload; virtual;
    procedure updateAppWidget(var para1: array of jint; para2: AWRemoteViews); overload; virtual;
    procedure updateAppWidget(para1: jint; para2: AWRemoteViews); overload; virtual;
    procedure partiallyUpdateAppWidget(para1: Arr1jint; para2: AWRemoteViews); overload; virtual;
    procedure partiallyUpdateAppWidget(var para1: array of jint; para2: AWRemoteViews); overload; virtual;
    procedure partiallyUpdateAppWidget(para1: jint; para2: AWRemoteViews); overload; virtual;
    procedure updateAppWidget(para1: ACComponentName; para2: AWRemoteViews); overload; virtual;
    procedure notifyAppWidgetViewDataChanged(para1: Arr1jint; para2: jint); overload; virtual;
    procedure notifyAppWidgetViewDataChanged(var para1: array of jint; para2: jint); overload; virtual;
    procedure notifyAppWidgetViewDataChanged(para1: jint; para2: jint); overload; virtual;
    function getInstalledProviders(): JUList; overload; virtual;
    function getAppWidgetInfo(para1: jint): AAAppWidgetProviderInfo; overload; virtual;
    procedure bindAppWidgetId(para1: jint; para2: ACComponentName); overload; virtual;
    function getAppWidgetIds(para1: ACComponentName): Arr1jint; overload; virtual;
  end;

  ABBluetoothAssignedNumbers = class external 'android.bluetooth' name 'BluetoothAssignedNumbers' (JLObject)
  public
    const
      ERICSSON_TECHNOLOGY = 0;
      NOKIA_MOBILE_PHONES = 1;
      INTEL = 2;
      IBM = 3;
      TOSHIBA = 4;
      THREECOM = 5;
      MICROSOFT = 6;
      LUCENT = 7;
      MOTOROLA = 8;
      INFINEON_TECHNOLOGIES = 9;
      CAMBRIDGE_SILICON_RADIO = 10;
      SILICON_WAVE = 11;
      DIGIANSWER = 12;
      TEXAS_INSTRUMENTS = 13;
      PARTHUS_TECHNOLOGIES = 14;
      BROADCOM = 15;
      MITEL_SEMICONDUCTOR = 16;
      WIDCOMM = 17;
      ZEEVO = 18;
      ATMEL = 19;
      MITSUBISHI_ELECTRIC = 20;
      RTX_TELECOM = 21;
      KC_TECHNOLOGY = 22;
      NEWLOGIC = 23;
      TRANSILICA = 24;
      ROHDE_AND_SCHWARZ = 25;
      TTPCOM = 26;
      SIGNIA_TECHNOLOGIES = 27;
      CONEXANT_SYSTEMS = 28;
      QUALCOMM = 29;
      INVENTEL = 30;
      AVM_BERLIN = 31;
      BANDSPEED = 32;
      MANSELLA = 33;
      NEC = 34;
      WAVEPLUS_TECHNOLOGY = 35;
      ALCATEL = 36;
      PHILIPS_SEMICONDUCTORS = 37;
      C_TECHNOLOGIES = 38;
      OPEN_INTERFACE = 39;
      RF_MICRO_DEVICES = 40;
      HITACHI = 41;
      SYMBOL_TECHNOLOGIES = 42;
      TENOVIS = 43;
      MACRONIX = 44;
      GCT_SEMICONDUCTOR = 45;
      NORWOOD_SYSTEMS = 46;
      MEWTEL_TECHNOLOGY = 47;
      ST_MICROELECTRONICS = 48;
      SYNOPSYS = 49;
      RED_M = 50;
      COMMIL = 51;
      CATC = 52;
      ECLIPSE = 53;
      RENESAS_TECHNOLOGY = 54;
      MOBILIAN_CORPORATION = 55;
      TERAX = 56;
      INTEGRATED_SYSTEM_SOLUTION = 57;
      MATSUSHITA_ELECTRIC = 58;
      GENNUM = 59;
      RESEARCH_IN_MOTION = 60;
      IPEXTREME = 61;
      SYSTEMS_AND_CHIPS = 62;
      BLUETOOTH_SIG = 63;
      SEIKO_EPSON = 64;
      INTEGRATED_SILICON_SOLUTION = 65;
      CONWISE_TECHNOLOGY = 66;
      PARROT = 67;
      SOCKET_MOBILE = 68;
      ATHEROS_COMMUNICATIONS = 69;
      MEDIATEK = 70;
      BLUEGIGA = 71;
      MARVELL = 72;
      THREE_DSP = 73;
      ACCEL_SEMICONDUCTOR = 74;
      CONTINENTAL_AUTOMOTIVE = 75;
      APPLE = 76;
      STACCATO_COMMUNICATIONS = 77;
      AVAGO = 78;
      APT_LICENSING = 79;
      SIRF_TECHNOLOGY = 80;
      TZERO_TECHNOLOGIES = 81;
      J_AND_M = 82;
      FREE2MOVE = 83;
      THREE_DIJOY = 84;
      PLANTRONICS = 85;
      SONY_ERICSSON = 86;
      HARMAN_INTERNATIONAL = 87;
      VIZIO = 88;
      NORDIC_SEMICONDUCTOR = 89;
      EM_MICROELECTRONIC_MARIN = 90;
      RALINK_TECHNOLOGY = 91;
      BELKIN_INTERNATIONAL = 92;
      REALTEK_SEMICONDUCTOR = 93;
      STONESTREET_ONE = 94;
      WICENTRIC = 95;
      RIVIERAWAVES = 96;
  end;

  ABBluetoothHealthCallback = class abstract external 'android.bluetooth' name 'BluetoothHealthCallback' (JLObject)
  public
    constructor create(); overload;
    procedure onHealthAppConfigurationStatusChange(para1: ABBluetoothHealthAppConfiguration; para2: jint); overload; virtual;
    procedure onHealthChannelStateChange(para1: ABBluetoothHealthAppConfiguration; para2: ABBluetoothDevice; para3: jint; para4: jint; para5: AOParcelFileDescriptor; para6: jint); overload; virtual;
  end;

  ABBluetoothProfile = interface external 'android.bluetooth' name 'BluetoothProfile' 
    type
      InnerServiceListener = interface;
      Arr1InnerServiceListener = array of InnerServiceListener;
      Arr2InnerServiceListener = array of Arr1InnerServiceListener;
      Arr3InnerServiceListener = array of Arr2InnerServiceListener;
      InnerServiceListener = interface external 'android.bluetooth' name 'ServiceListener' 
        procedure onServiceConnected(para1: jint; para2: ABBluetoothProfile); overload;
        procedure onServiceDisconnected(para1: jint); overload;
      end;

    const
      EXTRA_STATE = 'android.bluetooth.profile.extra.STATE';
      EXTRA_PREVIOUS_STATE = 'android.bluetooth.profile.extra.PREVIOUS_STATE';
      STATE_DISCONNECTED = 0;
      STATE_CONNECTING = 1;
      STATE_CONNECTED = 2;
      STATE_DISCONNECTING = 3;
      HEADSET = 1;
      A2DP = 2;
      HEALTH = 3;
    function getConnectedDevices(): JUList; overload;
    function getDevicesMatchingConnectionStates(para1: Arr1jint): JUList; overload;
    function getDevicesMatchingConnectionStates(var para1: array of jint): JUList; overload;
    function getConnectionState(para1: ABBluetoothDevice): jint; overload;
  end;

  ACAbstractThreadedSyncAdapter = class abstract external 'android.content' name 'AbstractThreadedSyncAdapter' (JLObject)
  public
    const
      LOG_SYNC_DETAILS = 2743;
  public
    constructor create(para1: ACContext; para2: jboolean); overload;
    constructor create(para1: ACContext; para2: jboolean; para3: jboolean); overload;
    function getContext(): ACContext; overload; virtual;
    function getSyncAdapterBinder(): AOIBinder; overload; virtual; final;
    procedure onPerformSync(para1: AAAccount; para2: AOBundle; para3: JLString; para4: ACContentProviderClient; para5: ACSyncResult); overload; virtual; abstract;
    procedure onSyncCanceled(); overload; virtual;
    procedure onSyncCanceled(para1: JLThread); overload; virtual;
  end;

  ACBroadcastReceiver = class abstract external 'android.content' name 'BroadcastReceiver' (JLObject)
  public
    type
      InnerPendingResult = class;
      Arr1InnerPendingResult = array of InnerPendingResult;
      Arr2InnerPendingResult = array of Arr1InnerPendingResult;
      Arr3InnerPendingResult = array of Arr2InnerPendingResult;
      InnerPendingResult = class external 'android.content' name 'PendingResult' (JLObject)
      public
        procedure setResultCode(para1: jint); overload; virtual; final;
        function getResultCode(): jint; overload; virtual; final;
        procedure setResultData(para1: JLString); overload; virtual; final;
        function getResultData(): JLString; overload; virtual; final;
        procedure setResultExtras(para1: AOBundle); overload; virtual; final;
        function getResultExtras(para1: jboolean): AOBundle; overload; virtual; final;
        procedure setResult(para1: jint; para2: JLString; para3: AOBundle); overload; virtual; final;
        function getAbortBroadcast(): jboolean; overload; virtual; final;
        procedure abortBroadcast(); overload; virtual; final;
        procedure clearAbortBroadcast(); overload; virtual; final;
        procedure finish(); overload; virtual; final;
      end;

  public
    constructor create(); overload;
    procedure onReceive(para1: ACContext; para2: ACIntent); overload; virtual; abstract;
    function goAsync(): ACBroadcastReceiver.InnerPendingResult; overload; virtual; final;
    function peekService(para1: ACContext; para2: ACIntent): AOIBinder; overload; virtual;
    procedure setResultCode(para1: jint); overload; virtual; final;
    function getResultCode(): jint; overload; virtual; final;
    procedure setResultData(para1: JLString); overload; virtual; final;
    function getResultData(): JLString; overload; virtual; final;
    procedure setResultExtras(para1: AOBundle); overload; virtual; final;
    function getResultExtras(para1: jboolean): AOBundle; overload; virtual; final;
    procedure setResult(para1: jint; para2: JLString; para3: AOBundle); overload; virtual; final;
    function getAbortBroadcast(): jboolean; overload; virtual; final;
    procedure abortBroadcast(); overload; virtual; final;
    procedure clearAbortBroadcast(); overload; virtual; final;
    function isOrderedBroadcast(): jboolean; overload; virtual; final;
    function isInitialStickyBroadcast(): jboolean; overload; virtual; final;
    procedure setOrderedHint(para1: jboolean); overload; virtual; final;
    procedure setDebugUnregister(para1: jboolean); overload; virtual; final;
    function getDebugUnregister(): jboolean; overload; virtual; final;
  end;

  ACComponentCallbacks = interface external 'android.content' name 'ComponentCallbacks' 
    procedure onConfigurationChanged(para1: ACRConfiguration); overload;
    procedure onLowMemory(); overload;
  end;

  ACContentProviderClient = class external 'android.content' name 'ContentProviderClient' (JLObject)
  public
    function query(para1: ANUri; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString): ADCursor; overload; virtual;  // throws android.os.RemoteException
    function query(para1: ANUri; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString): ADCursor; overload; virtual;  // throws android.os.RemoteException
    function getType(para1: ANUri): JLString; overload; virtual;  // throws android.os.RemoteException
    function getStreamTypes(para1: ANUri; para2: JLString): Arr1JLString; overload; virtual;  // throws android.os.RemoteException
    function insert(para1: ANUri; para2: ACContentValues): ANUri; overload; virtual;  // throws android.os.RemoteException
    function bulkInsert(para1: ANUri; para2: Arr1ACContentValues): jint; overload; virtual;  // throws android.os.RemoteException
    function bulkInsert(para1: ANUri; var para2: array of ACContentValues): jint; overload; virtual;  // throws android.os.RemoteException
    function delete(para1: ANUri; para2: JLString; para3: Arr1JLString): jint; overload; virtual;  // throws android.os.RemoteException
    function delete(para1: ANUri; para2: JLString; var para3: array of JLString): jint; overload; virtual;  // throws android.os.RemoteException
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; para4: Arr1JLString): jint; overload; virtual;  // throws android.os.RemoteException
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; var para4: array of JLString): jint; overload; virtual;  // throws android.os.RemoteException
    function openFile(para1: ANUri; para2: JLString): AOParcelFileDescriptor; overload; virtual;  // throws android.os.RemoteException, java.io.FileNotFoundException
    function openAssetFile(para1: ANUri; para2: JLString): ACRAssetFileDescriptor; overload; virtual;  // throws android.os.RemoteException, java.io.FileNotFoundException
    function openTypedAssetFileDescriptor(para1: ANUri; para2: JLString; para3: AOBundle): ACRAssetFileDescriptor; overload; virtual; final;  // throws android.os.RemoteException, java.io.FileNotFoundException
    function applyBatch(para1: JUArrayList): Arr1ACContentProviderResult; overload; virtual;  // throws android.os.RemoteException, android.content.OperationApplicationException
    function release(): jboolean; overload; virtual;
    function getLocalContentProvider(): ACContentProvider; overload; virtual;
  end;

  ACContentResolver = class abstract external 'android.content' name 'ContentResolver' (JLObject)
  public
    const
      SYNC_EXTRAS_ACCOUNT = 'account';
      SYNC_EXTRAS_EXPEDITED = 'expedited';
      SYNC_EXTRAS_FORCE = 'force';
      SYNC_EXTRAS_IGNORE_SETTINGS = 'ignore_settings';
      SYNC_EXTRAS_IGNORE_BACKOFF = 'ignore_backoff';
      SYNC_EXTRAS_DO_NOT_RETRY = 'do_not_retry';
      SYNC_EXTRAS_MANUAL = 'force';
      SYNC_EXTRAS_UPLOAD = 'upload';
      SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS = 'deletions_override';
      SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS = 'discard_deletions';
      SYNC_EXTRAS_INITIALIZE = 'initialize';
      SCHEME_CONTENT = 'content';
      SCHEME_ANDROID_RESOURCE = 'android.resource';
      SCHEME_FILE = 'file';
      CURSOR_ITEM_BASE_TYPE = 'vnd.android.cursor.item';
      CURSOR_DIR_BASE_TYPE = 'vnd.android.cursor.dir';
      SYNC_OBSERVER_TYPE_SETTINGS = 1;
      SYNC_OBSERVER_TYPE_PENDING = 2;
      SYNC_OBSERVER_TYPE_ACTIVE = 4;
  public
    constructor create(para1: ACContext); overload;
    function getType(para1: ANUri): JLString; overload; virtual; final;
    function getStreamTypes(para1: ANUri; para2: JLString): Arr1JLString; overload; virtual;
    function query(para1: ANUri; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString): ADCursor; overload; virtual; final;
    function query(para1: ANUri; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString): ADCursor; overload; virtual; final;
    function openInputStream(para1: ANUri): JIInputStream; overload; virtual; final;  // throws java.io.FileNotFoundException
    function openOutputStream(para1: ANUri): JIOutputStream; overload; virtual; final;  // throws java.io.FileNotFoundException
    function openOutputStream(para1: ANUri; para2: JLString): JIOutputStream; overload; virtual; final;  // throws java.io.FileNotFoundException
    function openFileDescriptor(para1: ANUri; para2: JLString): AOParcelFileDescriptor; overload; virtual; final;  // throws java.io.FileNotFoundException
    function openAssetFileDescriptor(para1: ANUri; para2: JLString): ACRAssetFileDescriptor; overload; virtual; final;  // throws java.io.FileNotFoundException
    function openTypedAssetFileDescriptor(para1: ANUri; para2: JLString; para3: AOBundle): ACRAssetFileDescriptor; overload; virtual; final;  // throws java.io.FileNotFoundException
    function insert(para1: ANUri; para2: ACContentValues): ANUri; overload; virtual; final;
    function applyBatch(para1: JLString; para2: JUArrayList): Arr1ACContentProviderResult; overload; virtual;  // throws android.os.RemoteException, android.content.OperationApplicationException
    function bulkInsert(para1: ANUri; para2: Arr1ACContentValues): jint; overload; virtual; final;
    function bulkInsert(para1: ANUri; var para2: array of ACContentValues): jint; overload; virtual; final;
    function delete(para1: ANUri; para2: JLString; para3: Arr1JLString): jint; overload; virtual; final;
    function delete(para1: ANUri; para2: JLString; var para3: array of JLString): jint; overload; virtual; final;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; para4: Arr1JLString): jint; overload; virtual; final;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; var para4: array of JLString): jint; overload; virtual; final;
    function call(para1: ANUri; para2: JLString; para3: JLString; para4: AOBundle): AOBundle; overload; virtual; final;
    function acquireContentProviderClient(para1: ANUri): ACContentProviderClient; overload; virtual; final;
    function acquireContentProviderClient(para1: JLString): ACContentProviderClient; overload; virtual; final;
    procedure registerContentObserver(para1: ANUri; para2: jboolean; para3: ADContentObserver); overload; virtual; final;
    procedure unregisterContentObserver(para1: ADContentObserver); overload; virtual; final;
    procedure notifyChange(para1: ANUri; para2: ADContentObserver); overload; virtual;
    procedure notifyChange(para1: ANUri; para2: ADContentObserver; para3: jboolean); overload; virtual;
    procedure startSync(para1: ANUri; para2: AOBundle); overload; virtual;
    class procedure requestSync(para1: AAAccount; para2: JLString; para3: AOBundle); static; overload;
    class procedure validateSyncExtrasBundle(para1: AOBundle); static; overload;
    procedure cancelSync(para1: ANUri); overload; virtual;
    class procedure cancelSync(para1: AAAccount; para2: JLString); static; overload;
    class function getSyncAdapterTypes(): Arr1ACSyncAdapterType; static; overload;
    class function getSyncAutomatically(para1: AAAccount; para2: JLString): jboolean; static; overload;
    class procedure setSyncAutomatically(para1: AAAccount; para2: JLString; para3: jboolean); static; overload;
    class procedure addPeriodicSync(para1: AAAccount; para2: JLString; para3: AOBundle; para4: jlong); static; overload;
    class procedure removePeriodicSync(para1: AAAccount; para2: JLString; para3: AOBundle); static; overload;
    class function getPeriodicSyncs(para1: AAAccount; para2: JLString): JUList; static; overload;
    class function getIsSyncable(para1: AAAccount; para2: JLString): jint; static; overload;
    class procedure setIsSyncable(para1: AAAccount; para2: JLString; para3: jint); static; overload;
    class function getMasterSyncAutomatically(): jboolean; static; overload;
    class procedure setMasterSyncAutomatically(para1: jboolean); static; overload;
    class function isSyncActive(para1: AAAccount; para2: JLString): jboolean; static; overload;
    class function getCurrentSync(): ACSyncInfo; static; overload;
    class function getCurrentSyncs(): JUList; static; overload;
    class function isSyncPending(para1: AAAccount; para2: JLString): jboolean; static; overload;
    class function addStatusChangeListener(para1: jint; para2: ACSyncStatusObserver): JLObject; static; overload;
    class procedure removeStatusChangeListener(para1: JLObject); static; overload;
  end;

  ACDialogInterface = interface external 'android.content' name 'DialogInterface' 
    type
      InnerOnKeyListener = interface;
      Arr1InnerOnKeyListener = array of InnerOnKeyListener;
      Arr2InnerOnKeyListener = array of Arr1InnerOnKeyListener;
      Arr3InnerOnKeyListener = array of Arr2InnerOnKeyListener;
      InnerOnMultiChoiceClickListener = interface;
      Arr1InnerOnMultiChoiceClickListener = array of InnerOnMultiChoiceClickListener;
      Arr2InnerOnMultiChoiceClickListener = array of Arr1InnerOnMultiChoiceClickListener;
      Arr3InnerOnMultiChoiceClickListener = array of Arr2InnerOnMultiChoiceClickListener;
      InnerOnClickListener = interface;
      Arr1InnerOnClickListener = array of InnerOnClickListener;
      Arr2InnerOnClickListener = array of Arr1InnerOnClickListener;
      Arr3InnerOnClickListener = array of Arr2InnerOnClickListener;
      InnerOnShowListener = interface;
      Arr1InnerOnShowListener = array of InnerOnShowListener;
      Arr2InnerOnShowListener = array of Arr1InnerOnShowListener;
      Arr3InnerOnShowListener = array of Arr2InnerOnShowListener;
      InnerOnDismissListener = interface;
      Arr1InnerOnDismissListener = array of InnerOnDismissListener;
      Arr2InnerOnDismissListener = array of Arr1InnerOnDismissListener;
      Arr3InnerOnDismissListener = array of Arr2InnerOnDismissListener;
      InnerOnCancelListener = interface;
      Arr1InnerOnCancelListener = array of InnerOnCancelListener;
      Arr2InnerOnCancelListener = array of Arr1InnerOnCancelListener;
      Arr3InnerOnCancelListener = array of Arr2InnerOnCancelListener;
      InnerOnKeyListener = interface external 'android.content' name 'OnKeyListener' 
        function onKey(para1: ACDialogInterface; para2: jint; para3: AVKeyEvent): jboolean; overload;
      end;

      InnerOnMultiChoiceClickListener = interface external 'android.content' name 'OnMultiChoiceClickListener' 
        procedure onClick(para1: ACDialogInterface; para2: jint; para3: jboolean); overload;
      end;

      InnerOnClickListener = interface external 'android.content' name 'OnClickListener' 
        procedure onClick(para1: ACDialogInterface; para2: jint); overload;
      end;

      InnerOnShowListener = interface external 'android.content' name 'OnShowListener' 
        procedure onShow(para1: ACDialogInterface); overload;
      end;

      InnerOnDismissListener = interface external 'android.content' name 'OnDismissListener' 
        procedure onDismiss(para1: ACDialogInterface); overload;
      end;

      InnerOnCancelListener = interface external 'android.content' name 'OnCancelListener' 
        procedure onCancel(para1: ACDialogInterface); overload;
      end;

    const
      BUTTON_POSITIVE = -1;
      BUTTON_NEGATIVE = -2;
      BUTTON_NEUTRAL = -3;
      BUTTON1 = -1;
      BUTTON2 = -2;
      BUTTON3 = -3;
    procedure cancel(); overload;
    procedure dismiss(); overload;
  end;

  ACEntity = class sealed external 'android.content' name 'Entity' (JLObject)
  public
    type
      InnerNamedContentValues = class;
      Arr1InnerNamedContentValues = array of InnerNamedContentValues;
      Arr2InnerNamedContentValues = array of Arr1InnerNamedContentValues;
      Arr3InnerNamedContentValues = array of Arr2InnerNamedContentValues;
      InnerNamedContentValues = class external 'android.content' name 'NamedContentValues' (JLObject)
      public
        final var
          furi: ANUri; external name 'uri';
          fvalues: ACContentValues; external name 'values';
      public
        constructor create(para1: ANUri; para2: ACContentValues); overload;
      end;

  public
    constructor create(para1: ACContentValues); overload;
    function getEntityValues(): ACContentValues; overload; virtual;
    function getSubValues(): JUArrayList; overload; virtual;
    procedure addSubValue(para1: ANUri; para2: ACContentValues); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ACLoader = class external 'android.content' name 'Loader' (JLObject)
  public
    type
      InnerOnLoadCompleteListener = interface;
      Arr1InnerOnLoadCompleteListener = array of InnerOnLoadCompleteListener;
      Arr2InnerOnLoadCompleteListener = array of Arr1InnerOnLoadCompleteListener;
      Arr3InnerOnLoadCompleteListener = array of Arr2InnerOnLoadCompleteListener;
      InnerForceLoadContentObserver = class;
      Arr1InnerForceLoadContentObserver = array of InnerForceLoadContentObserver;
      Arr2InnerForceLoadContentObserver = array of Arr1InnerForceLoadContentObserver;
      Arr3InnerForceLoadContentObserver = array of Arr2InnerForceLoadContentObserver;
      InnerOnLoadCompleteListener = interface external 'android.content' name 'OnLoadCompleteListener' 
        procedure onLoadComplete(para1: ACLoader; para2: JLObject); overload;
      end;

      InnerForceLoadContentObserver = class sealed external 'android.content' name 'ForceLoadContentObserver' 
      end;

  public
    constructor create(para1: ACContext); overload;
    procedure deliverResult(para1: JLObject); overload; virtual;
    function getContext(): ACContext; overload; virtual;
    function getId(): jint; overload; virtual;
    procedure registerListener(para1: jint; para2: ACLoader.InnerOnLoadCompleteListener); overload; virtual;
    procedure unregisterListener(para1: ACLoader.InnerOnLoadCompleteListener); overload; virtual;
    function isStarted(): jboolean; overload; virtual;
    function isAbandoned(): jboolean; overload; virtual;
    function isReset(): jboolean; overload; virtual;
    procedure startLoading(); overload; virtual; final;
  strict protected
    procedure onStartLoading(); overload; virtual;
  public
    procedure forceLoad(); overload; virtual;
  strict protected
    procedure onForceLoad(); overload; virtual;
  public
    procedure stopLoading(); overload; virtual;
  strict protected
    procedure onStopLoading(); overload; virtual;
  public
    procedure abandon(); overload; virtual;
  strict protected
    procedure onAbandon(); overload; virtual;
  public
    procedure reset(); overload; virtual;
  strict protected
    procedure onReset(); overload; virtual;
  public
    function takeContentChanged(): jboolean; overload; virtual;
    procedure onContentChanged(); overload; virtual;
    function dataToString(para1: JLObject): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual;
  end;

  ACServiceConnection = interface external 'android.content' name 'ServiceConnection' 
    procedure onServiceConnected(para1: ACComponentName; para2: AOIBinder); overload;
    procedure onServiceDisconnected(para1: ACComponentName); overload;
  end;

  ACSharedPreferences = interface external 'android.content' name 'SharedPreferences' 
    type
      InnerEditor = interface;
      Arr1InnerEditor = array of InnerEditor;
      Arr2InnerEditor = array of Arr1InnerEditor;
      Arr3InnerEditor = array of Arr2InnerEditor;
      InnerOnSharedPreferenceChangeListener = interface;
      Arr1InnerOnSharedPreferenceChangeListener = array of InnerOnSharedPreferenceChangeListener;
      Arr2InnerOnSharedPreferenceChangeListener = array of Arr1InnerOnSharedPreferenceChangeListener;
      Arr3InnerOnSharedPreferenceChangeListener = array of Arr2InnerOnSharedPreferenceChangeListener;
      InnerEditor = interface external 'android.content' name 'Editor' 
        function putString(para1: JLString; para2: JLString): ACSharedPreferences.InnerEditor; overload;
        function putStringSet(para1: JLString; para2: JUSet): ACSharedPreferences.InnerEditor; overload;
        function putInt(para1: JLString; para2: jint): ACSharedPreferences.InnerEditor; overload;
        function putLong(para1: JLString; para2: jlong): ACSharedPreferences.InnerEditor; overload;
        function putFloat(para1: JLString; para2: jfloat): ACSharedPreferences.InnerEditor; overload;
        function putBoolean(para1: JLString; para2: jboolean): ACSharedPreferences.InnerEditor; overload;
        function remove(para1: JLString): ACSharedPreferences.InnerEditor; overload;
        function clear(): ACSharedPreferences.InnerEditor; overload;
        function commit(): jboolean; overload;
        procedure apply(); overload;
      end;

      InnerOnSharedPreferenceChangeListener = interface external 'android.content' name 'OnSharedPreferenceChangeListener' 
        procedure onSharedPreferenceChanged(para1: ACSharedPreferences; para2: JLString); overload;
      end;

    function getAll(): JUMap; overload;
    function getString(para1: JLString; para2: JLString): JLString; overload;
    function getStringSet(para1: JLString; para2: JUSet): JUSet; overload;
    function getInt(para1: JLString; para2: jint): jint; overload;
    function getLong(para1: JLString; para2: jlong): jlong; overload;
    function getFloat(para1: JLString; para2: jfloat): jfloat; overload;
    function getBoolean(para1: JLString; para2: jboolean): jboolean; overload;
    function contains(para1: JLString): jboolean; overload;
    function edit(): ACSharedPreferences.InnerEditor; overload;
    procedure registerOnSharedPreferenceChangeListener(para1: ACSharedPreferences.InnerOnSharedPreferenceChangeListener); overload;
    procedure unregisterOnSharedPreferenceChangeListener(para1: ACSharedPreferences.InnerOnSharedPreferenceChangeListener); overload;
  end;

  ACSyncContext = class external 'android.content' name 'SyncContext' (JLObject)
  public
    procedure onFinished(para1: ACSyncResult); overload; virtual;
    function getSyncContextBinder(): AOIBinder; overload; virtual;
  end;

  ACSyncStatusObserver = interface external 'android.content' name 'SyncStatusObserver' 
    procedure onStatusChanged(para1: jint); overload;
  end;

  ACUriMatcher = class external 'android.content' name 'UriMatcher' (JLObject)
  public
    const
      NO_MATCH = -1;
  public
    constructor create(para1: jint); overload;
    procedure addURI(para1: JLString; para2: JLString; para3: jint); overload; virtual;
    function match(para1: ANUri): jint; overload; virtual;
  end;

  ACRAssetManager = class sealed external 'android.content.res' name 'AssetManager' (JLObject)
  public
    type
      InnerAssetInputStream = class;
      Arr1InnerAssetInputStream = array of InnerAssetInputStream;
      Arr2InnerAssetInputStream = array of Arr1InnerAssetInputStream;
      Arr3InnerAssetInputStream = array of Arr2InnerAssetInputStream;
      InnerAssetInputStream = class sealed external 'android.content.res' name 'AssetInputStream' 
      end;

  public
    const
      ACCESS_UNKNOWN = 0;
      ACCESS_RANDOM = 1;
      ACCESS_STREAMING = 2;
      ACCESS_BUFFER = 3;
  public
    procedure close(); overload; virtual;
    function open(para1: JLString): JIInputStream; overload; virtual; final;  // throws java.io.IOException
    function open(para1: JLString; para2: jint): JIInputStream; overload; virtual; final;  // throws java.io.IOException
    function openFd(para1: JLString): ACRAssetFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function list(para1: JLString): Arr1JLString; overload; virtual; final;  // throws java.io.IOException
    function openNonAssetFd(para1: JLString): ACRAssetFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function openNonAssetFd(para1: jint; para2: JLString): ACRAssetFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function openXmlResourceParser(para1: JLString): ACRXmlResourceParser; overload; virtual; final;  // throws java.io.IOException
    function openXmlResourceParser(para1: jint; para2: JLString): ACRXmlResourceParser; overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function getLocales(): Arr1JLString; overload; virtual; final;
  end;

  ACRObbScanner = class external 'android.content.res' name 'ObbScanner' (JLObject)
  public
    class function getObbInfo(para1: JLString): ACRObbInfo; static; overload;  // throws java.io.IOException
  end;

  ACRTypedArray = class external 'android.content.res' name 'TypedArray' (JLObject)
  public
    function length(): jint; overload; virtual;
    function getIndexCount(): jint; overload; virtual;
    function getIndex(para1: jint): jint; overload; virtual;
    function getResources(): ACRResources; overload; virtual;
    function getText(para1: jint): JLCharSequence; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;
    function getNonResourceString(para1: jint): JLString; overload; virtual;
    function getBoolean(para1: jint; para2: jboolean): jboolean; overload; virtual;
    function getInt(para1: jint; para2: jint): jint; overload; virtual;
    function getFloat(para1: jint; para2: jfloat): jfloat; overload; virtual;
    function getColor(para1: jint; para2: jint): jint; overload; virtual;
    function getColorStateList(para1: jint): ACRColorStateList; overload; virtual;
    function getInteger(para1: jint; para2: jint): jint; overload; virtual;
    function getDimension(para1: jint; para2: jfloat): jfloat; overload; virtual;
    function getDimensionPixelOffset(para1: jint; para2: jint): jint; overload; virtual;
    function getDimensionPixelSize(para1: jint; para2: jint): jint; overload; virtual;
    function getLayoutDimension(para1: jint; para2: JLString): jint; overload; virtual;
    function getLayoutDimension(para1: jint; para2: jint): jint; overload; virtual;
    function getFraction(para1: jint; para2: jint; para3: jint; para4: jfloat): jfloat; overload; virtual;
    function getResourceId(para1: jint; para2: jint): jint; overload; virtual;
    function getDrawable(para1: jint): AGDDrawable; overload; virtual;
    function getTextArray(para1: jint): Arr1JLCharSequence; overload; virtual;
    function getValue(para1: jint; para2: AUTypedValue): jboolean; overload; virtual;
    function hasValue(para1: jint): jboolean; overload; virtual;
    function peekValue(para1: jint): AUTypedValue; overload; virtual;
    function getPositionDescription(): JLString; overload; virtual;
    procedure recycle(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ADCharArrayBuffer = class sealed external 'android.database' name 'CharArrayBuffer' (JLObject)
  public
    var
      fdata: Arr1jchar; external name 'data';
      fsizeCopied: jint; external name 'sizeCopied';
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
  end;

  ADContentObserver = class abstract external 'android.database' name 'ContentObserver' (JLObject)
  public
    constructor create(para1: AOHandler); overload;
    function deliverSelfNotifications(): jboolean; overload; virtual;
    procedure onChange(para1: jboolean); overload; virtual;
    procedure dispatchChange(para1: jboolean); overload; virtual; final;
  end;

  ADCursor = interface external 'android.database' name 'Cursor' 
    const
      FIELD_TYPE_NULL = 0;
      FIELD_TYPE_INTEGER = 1;
      FIELD_TYPE_FLOAT = 2;
      FIELD_TYPE_STRING = 3;
      FIELD_TYPE_BLOB = 4;
    function getCount(): jint; overload;
    function getPosition(): jint; overload;
    function move(para1: jint): jboolean; overload;
    function moveToPosition(para1: jint): jboolean; overload;
    function moveToFirst(): jboolean; overload;
    function moveToLast(): jboolean; overload;
    function moveToNext(): jboolean; overload;
    function moveToPrevious(): jboolean; overload;
    function isFirst(): jboolean; overload;
    function isLast(): jboolean; overload;
    function isBeforeFirst(): jboolean; overload;
    function isAfterLast(): jboolean; overload;
    function getColumnIndex(para1: JLString): jint; overload;
    function getColumnIndexOrThrow(para1: JLString): jint; overload;  // throws java.lang.IllegalArgumentException
    function getColumnName(para1: jint): JLString; overload;
    function getColumnNames(): Arr1JLString; overload;
    function getColumnCount(): jint; overload;
    function getBlob(para1: jint): Arr1jbyte; overload;
    function getString(para1: jint): JLString; overload;
    procedure copyStringToBuffer(para1: jint; para2: ADCharArrayBuffer); overload;
    function getShort(para1: jint): jshort; overload;
    function getInt(para1: jint): jint; overload;
    function getLong(para1: jint): jlong; overload;
    function getFloat(para1: jint): jfloat; overload;
    function getDouble(para1: jint): jdouble; overload;
    function getType(para1: jint): jint; overload;
    function isNull(para1: jint): jboolean; overload;
    procedure deactivate(); overload;
    function requery(): jboolean; overload;
    procedure close(); overload;
    function isClosed(): jboolean; overload;
    procedure registerContentObserver(para1: ADContentObserver); overload;
    procedure unregisterContentObserver(para1: ADContentObserver); overload;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload;
    procedure setNotificationUri(para1: ACContentResolver; para2: ANUri); overload;
    function getWantsAllOnMoveCalls(): jboolean; overload;
    function getExtras(): AOBundle; overload;
    function respond(para1: AOBundle): AOBundle; overload;
  end;

  ADDataSetObserver = class abstract external 'android.database' name 'DataSetObserver' (JLObject)
  public
    constructor create(); overload;
    procedure onChanged(); overload; virtual;
    procedure onInvalidated(); overload; virtual;
  end;

  ADDatabaseErrorHandler = interface external 'android.database' name 'DatabaseErrorHandler' 
    procedure onCorruption(para1: ADSSQLiteDatabase); overload;
  end;

  ADDatabaseUtils = class external 'android.database' name 'DatabaseUtils' (JLObject)
  public
    type
      InnerInsertHelper = class;
      Arr1InnerInsertHelper = array of InnerInsertHelper;
      Arr2InnerInsertHelper = array of Arr1InnerInsertHelper;
      Arr3InnerInsertHelper = array of Arr2InnerInsertHelper;
      InnerInsertHelper = class external 'android.database' name 'InsertHelper' (JLObject)
      public
        const
          TABLE_INFO_PRAGMA_DEFAULT_INDEX = 4;
      public
        constructor create(para1: ADSSQLiteDatabase; para2: JLString); overload;
        function getColumnIndex(para1: JLString): jint; overload; virtual;
        procedure bind(para1: jint; para2: jdouble); overload; virtual;
        procedure bind(para1: jint; para2: jfloat); overload; virtual;
        procedure bind(para1: jint; para2: jlong); overload; virtual;
        procedure bind(para1: jint; para2: jint); overload; virtual;
        procedure bind(para1: jint; para2: jboolean); overload; virtual;
        procedure bindNull(para1: jint); overload; virtual;
        procedure bind(para1: jint; para2: Arr1jbyte); overload; virtual;
        procedure bind(para1: jint; var para2: array of jbyte); overload; virtual;
        procedure bind(para1: jint; para2: JLString); overload; virtual;
        function insert(para1: ACContentValues): jlong; overload; virtual;
        function execute(): jlong; overload; virtual;
        procedure prepareForInsert(); overload; virtual;
        procedure prepareForReplace(); overload; virtual;
        function replace(para1: ACContentValues): jlong; overload; virtual;
        procedure close(); overload; virtual;
      end;

  public
    const
      STATEMENT_SELECT = 1;
      STATEMENT_UPDATE = 2;
      STATEMENT_ATTACH = 3;
      STATEMENT_BEGIN = 4;
      STATEMENT_COMMIT = 5;
      STATEMENT_ABORT = 6;
      STATEMENT_PRAGMA = 7;
      STATEMENT_DDL = 8;
      STATEMENT_UNPREPARED = 9;
      STATEMENT_OTHER = 99;
  public
    constructor create(); overload;
    class procedure writeExceptionToParcel(para1: AOParcel; para2: JLException); static; overload; final;
    class procedure readExceptionFromParcel(para1: AOParcel); static; overload; final;
    class procedure readExceptionWithFileNotFoundExceptionFromParcel(para1: AOParcel); static; overload;  // throws java.io.FileNotFoundException
    class procedure readExceptionWithOperationApplicationExceptionFromParcel(para1: AOParcel); static; overload;  // throws android.content.OperationApplicationException
    class procedure bindObjectToProgram(para1: ADSSQLiteProgram; para2: jint; para3: JLObject); static; overload;
    class procedure appendEscapedSQLString(para1: JLStringBuilder; para2: JLString); static; overload;
    class function sqlEscapeString(para1: JLString): JLString; static; overload;
    class procedure appendValueToSql(para1: JLStringBuilder; para2: JLObject); static; overload; final;
    class function concatenateWhere(para1: JLString; para2: JLString): JLString; static; overload;
    class function getCollationKey(para1: JLString): JLString; static; overload;
    class function getHexCollationKey(para1: JLString): JLString; static; overload;
    class procedure dumpCursor(para1: ADCursor); static; overload;
    class procedure dumpCursor(para1: ADCursor; para2: JIPrintStream); static; overload;
    class procedure dumpCursor(para1: ADCursor; para2: JLStringBuilder); static; overload;
    class function dumpCursorToString(para1: ADCursor): JLString; static; overload;
    class procedure dumpCurrentRow(para1: ADCursor); static; overload;
    class procedure dumpCurrentRow(para1: ADCursor; para2: JIPrintStream); static; overload;
    class procedure dumpCurrentRow(para1: ADCursor; para2: JLStringBuilder); static; overload;
    class function dumpCurrentRowToString(para1: ADCursor): JLString; static; overload;
    class procedure cursorStringToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues); static; overload;
    class procedure cursorStringToInsertHelper(para1: ADCursor; para2: JLString; para3: ADDatabaseUtils.InnerInsertHelper; para4: jint); static; overload;
    class procedure cursorStringToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues; para4: JLString); static; overload;
    class procedure cursorIntToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues); static; overload;
    class procedure cursorIntToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues; para4: JLString); static; overload;
    class procedure cursorLongToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues); static; overload;
    class procedure cursorLongToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues; para4: JLString); static; overload;
    class procedure cursorDoubleToCursorValues(para1: ADCursor; para2: JLString; para3: ACContentValues); static; overload;
    class procedure cursorDoubleToContentValues(para1: ADCursor; para2: JLString; para3: ACContentValues; para4: JLString); static; overload;
    class procedure cursorRowToContentValues(para1: ADCursor; para2: ACContentValues); static; overload;
    class function queryNumEntries(para1: ADSSQLiteDatabase; para2: JLString): jlong; static; overload;
    class function queryNumEntries(para1: ADSSQLiteDatabase; para2: JLString; para3: JLString): jlong; static; overload;
    class function queryNumEntries(para1: ADSSQLiteDatabase; para2: JLString; para3: JLString; para4: Arr1JLString): jlong; static; overload;
    class function queryNumEntries(para1: ADSSQLiteDatabase; para2: JLString; para3: JLString; var para4: array of JLString): jlong; static; overload;
    class function longForQuery(para1: ADSSQLiteDatabase; para2: JLString; para3: Arr1JLString): jlong; static; overload;
    class function longForQuery(para1: ADSSQLiteDatabase; para2: JLString; var para3: array of JLString): jlong; static; overload;
    class function longForQuery(para1: ADSSQLiteStatement; para2: Arr1JLString): jlong; static; overload;
    class function longForQuery(para1: ADSSQLiteStatement; var para2: array of JLString): jlong; static; overload;
    class function stringForQuery(para1: ADSSQLiteDatabase; para2: JLString; para3: Arr1JLString): JLString; static; overload;
    class function stringForQuery(para1: ADSSQLiteDatabase; para2: JLString; var para3: array of JLString): JLString; static; overload;
    class function stringForQuery(para1: ADSSQLiteStatement; para2: Arr1JLString): JLString; static; overload;
    class function stringForQuery(para1: ADSSQLiteStatement; var para2: array of JLString): JLString; static; overload;
    class function blobFileDescriptorForQuery(para1: ADSSQLiteDatabase; para2: JLString; para3: Arr1JLString): AOParcelFileDescriptor; static; overload;
    class function blobFileDescriptorForQuery(para1: ADSSQLiteDatabase; para2: JLString; var para3: array of JLString): AOParcelFileDescriptor; static; overload;
    class function blobFileDescriptorForQuery(para1: ADSSQLiteStatement; para2: Arr1JLString): AOParcelFileDescriptor; static; overload;
    class function blobFileDescriptorForQuery(para1: ADSSQLiteStatement; var para2: array of JLString): AOParcelFileDescriptor; static; overload;
    class procedure cursorStringToContentValuesIfPresent(para1: ADCursor; para2: ACContentValues; para3: JLString); static; overload;
    class procedure cursorLongToContentValuesIfPresent(para1: ADCursor; para2: ACContentValues; para3: JLString); static; overload;
    class procedure cursorShortToContentValuesIfPresent(para1: ADCursor; para2: ACContentValues; para3: JLString); static; overload;
    class procedure cursorIntToContentValuesIfPresent(para1: ADCursor; para2: ACContentValues; para3: JLString); static; overload;
    class procedure cursorFloatToContentValuesIfPresent(para1: ADCursor; para2: ACContentValues; para3: JLString); static; overload;
    class procedure cursorDoubleToContentValuesIfPresent(para1: ADCursor; para2: ACContentValues; para3: JLString); static; overload;
    class procedure createDbFromSqlStatements(para1: ACContext; para2: JLString; para3: jint; para4: JLString); static; overload;
    class function getSqlStatementType(para1: JLString): jint; static; overload;
    class function appendSelectionArgs(para1: Arr1JLString; para2: Arr1JLString): Arr1JLString; static; overload;
    class function appendSelectionArgs(var para1: array of JLString; var para2: array of JLString): Arr1JLString; static; overload;
  end;

  ADObservable = class abstract external 'android.database' name 'Observable' (JLObject)
  strict protected
    final var
      fmObservers: JUArrayList; external name 'mObservers';
  public
    constructor create(); overload;
    procedure registerObserver(para1: JLObject); overload; virtual;
    procedure unregisterObserver(para1: JLObject); overload; virtual;
    procedure unregisterAll(); overload; virtual;
  end;

  ADSSQLiteClosable = class abstract external 'android.database.sqlite' name 'SQLiteClosable' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure onAllReferencesReleased(); overload; virtual; abstract;
    procedure onAllReferencesReleasedFromContainer(); overload; virtual;
  public
    procedure acquireReference(); overload; virtual;
    procedure releaseReference(); overload; virtual;
    procedure releaseReferenceFromContainer(); overload; virtual;
  end;

  ADSSQLiteTransactionListener = interface external 'android.database.sqlite' name 'SQLiteTransactionListener' 
    procedure onBegin(); overload;
    procedure onCommit(); overload;
    procedure onRollback(); overload;
  end;

  ADDrmConvertedStatus = class external 'android.drm' name 'DrmConvertedStatus' (JLObject)
  public
    const
      STATUS_OK = 1;
      STATUS_INPUTDATA_ERROR = 2;
      STATUS_ERROR = 3;
  public
    final var
      fstatusCode: jint; external name 'statusCode';
      fconvertedData: Arr1jbyte; external name 'convertedData';
      foffset: jint; external name 'offset';
  public
    constructor create(para1: jint; para2: Arr1jbyte; para3: jint); overload;
    constructor create(para1: jint; const para2: array of jbyte; para3: jint); overload;
  end;

  ADDrmEvent = class external 'android.drm' name 'DrmEvent' (JLObject)
  public
    const
      TYPE_ALL_RIGHTS_REMOVED = 1001;
      TYPE_DRM_INFO_PROCESSED = 1002;
      DRM_INFO_STATUS_OBJECT = 'drm_info_status_object';
      DRM_INFO_OBJECT = 'drm_info_object';
  strict protected
    constructor create(para1: jint; para2: jint; para3: JLString; para4: JUHashMap); overload;
    constructor create(para1: jint; para2: jint; para3: JLString); overload;
  public
    function getUniqueId(): jint; overload; virtual;
    function getType(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
    function getAttribute(para1: JLString): JLObject; overload; virtual;
  end;

  ADDrmInfo = class external 'android.drm' name 'DrmInfo' (JLObject)
  public
    constructor create(para1: jint; para2: Arr1jbyte; para3: JLString); overload;
    constructor create(para1: jint; const para2: array of jbyte; para3: JLString); overload;
    constructor create(para1: jint; para2: JLString; para3: JLString); overload;
    procedure put(para1: JLString; para2: JLObject); overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    function keyIterator(): JUIterator; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function getData(): Arr1jbyte; overload; virtual;
    function getMimeType(): JLString; overload; virtual;
    function getInfoType(): jint; overload; virtual;
  end;

  ADDrmInfoRequest = class external 'android.drm' name 'DrmInfoRequest' (JLObject)
  public
    const
      TYPE_REGISTRATION_INFO = 1;
      TYPE_UNREGISTRATION_INFO = 2;
      TYPE_RIGHTS_ACQUISITION_INFO = 3;
      TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO = 4;
      ACCOUNT_ID = 'account_id';
      SUBSCRIPTION_ID = 'subscription_id';
  public
    constructor create(para1: jint; para2: JLString); overload;
    function getMimeType(): JLString; overload; virtual;
    function getInfoType(): jint; overload; virtual;
    procedure put(para1: JLString; para2: JLObject); overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    function keyIterator(): JUIterator; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  ADDrmInfoStatus = class external 'android.drm' name 'DrmInfoStatus' (JLObject)
  public
    const
      STATUS_OK = 1;
      STATUS_ERROR = 2;
  public
    final var
      fstatusCode: jint; external name 'statusCode';
      finfoType: jint; external name 'infoType';
      fmimeType: JLString; external name 'mimeType';
      fdata: ADProcessedData; external name 'data';
  public
    constructor create(para1: jint; para2: jint; para3: ADProcessedData; para4: JLString); overload;
  end;

  ADDrmManagerClient = class external 'android.drm' name 'DrmManagerClient' (JLObject)
  public
    type
      InnerOnErrorListener = interface;
      Arr1InnerOnErrorListener = array of InnerOnErrorListener;
      Arr2InnerOnErrorListener = array of Arr1InnerOnErrorListener;
      Arr3InnerOnErrorListener = array of Arr2InnerOnErrorListener;
      InnerOnEventListener = interface;
      Arr1InnerOnEventListener = array of InnerOnEventListener;
      Arr2InnerOnEventListener = array of Arr1InnerOnEventListener;
      Arr3InnerOnEventListener = array of Arr2InnerOnEventListener;
      InnerOnInfoListener = interface;
      Arr1InnerOnInfoListener = array of InnerOnInfoListener;
      Arr2InnerOnInfoListener = array of Arr1InnerOnInfoListener;
      Arr3InnerOnInfoListener = array of Arr2InnerOnInfoListener;
      InnerOnErrorListener = interface external 'android.drm' name 'OnErrorListener' 
        procedure onError(para1: ADDrmManagerClient; para2: ADDrmErrorEvent); overload;
      end;

      InnerOnEventListener = interface external 'android.drm' name 'OnEventListener' 
        procedure onEvent(para1: ADDrmManagerClient; para2: ADDrmEvent); overload;
      end;

      InnerOnInfoListener = interface external 'android.drm' name 'OnInfoListener' 
        procedure onInfo(para1: ADDrmManagerClient; para2: ADDrmInfoEvent); overload;
      end;

  public
    const
      ERROR_NONE = 0;
      ERROR_UNKNOWN = -2000;
  public
    constructor create(para1: ACContext); overload;
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure setOnInfoListener(para1: ADDrmManagerClient.InnerOnInfoListener); overload; virtual;
    procedure setOnEventListener(para1: ADDrmManagerClient.InnerOnEventListener); overload; virtual;
    procedure setOnErrorListener(para1: ADDrmManagerClient.InnerOnErrorListener); overload; virtual;
    function getAvailableDrmEngines(): Arr1JLString; overload; virtual;
    function getConstraints(para1: JLString; para2: jint): ACContentValues; overload; virtual;
    function getMetadata(para1: JLString): ACContentValues; overload; virtual;
    function getConstraints(para1: ANUri; para2: jint): ACContentValues; overload; virtual;
    function getMetadata(para1: ANUri): ACContentValues; overload; virtual;
    function saveRights(para1: ADDrmRights; para2: JLString; para3: JLString): jint; overload; virtual;  // throws java.io.IOException
    function canHandle(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function canHandle(para1: ANUri; para2: JLString): jboolean; overload; virtual;
    function processDrmInfo(para1: ADDrmInfo): jint; overload; virtual;
    function acquireDrmInfo(para1: ADDrmInfoRequest): ADDrmInfo; overload; virtual;
    function acquireRights(para1: ADDrmInfoRequest): jint; overload; virtual;
    function getDrmObjectType(para1: JLString; para2: JLString): jint; overload; virtual;
    function getDrmObjectType(para1: ANUri; para2: JLString): jint; overload; virtual;
    function getOriginalMimeType(para1: JLString): JLString; overload; virtual;
    function getOriginalMimeType(para1: ANUri): JLString; overload; virtual;
    function checkRightsStatus(para1: JLString): jint; overload; virtual;
    function checkRightsStatus(para1: ANUri): jint; overload; virtual;
    function checkRightsStatus(para1: JLString; para2: jint): jint; overload; virtual;
    function checkRightsStatus(para1: ANUri; para2: jint): jint; overload; virtual;
    function removeRights(para1: JLString): jint; overload; virtual;
    function removeRights(para1: ANUri): jint; overload; virtual;
    function removeAllRights(): jint; overload; virtual;
    function openConvertSession(para1: JLString): jint; overload; virtual;
    function convertData(para1: jint; para2: Arr1jbyte): ADDrmConvertedStatus; overload; virtual;
    function convertData(para1: jint; var para2: array of jbyte): ADDrmConvertedStatus; overload; virtual;
    function closeConvertSession(para1: jint): ADDrmConvertedStatus; overload; virtual;
  end;

  ADDrmRights = class external 'android.drm' name 'DrmRights' (JLObject)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;
    constructor create(para1: JIFile; para2: JLString); overload;
    constructor create(para1: ADProcessedData; para2: JLString); overload;
    function getData(): Arr1jbyte; overload; virtual;
    function getMimeType(): JLString; overload; virtual;
    function getAccountId(): JLString; overload; virtual;
    function getSubscriptionId(): JLString; overload; virtual;
  end;

  ADDrmStore = class external 'android.drm' name 'DrmStore' (JLObject)
  public
    type
      InnerRightsStatus = class;
      Arr1InnerRightsStatus = array of InnerRightsStatus;
      Arr2InnerRightsStatus = array of Arr1InnerRightsStatus;
      Arr3InnerRightsStatus = array of Arr2InnerRightsStatus;
      InnerAction = class;
      Arr1InnerAction = array of InnerAction;
      Arr2InnerAction = array of Arr1InnerAction;
      Arr3InnerAction = array of Arr2InnerAction;
      InnerPlayback = class;
      Arr1InnerPlayback = array of InnerPlayback;
      Arr2InnerPlayback = array of Arr1InnerPlayback;
      Arr3InnerPlayback = array of Arr2InnerPlayback;
      InnerDrmObjectType = class;
      Arr1InnerDrmObjectType = array of InnerDrmObjectType;
      Arr2InnerDrmObjectType = array of Arr1InnerDrmObjectType;
      Arr3InnerDrmObjectType = array of Arr2InnerDrmObjectType;
      InnerConstraintsColumns = interface;
      Arr1InnerConstraintsColumns = array of InnerConstraintsColumns;
      Arr2InnerConstraintsColumns = array of Arr1InnerConstraintsColumns;
      Arr3InnerConstraintsColumns = array of Arr2InnerConstraintsColumns;
      InnerRightsStatus = class external 'android.drm' name 'RightsStatus' (JLObject)
      public
        const
          RIGHTS_VALID = 0;
          RIGHTS_INVALID = 1;
          RIGHTS_EXPIRED = 2;
          RIGHTS_NOT_ACQUIRED = 3;
      public
        constructor create(); overload;
      end;

      InnerAction = class external 'android.drm' name 'Action' (JLObject)
      public
        const
          DEFAULT = 0;
          PLAY = 1;
          RINGTONE = 2;
          TRANSFER = 3;
          OUTPUT = 4;
          PREVIEW = 5;
          EXECUTE = 6;
          DISPLAY = 7;
      public
        constructor create(); overload;
      end;

      InnerPlayback = class external 'android.drm' name 'Playback' (JLObject)
      public
        const
          START = 0;
          STOP = 1;
          PAUSE = 2;
          RESUME = 3;
      public
        constructor create(); overload;
      end;

      InnerDrmObjectType = class external 'android.drm' name 'DrmObjectType' (JLObject)
      public
        const
          UNKNOWN = 0;
          CONTENT = 1;
          RIGHTS_OBJECT = 2;
          TRIGGER_OBJECT = 3;
      public
        constructor create(); overload;
      end;

      InnerConstraintsColumns = interface external 'android.drm' name 'ConstraintsColumns' 
        const
          MAX_REPEAT_COUNT = 'max_repeat_count';
          REMAINING_REPEAT_COUNT = 'remaining_repeat_count';
          LICENSE_START_TIME = 'license_start_time';
          LICENSE_EXPIRY_TIME = 'license_expiry_time';
          LICENSE_AVAILABLE_TIME = 'license_available_time';
          EXTENDED_METADATA = 'extended_metadata';
      end;

  public
    constructor create(); overload;
  end;

  ADDrmSupportInfo = class external 'android.drm' name 'DrmSupportInfo' (JLObject)
  public
    constructor create(); overload;
    procedure addMimeType(para1: JLString); overload; virtual;
    procedure addFileSuffix(para1: JLString); overload; virtual;
    function getMimeTypeIterator(): JUIterator; overload; virtual;
    function getFileSuffixIterator(): JUIterator; overload; virtual;
    procedure setDescription(para1: JLString); overload; virtual;
    function getDescriprition(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  ADDrmUtils = class external 'android.drm' name 'DrmUtils' (JLObject)
  public
    type
      InnerExtendedMetadataParser = class;
      Arr1InnerExtendedMetadataParser = array of InnerExtendedMetadataParser;
      Arr2InnerExtendedMetadataParser = array of Arr1InnerExtendedMetadataParser;
      Arr3InnerExtendedMetadataParser = array of Arr2InnerExtendedMetadataParser;
      InnerExtendedMetadataParser = class external 'android.drm' name 'ExtendedMetadataParser' (JLObject)
      public
        function iterator(): JUIterator; overload; virtual;
        function keyIterator(): JUIterator; overload; virtual;
        function get(para1: JLString): JLString; overload; virtual;
      end;

  public
    constructor create(); overload;
    class function getExtendedMetadataParser(para1: Arr1jbyte): ADDrmUtils.InnerExtendedMetadataParser; static; overload;
    class function getExtendedMetadataParser(var para1: array of jbyte): ADDrmUtils.InnerExtendedMetadataParser; static; overload;
  end;

  ADProcessedData = class external 'android.drm' name 'ProcessedData' (JLObject)
  public
    function getData(): Arr1jbyte; overload; virtual;
    function getAccountId(): JLString; overload; virtual;
    function getSubscriptionId(): JLString; overload; virtual;
  end;

  AGGestureLibraries = class sealed external 'android.gesture' name 'GestureLibraries' (JLObject)
  public
    class function fromFile(para1: JLString): AGGestureLibrary; static; overload;
    class function fromFile(para1: JIFile): AGGestureLibrary; static; overload;
    class function fromPrivateFile(para1: ACContext; para2: JLString): AGGestureLibrary; static; overload;
    class function fromRawResource(para1: ACContext; para2: jint): AGGestureLibrary; static; overload;
  end;

  AGGestureLibrary = class abstract external 'android.gesture' name 'GestureLibrary' (JLObject)
  strict protected
    final var
      fmStore: AGGestureStore; external name 'mStore';
  strict protected
    constructor create(); overload;
  public
    function save(): jboolean; overload; virtual; abstract;
    function load(): jboolean; overload; virtual; abstract;
    function isReadOnly(): jboolean; overload; virtual;
    procedure setOrientationStyle(para1: jint); overload; virtual;
    function getOrientationStyle(): jint; overload; virtual;
    procedure setSequenceType(para1: jint); overload; virtual;
    function getSequenceType(): jint; overload; virtual;
    function getGestureEntries(): JUSet; overload; virtual;
    function recognize(para1: AGGesture): JUArrayList; overload; virtual;
    procedure addGesture(para1: JLString; para2: AGGesture); overload; virtual;
    procedure removeGesture(para1: JLString; para2: AGGesture); overload; virtual;
    procedure removeEntry(para1: JLString); overload; virtual;
    function getGestures(para1: JLString): JUArrayList; overload; virtual;
  end;

  AGGesturePoint = class external 'android.gesture' name 'GesturePoint' (JLObject)
  public
    final var
      fx: jfloat; external name 'x';
      fy: jfloat; external name 'y';
      ftimestamp: jlong; external name 'timestamp';
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jlong); overload;
    function clone(): JLObject; overload; virtual;
  end;

  AGGestureStore = class external 'android.gesture' name 'GestureStore' (JLObject)
  public
    const
      SEQUENCE_INVARIANT = 1;
      SEQUENCE_SENSITIVE = 2;
      ORIENTATION_INVARIANT = 1;
      ORIENTATION_SENSITIVE = 2;
  public
    constructor create(); overload;
    procedure setOrientationStyle(para1: jint); overload; virtual;
    function getOrientationStyle(): jint; overload; virtual;
    procedure setSequenceType(para1: jint); overload; virtual;
    function getSequenceType(): jint; overload; virtual;
    function getGestureEntries(): JUSet; overload; virtual;
    function recognize(para1: AGGesture): JUArrayList; overload; virtual;
    procedure addGesture(para1: JLString; para2: AGGesture); overload; virtual;
    procedure removeGesture(para1: JLString; para2: AGGesture); overload; virtual;
    procedure removeEntry(para1: JLString); overload; virtual;
    function getGestures(para1: JLString): JUArrayList; overload; virtual;
    function hasChanged(): jboolean; overload; virtual;
    procedure save(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    procedure save(para1: JIOutputStream; para2: jboolean); overload; virtual;  // throws java.io.IOException
    procedure load(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure load(para1: JIInputStream; para2: jboolean); overload; virtual;  // throws java.io.IOException
  end;

  AGGestureStroke = class external 'android.gesture' name 'GestureStroke' (JLObject)
  public
    final var
      fboundingBox: AGRectF; external name 'boundingBox';
      flength: jfloat; external name 'length';
      fpoints: Arr1jfloat; external name 'points';
  public
    constructor create(para1: JUArrayList); overload;
    function clone(): JLObject; overload; virtual;
    function getPath(): AGPath; overload; virtual;
    function toPath(para1: jfloat; para2: jfloat; para3: jint): AGPath; overload; virtual;
    procedure clearPath(); overload; virtual;
    function computeOrientedBoundingBox(): AGOrientedBoundingBox; overload; virtual;
  end;

  AGGestureUtils = class sealed external 'android.gesture' name 'GestureUtils' (JLObject)
  public
    class function spatialSampling(para1: AGGesture; para2: jint): Arr1jfloat; static; overload;
    class function spatialSampling(para1: AGGesture; para2: jint; para3: jboolean): Arr1jfloat; static; overload;
    class function temporalSampling(para1: AGGestureStroke; para2: jint): Arr1jfloat; static; overload;
    class function computeOrientedBoundingBox(para1: JUArrayList): AGOrientedBoundingBox; static; overload;
    class function computeOrientedBoundingBox(para1: Arr1jfloat): AGOrientedBoundingBox; static; overload;
    class function computeOrientedBoundingBox(var para1: array of jfloat): AGOrientedBoundingBox; static; overload;
  end;

  AGOrientedBoundingBox = class external 'android.gesture' name 'OrientedBoundingBox' (JLObject)
  public
    final var
      fsquareness: jfloat; external name 'squareness';
      fwidth: jfloat; external name 'width';
      fheight: jfloat; external name 'height';
      forientation: jfloat; external name 'orientation';
      fcenterX: jfloat; external name 'centerX';
      fcenterY: jfloat; external name 'centerY';
  end;

  AGPrediction = class external 'android.gesture' name 'Prediction' (JLObject)
  public
    final var
      fname: JLString; external name 'name';
  public
    var
      fscore: jdouble; external name 'score';
  public
    function toString(): JLString; overload; virtual;
  end;

  AGCamera = class external 'android.graphics' name 'Camera' (JLObject)
  public
    constructor create(); overload;
    procedure save(); overload; virtual;
    procedure restore(); overload; virtual;
    procedure translate(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure rotateX(para1: jfloat); overload; virtual;
    procedure rotateY(para1: jfloat); overload; virtual;
    procedure rotateZ(para1: jfloat); overload; virtual;
    procedure rotate(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure setLocation(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure getMatrix(para1: AGMatrix); overload; virtual;
    procedure applyToCanvas(para1: AGCanvas); overload; virtual;
    function dotWithNormal(para1: jfloat; para2: jfloat; para3: jfloat): jfloat; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGColor = class external 'android.graphics' name 'Color' (JLObject)
  public
    const
      BLACK = -16777216;
      DKGRAY = -12303292;
      GRAY = -7829368;
      LTGRAY = -3355444;
      WHITE = -1;
      RED = -65536;
      GREEN = -16711936;
      BLUE = -16776961;
      YELLOW = -256;
      CYAN = -16711681;
      MAGENTA = -65281;
      TRANSPARENT = 0;
  public
    constructor create(); overload;
    class function alpha(para1: jint): jint; static; overload;
    class function red_(para1: jint): jint; static; external name 'red'; overload;
    class function green_(para1: jint): jint; static; external name 'green'; overload;
    class function blue_(para1: jint): jint; static; external name 'blue'; overload;
    class function rgb(para1: jint; para2: jint; para3: jint): jint; static; overload;
    class function argb(para1: jint; para2: jint; para3: jint; para4: jint): jint; static; overload;
    class function parseColor(para1: JLString): jint; static; overload;
    class procedure RGBToHSV(para1: jint; para2: jint; para3: jint; para4: Arr1jfloat); static; overload;
    class procedure RGBToHSV(para1: jint; para2: jint; para3: jint; var para4: array of jfloat); static; overload;
    class procedure colorToHSV(para1: jint; para2: Arr1jfloat); static; overload;
    class procedure colorToHSV(para1: jint; var para2: array of jfloat); static; overload;
    class function HSVToColor(para1: Arr1jfloat): jint; static; overload;
    class function HSVToColor(var para1: array of jfloat): jint; static; overload;
    class function HSVToColor(para1: jint; para2: Arr1jfloat): jint; static; overload;
    class function HSVToColor(para1: jint; var para2: array of jfloat): jint; static; overload;
  end;

  AGColorFilter = class external 'android.graphics' name 'ColorFilter' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGColorMatrix = class external 'android.graphics' name 'ColorMatrix' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
    constructor create(para1: AGColorMatrix); overload;
    function getArray(): Arr1jfloat; overload; virtual; final;
    procedure reset(); overload; virtual;
    procedure &set(para1: AGColorMatrix); overload; virtual;
    procedure &set(para1: Arr1jfloat); overload; virtual;
    procedure &set(var para1: array of jfloat); overload; virtual;
    procedure setScale(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure setRotate(para1: jint; para2: jfloat); overload; virtual;
    procedure setConcat(para1: AGColorMatrix; para2: AGColorMatrix); overload; virtual;
    procedure preConcat(para1: AGColorMatrix); overload; virtual;
    procedure postConcat(para1: AGColorMatrix); overload; virtual;
    procedure setSaturation(para1: jfloat); overload; virtual;
    procedure setRGB2YUV(); overload; virtual;
    procedure setYUV2RGB(); overload; virtual;
  end;

  AGDrawFilter = class external 'android.graphics' name 'DrawFilter' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGImageFormat = class external 'android.graphics' name 'ImageFormat' (JLObject)
  public
    const
      UNKNOWN = 0;
      RGB_565 = 4;
      YV12 = 842094169;
      NV16 = 16;
      NV21 = 17;
      YUY2 = 20;
      JPEG = 256;
  public
    constructor create(); overload;
    class function getBitsPerPixel(para1: jint): jint; static; overload;
  end;

  AGMaskFilter = class external 'android.graphics' name 'MaskFilter' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGMovie = class external 'android.graphics' name 'Movie' (JLObject)
  public
    function width(): jint; overload; virtual;
    function height(): jint; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    function duration(): jint; overload; virtual;
    function setTime(para1: jint): jboolean; overload; virtual;
    procedure draw(para1: AGCanvas; para2: jfloat; para3: jfloat; para4: AGPaint); overload; virtual;
    procedure draw(para1: AGCanvas; para2: jfloat; para3: jfloat); overload; virtual;
    class function decodeStream(para1: JIInputStream): AGMovie; static; overload;
    class function decodeByteArray(para1: Arr1jbyte; para2: jint; para3: jint): AGMovie; static; overload;
    class function decodeByteArray(var para1: array of jbyte; para2: jint; para3: jint): AGMovie; static; overload;
    class function decodeFile(para1: JLString): AGMovie; static; overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGNinePatch = class external 'android.graphics' name 'NinePatch' (JLObject)
  public
    constructor create(para1: AGBitmap; para2: Arr1jbyte; para3: JLString); overload;
    constructor create(para1: AGBitmap; const para2: array of jbyte; para3: JLString); overload;
    procedure setPaint(para1: AGPaint); overload; virtual;
    procedure draw(para1: AGCanvas; para2: AGRectF); overload; virtual;
    procedure draw(para1: AGCanvas; para2: AGRect); overload; virtual;
    procedure draw(para1: AGCanvas; para2: AGRect; para3: AGPaint); overload; virtual;
    function getDensity(): jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function hasAlpha(): jboolean; overload; virtual; final;
    function getTransparentRegion(para1: AGRect): AGRegion; overload; virtual; final;
    class function isNinePatchChunk(para1: Arr1jbyte): jboolean; static; overload;
    class function isNinePatchChunk(var para1: array of jbyte): jboolean; static; overload;
  end;

  AGPathEffect = class external 'android.graphics' name 'PathEffect' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGPathMeasure = class external 'android.graphics' name 'PathMeasure' (JLObject)
  public
    const
      POSITION_MATRIX_FLAG = 1;
      TANGENT_MATRIX_FLAG = 2;
  public
    constructor create(); overload;
    constructor create(para1: AGPath; para2: jboolean); overload;
    procedure setPath(para1: AGPath; para2: jboolean); overload; virtual;
    function getLength(): jfloat; overload; virtual;
    function getPosTan(para1: jfloat; para2: Arr1jfloat; para3: Arr1jfloat): jboolean; overload; virtual;
    function getPosTan(para1: jfloat; var para2: array of jfloat; var para3: array of jfloat): jboolean; overload; virtual;
    function getMatrix(para1: jfloat; para2: AGMatrix; para3: jint): jboolean; overload; virtual;
    function getSegment(para1: jfloat; para2: jfloat; para3: AGPath; para4: jboolean): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    function nextContour(): jboolean; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGPicture = class external 'android.graphics' name 'Picture' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: AGPicture); overload;
    function beginRecording(para1: jint; para2: jint): AGCanvas; overload; virtual;
    procedure endRecording(); overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    class function createFromStream(para1: JIInputStream): AGPicture; static; overload;
    procedure writeToStream(para1: JIOutputStream); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGPixelFormat = class external 'android.graphics' name 'PixelFormat' (JLObject)
  public
    const
      UNKNOWN = 0;
      TRANSLUCENT = -3;
      TRANSPARENT = -2;
      OPAQUE = -1;
      RGBA_8888 = 1;
      RGBX_8888 = 2;
      RGB_888 = 3;
      RGB_565 = 4;
      RGBA_5551 = 6;
      RGBA_4444 = 7;
      A_8 = 8;
      L_8 = 9;
      LA_88 = 10;
      RGB_332 = 11;
      YCbCr_422_SP = 16;
      YCbCr_420_SP = 17;
      YCbCr_422_I = 20;
      JPEG = 256;
  public
    var
      fbytesPerPixel: jint; external name 'bytesPerPixel';
      fbitsPerPixel: jint; external name 'bitsPerPixel';
  public
    constructor create(); overload;
    class procedure getPixelFormatInfo(para1: jint; para2: AGPixelFormat); static; overload;
    class function formatHasAlpha(para1: jint): jboolean; static; overload;
  end;

  AGRasterizer = class external 'android.graphics' name 'Rasterizer' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGRegionIterator = class external 'android.graphics' name 'RegionIterator' (JLObject)
  public
    constructor create(para1: AGRegion); overload;
    function next(para1: AGRect): jboolean; overload; virtual; final;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGTypeface = class external 'android.graphics' name 'Typeface' (JLObject)
  public
    final class var
      fDEFAULT: AGTypeface; external name 'DEFAULT';
      fDEFAULT_BOLD: AGTypeface; external name 'DEFAULT_BOLD';
      fSANS_SERIF: AGTypeface; external name 'SANS_SERIF';
      fSERIF: AGTypeface; external name 'SERIF';
      fMONOSPACE: AGTypeface; external name 'MONOSPACE';
  public
    const
      NORMAL = 0;
      BOLD = 1;
      ITALIC = 2;
      BOLD_ITALIC = 3;
  public
    function getStyle(): jint; overload; virtual;
    function isBold(): jboolean; overload; virtual; final;
    function isItalic(): jboolean; overload; virtual; final;
    class function create_(para1: JLString; para2: jint): AGTypeface; static; external name 'create'; overload;
    class function create_(para1: AGTypeface; para2: jint): AGTypeface; static; external name 'create'; overload;
    class function defaultFromStyle(para1: jint): AGTypeface; static; overload;
    class function createFromAsset(para1: ACRAssetManager; para2: JLString): AGTypeface; static; overload;
    class function createFromFile(para1: JIFile): AGTypeface; static; overload;
    class function createFromFile(para1: JLString): AGTypeface; static; overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGXfermode = class external 'android.graphics' name 'Xfermode' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGYuvImage = class external 'android.graphics' name 'YuvImage' (JLObject)
  public
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint; para5: Arr1jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: jint; const para5: array of jint); overload;
    function compressToJpeg(para1: AGRect; para2: jint; para3: JIOutputStream): jboolean; overload; virtual;
    function getYuvData(): Arr1jbyte; overload; virtual;
    function getYuvFormat(): jint; overload; virtual;
    function getStrides(): Arr1jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
  end;

  AGDAnimatable = interface external 'android.graphics.drawable' name 'Animatable' 
    procedure start(); overload;
    procedure stop(); overload;
    function isRunning(): jboolean; overload;
  end;

  AHCamera = class external 'android.hardware' name 'Camera' (JLObject)
  public
    type
      InnerArea = class;
      Arr1InnerArea = array of InnerArea;
      Arr2InnerArea = array of Arr1InnerArea;
      Arr3InnerArea = array of Arr2InnerArea;
      InnerSize = class;
      Arr1InnerSize = array of InnerSize;
      Arr2InnerSize = array of Arr1InnerSize;
      Arr3InnerSize = array of Arr2InnerSize;
      InnerErrorCallback = interface;
      Arr1InnerErrorCallback = array of InnerErrorCallback;
      Arr2InnerErrorCallback = array of Arr1InnerErrorCallback;
      Arr3InnerErrorCallback = array of Arr2InnerErrorCallback;
      InnerFace = class;
      Arr1InnerFace = array of InnerFace;
      Arr2InnerFace = array of Arr1InnerFace;
      Arr3InnerFace = array of Arr2InnerFace;
      InnerOnZoomChangeListener = interface;
      Arr1InnerOnZoomChangeListener = array of InnerOnZoomChangeListener;
      Arr2InnerOnZoomChangeListener = array of Arr1InnerOnZoomChangeListener;
      Arr3InnerOnZoomChangeListener = array of Arr2InnerOnZoomChangeListener;
      InnerPictureCallback = interface;
      Arr1InnerPictureCallback = array of InnerPictureCallback;
      Arr2InnerPictureCallback = array of Arr1InnerPictureCallback;
      Arr3InnerPictureCallback = array of Arr2InnerPictureCallback;
      InnerShutterCallback = interface;
      Arr1InnerShutterCallback = array of InnerShutterCallback;
      Arr2InnerShutterCallback = array of Arr1InnerShutterCallback;
      Arr3InnerShutterCallback = array of Arr2InnerShutterCallback;
      InnerAutoFocusCallback = interface;
      Arr1InnerAutoFocusCallback = array of InnerAutoFocusCallback;
      Arr2InnerAutoFocusCallback = array of Arr1InnerAutoFocusCallback;
      Arr3InnerAutoFocusCallback = array of Arr2InnerAutoFocusCallback;
      InnerPreviewCallback = interface;
      Arr1InnerPreviewCallback = array of InnerPreviewCallback;
      Arr2InnerPreviewCallback = array of Arr1InnerPreviewCallback;
      Arr3InnerPreviewCallback = array of Arr2InnerPreviewCallback;
      InnerCameraInfo = class;
      Arr1InnerCameraInfo = array of InnerCameraInfo;
      Arr2InnerCameraInfo = array of Arr1InnerCameraInfo;
      Arr3InnerCameraInfo = array of Arr2InnerCameraInfo;
      InnerParameters = class;
      Arr1InnerParameters = array of InnerParameters;
      Arr2InnerParameters = array of Arr1InnerParameters;
      Arr3InnerParameters = array of Arr2InnerParameters;
      InnerFaceDetectionListener = interface;
      Arr1InnerFaceDetectionListener = array of InnerFaceDetectionListener;
      Arr2InnerFaceDetectionListener = array of Arr1InnerFaceDetectionListener;
      Arr3InnerFaceDetectionListener = array of Arr2InnerFaceDetectionListener;
      InnerArea = class external 'android.hardware' name 'Area' (JLObject)
      public
        var
          frect: AGRect; external name 'rect';
          fweight: jint; external name 'weight';
      public
        constructor create(para1: AGRect; para2: jint); overload;
        function equals(para1: JLObject): jboolean; overload; virtual;
      end;

      InnerSize = class external 'android.hardware' name 'Size' 
      end;

      InnerErrorCallback = interface external 'android.hardware' name 'ErrorCallback' 
        procedure onError(para1: jint; para2: AHCamera); overload;
      end;

      InnerFace = class external 'android.hardware' name 'Face' (JLObject)
      public
        var
          frect: AGRect; external name 'rect';
          fscore: jint; external name 'score';
          fid: jint; external name 'id';
          fleftEye: AGPoint; external name 'leftEye';
          frightEye: AGPoint; external name 'rightEye';
          fmouth: AGPoint; external name 'mouth';
      public
        constructor create(); overload;
      end;

      InnerOnZoomChangeListener = interface external 'android.hardware' name 'OnZoomChangeListener' 
        procedure onZoomChange(para1: jint; para2: jboolean; para3: AHCamera); overload;
      end;

      InnerPictureCallback = interface external 'android.hardware' name 'PictureCallback' 
        procedure onPictureTaken(para1: Arr1jbyte; para2: AHCamera); overload;
        procedure onPictureTaken(var para1: array of jbyte; para2: AHCamera); overload;
      end;

      InnerShutterCallback = interface external 'android.hardware' name 'ShutterCallback' 
        procedure onShutter(); overload;
      end;

      InnerAutoFocusCallback = interface external 'android.hardware' name 'AutoFocusCallback' 
        procedure onAutoFocus(para1: jboolean; para2: AHCamera); overload;
      end;

      InnerPreviewCallback = interface external 'android.hardware' name 'PreviewCallback' 
        procedure onPreviewFrame(para1: Arr1jbyte; para2: AHCamera); overload;
        procedure onPreviewFrame(var para1: array of jbyte; para2: AHCamera); overload;
      end;

      InnerCameraInfo = class external 'android.hardware' name 'CameraInfo' (JLObject)
      public
        const
          CAMERA_FACING_BACK = 0;
          CAMERA_FACING_FRONT = 1;
      public
        var
          ffacing: jint; external name 'facing';
          forientation: jint; external name 'orientation';
      public
        constructor create(); overload;
      end;

      InnerParameters = class external 'android.hardware' name 'Parameters' 
      end;

      InnerFaceDetectionListener = interface external 'android.hardware' name 'FaceDetectionListener' 
        procedure onFaceDetection(para1: AHCamera.Arr1InnerFace; para2: AHCamera); overload;
        procedure onFaceDetection(var para1: array of AHCamera.InnerFace; para2: AHCamera); overload;
      end;

  public
    const
      ACTION_NEW_PICTURE = 'android.hardware.action.NEW_PICTURE';
      ACTION_NEW_VIDEO = 'android.hardware.action.NEW_VIDEO';
      CAMERA_ERROR_UNKNOWN = 1;
      CAMERA_ERROR_SERVER_DIED = 100;
  public
    class function getNumberOfCameras(): jint; static; overload;
    class procedure getCameraInfo(para1: jint; para2: AHCamera.InnerCameraInfo); static; overload;
    class function open(para1: jint): AHCamera; static; overload;
    class function open(): AHCamera; static; overload;
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure release(); overload; virtual; final;
    procedure unlock(); overload; virtual; final;
    procedure lock(); overload; virtual; final;
    procedure reconnect(); overload; virtual; final;  // throws java.io.IOException
    procedure setPreviewDisplay(para1: AVSurfaceHolder); overload; virtual; final;  // throws java.io.IOException
    procedure setPreviewTexture(para1: AGSurfaceTexture); overload; virtual; final;  // throws java.io.IOException
    procedure startPreview(); overload; virtual; final;
    procedure stopPreview(); overload; virtual; final;
    procedure setPreviewCallback(para1: AHCamera.InnerPreviewCallback); overload; virtual; final;
    procedure setOneShotPreviewCallback(para1: AHCamera.InnerPreviewCallback); overload; virtual; final;
    procedure setPreviewCallbackWithBuffer(para1: AHCamera.InnerPreviewCallback); overload; virtual; final;
    procedure addCallbackBuffer(para1: Arr1jbyte); overload; virtual; final;
    procedure addCallbackBuffer(var para1: array of jbyte); overload; virtual; final;
    procedure autoFocus(para1: AHCamera.InnerAutoFocusCallback); overload; virtual; final;
    procedure cancelAutoFocus(); overload; virtual; final;
    procedure takePicture(para1: AHCamera.InnerShutterCallback; para2: AHCamera.InnerPictureCallback; para3: AHCamera.InnerPictureCallback); overload; virtual; final;
    procedure takePicture(para1: AHCamera.InnerShutterCallback; para2: AHCamera.InnerPictureCallback; para3: AHCamera.InnerPictureCallback; para4: AHCamera.InnerPictureCallback); overload; virtual; final;
    procedure startSmoothZoom(para1: jint); overload; virtual; final;
    procedure stopSmoothZoom(); overload; virtual; final;
    procedure setDisplayOrientation(para1: jint); overload; virtual; final;
    procedure setZoomChangeListener(para1: AHCamera.InnerOnZoomChangeListener); overload; virtual; final;
    procedure setFaceDetectionListener(para1: AHCamera.InnerFaceDetectionListener); overload; virtual; final;
    procedure startFaceDetection(); overload; virtual; final;
    procedure stopFaceDetection(); overload; virtual; final;
    procedure setErrorCallback(para1: AHCamera.InnerErrorCallback); overload; virtual; final;
    procedure setParameters(para1: AHCamera.InnerParameters); overload; virtual;
    function getParameters(): AHCamera.InnerParameters; overload; virtual;
  end;

  AHGeomagneticField = class external 'android.hardware' name 'GeomagneticField' (JLObject)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jlong); overload;
    function getX(): jfloat; overload; virtual;
    function getY(): jfloat; overload; virtual;
    function getZ(): jfloat; overload; virtual;
    function getDeclination(): jfloat; overload; virtual;
    function getInclination(): jfloat; overload; virtual;
    function getHorizontalStrength(): jfloat; overload; virtual;
    function getFieldStrength(): jfloat; overload; virtual;
  end;

  AHSensor = class external 'android.hardware' name 'Sensor' (JLObject)
  public
    const
      TYPE_ACCELEROMETER = 1;
      TYPE_MAGNETIC_FIELD = 2;
      TYPE_ORIENTATION = 3;
      TYPE_GYROSCOPE = 4;
      TYPE_LIGHT = 5;
      TYPE_PRESSURE = 6;
      TYPE_TEMPERATURE = 7;
      TYPE_PROXIMITY = 8;
      TYPE_GRAVITY = 9;
      TYPE_LINEAR_ACCELERATION = 10;
      TYPE_ROTATION_VECTOR = 11;
      TYPE_RELATIVE_HUMIDITY = 12;
      TYPE_AMBIENT_TEMPERATURE = 13;
      TYPE_ALL = -1;
  public
    function getName(): JLString; overload; virtual;
    function getVendor(): JLString; overload; virtual;
    function getType(): jint; overload; virtual;
    function getVersion(): jint; overload; virtual;
    function getMaximumRange(): jfloat; overload; virtual;
    function getResolution(): jfloat; overload; virtual;
    function getPower(): jfloat; overload; virtual;
    function getMinDelay(): jint; overload; virtual;
  end;

  AHSensorEvent = class external 'android.hardware' name 'SensorEvent' (JLObject)
  public
    final var
      fvalues: Arr1jfloat; external name 'values';
  public
    var
      fsensor: AHSensor; external name 'sensor';
      faccuracy: jint; external name 'accuracy';
      ftimestamp: jlong; external name 'timestamp';
  end;

  AHSensorEventListener = interface external 'android.hardware' name 'SensorEventListener' 
    procedure onSensorChanged(para1: AHSensorEvent); overload;
    procedure onAccuracyChanged(para1: AHSensor; para2: jint); overload;
  end;

  AHSensorListener = interface external 'android.hardware' name 'SensorListener' 
    procedure onSensorChanged(para1: jint; para2: Arr1jfloat); overload;
    procedure onSensorChanged(para1: jint; var para2: array of jfloat); overload;
    procedure onAccuracyChanged(para1: jint; para2: jint); overload;
  end;

  AHSensorManager = class external 'android.hardware' name 'SensorManager' (JLObject)
  public
    const
      SENSOR_ORIENTATION = 1;
      SENSOR_ACCELEROMETER = 2;
      SENSOR_TEMPERATURE = 4;
      SENSOR_MAGNETIC_FIELD = 8;
      SENSOR_LIGHT = 16;
      SENSOR_PROXIMITY = 32;
      SENSOR_TRICORDER = 64;
      SENSOR_ORIENTATION_RAW = 128;
      SENSOR_ALL = 127;
      SENSOR_MIN = 1;
      SENSOR_MAX = 64;
      DATA_X = 0;
      DATA_Y = 1;
      DATA_Z = 2;
      RAW_DATA_INDEX = 3;
      RAW_DATA_X = 3;
      RAW_DATA_Y = 4;
      RAW_DATA_Z = 5;
      STANDARD_GRAVITY = jfloat(9.80665);
      GRAVITY_SUN = jfloat(275.0);
      GRAVITY_MERCURY = jfloat(3.7);
      GRAVITY_VENUS = jfloat(8.87);
      GRAVITY_EARTH = jfloat(9.80665);
      GRAVITY_MOON = jfloat(1.6);
      GRAVITY_MARS = jfloat(3.71);
      GRAVITY_JUPITER = jfloat(23.12);
      GRAVITY_SATURN = jfloat(8.96);
      GRAVITY_URANUS = jfloat(8.69);
      GRAVITY_NEPTUNE = jfloat(11.0);
      GRAVITY_PLUTO = jfloat(0.6);
      GRAVITY_DEATH_STAR_I = jfloat(3.5303614E-7);
      GRAVITY_THE_ISLAND = jfloat(4.815162);
      MAGNETIC_FIELD_EARTH_MAX = jfloat(60.0);
      MAGNETIC_FIELD_EARTH_MIN = jfloat(30.0);
      PRESSURE_STANDARD_ATMOSPHERE = jfloat(1013.25);
      LIGHT_SUNLIGHT_MAX = jfloat(120000.0);
      LIGHT_SUNLIGHT = jfloat(110000.0);
      LIGHT_SHADE = jfloat(20000.0);
      LIGHT_OVERCAST = jfloat(10000.0);
      LIGHT_SUNRISE = jfloat(400.0);
      LIGHT_CLOUDY = jfloat(100.0);
      LIGHT_FULLMOON = jfloat(0.25);
      LIGHT_NO_MOON = jfloat(0.0010);
      SENSOR_DELAY_FASTEST = 0;
      SENSOR_DELAY_GAME = 1;
      SENSOR_DELAY_UI = 2;
      SENSOR_DELAY_NORMAL = 3;
      SENSOR_STATUS_UNRELIABLE = 0;
      SENSOR_STATUS_ACCURACY_LOW = 1;
      SENSOR_STATUS_ACCURACY_MEDIUM = 2;
      SENSOR_STATUS_ACCURACY_HIGH = 3;
      AXIS_X = 1;
      AXIS_Y = 2;
      AXIS_Z = 3;
      AXIS_MINUS_X = 129;
      AXIS_MINUS_Y = 130;
      AXIS_MINUS_Z = 131;
  public
    function getSensors(): jint; overload; virtual;
    function getSensorList(para1: jint): JUList; overload; virtual;
    function getDefaultSensor(para1: jint): AHSensor; overload; virtual;
    function registerListener(para1: AHSensorListener; para2: jint): jboolean; overload; virtual;
    function registerListener(para1: AHSensorListener; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure unregisterListener(para1: AHSensorListener; para2: jint); overload; virtual;
    procedure unregisterListener(para1: AHSensorListener); overload; virtual;
    procedure unregisterListener(para1: AHSensorEventListener; para2: AHSensor); overload; virtual;
    procedure unregisterListener(para1: AHSensorEventListener); overload; virtual;
    function registerListener(para1: AHSensorEventListener; para2: AHSensor; para3: jint): jboolean; overload; virtual;
    function registerListener(para1: AHSensorEventListener; para2: AHSensor; para3: jint; para4: AOHandler): jboolean; overload; virtual;
    class function getRotationMatrix(para1: Arr1jfloat; para2: Arr1jfloat; para3: Arr1jfloat; para4: Arr1jfloat): jboolean; static; overload;
    class function getRotationMatrix(var para1: array of jfloat; var para2: array of jfloat; var para3: array of jfloat; var para4: array of jfloat): jboolean; static; overload;
    class function getInclination(para1: Arr1jfloat): jfloat; static; overload;
    class function getInclination(var para1: array of jfloat): jfloat; static; overload;
    class function remapCoordinateSystem(para1: Arr1jfloat; para2: jint; para3: jint; para4: Arr1jfloat): jboolean; static; overload;
    class function remapCoordinateSystem(var para1: array of jfloat; para2: jint; para3: jint; var para4: array of jfloat): jboolean; static; overload;
    class function getOrientation(para1: Arr1jfloat; para2: Arr1jfloat): Arr1jfloat; static; overload;
    class function getOrientation(var para1: array of jfloat; var para2: array of jfloat): Arr1jfloat; static; overload;
    class function getAltitude(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class procedure getAngleChange(para1: Arr1jfloat; para2: Arr1jfloat; para3: Arr1jfloat); static; overload;
    class procedure getAngleChange(var para1: array of jfloat; var para2: array of jfloat; var para3: array of jfloat); static; overload;
    class procedure getRotationMatrixFromVector(para1: Arr1jfloat; para2: Arr1jfloat); static; overload;
    class procedure getRotationMatrixFromVector(var para1: array of jfloat; var para2: array of jfloat); static; overload;
    class procedure getQuaternionFromVector(para1: Arr1jfloat; para2: Arr1jfloat); static; overload;
    class procedure getQuaternionFromVector(var para1: array of jfloat; var para2: array of jfloat); static; overload;
  end;

  AHUUsbConstants = class sealed external 'android.hardware.usb' name 'UsbConstants' (JLObject)
  public
    const
      USB_ENDPOINT_DIR_MASK = 128;
      USB_DIR_OUT = 0;
      USB_DIR_IN = 128;
      USB_ENDPOINT_NUMBER_MASK = 15;
      USB_ENDPOINT_XFERTYPE_MASK = 3;
      USB_ENDPOINT_XFER_CONTROL = 0;
      USB_ENDPOINT_XFER_ISOC = 1;
      USB_ENDPOINT_XFER_BULK = 2;
      USB_ENDPOINT_XFER_INT = 3;
      USB_TYPE_MASK = 96;
      USB_TYPE_STANDARD = 0;
      USB_TYPE_CLASS = 32;
      USB_TYPE_VENDOR = 64;
      USB_TYPE_RESERVED = 96;
      USB_CLASS_PER_INTERFACE = 0;
      USB_CLASS_AUDIO = 1;
      USB_CLASS_COMM = 2;
      USB_CLASS_HID = 3;
      USB_CLASS_PHYSICA = 5;
      USB_CLASS_STILL_IMAGE = 6;
      USB_CLASS_PRINTER = 7;
      USB_CLASS_MASS_STORAGE = 8;
      USB_CLASS_HUB = 9;
      USB_CLASS_CDC_DATA = 10;
      USB_CLASS_CSCID = 11;
      USB_CLASS_CONTENT_SEC = 13;
      USB_CLASS_VIDEO = 14;
      USB_CLASS_WIRELESS_CONTROLLER = 224;
      USB_CLASS_MISC = 239;
      USB_CLASS_APP_SPEC = 254;
      USB_CLASS_VENDOR_SPEC = 255;
      USB_INTERFACE_SUBCLASS_BOOT = 1;
      USB_SUBCLASS_VENDOR_SPEC = 255;
  public
    constructor create(); overload;
  end;

  AHUUsbDeviceConnection = class external 'android.hardware.usb' name 'UsbDeviceConnection' (JLObject)
  public
    procedure close(); overload; virtual;
    function getFileDescriptor(): jint; overload; virtual;
    function getRawDescriptors(): Arr1jbyte; overload; virtual;
    function claimInterface(para1: AHUUsbInterface; para2: jboolean): jboolean; overload; virtual;
    function releaseInterface(para1: AHUUsbInterface): jboolean; overload; virtual;
    function controlTransfer(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jbyte; para6: jint; para7: jint): jint; overload; virtual;
    function controlTransfer(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jbyte; para6: jint; para7: jint): jint; overload; virtual;
    function bulkTransfer(para1: AHUUsbEndpoint; para2: Arr1jbyte; para3: jint; para4: jint): jint; overload; virtual;
    function bulkTransfer(para1: AHUUsbEndpoint; var para2: array of jbyte; para3: jint; para4: jint): jint; overload; virtual;
    function requestWait(): AHUUsbRequest; overload; virtual;
    function getSerial(): JLString; overload; virtual;
  end;

  AHUUsbManager = class external 'android.hardware.usb' name 'UsbManager' (JLObject)
  public
    const
      ACTION_USB_DEVICE_ATTACHED = 'android.hardware.usb.action.USB_DEVICE_ATTACHED';
      ACTION_USB_DEVICE_DETACHED = 'android.hardware.usb.action.USB_DEVICE_DETACHED';
      ACTION_USB_ACCESSORY_ATTACHED = 'android.hardware.usb.action.USB_ACCESSORY_ATTACHED';
      ACTION_USB_ACCESSORY_DETACHED = 'android.hardware.usb.action.USB_ACCESSORY_DETACHED';
      EXTRA_DEVICE = 'device';
      EXTRA_ACCESSORY = 'accessory';
      EXTRA_PERMISSION_GRANTED = 'permission';
  public
    function getDeviceList(): JUHashMap; overload; virtual;
    function openDevice(para1: AHUUsbDevice): AHUUsbDeviceConnection; overload; virtual;
    function getAccessoryList(): Arr1AHUUsbAccessory; overload; virtual;
    function openAccessory(para1: AHUUsbAccessory): AOParcelFileDescriptor; overload; virtual;
    function hasPermission(para1: AHUUsbDevice): jboolean; overload; virtual;
    function hasPermission(para1: AHUUsbAccessory): jboolean; overload; virtual;
    procedure requestPermission(para1: AHUUsbDevice; para2: AAPendingIntent); overload; virtual;
    procedure requestPermission(para1: AHUUsbAccessory; para2: AAPendingIntent); overload; virtual;
  end;

  AHUUsbRequest = class external 'android.hardware.usb' name 'UsbRequest' (JLObject)
  public
    constructor create(); overload;
    function initialize(para1: AHUUsbDeviceConnection; para2: AHUUsbEndpoint): jboolean; overload; virtual;
    procedure close(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function getEndpoint(): AHUUsbEndpoint; overload; virtual;
    function getClientData(): JLObject; overload; virtual;
    procedure setClientData(para1: JLObject); overload; virtual;
    function queue(para1: JNByteBuffer; para2: jint): jboolean; overload; virtual;
    function cancel(): jboolean; overload; virtual;
  end;

  AIKeyboard = class external 'android.inputmethodservice' name 'Keyboard' (JLObject)
  public
    type
      InnerRow = class;
      Arr1InnerRow = array of InnerRow;
      Arr2InnerRow = array of Arr1InnerRow;
      Arr3InnerRow = array of Arr2InnerRow;
      InnerKey = class;
      Arr1InnerKey = array of InnerKey;
      Arr2InnerKey = array of Arr1InnerKey;
      Arr3InnerKey = array of Arr2InnerKey;
      InnerRow = class external 'android.inputmethodservice' name 'Row' (JLObject)
      public
        var
          fdefaultWidth: jint; external name 'defaultWidth';
          fdefaultHeight: jint; external name 'defaultHeight';
          fdefaultHorizontalGap: jint; external name 'defaultHorizontalGap';
          fverticalGap: jint; external name 'verticalGap';
          frowEdgeFlags: jint; external name 'rowEdgeFlags';
          fmode: jint; external name 'mode';
      public
        constructor create(para1: AIKeyboard); overload;
        constructor create(para1: ACRResources; para2: AIKeyboard; para3: ACRXmlResourceParser); overload;
      end;

      InnerKey = class external 'android.inputmethodservice' name 'Key' (JLObject)
      public
        var
          fcodes: Arr1jint; external name 'codes';
          flabel: JLCharSequence; external name 'label';
          ficon: AGDDrawable; external name 'icon';
          ficonPreview: AGDDrawable; external name 'iconPreview';
          fwidth: jint; external name 'width';
          fheight: jint; external name 'height';
          fgap: jint; external name 'gap';
          fsticky: jboolean; external name 'sticky';
          fx: jint; external name 'x';
          fy: jint; external name 'y';
          fpressed: jboolean; external name 'pressed';
          fon: jboolean; external name 'on';
          ftext: JLCharSequence; external name 'text';
          fpopupCharacters: JLCharSequence; external name 'popupCharacters';
          fedgeFlags: jint; external name 'edgeFlags';
          fmodifier: jboolean; external name 'modifier';
          fpopupResId: jint; external name 'popupResId';
          frepeatable: jboolean; external name 'repeatable';
      public
        constructor create(para1: AIKeyboard.InnerRow); overload;
        constructor create(para1: ACRResources; para2: AIKeyboard.InnerRow; para3: jint; para4: jint; para5: ACRXmlResourceParser); overload;
        procedure onPressed(); overload; virtual;
        procedure onReleased(para1: jboolean); overload; virtual;
        function isInside(para1: jint; para2: jint): jboolean; overload; virtual;
        function squaredDistanceFrom(para1: jint; para2: jint): jint; overload; virtual;
        function getCurrentDrawableState(): Arr1jint; overload; virtual;
      end;

  public
    const
      EDGE_LEFT = 1;
      EDGE_RIGHT = 2;
      EDGE_TOP = 4;
      EDGE_BOTTOM = 8;
      KEYCODE_SHIFT = -1;
      KEYCODE_MODE_CHANGE = -2;
      KEYCODE_CANCEL = -3;
      KEYCODE_DONE = -4;
      KEYCODE_DELETE = -5;
      KEYCODE_ALT = -6;
  public
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: JLCharSequence; para4: jint; para5: jint); overload;
    function getKeys(): JUList; overload; virtual;
    function getModifierKeys(): JUList; overload; virtual;
  strict protected
    function getHorizontalGap(): jint; overload; virtual;
    procedure setHorizontalGap(para1: jint); overload; virtual;
    function getVerticalGap(): jint; overload; virtual;
    procedure setVerticalGap(para1: jint); overload; virtual;
    function getKeyHeight(): jint; overload; virtual;
    procedure setKeyHeight(para1: jint); overload; virtual;
    function getKeyWidth(): jint; overload; virtual;
    procedure setKeyWidth(para1: jint); overload; virtual;
  public
    function getHeight(): jint; overload; virtual;
    function getMinWidth(): jint; overload; virtual;
    function setShifted(para1: jboolean): jboolean; overload; virtual;
    function isShifted(): jboolean; overload; virtual;
    function getShiftKeyIndex(): jint; overload; virtual;
    function getNearestKeys(para1: jint; para2: jint): Arr1jint; overload; virtual;
  strict protected
    function createRowFromXml(para1: ACRResources; para2: ACRXmlResourceParser): AIKeyboard.InnerRow; overload; virtual;
    function createKeyFromXml(para1: ACRResources; para2: AIKeyboard.InnerRow; para3: jint; para4: jint; para5: ACRXmlResourceParser): AIKeyboard.InnerKey; overload; virtual;
  end;

  ALGeocoder = class sealed external 'android.location' name 'Geocoder' (JLObject)
  public
    constructor create(para1: ACContext; para2: JULocale); overload;
    constructor create(para1: ACContext); overload;
    class function isPresent(): jboolean; static; overload;
    function getFromLocation(para1: jdouble; para2: jdouble; para3: jint): JUList; overload; virtual;  // throws java.io.IOException
    function getFromLocationName(para1: JLString; para2: jint): JUList; overload; virtual;  // throws java.io.IOException
    function getFromLocationName(para1: JLString; para2: jint; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): JUList; overload; virtual;  // throws java.io.IOException
  end;

  ALGpsSatellite = class sealed external 'android.location' name 'GpsSatellite' (JLObject)
  public
    function getPrn(): jint; overload; virtual;
    function getSnr(): jfloat; overload; virtual;
    function getElevation(): jfloat; overload; virtual;
    function getAzimuth(): jfloat; overload; virtual;
    function hasEphemeris(): jboolean; overload; virtual;
    function hasAlmanac(): jboolean; overload; virtual;
    function usedInFix(): jboolean; overload; virtual;
  end;

  ALGpsStatus = class sealed external 'android.location' name 'GpsStatus' (JLObject)
  public
    type
      InnerNmeaListener = interface;
      Arr1InnerNmeaListener = array of InnerNmeaListener;
      Arr2InnerNmeaListener = array of Arr1InnerNmeaListener;
      Arr3InnerNmeaListener = array of Arr2InnerNmeaListener;
      InnerListener = interface;
      Arr1InnerListener = array of InnerListener;
      Arr2InnerListener = array of Arr1InnerListener;
      Arr3InnerListener = array of Arr2InnerListener;
      InnerNmeaListener = interface external 'android.location' name 'NmeaListener' 
        procedure onNmeaReceived(para1: jlong; para2: JLString); overload;
      end;

      InnerListener = interface external 'android.location' name 'Listener' 
        procedure onGpsStatusChanged(para1: jint); overload;
      end;

  public
    const
      GPS_EVENT_STARTED = 1;
      GPS_EVENT_STOPPED = 2;
      GPS_EVENT_FIRST_FIX = 3;
      GPS_EVENT_SATELLITE_STATUS = 4;
  public
    function getTimeToFirstFix(): jint; overload; virtual;
    function getSatellites(): JLIterable; overload; virtual;
    function getMaxSatellites(): jint; overload; virtual;
  end;

  ALLocationListener = interface external 'android.location' name 'LocationListener' 
    procedure onLocationChanged(para1: ALLocation); overload;
    procedure onStatusChanged(para1: JLString; para2: jint; para3: AOBundle); overload;
    procedure onProviderEnabled(para1: JLString); overload;
    procedure onProviderDisabled(para1: JLString); overload;
  end;

  ALLocationProvider = class abstract external 'android.location' name 'LocationProvider' (JLObject)
  public
    const
      OUT_OF_SERVICE = 0;
      TEMPORARILY_UNAVAILABLE = 1;
      AVAILABLE = 2;
  public
    function getName(): JLString; overload; virtual;
    function meetsCriteria(para1: ALCriteria): jboolean; overload; virtual;
    function requiresNetwork(): jboolean; overload; virtual; abstract;
    function requiresSatellite(): jboolean; overload; virtual; abstract;
    function requiresCell(): jboolean; overload; virtual; abstract;
    function hasMonetaryCost(): jboolean; overload; virtual; abstract;
    function supportsAltitude(): jboolean; overload; virtual; abstract;
    function supportsSpeed(): jboolean; overload; virtual; abstract;
    function supportsBearing(): jboolean; overload; virtual; abstract;
    function getPowerRequirement(): jint; overload; virtual; abstract;
    function getAccuracy(): jint; overload; virtual; abstract;
  end;

  AMAsyncPlayer = class external 'android.media' name 'AsyncPlayer' (JLObject)
  public
    constructor create(para1: JLString); overload;
    procedure play(para1: ACContext; para2: ANUri; para3: jboolean; para4: jint); overload; virtual;
    procedure stop(); overload; virtual;
  end;

  AMAudioFormat = class external 'android.media' name 'AudioFormat' (JLObject)
  public
    const
      ENCODING_INVALID = 0;
      ENCODING_DEFAULT = 1;
      ENCODING_PCM_16BIT = 2;
      ENCODING_PCM_8BIT = 3;
      CHANNEL_CONFIGURATION_INVALID = 0;
      CHANNEL_CONFIGURATION_DEFAULT = 1;
      CHANNEL_CONFIGURATION_MONO = 2;
      CHANNEL_CONFIGURATION_STEREO = 3;
      CHANNEL_INVALID = 0;
      CHANNEL_OUT_DEFAULT = 1;
      CHANNEL_OUT_FRONT_LEFT = 4;
      CHANNEL_OUT_FRONT_RIGHT = 8;
      CHANNEL_OUT_FRONT_CENTER = 16;
      CHANNEL_OUT_LOW_FREQUENCY = 32;
      CHANNEL_OUT_BACK_LEFT = 64;
      CHANNEL_OUT_BACK_RIGHT = 128;
      CHANNEL_OUT_FRONT_LEFT_OF_CENTER = 256;
      CHANNEL_OUT_FRONT_RIGHT_OF_CENTER = 512;
      CHANNEL_OUT_BACK_CENTER = 1024;
      CHANNEL_OUT_MONO = 4;
      CHANNEL_OUT_STEREO = 12;
      CHANNEL_OUT_QUAD = 204;
      CHANNEL_OUT_SURROUND = 1052;
      CHANNEL_OUT_5POINT1 = 252;
      CHANNEL_OUT_7POINT1 = 1020;
      CHANNEL_IN_DEFAULT = 1;
      CHANNEL_IN_LEFT = 4;
      CHANNEL_IN_RIGHT = 8;
      CHANNEL_IN_FRONT = 16;
      CHANNEL_IN_BACK = 32;
      CHANNEL_IN_LEFT_PROCESSED = 64;
      CHANNEL_IN_RIGHT_PROCESSED = 128;
      CHANNEL_IN_FRONT_PROCESSED = 256;
      CHANNEL_IN_BACK_PROCESSED = 512;
      CHANNEL_IN_PRESSURE = 1024;
      CHANNEL_IN_X_AXIS = 2048;
      CHANNEL_IN_Y_AXIS = 4096;
      CHANNEL_IN_Z_AXIS = 8192;
      CHANNEL_IN_VOICE_UPLINK = 16384;
      CHANNEL_IN_VOICE_DNLINK = 32768;
      CHANNEL_IN_MONO = 16;
      CHANNEL_IN_STEREO = 12;
  public
    constructor create(); overload;
  end;

  AMAudioManager = class external 'android.media' name 'AudioManager' (JLObject)
  public
    type
      InnerOnAudioFocusChangeListener = interface;
      Arr1InnerOnAudioFocusChangeListener = array of InnerOnAudioFocusChangeListener;
      Arr2InnerOnAudioFocusChangeListener = array of Arr1InnerOnAudioFocusChangeListener;
      Arr3InnerOnAudioFocusChangeListener = array of Arr2InnerOnAudioFocusChangeListener;
      InnerOnAudioFocusChangeListener = interface external 'android.media' name 'OnAudioFocusChangeListener' 
        procedure onAudioFocusChange(para1: jint); overload;
      end;

  public
    const
      ACTION_AUDIO_BECOMING_NOISY = 'android.media.AUDIO_BECOMING_NOISY';
      RINGER_MODE_CHANGED_ACTION = 'android.media.RINGER_MODE_CHANGED';
      EXTRA_RINGER_MODE = 'android.media.EXTRA_RINGER_MODE';
      VIBRATE_SETTING_CHANGED_ACTION = 'android.media.VIBRATE_SETTING_CHANGED';
      EXTRA_VIBRATE_SETTING = 'android.media.EXTRA_VIBRATE_SETTING';
      EXTRA_VIBRATE_TYPE = 'android.media.EXTRA_VIBRATE_TYPE';
      STREAM_VOICE_CALL = 0;
      STREAM_SYSTEM = 1;
      STREAM_RING = 2;
      STREAM_MUSIC = 3;
      STREAM_ALARM = 4;
      STREAM_NOTIFICATION = 5;
      STREAM_DTMF = 8;
      NUM_STREAMS = 5;
      ADJUST_RAISE = 1;
      ADJUST_LOWER = -1;
      ADJUST_SAME = 0;
      FLAG_SHOW_UI = 1;
      FLAG_ALLOW_RINGER_MODES = 2;
      FLAG_PLAY_SOUND = 4;
      FLAG_REMOVE_SOUND_AND_VIBRATE = 8;
      FLAG_VIBRATE = 16;
      RINGER_MODE_SILENT = 0;
      RINGER_MODE_VIBRATE = 1;
      RINGER_MODE_NORMAL = 2;
      VIBRATE_TYPE_RINGER = 0;
      VIBRATE_TYPE_NOTIFICATION = 1;
      VIBRATE_SETTING_OFF = 0;
      VIBRATE_SETTING_ON = 1;
      VIBRATE_SETTING_ONLY_SILENT = 2;
      USE_DEFAULT_STREAM_TYPE = -2147483648;
      ACTION_SCO_AUDIO_STATE_CHANGED = 'android.media.SCO_AUDIO_STATE_CHANGED';
      ACTION_SCO_AUDIO_STATE_UPDATED = 'android.media.ACTION_SCO_AUDIO_STATE_UPDATED';
      EXTRA_SCO_AUDIO_STATE = 'android.media.extra.SCO_AUDIO_STATE';
      EXTRA_SCO_AUDIO_PREVIOUS_STATE = 'android.media.extra.SCO_AUDIO_PREVIOUS_STATE';
      SCO_AUDIO_STATE_DISCONNECTED = 0;
      SCO_AUDIO_STATE_CONNECTED = 1;
      SCO_AUDIO_STATE_CONNECTING = 2;
      SCO_AUDIO_STATE_ERROR = -1;
      MODE_INVALID = -2;
      MODE_CURRENT = -1;
      MODE_NORMAL = 0;
      MODE_RINGTONE = 1;
      MODE_IN_CALL = 2;
      MODE_IN_COMMUNICATION = 3;
      ROUTE_EARPIECE = 1;
      ROUTE_SPEAKER = 2;
      ROUTE_BLUETOOTH = 4;
      ROUTE_BLUETOOTH_SCO = 4;
      ROUTE_HEADSET = 8;
      ROUTE_BLUETOOTH_A2DP = 16;
      ROUTE_ALL = -1;
      FX_KEY_CLICK = 0;
      FX_FOCUS_NAVIGATION_UP = 1;
      FX_FOCUS_NAVIGATION_DOWN = 2;
      FX_FOCUS_NAVIGATION_LEFT = 3;
      FX_FOCUS_NAVIGATION_RIGHT = 4;
      FX_KEYPRESS_STANDARD = 5;
      FX_KEYPRESS_SPACEBAR = 6;
      FX_KEYPRESS_DELETE = 7;
      FX_KEYPRESS_RETURN = 8;
      AUDIOFOCUS_GAIN = 1;
      AUDIOFOCUS_GAIN_TRANSIENT = 2;
      AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK = 3;
      AUDIOFOCUS_LOSS = -1;
      AUDIOFOCUS_LOSS_TRANSIENT = -2;
      AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK = -3;
      AUDIOFOCUS_REQUEST_FAILED = 0;
      AUDIOFOCUS_REQUEST_GRANTED = 1;
  public
    procedure adjustStreamVolume(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure adjustVolume(para1: jint; para2: jint); overload; virtual;
    procedure adjustSuggestedStreamVolume(para1: jint; para2: jint; para3: jint); overload; virtual;
    function getRingerMode(): jint; overload; virtual;
    function getStreamMaxVolume(para1: jint): jint; overload; virtual;
    function getStreamVolume(para1: jint): jint; overload; virtual;
    procedure setRingerMode(para1: jint); overload; virtual;
    procedure setStreamVolume(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setStreamSolo(para1: jint; para2: jboolean); overload; virtual;
    procedure setStreamMute(para1: jint; para2: jboolean); overload; virtual;
    function shouldVibrate(para1: jint): jboolean; overload; virtual;
    function getVibrateSetting(para1: jint): jint; overload; virtual;
    procedure setVibrateSetting(para1: jint; para2: jint); overload; virtual;
    procedure setSpeakerphoneOn(para1: jboolean); overload; virtual;
    function isSpeakerphoneOn(): jboolean; overload; virtual;
    function isBluetoothScoAvailableOffCall(): jboolean; overload; virtual;
    procedure startBluetoothSco(); overload; virtual;
    procedure stopBluetoothSco(); overload; virtual;
    procedure setBluetoothScoOn(para1: jboolean); overload; virtual;
    function isBluetoothScoOn(): jboolean; overload; virtual;
    procedure setBluetoothA2dpOn(para1: jboolean); overload; virtual;
    function isBluetoothA2dpOn(): jboolean; overload; virtual;
    procedure setWiredHeadsetOn(para1: jboolean); overload; virtual;
    function isWiredHeadsetOn(): jboolean; overload; virtual;
    procedure setMicrophoneMute(para1: jboolean); overload; virtual;
    function isMicrophoneMute(): jboolean; overload; virtual;
    procedure setMode(para1: jint); overload; virtual;
    function getMode(): jint; overload; virtual;
    procedure setRouting(para1: jint; para2: jint; para3: jint); overload; virtual;
    function getRouting(para1: jint): jint; overload; virtual;
    function isMusicActive(): jboolean; overload; virtual;
    procedure setParameters(para1: JLString); overload; virtual;
    function getParameters(para1: JLString): JLString; overload; virtual;
    procedure playSoundEffect(para1: jint); overload; virtual;
    procedure playSoundEffect(para1: jint; para2: jfloat); overload; virtual;
    procedure loadSoundEffects(); overload; virtual;
    procedure unloadSoundEffects(); overload; virtual;
    function requestAudioFocus(para1: AMAudioManager.InnerOnAudioFocusChangeListener; para2: jint; para3: jint): jint; overload; virtual;
    function abandonAudioFocus(para1: AMAudioManager.InnerOnAudioFocusChangeListener): jint; overload; virtual;
    procedure registerMediaButtonEventReceiver(para1: ACComponentName); overload; virtual;
    procedure unregisterMediaButtonEventReceiver(para1: ACComponentName); overload; virtual;
    procedure registerRemoteControlClient(para1: AMRemoteControlClient); overload; virtual;
    procedure unregisterRemoteControlClient(para1: AMRemoteControlClient); overload; virtual;
  end;

  AMAudioRecord = class external 'android.media' name 'AudioRecord' (JLObject)
  public
    type
      InnerOnRecordPositionUpdateListener = interface;
      Arr1InnerOnRecordPositionUpdateListener = array of InnerOnRecordPositionUpdateListener;
      Arr2InnerOnRecordPositionUpdateListener = array of Arr1InnerOnRecordPositionUpdateListener;
      Arr3InnerOnRecordPositionUpdateListener = array of Arr2InnerOnRecordPositionUpdateListener;
      InnerOnRecordPositionUpdateListener = interface external 'android.media' name 'OnRecordPositionUpdateListener' 
        procedure onMarkerReached(para1: AMAudioRecord); overload;
        procedure onPeriodicNotification(para1: AMAudioRecord); overload;
      end;

  public
    const
      STATE_UNINITIALIZED = 0;
      STATE_INITIALIZED = 1;
      RECORDSTATE_STOPPED = 1;
      RECORDSTATE_RECORDING = 3;
      SUCCESS = 0;
      ERROR = -1;
      ERROR_BAD_VALUE = -2;
      ERROR_INVALID_OPERATION = -3;
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;  // throws java.lang.IllegalArgumentException
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    function getSampleRate(): jint; overload; virtual;
    function getAudioSource(): jint; overload; virtual;
    function getAudioFormat(): jint; overload; virtual;
    function getChannelConfiguration(): jint; overload; virtual;
    function getChannelCount(): jint; overload; virtual;
    function getState(): jint; overload; virtual;
    function getRecordingState(): jint; overload; virtual;
    function getNotificationMarkerPosition(): jint; overload; virtual;
    function getPositionNotificationPeriod(): jint; overload; virtual;
    class function getMinBufferSize(para1: jint; para2: jint; para3: jint): jint; static; overload;
    procedure startRecording(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure stop(); overload; virtual;  // throws java.lang.IllegalStateException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function read(para1: Arr1jshort; para2: jint; para3: jint): jint; overload; virtual;
    function read(var para1: array of jshort; para2: jint; para3: jint): jint; overload; virtual;
    function read(para1: JNByteBuffer; para2: jint): jint; overload; virtual;
    procedure setRecordPositionUpdateListener(para1: AMAudioRecord.InnerOnRecordPositionUpdateListener); overload; virtual;
    procedure setRecordPositionUpdateListener(para1: AMAudioRecord.InnerOnRecordPositionUpdateListener; para2: AOHandler); overload; virtual;
    function setNotificationMarkerPosition(para1: jint): jint; overload; virtual;
    function setPositionNotificationPeriod(para1: jint): jint; overload; virtual;
  end;

  AMAudioTrack = class external 'android.media' name 'AudioTrack' (JLObject)
  public
    type
      InnerOnPlaybackPositionUpdateListener = interface;
      Arr1InnerOnPlaybackPositionUpdateListener = array of InnerOnPlaybackPositionUpdateListener;
      Arr2InnerOnPlaybackPositionUpdateListener = array of Arr1InnerOnPlaybackPositionUpdateListener;
      Arr3InnerOnPlaybackPositionUpdateListener = array of Arr2InnerOnPlaybackPositionUpdateListener;
      InnerOnPlaybackPositionUpdateListener = interface external 'android.media' name 'OnPlaybackPositionUpdateListener' 
        procedure onMarkerReached(para1: AMAudioTrack); overload;
        procedure onPeriodicNotification(para1: AMAudioTrack); overload;
      end;

  public
    const
      PLAYSTATE_STOPPED = 1;
      PLAYSTATE_PAUSED = 2;
      PLAYSTATE_PLAYING = 3;
      MODE_STATIC = 0;
      MODE_STREAM = 1;
      STATE_UNINITIALIZED = 0;
      STATE_INITIALIZED = 1;
      STATE_NO_STATIC_DATA = 2;
      SUCCESS = 0;
      ERROR = -1;
      ERROR_BAD_VALUE = -2;
      ERROR_INVALID_OPERATION = -3;
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;  // throws java.lang.IllegalArgumentException
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload;  // throws java.lang.IllegalArgumentException
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    class function getMinVolume(): jfloat; static; overload;
    class function getMaxVolume(): jfloat; static; overload;
    function getSampleRate(): jint; overload; virtual;
    function getPlaybackRate(): jint; overload; virtual;
    function getAudioFormat(): jint; overload; virtual;
    function getStreamType(): jint; overload; virtual;
    function getChannelConfiguration(): jint; overload; virtual;
    function getChannelCount(): jint; overload; virtual;
    function getState(): jint; overload; virtual;
    function getPlayState(): jint; overload; virtual;
  strict protected
    function getNativeFrameCount(): jint; overload; virtual;
  public
    function getNotificationMarkerPosition(): jint; overload; virtual;
    function getPositionNotificationPeriod(): jint; overload; virtual;
    function getPlaybackHeadPosition(): jint; overload; virtual;
    class function getNativeOutputSampleRate(para1: jint): jint; static; overload;
    class function getMinBufferSize(para1: jint; para2: jint; para3: jint): jint; static; overload;
    function getAudioSessionId(): jint; overload; virtual;
    procedure setPlaybackPositionUpdateListener(para1: AMAudioTrack.InnerOnPlaybackPositionUpdateListener); overload; virtual;
    procedure setPlaybackPositionUpdateListener(para1: AMAudioTrack.InnerOnPlaybackPositionUpdateListener; para2: AOHandler); overload; virtual;
    function setStereoVolume(para1: jfloat; para2: jfloat): jint; overload; virtual;
    function setPlaybackRate(para1: jint): jint; overload; virtual;
    function setNotificationMarkerPosition(para1: jint): jint; overload; virtual;
    function setPositionNotificationPeriod(para1: jint): jint; overload; virtual;
    function setPlaybackHeadPosition(para1: jint): jint; overload; virtual;
    function setLoopPoints(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
  strict protected
    procedure setState(para1: jint); overload; virtual;
  public
    procedure play(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure stop(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure pause(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure flush(); overload; virtual;
    function write(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function write(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function write(para1: Arr1jshort; para2: jint; para3: jint): jint; overload; virtual;
    function write(var para1: array of jshort; para2: jint; para3: jint): jint; overload; virtual;
    function reloadStaticData(): jint; overload; virtual;
    function attachAuxEffect(para1: jint): jint; overload; virtual;
    function setAuxEffectSendLevel(para1: jfloat): jint; overload; virtual;
  end;

  AMCamcorderProfile = class external 'android.media' name 'CamcorderProfile' (JLObject)
  public
    const
      QUALITY_LOW = 0;
      QUALITY_HIGH = 1;
      QUALITY_QCIF = 2;
      QUALITY_CIF = 3;
      QUALITY_480P = 4;
      QUALITY_720P = 5;
      QUALITY_1080P = 6;
      QUALITY_TIME_LAPSE_LOW = 1000;
      QUALITY_TIME_LAPSE_HIGH = 1001;
      QUALITY_TIME_LAPSE_QCIF = 1002;
      QUALITY_TIME_LAPSE_CIF = 1003;
      QUALITY_TIME_LAPSE_480P = 1004;
      QUALITY_TIME_LAPSE_720P = 1005;
      QUALITY_TIME_LAPSE_1080P = 1006;
  public
    var
      fduration: jint; external name 'duration';
      fquality: jint; external name 'quality';
      ffileFormat: jint; external name 'fileFormat';
      fvideoCodec: jint; external name 'videoCodec';
      fvideoBitRate: jint; external name 'videoBitRate';
      fvideoFrameRate: jint; external name 'videoFrameRate';
      fvideoFrameWidth: jint; external name 'videoFrameWidth';
      fvideoFrameHeight: jint; external name 'videoFrameHeight';
      faudioCodec: jint; external name 'audioCodec';
      faudioBitRate: jint; external name 'audioBitRate';
      faudioSampleRate: jint; external name 'audioSampleRate';
      faudioChannels: jint; external name 'audioChannels';
  public
    class function get(para1: jint): AMCamcorderProfile; static; overload;
    class function get(para1: jint; para2: jint): AMCamcorderProfile; static; overload;
    class function hasProfile(para1: jint): jboolean; static; overload;
    class function hasProfile(para1: jint; para2: jint): jboolean; static; overload;
  end;

  AMCameraProfile = class external 'android.media' name 'CameraProfile' (JLObject)
  public
    const
      QUALITY_LOW = 0;
      QUALITY_MEDIUM = 1;
      QUALITY_HIGH = 2;
  public
    constructor create(); overload;
    class function getJpegEncodingQualityParameter(para1: jint): jint; static; overload;
    class function getJpegEncodingQualityParameter(para1: jint; para2: jint): jint; static; overload;
  end;

  AMExifInterface = class external 'android.media' name 'ExifInterface' (JLObject)
  public
    const
      TAG_ORIENTATION = 'Orientation';
      TAG_DATETIME = 'DateTime';
      TAG_MAKE = 'Make';
      TAG_MODEL = 'Model';
      TAG_FLASH = 'Flash';
      TAG_IMAGE_WIDTH = 'ImageWidth';
      TAG_IMAGE_LENGTH = 'ImageLength';
      TAG_GPS_LATITUDE = 'GPSLatitude';
      TAG_GPS_LONGITUDE = 'GPSLongitude';
      TAG_GPS_LATITUDE_REF = 'GPSLatitudeRef';
      TAG_GPS_LONGITUDE_REF = 'GPSLongitudeRef';
      TAG_EXPOSURE_TIME = 'ExposureTime';
      TAG_APERTURE = 'FNumber';
      TAG_ISO = 'ISOSpeedRatings';
      TAG_GPS_ALTITUDE = 'GPSAltitude';
      TAG_GPS_ALTITUDE_REF = 'GPSAltitudeRef';
      TAG_GPS_TIMESTAMP = 'GPSTimeStamp';
      TAG_GPS_DATESTAMP = 'GPSDateStamp';
      TAG_WHITE_BALANCE = 'WhiteBalance';
      TAG_FOCAL_LENGTH = 'FocalLength';
      TAG_GPS_PROCESSING_METHOD = 'GPSProcessingMethod';
      ORIENTATION_UNDEFINED = 0;
      ORIENTATION_NORMAL = 1;
      ORIENTATION_FLIP_HORIZONTAL = 2;
      ORIENTATION_ROTATE_180 = 3;
      ORIENTATION_FLIP_VERTICAL = 4;
      ORIENTATION_TRANSPOSE = 5;
      ORIENTATION_ROTATE_90 = 6;
      ORIENTATION_TRANSVERSE = 7;
      ORIENTATION_ROTATE_270 = 8;
      WHITEBALANCE_AUTO = 0;
      WHITEBALANCE_MANUAL = 1;
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    function getAttribute(para1: JLString): JLString; overload; virtual;
    function getAttributeInt(para1: JLString; para2: jint): jint; overload; virtual;
    function getAttributeDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLString); overload; virtual;
    procedure saveAttributes(); overload; virtual;  // throws java.io.IOException
    function hasThumbnail(): jboolean; overload; virtual;
    function getThumbnail(): Arr1jbyte; overload; virtual;
    function getLatLong(para1: Arr1jfloat): jboolean; overload; virtual;
    function getLatLong(var para1: array of jfloat): jboolean; overload; virtual;
    function getAltitude(para1: jdouble): jdouble; overload; virtual;
  end;

  AMFaceDetector = class external 'android.media' name 'FaceDetector' (JLObject)
  public
    type
      InnerFace = class;
      Arr1InnerFace = array of InnerFace;
      Arr2InnerFace = array of Arr1InnerFace;
      Arr3InnerFace = array of Arr2InnerFace;
      InnerFace = class external 'android.media' name 'Face' 
      end;

  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    function findFaces(para1: AGBitmap; para2: AMFaceDetector.Arr1InnerFace): jint; overload; virtual;
    function findFaces(para1: AGBitmap; var para2: array of AMFaceDetector.InnerFace): jint; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AMJetPlayer = class external 'android.media' name 'JetPlayer' (JLObject)
  public
    type
      InnerOnJetEventListener = interface;
      Arr1InnerOnJetEventListener = array of InnerOnJetEventListener;
      Arr2InnerOnJetEventListener = array of Arr1InnerOnJetEventListener;
      Arr3InnerOnJetEventListener = array of Arr2InnerOnJetEventListener;
      InnerOnJetEventListener = interface external 'android.media' name 'OnJetEventListener' 
        procedure onJetEvent(para1: AMJetPlayer; para2: jshort; para3: jbyte; para4: jbyte; para5: jbyte; para6: jbyte); overload;
        procedure onJetUserIdUpdate(para1: AMJetPlayer; para2: jint; para3: jint); overload;
        procedure onJetNumQueuedSegmentUpdate(para1: AMJetPlayer; para2: jint); overload;
        procedure onJetPauseUpdate(para1: AMJetPlayer; para2: jint); overload;
      end;

  public
    class function getJetPlayer(): AMJetPlayer; static; overload;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure release(); overload; virtual;
    class function getMaxTracks(): jint; static; overload;
    function loadJetFile(para1: JLString): jboolean; overload; virtual;
    function loadJetFile(para1: ACRAssetFileDescriptor): jboolean; overload; virtual;
    function closeJetFile(): jboolean; overload; virtual;
    function play(): jboolean; overload; virtual;
    function pause(): jboolean; overload; virtual;
    function queueJetSegment(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jbyte): jboolean; overload; virtual;
    function queueJetSegmentMuteArray(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jboolean; para6: jbyte): jboolean; overload; virtual;
    function queueJetSegmentMuteArray(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jboolean; para6: jbyte): jboolean; overload; virtual;
    function setMuteFlags(para1: jint; para2: jboolean): jboolean; overload; virtual;
    function setMuteArray(para1: Arr1jboolean; para2: jboolean): jboolean; overload; virtual;
    function setMuteArray(var para1: array of jboolean; para2: jboolean): jboolean; overload; virtual;
    function setMuteFlag(para1: jint; para2: jboolean; para3: jboolean): jboolean; overload; virtual;
    function triggerClip(para1: jint): jboolean; overload; virtual;
    function clearQueue(): jboolean; overload; virtual;
    procedure setEventListener(para1: AMJetPlayer.InnerOnJetEventListener); overload; virtual;
    procedure setEventListener(para1: AMJetPlayer.InnerOnJetEventListener; para2: AOHandler); overload; virtual;
  end;

  AMMediaMetadataRetriever = class external 'android.media' name 'MediaMetadataRetriever' (JLObject)
  public
    const
      OPTION_PREVIOUS_SYNC = 0;
      OPTION_NEXT_SYNC = 1;
      OPTION_CLOSEST_SYNC = 2;
      OPTION_CLOSEST = 3;
      METADATA_KEY_CD_TRACK_NUMBER = 0;
      METADATA_KEY_ALBUM = 1;
      METADATA_KEY_ARTIST = 2;
      METADATA_KEY_AUTHOR = 3;
      METADATA_KEY_COMPOSER = 4;
      METADATA_KEY_DATE = 5;
      METADATA_KEY_GENRE = 6;
      METADATA_KEY_TITLE = 7;
      METADATA_KEY_YEAR = 8;
      METADATA_KEY_DURATION = 9;
      METADATA_KEY_NUM_TRACKS = 10;
      METADATA_KEY_WRITER = 11;
      METADATA_KEY_MIMETYPE = 12;
      METADATA_KEY_ALBUMARTIST = 13;
      METADATA_KEY_DISC_NUMBER = 14;
      METADATA_KEY_COMPILATION = 15;
      METADATA_KEY_HAS_AUDIO = 16;
      METADATA_KEY_HAS_VIDEO = 17;
      METADATA_KEY_VIDEO_WIDTH = 18;
      METADATA_KEY_VIDEO_HEIGHT = 19;
      METADATA_KEY_BITRATE = 20;
  public
    constructor create(); overload;
    procedure setDataSource(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setDataSource(para1: JLString; para2: JUMap); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setDataSource(para1: JIFileDescriptor; para2: jlong; para3: jlong); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setDataSource(para1: JIFileDescriptor); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setDataSource(para1: ACContext; para2: ANUri); overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.SecurityException
    function extractMetadata(para1: jint): JLString; overload; virtual;
    function getFrameAtTime(para1: jlong; para2: jint): AGBitmap; overload; virtual;
    function getFrameAtTime(para1: jlong): AGBitmap; overload; virtual;
    function getFrameAtTime(): AGBitmap; overload; virtual;
    function getEmbeddedPicture(): Arr1jbyte; overload; virtual;
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AMMediaPlayer = class external 'android.media' name 'MediaPlayer' (JLObject)
  public
    type
      InnerOnInfoListener = interface;
      Arr1InnerOnInfoListener = array of InnerOnInfoListener;
      Arr2InnerOnInfoListener = array of Arr1InnerOnInfoListener;
      Arr3InnerOnInfoListener = array of Arr2InnerOnInfoListener;
      InnerOnErrorListener = interface;
      Arr1InnerOnErrorListener = array of InnerOnErrorListener;
      Arr2InnerOnErrorListener = array of Arr1InnerOnErrorListener;
      Arr3InnerOnErrorListener = array of Arr2InnerOnErrorListener;
      InnerOnVideoSizeChangedListener = interface;
      Arr1InnerOnVideoSizeChangedListener = array of InnerOnVideoSizeChangedListener;
      Arr2InnerOnVideoSizeChangedListener = array of Arr1InnerOnVideoSizeChangedListener;
      Arr3InnerOnVideoSizeChangedListener = array of Arr2InnerOnVideoSizeChangedListener;
      InnerOnSeekCompleteListener = interface;
      Arr1InnerOnSeekCompleteListener = array of InnerOnSeekCompleteListener;
      Arr2InnerOnSeekCompleteListener = array of Arr1InnerOnSeekCompleteListener;
      Arr3InnerOnSeekCompleteListener = array of Arr2InnerOnSeekCompleteListener;
      InnerOnBufferingUpdateListener = interface;
      Arr1InnerOnBufferingUpdateListener = array of InnerOnBufferingUpdateListener;
      Arr2InnerOnBufferingUpdateListener = array of Arr1InnerOnBufferingUpdateListener;
      Arr3InnerOnBufferingUpdateListener = array of Arr2InnerOnBufferingUpdateListener;
      InnerOnCompletionListener = interface;
      Arr1InnerOnCompletionListener = array of InnerOnCompletionListener;
      Arr2InnerOnCompletionListener = array of Arr1InnerOnCompletionListener;
      Arr3InnerOnCompletionListener = array of Arr2InnerOnCompletionListener;
      InnerOnPreparedListener = interface;
      Arr1InnerOnPreparedListener = array of InnerOnPreparedListener;
      Arr2InnerOnPreparedListener = array of Arr1InnerOnPreparedListener;
      Arr3InnerOnPreparedListener = array of Arr2InnerOnPreparedListener;
      InnerOnInfoListener = interface external 'android.media' name 'OnInfoListener' 
        function onInfo(para1: AMMediaPlayer; para2: jint; para3: jint): jboolean; overload;
      end;

      InnerOnErrorListener = interface external 'android.media' name 'OnErrorListener' 
        function onError(para1: AMMediaPlayer; para2: jint; para3: jint): jboolean; overload;
      end;

      InnerOnVideoSizeChangedListener = interface external 'android.media' name 'OnVideoSizeChangedListener' 
        procedure onVideoSizeChanged(para1: AMMediaPlayer; para2: jint; para3: jint); overload;
      end;

      InnerOnSeekCompleteListener = interface external 'android.media' name 'OnSeekCompleteListener' 
        procedure onSeekComplete(para1: AMMediaPlayer); overload;
      end;

      InnerOnBufferingUpdateListener = interface external 'android.media' name 'OnBufferingUpdateListener' 
        procedure onBufferingUpdate(para1: AMMediaPlayer; para2: jint); overload;
      end;

      InnerOnCompletionListener = interface external 'android.media' name 'OnCompletionListener' 
        procedure onCompletion(para1: AMMediaPlayer); overload;
      end;

      InnerOnPreparedListener = interface external 'android.media' name 'OnPreparedListener' 
        procedure onPrepared(para1: AMMediaPlayer); overload;
      end;

  public
    const
      MEDIA_ERROR_UNKNOWN = 1;
      MEDIA_ERROR_SERVER_DIED = 100;
      MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 200;
      MEDIA_INFO_UNKNOWN = 1;
      MEDIA_INFO_VIDEO_TRACK_LAGGING = 700;
      MEDIA_INFO_BUFFERING_START = 701;
      MEDIA_INFO_BUFFERING_END = 702;
      MEDIA_INFO_BAD_INTERLEAVING = 800;
      MEDIA_INFO_NOT_SEEKABLE = 801;
      MEDIA_INFO_METADATA_UPDATE = 802;
  public
    constructor create(); overload;
    procedure setDisplay(para1: AVSurfaceHolder); overload; virtual;
    procedure setSurface(para1: AVSurface); overload; virtual;
    class function create_(para1: ACContext; para2: ANUri): AMMediaPlayer; static; external name 'create'; overload;
    class function create_(para1: ACContext; para2: ANUri; para3: AVSurfaceHolder): AMMediaPlayer; static; external name 'create'; overload;
    class function create_(para1: ACContext; para2: jint): AMMediaPlayer; static; external name 'create'; overload;
    procedure setDataSource(para1: ACContext; para2: ANUri); overload; virtual;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    procedure setDataSource(para1: ACContext; para2: ANUri; para3: JUMap); overload; virtual;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    procedure setDataSource(para1: JLString); overload; virtual;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalStateException
    procedure setDataSource(para1: JIFileDescriptor); overload; virtual;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure setDataSource(para1: JIFileDescriptor; para2: jlong; para3: jlong); overload; virtual;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure prepare(); overload; virtual;  // throws java.io.IOException, java.lang.IllegalStateException
    procedure prepareAsync(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure start(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure stop(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure pause(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setWakeMode(para1: ACContext; para2: jint); overload; virtual;
    procedure setScreenOnWhilePlaying(para1: jboolean); overload; virtual;
    function getVideoWidth(): jint; overload; virtual;
    function getVideoHeight(): jint; overload; virtual;
    function isPlaying(): jboolean; overload; virtual;
    procedure seekTo(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    function getCurrentPosition(): jint; overload; virtual;
    function getDuration(): jint; overload; virtual;
    procedure release(); overload; virtual;
    procedure reset(); overload; virtual;
    procedure setAudioStreamType(para1: jint); overload; virtual;
    procedure setLooping(para1: jboolean); overload; virtual;
    function isLooping(): jboolean; overload; virtual;
    procedure setVolume(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setAudioSessionId(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function getAudioSessionId(): jint; overload; virtual;
    procedure attachAuxEffect(para1: jint); overload; virtual;
    procedure setAuxEffectSendLevel(para1: jfloat); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure setOnPreparedListener(para1: AMMediaPlayer.InnerOnPreparedListener); overload; virtual;
    procedure setOnCompletionListener(para1: AMMediaPlayer.InnerOnCompletionListener); overload; virtual;
    procedure setOnBufferingUpdateListener(para1: AMMediaPlayer.InnerOnBufferingUpdateListener); overload; virtual;
    procedure setOnSeekCompleteListener(para1: AMMediaPlayer.InnerOnSeekCompleteListener); overload; virtual;
    procedure setOnVideoSizeChangedListener(para1: AMMediaPlayer.InnerOnVideoSizeChangedListener); overload; virtual;
    procedure setOnErrorListener(para1: AMMediaPlayer.InnerOnErrorListener); overload; virtual;
    procedure setOnInfoListener(para1: AMMediaPlayer.InnerOnInfoListener); overload; virtual;
  end;

  AMMediaRecorder = class external 'android.media' name 'MediaRecorder' (JLObject)
  public
    type
      InnerOnInfoListener = interface;
      Arr1InnerOnInfoListener = array of InnerOnInfoListener;
      Arr2InnerOnInfoListener = array of Arr1InnerOnInfoListener;
      Arr3InnerOnInfoListener = array of Arr2InnerOnInfoListener;
      InnerOnErrorListener = interface;
      Arr1InnerOnErrorListener = array of InnerOnErrorListener;
      Arr2InnerOnErrorListener = array of Arr1InnerOnErrorListener;
      Arr3InnerOnErrorListener = array of Arr2InnerOnErrorListener;
      InnerVideoEncoder = class;
      Arr1InnerVideoEncoder = array of InnerVideoEncoder;
      Arr2InnerVideoEncoder = array of Arr1InnerVideoEncoder;
      Arr3InnerVideoEncoder = array of Arr2InnerVideoEncoder;
      InnerAudioEncoder = class;
      Arr1InnerAudioEncoder = array of InnerAudioEncoder;
      Arr2InnerAudioEncoder = array of Arr1InnerAudioEncoder;
      Arr3InnerAudioEncoder = array of Arr2InnerAudioEncoder;
      InnerOutputFormat = class;
      Arr1InnerOutputFormat = array of InnerOutputFormat;
      Arr2InnerOutputFormat = array of Arr1InnerOutputFormat;
      Arr3InnerOutputFormat = array of Arr2InnerOutputFormat;
      InnerVideoSource = class;
      Arr1InnerVideoSource = array of InnerVideoSource;
      Arr2InnerVideoSource = array of Arr1InnerVideoSource;
      Arr3InnerVideoSource = array of Arr2InnerVideoSource;
      InnerAudioSource = class;
      Arr1InnerAudioSource = array of InnerAudioSource;
      Arr2InnerAudioSource = array of Arr1InnerAudioSource;
      Arr3InnerAudioSource = array of Arr2InnerAudioSource;
      InnerOnInfoListener = interface external 'android.media' name 'OnInfoListener' 
        procedure onInfo(para1: AMMediaRecorder; para2: jint; para3: jint); overload;
      end;

      InnerOnErrorListener = interface external 'android.media' name 'OnErrorListener' 
        procedure onError(para1: AMMediaRecorder; para2: jint; para3: jint); overload;
      end;

      InnerVideoEncoder = class sealed external 'android.media' name 'VideoEncoder' 
      end;

      InnerAudioEncoder = class sealed external 'android.media' name 'AudioEncoder' 
      end;

      InnerOutputFormat = class sealed external 'android.media' name 'OutputFormat' 
      end;

      InnerVideoSource = class sealed external 'android.media' name 'VideoSource' 
      end;

      InnerAudioSource = class sealed external 'android.media' name 'AudioSource' 
      end;

  public
    const
      MEDIA_RECORDER_ERROR_UNKNOWN = 1;
      MEDIA_RECORDER_INFO_UNKNOWN = 1;
      MEDIA_RECORDER_INFO_MAX_DURATION_REACHED = 800;
      MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED = 801;
  public
    constructor create(); overload;
    procedure setCamera(para1: AHCamera); overload; virtual;
    procedure setPreviewDisplay(para1: AVSurface); overload; virtual;
    procedure setAudioSource(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    class function getAudioSourceMax(): jint; static; overload; final;
    procedure setVideoSource(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setProfile(para1: AMCamcorderProfile); overload; virtual;
    procedure setCaptureRate(para1: jdouble); overload; virtual;
    procedure setOrientationHint(para1: jint); overload; virtual;
    procedure setLocation(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setOutputFormat(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setVideoSize(para1: jint; para2: jint); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setVideoFrameRate(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setMaxDuration(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setMaxFileSize(para1: jlong); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setAudioEncoder(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setVideoEncoder(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setAudioSamplingRate(para1: jint); overload; virtual;
    procedure setAudioChannels(para1: jint); overload; virtual;
    procedure setAudioEncodingBitRate(para1: jint); overload; virtual;
    procedure setVideoEncodingBitRate(para1: jint); overload; virtual;
    procedure setAuxiliaryOutputFile(para1: JIFileDescriptor); overload; virtual;
    procedure setAuxiliaryOutputFile(para1: JLString); overload; virtual;
    procedure setOutputFile(para1: JIFileDescriptor); overload; virtual;  // throws java.lang.IllegalStateException
    procedure setOutputFile(para1: JLString); overload; virtual;  // throws java.lang.IllegalStateException
    procedure prepare(); overload; virtual;  // throws java.lang.IllegalStateException, java.io.IOException
    procedure start(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure stop(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure reset(); overload; virtual;
    function getMaxAmplitude(): jint; overload; virtual;  // throws java.lang.IllegalStateException
    procedure setOnErrorListener(para1: AMMediaRecorder.InnerOnErrorListener); overload; virtual;
    procedure setOnInfoListener(para1: AMMediaRecorder.InnerOnInfoListener); overload; virtual;
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  end;

  AMRemoteControlClient = class external 'android.media' name 'RemoteControlClient' (JLObject)
  public
    type
      InnerMetadataEditor = class;
      Arr1InnerMetadataEditor = array of InnerMetadataEditor;
      Arr2InnerMetadataEditor = array of Arr1InnerMetadataEditor;
      Arr3InnerMetadataEditor = array of Arr2InnerMetadataEditor;
      InnerMetadataEditor = class external 'android.media' name 'MetadataEditor' 
      end;

  public
    const
      PLAYSTATE_STOPPED = 1;
      PLAYSTATE_PAUSED = 2;
      PLAYSTATE_PLAYING = 3;
      PLAYSTATE_FAST_FORWARDING = 4;
      PLAYSTATE_REWINDING = 5;
      PLAYSTATE_SKIPPING_FORWARDS = 6;
      PLAYSTATE_SKIPPING_BACKWARDS = 7;
      PLAYSTATE_BUFFERING = 8;
      PLAYSTATE_ERROR = 9;
      FLAG_KEY_MEDIA_PREVIOUS = 1;
      FLAG_KEY_MEDIA_REWIND = 2;
      FLAG_KEY_MEDIA_PLAY = 4;
      FLAG_KEY_MEDIA_PLAY_PAUSE = 8;
      FLAG_KEY_MEDIA_PAUSE = 16;
      FLAG_KEY_MEDIA_STOP = 32;
      FLAG_KEY_MEDIA_FAST_FORWARD = 64;
      FLAG_KEY_MEDIA_NEXT = 128;
  public
    constructor create(para1: AAPendingIntent); overload;
    constructor create(para1: AAPendingIntent; para2: AOLooper); overload;
    function editMetadata(para1: jboolean): AMRemoteControlClient.InnerMetadataEditor; overload; virtual;
    procedure setPlaybackState(para1: jint); overload; virtual;
    procedure setTransportControlFlags(para1: jint); overload; virtual;
  end;

  AMRingtone = class external 'android.media' name 'Ringtone' (JLObject)
  public
    procedure setStreamType(para1: jint); overload; virtual;
    function getStreamType(): jint; overload; virtual;
    function getTitle(para1: ACContext): JLString; overload; virtual;
    procedure play(); overload; virtual;
    procedure stop(); overload; virtual;
    function isPlaying(): jboolean; overload; virtual;
  end;

  AMRingtoneManager = class external 'android.media' name 'RingtoneManager' (JLObject)
  public
    const
      TYPE_RINGTONE = 1;
      TYPE_NOTIFICATION = 2;
      TYPE_ALARM = 4;
      TYPE_ALL = 7;
      ACTION_RINGTONE_PICKER = 'android.intent.action.RINGTONE_PICKER';
      EXTRA_RINGTONE_SHOW_DEFAULT = 'android.intent.extra.ringtone.SHOW_DEFAULT';
      EXTRA_RINGTONE_SHOW_SILENT = 'android.intent.extra.ringtone.SHOW_SILENT';
      EXTRA_RINGTONE_INCLUDE_DRM = 'android.intent.extra.ringtone.INCLUDE_DRM';
      EXTRA_RINGTONE_EXISTING_URI = 'android.intent.extra.ringtone.EXISTING_URI';
      EXTRA_RINGTONE_DEFAULT_URI = 'android.intent.extra.ringtone.DEFAULT_URI';
      EXTRA_RINGTONE_TYPE = 'android.intent.extra.ringtone.TYPE';
      EXTRA_RINGTONE_TITLE = 'android.intent.extra.ringtone.TITLE';
      EXTRA_RINGTONE_PICKED_URI = 'android.intent.extra.ringtone.PICKED_URI';
      ID_COLUMN_INDEX = 0;
      TITLE_COLUMN_INDEX = 1;
      URI_COLUMN_INDEX = 2;
  public
    constructor create(para1: AAActivity); overload;
    constructor create(para1: ACContext); overload;
    procedure setType(para1: jint); overload; virtual;
    function inferStreamType(): jint; overload; virtual;
    procedure setStopPreviousRingtone(para1: jboolean); overload; virtual;
    function getStopPreviousRingtone(): jboolean; overload; virtual;
    procedure stopPreviousRingtone(); overload; virtual;
    function getIncludeDrm(): jboolean; overload; virtual;
    procedure setIncludeDrm(para1: jboolean); overload; virtual;
    function getCursor(): ADCursor; overload; virtual;
    function getRingtone(para1: jint): AMRingtone; overload; virtual;
    function getRingtoneUri(para1: jint): ANUri; overload; virtual;
    function getRingtonePosition(para1: ANUri): jint; overload; virtual;
    class function getValidRingtoneUri(para1: ACContext): ANUri; static; overload;
    class function getRingtone(para1: ACContext; para2: ANUri): AMRingtone; static; overload;
    class function getActualDefaultRingtoneUri(para1: ACContext; para2: jint): ANUri; static; overload;
    class procedure setActualDefaultRingtoneUri(para1: ACContext; para2: jint; para3: ANUri); static; overload;
    class function isDefault(para1: ANUri): jboolean; static; overload;
    class function getDefaultType(para1: ANUri): jint; static; overload;
    class function getDefaultUri(para1: jint): ANUri; static; overload;
  end;

  AMSoundPool = class external 'android.media' name 'SoundPool' (JLObject)
  public
    type
      InnerOnLoadCompleteListener = interface;
      Arr1InnerOnLoadCompleteListener = array of InnerOnLoadCompleteListener;
      Arr2InnerOnLoadCompleteListener = array of Arr1InnerOnLoadCompleteListener;
      Arr3InnerOnLoadCompleteListener = array of Arr2InnerOnLoadCompleteListener;
      InnerOnLoadCompleteListener = interface external 'android.media' name 'OnLoadCompleteListener' 
        procedure onLoadComplete(para1: AMSoundPool; para2: jint; para3: jint); overload;
      end;

  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    function load(para1: JLString; para2: jint): jint; overload; virtual;
    function load(para1: ACContext; para2: jint; para3: jint): jint; overload; virtual;
    function load(para1: ACRAssetFileDescriptor; para2: jint): jint; overload; virtual;
    function load(para1: JIFileDescriptor; para2: jlong; para3: jlong; para4: jint): jint; overload; virtual;
    function unload(para1: jint): jboolean; overload; virtual; final;
    function play(para1: jint; para2: jfloat; para3: jfloat; para4: jint; para5: jint; para6: jfloat): jint; overload; virtual; final;
    procedure pause(para1: jint); overload; virtual; final;
    procedure resume(para1: jint); overload; virtual; final;
    procedure autoPause(); overload; virtual; final;
    procedure autoResume(); overload; virtual; final;
    procedure stop(para1: jint); overload; virtual; final;
    procedure setVolume(para1: jint; para2: jfloat; para3: jfloat); overload; virtual; final;
    procedure setPriority(para1: jint; para2: jint); overload; virtual; final;
    procedure setLoop(para1: jint; para2: jint); overload; virtual; final;
    procedure setRate(para1: jint; para2: jfloat); overload; virtual; final;
    procedure setOnLoadCompleteListener(para1: AMSoundPool.InnerOnLoadCompleteListener); overload; virtual;
    procedure release(); overload; virtual; final;
  strict protected
    procedure finalize(); overload; virtual;
  end;

  AMThumbnailUtils = class external 'android.media' name 'ThumbnailUtils' (JLObject)
  public
    const
      OPTIONS_RECYCLE_INPUT = 2;
  public
    constructor create(); overload;
    class function createVideoThumbnail(para1: JLString; para2: jint): AGBitmap; static; overload;
    class function extractThumbnail(para1: AGBitmap; para2: jint; para3: jint): AGBitmap; static; overload;
    class function extractThumbnail(para1: AGBitmap; para2: jint; para3: jint; para4: jint): AGBitmap; static; overload;
  end;

  AMToneGenerator = class external 'android.media' name 'ToneGenerator' (JLObject)
  public
    const
      TONE_DTMF_0 = 0;
      TONE_DTMF_1 = 1;
      TONE_DTMF_2 = 2;
      TONE_DTMF_3 = 3;
      TONE_DTMF_4 = 4;
      TONE_DTMF_5 = 5;
      TONE_DTMF_6 = 6;
      TONE_DTMF_7 = 7;
      TONE_DTMF_8 = 8;
      TONE_DTMF_9 = 9;
      TONE_DTMF_S = 10;
      TONE_DTMF_P = 11;
      TONE_DTMF_A = 12;
      TONE_DTMF_B = 13;
      TONE_DTMF_C = 14;
      TONE_DTMF_D = 15;
      TONE_SUP_DIAL = 16;
      TONE_SUP_BUSY = 17;
      TONE_SUP_CONGESTION = 18;
      TONE_SUP_RADIO_ACK = 19;
      TONE_SUP_RADIO_NOTAVAIL = 20;
      TONE_SUP_ERROR = 21;
      TONE_SUP_CALL_WAITING = 22;
      TONE_SUP_RINGTONE = 23;
      TONE_PROP_BEEP = 24;
      TONE_PROP_ACK = 25;
      TONE_PROP_NACK = 26;
      TONE_PROP_PROMPT = 27;
      TONE_PROP_BEEP2 = 28;
      TONE_SUP_INTERCEPT = 29;
      TONE_SUP_INTERCEPT_ABBREV = 30;
      TONE_SUP_CONGESTION_ABBREV = 31;
      TONE_SUP_CONFIRM = 32;
      TONE_SUP_PIP = 33;
      TONE_CDMA_DIAL_TONE_LITE = 34;
      TONE_CDMA_NETWORK_USA_RINGBACK = 35;
      TONE_CDMA_INTERCEPT = 36;
      TONE_CDMA_ABBR_INTERCEPT = 37;
      TONE_CDMA_REORDER = 38;
      TONE_CDMA_ABBR_REORDER = 39;
      TONE_CDMA_NETWORK_BUSY = 40;
      TONE_CDMA_CONFIRM = 41;
      TONE_CDMA_ANSWER = 42;
      TONE_CDMA_NETWORK_CALLWAITING = 43;
      TONE_CDMA_PIP = 44;
      TONE_CDMA_CALL_SIGNAL_ISDN_NORMAL = 45;
      TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP = 46;
      TONE_CDMA_CALL_SIGNAL_ISDN_SP_PRI = 47;
      TONE_CDMA_CALL_SIGNAL_ISDN_PAT3 = 48;
      TONE_CDMA_CALL_SIGNAL_ISDN_PING_RING = 49;
      TONE_CDMA_CALL_SIGNAL_ISDN_PAT5 = 50;
      TONE_CDMA_CALL_SIGNAL_ISDN_PAT6 = 51;
      TONE_CDMA_CALL_SIGNAL_ISDN_PAT7 = 52;
      TONE_CDMA_HIGH_L = 53;
      TONE_CDMA_MED_L = 54;
      TONE_CDMA_LOW_L = 55;
      TONE_CDMA_HIGH_SS = 56;
      TONE_CDMA_MED_SS = 57;
      TONE_CDMA_LOW_SS = 58;
      TONE_CDMA_HIGH_SSL = 59;
      TONE_CDMA_MED_SSL = 60;
      TONE_CDMA_LOW_SSL = 61;
      TONE_CDMA_HIGH_SS_2 = 62;
      TONE_CDMA_MED_SS_2 = 63;
      TONE_CDMA_LOW_SS_2 = 64;
      TONE_CDMA_HIGH_SLS = 65;
      TONE_CDMA_MED_SLS = 66;
      TONE_CDMA_LOW_SLS = 67;
      TONE_CDMA_HIGH_S_X4 = 68;
      TONE_CDMA_MED_S_X4 = 69;
      TONE_CDMA_LOW_S_X4 = 70;
      TONE_CDMA_HIGH_PBX_L = 71;
      TONE_CDMA_MED_PBX_L = 72;
      TONE_CDMA_LOW_PBX_L = 73;
      TONE_CDMA_HIGH_PBX_SS = 74;
      TONE_CDMA_MED_PBX_SS = 75;
      TONE_CDMA_LOW_PBX_SS = 76;
      TONE_CDMA_HIGH_PBX_SSL = 77;
      TONE_CDMA_MED_PBX_SSL = 78;
      TONE_CDMA_LOW_PBX_SSL = 79;
      TONE_CDMA_HIGH_PBX_SLS = 80;
      TONE_CDMA_MED_PBX_SLS = 81;
      TONE_CDMA_LOW_PBX_SLS = 82;
      TONE_CDMA_HIGH_PBX_S_X4 = 83;
      TONE_CDMA_MED_PBX_S_X4 = 84;
      TONE_CDMA_LOW_PBX_S_X4 = 85;
      TONE_CDMA_ALERT_NETWORK_LITE = 86;
      TONE_CDMA_ALERT_AUTOREDIAL_LITE = 87;
      TONE_CDMA_ONE_MIN_BEEP = 88;
      TONE_CDMA_KEYPAD_VOLUME_KEY_LITE = 89;
      TONE_CDMA_PRESSHOLDKEY_LITE = 90;
      TONE_CDMA_ALERT_INCALL_LITE = 91;
      TONE_CDMA_EMERGENCY_RINGBACK = 92;
      TONE_CDMA_ALERT_CALL_GUARD = 93;
      TONE_CDMA_SOFT_ERROR_LITE = 94;
      TONE_CDMA_CALLDROP_LITE = 95;
      TONE_CDMA_NETWORK_BUSY_ONE_SHOT = 96;
      TONE_CDMA_ABBR_ALERT = 97;
      TONE_CDMA_SIGNAL_OFF = 98;
      MAX_VOLUME = 100;
      MIN_VOLUME = 0;
  public
    constructor create(para1: jint; para2: jint); overload;
    function startTone(para1: jint): jboolean; overload; virtual;
    function startTone(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure stopTone(); overload; virtual;
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  end;

  AMAAudioEffect = class external 'android.media.audiofx' name 'AudioEffect' (JLObject)
  public
    type
      InnerOnControlStatusChangeListener = interface;
      Arr1InnerOnControlStatusChangeListener = array of InnerOnControlStatusChangeListener;
      Arr2InnerOnControlStatusChangeListener = array of Arr1InnerOnControlStatusChangeListener;
      Arr3InnerOnControlStatusChangeListener = array of Arr2InnerOnControlStatusChangeListener;
      InnerOnEnableStatusChangeListener = interface;
      Arr1InnerOnEnableStatusChangeListener = array of InnerOnEnableStatusChangeListener;
      Arr2InnerOnEnableStatusChangeListener = array of Arr1InnerOnEnableStatusChangeListener;
      Arr3InnerOnEnableStatusChangeListener = array of Arr2InnerOnEnableStatusChangeListener;
      InnerDescriptor = class;
      Arr1InnerDescriptor = array of InnerDescriptor;
      Arr2InnerDescriptor = array of Arr1InnerDescriptor;
      Arr3InnerDescriptor = array of Arr2InnerDescriptor;
      InnerOnControlStatusChangeListener = interface external 'android.media.audiofx' name 'OnControlStatusChangeListener' 
        procedure onControlStatusChange(para1: AMAAudioEffect; para2: jboolean); overload;
      end;

      InnerOnEnableStatusChangeListener = interface external 'android.media.audiofx' name 'OnEnableStatusChangeListener' 
        procedure onEnableStatusChange(para1: AMAAudioEffect; para2: jboolean); overload;
      end;

      InnerDescriptor = class external 'android.media.audiofx' name 'Descriptor' (JLObject)
      public
        var
          ftype: JUUUID; external name 'type';
          fuuid: JUUUID; external name 'uuid';
          fconnectMode: JLString; external name 'connectMode';
          fname: JLString; external name 'name';
          fimplementor: JLString; external name 'implementor';
      public
        constructor create(); overload;
        constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload;
      end;

  public
    const
      SUCCESS = 0;
      ERROR = -1;
      ALREADY_EXISTS = -2;
      ERROR_NO_INIT = -3;
      ERROR_BAD_VALUE = -4;
      ERROR_INVALID_OPERATION = -5;
      ERROR_NO_MEMORY = -6;
      ERROR_DEAD_OBJECT = -7;
      EFFECT_INSERT = 'Insert';
      EFFECT_AUXILIARY = 'Auxiliary';
      ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL = 'android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL';
      ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION = 'android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION';
      ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION = 'android.media.action.CLOSE_AUDIO_EFFECT_CONTROL_SESSION';
      EXTRA_AUDIO_SESSION = 'android.media.extra.AUDIO_SESSION';
      EXTRA_PACKAGE_NAME = 'android.media.extra.PACKAGE_NAME';
      EXTRA_CONTENT_TYPE = 'android.media.extra.CONTENT_TYPE';
      CONTENT_TYPE_MUSIC = 0;
      CONTENT_TYPE_MOVIE = 1;
      CONTENT_TYPE_GAME = 2;
      CONTENT_TYPE_VOICE = 3;
  public
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    function getDescriptor(): AMAAudioEffect.InnerDescriptor; overload; virtual;  // throws java.lang.IllegalStateException
    class function queryEffects(): AMAAudioEffect.Arr1InnerDescriptor; static; overload;
    function setEnabled(para1: jboolean): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getId(): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getEnabled(): jboolean; overload; virtual;  // throws java.lang.IllegalStateException
    function hasControl(): jboolean; overload; virtual;  // throws java.lang.IllegalStateException
    procedure setEnableStatusListener(para1: AMAAudioEffect.InnerOnEnableStatusChangeListener); overload; virtual;
    procedure setControlStatusListener(para1: AMAAudioEffect.InnerOnControlStatusChangeListener); overload; virtual;
  end;

  AMAVisualizer = class external 'android.media.audiofx' name 'Visualizer' (JLObject)
  public
    type
      InnerOnDataCaptureListener = interface;
      Arr1InnerOnDataCaptureListener = array of InnerOnDataCaptureListener;
      Arr2InnerOnDataCaptureListener = array of Arr1InnerOnDataCaptureListener;
      Arr3InnerOnDataCaptureListener = array of Arr2InnerOnDataCaptureListener;
      InnerOnDataCaptureListener = interface external 'android.media.audiofx' name 'OnDataCaptureListener' 
        procedure onWaveFormDataCapture(para1: AMAVisualizer; para2: Arr1jbyte; para3: jint); overload;
        procedure onWaveFormDataCapture(para1: AMAVisualizer; var para2: array of jbyte; para3: jint); overload;
        procedure onFftDataCapture(para1: AMAVisualizer; para2: Arr1jbyte; para3: jint); overload;
        procedure onFftDataCapture(para1: AMAVisualizer; var para2: array of jbyte; para3: jint); overload;
      end;

  public
    const
      STATE_UNINITIALIZED = 0;
      STATE_INITIALIZED = 1;
      STATE_ENABLED = 2;
      SUCCESS = 0;
      ERROR = -1;
      ALREADY_EXISTS = -2;
      ERROR_NO_INIT = -3;
      ERROR_BAD_VALUE = -4;
      ERROR_INVALID_OPERATION = -5;
      ERROR_NO_MEMORY = -6;
      ERROR_DEAD_OBJECT = -7;
  public
    constructor create(para1: jint); overload;  // throws java.lang.UnsupportedOperationException, java.lang.RuntimeException
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    function setEnabled(para1: jboolean): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getEnabled(): jboolean; overload; virtual;
    class function getCaptureSizeRange(): Arr1jint; static; overload;
    class function getMaxCaptureRate(): jint; static; overload;
    function setCaptureSize(para1: jint): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getCaptureSize(): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getSamplingRate(): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getWaveForm(para1: Arr1jbyte): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getWaveForm(var para1: array of jbyte): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getFft(para1: Arr1jbyte): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function getFft(var para1: array of jbyte): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function setDataCaptureListener(para1: AMAVisualizer.InnerOnDataCaptureListener; para2: jint; para3: jboolean; para4: jboolean): jint; overload; virtual;
  end;

  AMEEffect = class abstract external 'android.media.effect' name 'Effect' (JLObject)
  public
    constructor create(); overload;
    function getName(): JLString; overload; virtual; abstract;
    procedure apply(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure setParameter(para1: JLString; para2: JLObject); overload; virtual; abstract;
    procedure setUpdateListener(para1: AMEEffectUpdateListener); overload; virtual;
    procedure release(); overload; virtual; abstract;
  end;

  AMEEffectContext = class external 'android.media.effect' name 'EffectContext' (JLObject)
  public
    class function createWithCurrentGlContext(): AMEEffectContext; static; overload;
    function getFactory(): AMEEffectFactory; overload; virtual;
    procedure release(); overload; virtual;
  end;

  AMEEffectFactory = class external 'android.media.effect' name 'EffectFactory' (JLObject)
  public
    const
      EFFECT_BRIGHTNESS = 'android.media.effect.effects.BrightnessEffect';
      EFFECT_CONTRAST = 'android.media.effect.effects.ContrastEffect';
      EFFECT_FISHEYE = 'android.media.effect.effects.FisheyeEffect';
      EFFECT_BACKDROPPER = 'android.media.effect.effects.BackDropperEffect';
      EFFECT_AUTOFIX = 'android.media.effect.effects.AutoFixEffect';
      EFFECT_BLACKWHITE = 'android.media.effect.effects.BlackWhiteEffect';
      EFFECT_CROP = 'android.media.effect.effects.CropEffect';
      EFFECT_CROSSPROCESS = 'android.media.effect.effects.CrossProcessEffect';
      EFFECT_DOCUMENTARY = 'android.media.effect.effects.DocumentaryEffect';
      EFFECT_BITMAPOVERLAY = 'android.media.effect.effects.BitmapOverlayEffect';
      EFFECT_DUOTONE = 'android.media.effect.effects.DuotoneEffect';
      EFFECT_FILLLIGHT = 'android.media.effect.effects.FillLightEffect';
      EFFECT_FLIP = 'android.media.effect.effects.FlipEffect';
      EFFECT_GRAIN = 'android.media.effect.effects.GrainEffect';
      EFFECT_GRAYSCALE = 'android.media.effect.effects.GrayscaleEffect';
      EFFECT_LOMOISH = 'android.media.effect.effects.LomoishEffect';
      EFFECT_NEGATIVE = 'android.media.effect.effects.NegativeEffect';
      EFFECT_POSTERIZE = 'android.media.effect.effects.PosterizeEffect';
      EFFECT_REDEYE = 'android.media.effect.effects.RedEyeEffect';
      EFFECT_ROTATE = 'android.media.effect.effects.RotateEffect';
      EFFECT_SATURATE = 'android.media.effect.effects.SaturateEffect';
      EFFECT_SEPIA = 'android.media.effect.effects.SepiaEffect';
      EFFECT_SHARPEN = 'android.media.effect.effects.SharpenEffect';
      EFFECT_STRAIGHTEN = 'android.media.effect.effects.StraightenEffect';
      EFFECT_TEMPERATURE = 'android.media.effect.effects.ColorTemperatureEffect';
      EFFECT_TINT = 'android.media.effect.effects.TintEffect';
      EFFECT_VIGNETTE = 'android.media.effect.effects.VignetteEffect';
  public
    function createEffect(para1: JLString): AMEEffect; overload; virtual;
    class function isEffectSupported(para1: JLString): jboolean; static; overload;
  end;

  AMEEffectUpdateListener = interface external 'android.media.effect' name 'EffectUpdateListener' 
    procedure onEffectUpdated(para1: AMEEffect; para2: JLObject); overload;
  end;

  AMMtpConstants = class sealed external 'android.mtp' name 'MtpConstants' (JLObject)
  public
    const
      FORMAT_UNDEFINED = 12288;
      FORMAT_ASSOCIATION = 12289;
      FORMAT_SCRIPT = 12290;
      FORMAT_EXECUTABLE = 12291;
      FORMAT_TEXT = 12292;
      FORMAT_HTML = 12293;
      FORMAT_DPOF = 12294;
      FORMAT_AIFF = 12295;
      FORMAT_WAV = 12296;
      FORMAT_MP3 = 12297;
      FORMAT_AVI = 12298;
      FORMAT_MPEG = 12299;
      FORMAT_ASF = 12300;
      FORMAT_EXIF_JPEG = 14337;
      FORMAT_TIFF_EP = 14338;
      FORMAT_BMP = 14340;
      FORMAT_GIF = 14343;
      FORMAT_JFIF = 14344;
      FORMAT_PICT = 14346;
      FORMAT_PNG = 14347;
      FORMAT_TIFF = 14349;
      FORMAT_JP2 = 14351;
      FORMAT_JPX = 14352;
      FORMAT_UNDEFINED_FIRMWARE = 47106;
      FORMAT_WINDOWS_IMAGE_FORMAT = 47233;
      FORMAT_UNDEFINED_AUDIO = 47360;
      FORMAT_WMA = 47361;
      FORMAT_OGG = 47362;
      FORMAT_AAC = 47363;
      FORMAT_AUDIBLE = 47364;
      FORMAT_FLAC = 47366;
      FORMAT_UNDEFINED_VIDEO = 47488;
      FORMAT_WMV = 47489;
      FORMAT_MP4_CONTAINER = 47490;
      FORMAT_MP2 = 47491;
      FORMAT_3GP_CONTAINER = 47492;
      FORMAT_UNDEFINED_COLLECTION = 47616;
      FORMAT_ABSTRACT_MULTIMEDIA_ALBUM = 47617;
      FORMAT_ABSTRACT_IMAGE_ALBUM = 47618;
      FORMAT_ABSTRACT_AUDIO_ALBUM = 47619;
      FORMAT_ABSTRACT_VIDEO_ALBUM = 47620;
      FORMAT_ABSTRACT_AV_PLAYLIST = 47621;
      FORMAT_ABSTRACT_AUDIO_PLAYLIST = 47625;
      FORMAT_ABSTRACT_VIDEO_PLAYLIST = 47626;
      FORMAT_ABSTRACT_MEDIACAST = 47627;
      FORMAT_WPL_PLAYLIST = 47632;
      FORMAT_M3U_PLAYLIST = 47633;
      FORMAT_MPL_PLAYLIST = 47634;
      FORMAT_ASX_PLAYLIST = 47635;
      FORMAT_PLS_PLAYLIST = 47636;
      FORMAT_UNDEFINED_DOCUMENT = 47744;
      FORMAT_ABSTRACT_DOCUMENT = 47745;
      FORMAT_XML_DOCUMENT = 47746;
      FORMAT_MS_WORD_DOCUMENT = 47747;
      FORMAT_MS_EXCEL_SPREADSHEET = 47749;
      FORMAT_MS_POWERPOINT_PRESENTATION = 47750;
      PROTECTION_STATUS_NONE = 0;
      PROTECTION_STATUS_READ_ONLY = 32769;
      PROTECTION_STATUS_READ_ONLY_DATA = 32770;
      PROTECTION_STATUS_NON_TRANSFERABLE_DATA = 32771;
      ASSOCIATION_TYPE_GENERIC_FOLDER = 1;
  public
    constructor create(); overload;
    class function isAbstractObject(para1: jint): jboolean; static; overload;
  end;

  AMMtpDevice = class sealed external 'android.mtp' name 'MtpDevice' (JLObject)
  public
    constructor create(para1: AHUUsbDevice); overload;
    function open(para1: AHUUsbDeviceConnection): jboolean; overload; virtual;
    procedure close(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function getDeviceName(): JLString; overload; virtual;
    function getDeviceId(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getDeviceInfo(): AMMtpDeviceInfo; overload; virtual;
    function getStorageIds(): Arr1jint; overload; virtual;
    function getObjectHandles(para1: jint; para2: jint; para3: jint): Arr1jint; overload; virtual;
    function getObject(para1: jint; para2: jint): Arr1jbyte; overload; virtual;
    function getThumbnail(para1: jint): Arr1jbyte; overload; virtual;
    function getStorageInfo(para1: jint): AMMtpStorageInfo; overload; virtual;
    function getObjectInfo(para1: jint): AMMtpObjectInfo; overload; virtual;
    function deleteObject(para1: jint): jboolean; overload; virtual;
    function getParent(para1: jint): jlong; overload; virtual;
    function getStorageId(para1: jint): jlong; overload; virtual;
    function importFile(para1: jint; para2: JLString): jboolean; overload; virtual;
  end;

  AMMtpDeviceInfo = class external 'android.mtp' name 'MtpDeviceInfo' (JLObject)
  public
    function getManufacturer(): JLString; overload; virtual; final;
    function getModel(): JLString; overload; virtual; final;
    function getVersion(): JLString; overload; virtual; final;
    function getSerialNumber(): JLString; overload; virtual; final;
  end;

  AMMtpObjectInfo = class sealed external 'android.mtp' name 'MtpObjectInfo' (JLObject)
  public
    function getObjectHandle(): jint; overload; virtual; final;
    function getStorageId(): jint; overload; virtual; final;
    function getFormat(): jint; overload; virtual; final;
    function getProtectionStatus(): jint; overload; virtual; final;
    function getCompressedSize(): jint; overload; virtual; final;
    function getThumbFormat(): jint; overload; virtual; final;
    function getThumbCompressedSize(): jint; overload; virtual; final;
    function getThumbPixWidth(): jint; overload; virtual; final;
    function getThumbPixHeight(): jint; overload; virtual; final;
    function getImagePixWidth(): jint; overload; virtual; final;
    function getImagePixHeight(): jint; overload; virtual; final;
    function getImagePixDepth(): jint; overload; virtual; final;
    function getParent(): jint; overload; virtual; final;
    function getAssociationType(): jint; overload; virtual; final;
    function getAssociationDesc(): jint; overload; virtual; final;
    function getSequenceNumber(): jint; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function getDateCreated(): jlong; overload; virtual; final;
    function getDateModified(): jlong; overload; virtual; final;
    function getKeywords(): JLString; overload; virtual; final;
  end;

  AMMtpStorageInfo = class sealed external 'android.mtp' name 'MtpStorageInfo' (JLObject)
  public
    function getStorageId(): jint; overload; virtual; final;
    function getMaxCapacity(): jlong; overload; virtual; final;
    function getFreeSpace(): jlong; overload; virtual; final;
    function getDescription(): JLString; overload; virtual; final;
    function getVolumeIdentifier(): JLString; overload; virtual; final;
  end;

  ANConnectivityManager = class external 'android.net' name 'ConnectivityManager' (JLObject)
  public
    const
      CONNECTIVITY_ACTION = 'android.net.conn.CONNECTIVITY_CHANGE';
      EXTRA_NETWORK_INFO = 'networkInfo';
      EXTRA_IS_FAILOVER = 'isFailover';
      EXTRA_OTHER_NETWORK_INFO = 'otherNetwork';
      EXTRA_NO_CONNECTIVITY = 'noConnectivity';
      EXTRA_REASON = 'reason';
      EXTRA_EXTRA_INFO = 'extraInfo';
      ACTION_BACKGROUND_DATA_SETTING_CHANGED = 'android.net.conn.BACKGROUND_DATA_SETTING_CHANGED';
      TYPE_MOBILE = 0;
      TYPE_WIFI = 1;
      TYPE_MOBILE_MMS = 2;
      TYPE_MOBILE_SUPL = 3;
      TYPE_MOBILE_DUN = 4;
      TYPE_MOBILE_HIPRI = 5;
      TYPE_WIMAX = 6;
      TYPE_BLUETOOTH = 7;
      TYPE_DUMMY = 8;
      TYPE_ETHERNET = 9;
      DEFAULT_NETWORK_PREFERENCE = 1;
  public
    class function isNetworkTypeValid(para1: jint): jboolean; static; overload;
    procedure setNetworkPreference(para1: jint); overload; virtual;
    function getNetworkPreference(): jint; overload; virtual;
    function getActiveNetworkInfo(): ANNetworkInfo; overload; virtual;
    function getNetworkInfo(para1: jint): ANNetworkInfo; overload; virtual;
    function getAllNetworkInfo(): Arr1ANNetworkInfo; overload; virtual;
    function startUsingNetworkFeature(para1: jint; para2: JLString): jint; overload; virtual;
    function stopUsingNetworkFeature(para1: jint; para2: JLString): jint; overload; virtual;
    function requestRouteToHost(para1: jint; para2: jint): jboolean; overload; virtual;
    function getBackgroundDataSetting(): jboolean; overload; virtual;
  end;

  ANCredentials = class external 'android.net' name 'Credentials' (JLObject)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    function getPid(): jint; overload; virtual;
    function getUid(): jint; overload; virtual;
    function getGid(): jint; overload; virtual;
  end;

  ANLocalServerSocket = class external 'android.net' name 'LocalServerSocket' (JLObject)
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JIFileDescriptor); overload;  // throws java.io.IOException
    function getLocalSocketAddress(): ANLocalSocketAddress; overload; virtual;
    function accept(): ANLocalSocket; overload; virtual;  // throws java.io.IOException
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  ANLocalSocket = class external 'android.net' name 'LocalSocket' (JLObject)
  public
    constructor create(); overload;
    function toString(): JLString; overload; virtual;
    procedure connect(para1: ANLocalSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure bind(para1: ANLocalSocketAddress); overload; virtual;  // throws java.io.IOException
    function getLocalSocketAddress(): ANLocalSocketAddress; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.io.IOException
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.io.IOException
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.io.IOException
    function getSoTimeout(): jint; overload; virtual;  // throws java.io.IOException
    procedure setSendBufferSize(para1: jint); overload; virtual;  // throws java.io.IOException
    function getSendBufferSize(): jint; overload; virtual;  // throws java.io.IOException
    function getRemoteSocketAddress(): ANLocalSocketAddress; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isOutputShutdown(): jboolean; overload; virtual;
    function isInputShutdown(): jboolean; overload; virtual;
    procedure connect(para1: ANLocalSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure setFileDescriptorsForSend(para1: Arr1JIFileDescriptor); overload; virtual;
    procedure setFileDescriptorsForSend(var para1: array of JIFileDescriptor); overload; virtual;
    function getAncillaryFileDescriptors(): Arr1JIFileDescriptor; overload; virtual;  // throws java.io.IOException
    function getPeerCredentials(): ANCredentials; overload; virtual;  // throws java.io.IOException
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
  end;

  ANMailTo = class external 'android.net' name 'MailTo' (JLObject)
  public
    const
      MAILTO_SCHEME = 'mailto:';
  public
    class function isMailTo(para1: JLString): jboolean; static; overload;
    class function parse(para1: JLString): ANMailTo; static; overload;  // throws android.net.ParseException
    function getTo(): JLString; overload; virtual;
    function getCc(): JLString; overload; virtual;
    function getSubject(): JLString; overload; virtual;
    function getBody(): JLString; overload; virtual;
    function getHeaders(): JUMap; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ANProxy = class sealed external 'android.net' name 'Proxy' (JLObject)
  public
    const
      PROXY_CHANGE_ACTION = 'android.intent.action.PROXY_CHANGE';
  public
    constructor create(); overload;
    class function getHost(para1: ACContext): JLString; static; overload; final;
    class function getPort(para1: ACContext): jint; static; overload; final;
    class function getDefaultHost(): JLString; static; overload; final;
    class function getDefaultPort(): jint; static; overload; final;
  end;

  ANSSLSessionCache = class sealed external 'android.net' name 'SSLSessionCache' (JLObject)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.IOException
    constructor create(para1: ACContext); overload;
  end;

  ANTrafficStats = class external 'android.net' name 'TrafficStats' (JLObject)
  public
    const
      UNSUPPORTED = -1;
  public
    constructor create(); overload;
    class procedure setThreadStatsTag(para1: jint); static; overload;
    class function getThreadStatsTag(): jint; static; overload;
    class procedure clearThreadStatsTag(); static; overload;
    class procedure tagSocket(para1: JNSocket); static; overload;  // throws java.net.SocketException
    class procedure untagSocket(para1: JNSocket); static; overload;  // throws java.net.SocketException
    class procedure incrementOperationCount(para1: jint); static; overload;
    class procedure incrementOperationCount(para1: jint; para2: jint); static; overload;
    class function getMobileTxPackets(): jlong; static; overload;
    class function getMobileRxPackets(): jlong; static; overload;
    class function getMobileTxBytes(): jlong; static; overload;
    class function getMobileRxBytes(): jlong; static; overload;
    class function getTotalTxPackets(): jlong; static; overload;
    class function getTotalRxPackets(): jlong; static; overload;
    class function getTotalTxBytes(): jlong; static; overload;
    class function getTotalRxBytes(): jlong; static; overload;
    class function getUidTxBytes(para1: jint): jlong; static; overload;
    class function getUidRxBytes(para1: jint): jlong; static; overload;
    class function getUidTxPackets(para1: jint): jlong; static; overload;
    class function getUidRxPackets(para1: jint): jlong; static; overload;
    class function getUidTcpTxBytes(para1: jint): jlong; static; overload;
    class function getUidTcpRxBytes(para1: jint): jlong; static; overload;
    class function getUidUdpTxBytes(para1: jint): jlong; static; overload;
    class function getUidUdpRxBytes(para1: jint): jlong; static; overload;
    class function getUidTcpTxSegments(para1: jint): jlong; static; overload;
    class function getUidTcpRxSegments(para1: jint): jlong; static; overload;
    class function getUidUdpTxPackets(para1: jint): jlong; static; overload;
    class function getUidUdpRxPackets(para1: jint): jlong; static; overload;
  end;

  ANUrlQuerySanitizer = class external 'android.net' name 'UrlQuerySanitizer' (JLObject)
  public
    type
      InnerValueSanitizer = interface;
      Arr1InnerValueSanitizer = array of InnerValueSanitizer;
      Arr2InnerValueSanitizer = array of Arr1InnerValueSanitizer;
      Arr3InnerValueSanitizer = array of Arr2InnerValueSanitizer;
      InnerParameterValuePair = class;
      Arr1InnerParameterValuePair = array of InnerParameterValuePair;
      Arr2InnerParameterValuePair = array of Arr1InnerParameterValuePair;
      Arr3InnerParameterValuePair = array of Arr2InnerParameterValuePair;
      InnerIllegalCharacterValueSanitizer = class;
      Arr1InnerIllegalCharacterValueSanitizer = array of InnerIllegalCharacterValueSanitizer;
      Arr2InnerIllegalCharacterValueSanitizer = array of Arr1InnerIllegalCharacterValueSanitizer;
      Arr3InnerIllegalCharacterValueSanitizer = array of Arr2InnerIllegalCharacterValueSanitizer;
      InnerValueSanitizer = interface external 'android.net' name 'ValueSanitizer' 
        function sanitize(para1: JLString): JLString; overload;
      end;

      InnerParameterValuePair = class external 'android.net' name 'ParameterValuePair' 
      end;

      InnerIllegalCharacterValueSanitizer = class external 'android.net' name 'IllegalCharacterValueSanitizer' (JLObject, ANUrlQuerySanitizer.InnerValueSanitizer)
      public
        const
          SPACE_OK = 1;
          OTHER_WHITESPACE_OK = 2;
          NON_7_BIT_ASCII_OK = 4;
          DQUOTE_OK = 8;
          SQUOTE_OK = 16;
          LT_OK = 32;
          GT_OK = 64;
          AMP_OK = 128;
          PCT_OK = 256;
          NUL_OK = 512;
          SCRIPT_URL_OK = 1024;
          ALL_OK = 2047;
          ALL_WHITESPACE_OK = 3;
          ALL_ILLEGAL = 0;
          ALL_BUT_NUL_LEGAL = 1535;
          ALL_BUT_WHITESPACE_LEGAL = 1532;
          URL_LEGAL = 404;
          URL_AND_SPACE_LEGAL = 405;
          AMP_LEGAL = 128;
          AMP_AND_SPACE_LEGAL = 129;
          SPACE_LEGAL = 1;
          ALL_BUT_NUL_AND_ANGLE_BRACKETS_LEGAL = 1439;
      public
        constructor create(para1: jint); overload;
        function sanitize(para1: JLString): JLString; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getUnregisteredParameterValueSanitizer(): ANUrlQuerySanitizer.InnerValueSanitizer; overload; virtual;
    procedure setUnregisteredParameterValueSanitizer(para1: ANUrlQuerySanitizer.InnerValueSanitizer); overload; virtual;
    class function getAllIllegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getAllButNulLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getAllButWhitespaceLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getUrlLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getUrlAndSpaceLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getAmpLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getAmpAndSpaceLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getSpaceLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    class function getAllButNulAndAngleBracketsLegal(): ANUrlQuerySanitizer.InnerValueSanitizer; static; overload; final;
    procedure parseUrl(para1: JLString); overload; virtual;
    procedure parseQuery(para1: JLString); overload; virtual;
    function getParameterSet(): JUSet; overload; virtual;
    function getParameterList(): JUList; overload; virtual;
    function hasParameter(para1: JLString): jboolean; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
    procedure registerParameter(para1: JLString; para2: ANUrlQuerySanitizer.InnerValueSanitizer); overload; virtual;
    procedure registerParameters(para1: Arr1JLString; para2: ANUrlQuerySanitizer.InnerValueSanitizer); overload; virtual;
    procedure registerParameters(var para1: array of JLString; para2: ANUrlQuerySanitizer.InnerValueSanitizer); overload; virtual;
    procedure setAllowUnregisteredParamaters(para1: jboolean); overload; virtual;
    function getAllowUnregisteredParamaters(): jboolean; overload; virtual;
    procedure setPreferFirstRepeatedParameter(para1: jboolean); overload; virtual;
    function getPreferFirstRepeatedParameter(): jboolean; overload; virtual;
  strict protected
    procedure parseEntry(para1: JLString; para2: JLString); overload; virtual;
    procedure addSanitizedEntry(para1: JLString; para2: JLString); overload; virtual;
  public
    function getValueSanitizer(para1: JLString): ANUrlQuerySanitizer.InnerValueSanitizer; overload; virtual;
    function getEffectiveValueSanitizer(para1: JLString): ANUrlQuerySanitizer.InnerValueSanitizer; overload; virtual;
    function unescape(para1: JLString): JLString; overload; virtual;
  strict protected
    function isHexDigit(para1: jchar): jboolean; overload; virtual;
    function decodeHexDigit(para1: jchar): jint; overload; virtual;
    procedure clear(); overload; virtual;
  end;

  ANHSslCertificate = class external 'android.net.http' name 'SslCertificate' (JLObject)
  public
    type
      InnerDName = class;
      Arr1InnerDName = array of InnerDName;
      Arr2InnerDName = array of Arr1InnerDName;
      Arr3InnerDName = array of Arr2InnerDName;
      InnerDName = class external 'android.net.http' name 'DName' 
      end;

  public
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JUDate; para4: JUDate); overload;
    constructor create(para1: JSCX509Certificate); overload;
    class function saveState(para1: ANHSslCertificate): AOBundle; static; overload;
    class function restoreState(para1: AOBundle): ANHSslCertificate; static; overload;
    function getValidNotBeforeDate(): JUDate; overload; virtual;
    function getValidNotBefore(): JLString; overload; virtual;
    function getValidNotAfterDate(): JUDate; overload; virtual;
    function getValidNotAfter(): JLString; overload; virtual;
    function getIssuedTo(): ANHSslCertificate.InnerDName; overload; virtual;
    function getIssuedBy(): ANHSslCertificate.InnerDName; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ANHSslError = class external 'android.net.http' name 'SslError' (JLObject)
  public
    const
      SSL_NOTYETVALID = 0;
      SSL_EXPIRED = 1;
      SSL_IDMISMATCH = 2;
      SSL_UNTRUSTED = 3;
      SSL_DATE_INVALID = 4;
      SSL_INVALID = 5;
      SSL_MAX_ERROR = 6;
  public
    constructor create(para1: jint; para2: ANHSslCertificate); overload;
    constructor create(para1: jint; para2: JSCX509Certificate); overload;
    constructor create(para1: jint; para2: ANHSslCertificate; para3: JLString); overload;
    constructor create(para1: jint; para2: JSCX509Certificate; para3: JLString); overload;
    function getCertificate(): ANHSslCertificate; overload; virtual;
    function getUrl(): JLString; overload; virtual;
    function addError(para1: jint): jboolean; overload; virtual;
    function hasError(para1: jint): jboolean; overload; virtual;
    function getPrimaryError(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ANRAudioCodec = class external 'android.net.rtp' name 'AudioCodec' (JLObject)
  public
    final var
      ftype: jint; external name 'type';
      frtpmap: JLString; external name 'rtpmap';
      ffmtp: JLString; external name 'fmtp';
  public
    final class var
      fPCMU: ANRAudioCodec; external name 'PCMU';
      fPCMA: ANRAudioCodec; external name 'PCMA';
      fGSM: ANRAudioCodec; external name 'GSM';
      fGSM_EFR: ANRAudioCodec; external name 'GSM_EFR';
      fAMR: ANRAudioCodec; external name 'AMR';
  public
    class function getCodecs(): Arr1ANRAudioCodec; static; overload;
    class function getCodec(para1: jint; para2: JLString; para3: JLString): ANRAudioCodec; static; overload;
  end;

  ANRAudioGroup = class external 'android.net.rtp' name 'AudioGroup' (JLObject)
  public
    const
      MODE_ON_HOLD = 0;
      MODE_MUTED = 1;
      MODE_NORMAL = 2;
      MODE_ECHO_SUPPRESSION = 3;
  public
    constructor create(); overload;
    function getStreams(): Arr1ANRAudioStream; overload; virtual;
    function getMode(): jint; overload; virtual;
    procedure setMode(para1: jint); overload; virtual;
    procedure sendDtmf(para1: jint); overload; virtual;
    procedure clear(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  ANRRtpStream = class external 'android.net.rtp' name 'RtpStream' (JLObject)
  public
    const
      MODE_NORMAL = 0;
      MODE_SEND_ONLY = 1;
      MODE_RECEIVE_ONLY = 2;
  public
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getRemoteAddress(): JNInetAddress; overload; virtual;
    function getRemotePort(): jint; overload; virtual;
    function isBusy(): jboolean; overload; virtual;
    function getMode(): jint; overload; virtual;
    procedure setMode(para1: jint); overload; virtual;
    procedure associate(para1: JNInetAddress; para2: jint); overload; virtual;
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  ANSSipAudioCall = class external 'android.net.sip' name 'SipAudioCall' (JLObject)
  public
    type
      InnerListener = class;
      Arr1InnerListener = array of InnerListener;
      Arr2InnerListener = array of Arr1InnerListener;
      Arr3InnerListener = array of Arr2InnerListener;
      InnerListener = class external 'android.net.sip' name 'Listener' (JLObject)
      public
        constructor create(); overload;
        procedure onReadyToCall(para1: ANSSipAudioCall); overload; virtual;
        procedure onCalling(para1: ANSSipAudioCall); overload; virtual;
        procedure onRinging(para1: ANSSipAudioCall; para2: ANSSipProfile); overload; virtual;
        procedure onRingingBack(para1: ANSSipAudioCall); overload; virtual;
        procedure onCallEstablished(para1: ANSSipAudioCall); overload; virtual;
        procedure onCallEnded(para1: ANSSipAudioCall); overload; virtual;
        procedure onCallBusy(para1: ANSSipAudioCall); overload; virtual;
        procedure onCallHeld(para1: ANSSipAudioCall); overload; virtual;
        procedure onError(para1: ANSSipAudioCall; para2: jint; para3: JLString); overload; virtual;
        procedure onChanged(para1: ANSSipAudioCall); overload; virtual;
      end;

  public
    constructor create(para1: ACContext; para2: ANSSipProfile); overload;
    procedure setListener(para1: ANSSipAudioCall.InnerListener); overload; virtual;
    procedure setListener(para1: ANSSipAudioCall.InnerListener; para2: jboolean); overload; virtual;
    function isInCall(): jboolean; overload; virtual;
    function isOnHold(): jboolean; overload; virtual;
    procedure close(); overload; virtual;
    function getLocalProfile(): ANSSipProfile; overload; virtual;
    function getPeerProfile(): ANSSipProfile; overload; virtual;
    function getState(): jint; overload; virtual;
    procedure attachCall(para1: ANSSipSession; para2: JLString); overload; virtual;  // throws android.net.sip.SipException
    procedure makeCall(para1: ANSSipProfile; para2: ANSSipSession; para3: jint); overload; virtual;  // throws android.net.sip.SipException
    procedure endCall(); overload; virtual;  // throws android.net.sip.SipException
    procedure holdCall(para1: jint); overload; virtual;  // throws android.net.sip.SipException
    procedure answerCall(para1: jint); overload; virtual;  // throws android.net.sip.SipException
    procedure continueCall(para1: jint); overload; virtual;  // throws android.net.sip.SipException
    procedure toggleMute(); overload; virtual;
    function isMuted(): jboolean; overload; virtual;
    procedure setSpeakerMode(para1: jboolean); overload; virtual;
    procedure sendDtmf(para1: jint); overload; virtual;
    procedure sendDtmf(para1: jint; para2: AOMessage); overload; virtual;
    procedure startAudio(); overload; virtual;
  end;

  ANSSipErrorCode = class external 'android.net.sip' name 'SipErrorCode' (JLObject)
  public
    const
      NO_ERROR = 0;
      SOCKET_ERROR = -1;
      SERVER_ERROR = -2;
      TRANSACTION_TERMINTED = -3;
      CLIENT_ERROR = -4;
      TIME_OUT = -5;
      INVALID_REMOTE_URI = -6;
      PEER_NOT_REACHABLE = -7;
      INVALID_CREDENTIALS = -8;
      IN_PROGRESS = -9;
      DATA_CONNECTION_LOST = -10;
      CROSS_DOMAIN_AUTHENTICATION = -11;
      SERVER_UNREACHABLE = -12;
  public
    class function toString(para1: jint): JLString; static; overload;
  end;

  ANSSipRegistrationListener = interface external 'android.net.sip' name 'SipRegistrationListener' 
    procedure onRegistering(para1: JLString); overload;
    procedure onRegistrationDone(para1: JLString; para2: jlong); overload;
    procedure onRegistrationFailed(para1: JLString; para2: jint; para3: JLString); overload;
  end;

  ANSSipSession = class sealed external 'android.net.sip' name 'SipSession' (JLObject)
  public
    type
      InnerListener = class;
      Arr1InnerListener = array of InnerListener;
      Arr2InnerListener = array of Arr1InnerListener;
      Arr3InnerListener = array of Arr2InnerListener;
      InnerState = class;
      Arr1InnerState = array of InnerState;
      Arr2InnerState = array of Arr1InnerState;
      Arr3InnerState = array of Arr2InnerState;
      InnerListener = class external 'android.net.sip' name 'Listener' (JLObject)
      public
        constructor create(); overload;
        procedure onCalling(para1: ANSSipSession); overload; virtual;
        procedure onRinging(para1: ANSSipSession; para2: ANSSipProfile; para3: JLString); overload; virtual;
        procedure onRingingBack(para1: ANSSipSession); overload; virtual;
        procedure onCallEstablished(para1: ANSSipSession; para2: JLString); overload; virtual;
        procedure onCallEnded(para1: ANSSipSession); overload; virtual;
        procedure onCallBusy(para1: ANSSipSession); overload; virtual;
        procedure onError(para1: ANSSipSession; para2: jint; para3: JLString); overload; virtual;
        procedure onCallChangeFailed(para1: ANSSipSession; para2: jint; para3: JLString); overload; virtual;
        procedure onRegistering(para1: ANSSipSession); overload; virtual;
        procedure onRegistrationDone(para1: ANSSipSession; para2: jint); overload; virtual;
        procedure onRegistrationFailed(para1: ANSSipSession; para2: jint; para3: JLString); overload; virtual;
        procedure onRegistrationTimeout(para1: ANSSipSession); overload; virtual;
      end;

      InnerState = class external 'android.net.sip' name 'State' (JLObject)
      public
        const
          READY_TO_CALL = 0;
          REGISTERING = 1;
          DEREGISTERING = 2;
          INCOMING_CALL = 3;
          INCOMING_CALL_ANSWERING = 4;
          OUTGOING_CALL = 5;
          OUTGOING_CALL_RING_BACK = 6;
          OUTGOING_CALL_CANCELING = 7;
          IN_CALL = 8;
          PINGING = 9;
          NOT_DEFINED = 101;
      public
        class function toString(para1: jint): JLString; static; overload;
      end;

  public
    function getLocalIp(): JLString; overload; virtual;
    function getLocalProfile(): ANSSipProfile; overload; virtual;
    function getPeerProfile(): ANSSipProfile; overload; virtual;
    function getState(): jint; overload; virtual;
    function isInCall(): jboolean; overload; virtual;
    function getCallId(): JLString; overload; virtual;
    procedure setListener(para1: ANSSipSession.InnerListener); overload; virtual;
    procedure register(para1: jint); overload; virtual;
    procedure unregister(); overload; virtual;
    procedure makeCall(para1: ANSSipProfile; para2: JLString; para3: jint); overload; virtual;
    procedure answerCall(para1: JLString; para2: jint); overload; virtual;
    procedure endCall(); overload; virtual;
    procedure changeCall(para1: JLString; para2: jint); overload; virtual;
  end;

  ANWWifiManager = class external 'android.net.wifi' name 'WifiManager' (JLObject)
  public
    type
      InnerMulticastLock = class;
      Arr1InnerMulticastLock = array of InnerMulticastLock;
      Arr2InnerMulticastLock = array of Arr1InnerMulticastLock;
      Arr3InnerMulticastLock = array of Arr2InnerMulticastLock;
      InnerWifiLock = class;
      Arr1InnerWifiLock = array of InnerWifiLock;
      Arr2InnerWifiLock = array of Arr1InnerWifiLock;
      Arr3InnerWifiLock = array of Arr2InnerWifiLock;
      InnerMulticastLock = class external 'android.net.wifi' name 'MulticastLock' 
      end;

      InnerWifiLock = class external 'android.net.wifi' name 'WifiLock' 
      end;

  public
    const
      ERROR_AUTHENTICATING = 1;
      WIFI_STATE_CHANGED_ACTION = 'android.net.wifi.WIFI_STATE_CHANGED';
      EXTRA_WIFI_STATE = 'wifi_state';
      EXTRA_PREVIOUS_WIFI_STATE = 'previous_wifi_state';
      WIFI_STATE_DISABLING = 0;
      WIFI_STATE_DISABLED = 1;
      WIFI_STATE_ENABLING = 2;
      WIFI_STATE_ENABLED = 3;
      WIFI_STATE_UNKNOWN = 4;
      SUPPLICANT_CONNECTION_CHANGE_ACTION = 'android.net.wifi.supplicant.CONNECTION_CHANGE';
      EXTRA_SUPPLICANT_CONNECTED = 'connected';
      NETWORK_STATE_CHANGED_ACTION = 'android.net.wifi.STATE_CHANGE';
      EXTRA_NETWORK_INFO = 'networkInfo';
      EXTRA_BSSID = 'bssid';
      EXTRA_WIFI_INFO = 'wifiInfo';
      SUPPLICANT_STATE_CHANGED_ACTION = 'android.net.wifi.supplicant.STATE_CHANGE';
      EXTRA_NEW_STATE = 'newState';
      EXTRA_SUPPLICANT_ERROR = 'supplicantError';
      SCAN_RESULTS_AVAILABLE_ACTION = 'android.net.wifi.SCAN_RESULTS';
      RSSI_CHANGED_ACTION = 'android.net.wifi.RSSI_CHANGED';
      EXTRA_NEW_RSSI = 'newRssi';
      NETWORK_IDS_CHANGED_ACTION = 'android.net.wifi.NETWORK_IDS_CHANGED';
      ACTION_PICK_WIFI_NETWORK = 'android.net.wifi.PICK_WIFI_NETWORK';
      WIFI_MODE_FULL = 1;
      WIFI_MODE_SCAN_ONLY = 2;
      WIFI_MODE_FULL_HIGH_PERF = 3;
  public
    function getConfiguredNetworks(): JUList; overload; virtual;
    function addNetwork(para1: ANWWifiConfiguration): jint; overload; virtual;
    function updateNetwork(para1: ANWWifiConfiguration): jint; overload; virtual;
    function removeNetwork(para1: jint): jboolean; overload; virtual;
    function enableNetwork(para1: jint; para2: jboolean): jboolean; overload; virtual;
    function disableNetwork(para1: jint): jboolean; overload; virtual;
    function disconnect(): jboolean; overload; virtual;
    function reconnect(): jboolean; overload; virtual;
    function reassociate(): jboolean; overload; virtual;
    function pingSupplicant(): jboolean; overload; virtual;
    function startScan(): jboolean; overload; virtual;
    function getConnectionInfo(): ANWWifiInfo; overload; virtual;
    function getScanResults(): JUList; overload; virtual;
    function saveConfiguration(): jboolean; overload; virtual;
    function getDhcpInfo(): ANDhcpInfo; overload; virtual;
    function setWifiEnabled(para1: jboolean): jboolean; overload; virtual;
    function getWifiState(): jint; overload; virtual;
    function isWifiEnabled(): jboolean; overload; virtual;
    class function calculateSignalLevel(para1: jint; para2: jint): jint; static; overload;
    class function compareSignalLevel(para1: jint; para2: jint): jint; static; overload;
    function createWifiLock(para1: jint; para2: JLString): ANWWifiManager.InnerWifiLock; overload; virtual;
    function createWifiLock(para1: JLString): ANWWifiManager.InnerWifiLock; overload; virtual;
    function createMulticastLock(para1: JLString): ANWWifiManager.InnerMulticastLock; overload; virtual;
  end;

  ANWPWifiP2pManager = class external 'android.net.wifi.p2p' name 'WifiP2pManager' (JLObject)
  public
    type
      InnerChannel = class;
      Arr1InnerChannel = array of InnerChannel;
      Arr2InnerChannel = array of Arr1InnerChannel;
      Arr3InnerChannel = array of Arr2InnerChannel;
      InnerGroupInfoListener = interface;
      Arr1InnerGroupInfoListener = array of InnerGroupInfoListener;
      Arr2InnerGroupInfoListener = array of Arr1InnerGroupInfoListener;
      Arr3InnerGroupInfoListener = array of Arr2InnerGroupInfoListener;
      InnerConnectionInfoListener = interface;
      Arr1InnerConnectionInfoListener = array of InnerConnectionInfoListener;
      Arr2InnerConnectionInfoListener = array of Arr1InnerConnectionInfoListener;
      Arr3InnerConnectionInfoListener = array of Arr2InnerConnectionInfoListener;
      InnerPeerListListener = interface;
      Arr1InnerPeerListListener = array of InnerPeerListListener;
      Arr2InnerPeerListListener = array of Arr1InnerPeerListListener;
      Arr3InnerPeerListListener = array of Arr2InnerPeerListListener;
      InnerActionListener = interface;
      Arr1InnerActionListener = array of InnerActionListener;
      Arr2InnerActionListener = array of Arr1InnerActionListener;
      Arr3InnerActionListener = array of Arr2InnerActionListener;
      InnerChannelListener = interface;
      Arr1InnerChannelListener = array of InnerChannelListener;
      Arr2InnerChannelListener = array of Arr1InnerChannelListener;
      Arr3InnerChannelListener = array of Arr2InnerChannelListener;
      InnerChannel = class external 'android.net.wifi.p2p' name 'Channel' (JLObject)
      end;

      InnerGroupInfoListener = interface external 'android.net.wifi.p2p' name 'GroupInfoListener' 
        procedure onGroupInfoAvailable(para1: ANWPWifiP2pGroup); overload;
      end;

      InnerConnectionInfoListener = interface external 'android.net.wifi.p2p' name 'ConnectionInfoListener' 
        procedure onConnectionInfoAvailable(para1: ANWPWifiP2pInfo); overload;
      end;

      InnerPeerListListener = interface external 'android.net.wifi.p2p' name 'PeerListListener' 
        procedure onPeersAvailable(para1: ANWPWifiP2pDeviceList); overload;
      end;

      InnerActionListener = interface external 'android.net.wifi.p2p' name 'ActionListener' 
        procedure onSuccess(); overload;
        procedure onFailure(para1: jint); overload;
      end;

      InnerChannelListener = interface external 'android.net.wifi.p2p' name 'ChannelListener' 
        procedure onChannelDisconnected(); overload;
      end;

  public
    const
      WIFI_P2P_STATE_CHANGED_ACTION = 'android.net.wifi.p2p.STATE_CHANGED';
      EXTRA_WIFI_STATE = 'wifi_p2p_state';
      WIFI_P2P_STATE_DISABLED = 1;
      WIFI_P2P_STATE_ENABLED = 2;
      WIFI_P2P_CONNECTION_CHANGED_ACTION = 'android.net.wifi.p2p.CONNECTION_STATE_CHANGE';
      EXTRA_WIFI_P2P_INFO = 'wifiP2pInfo';
      EXTRA_NETWORK_INFO = 'networkInfo';
      WIFI_P2P_PEERS_CHANGED_ACTION = 'android.net.wifi.p2p.PEERS_CHANGED';
      WIFI_P2P_THIS_DEVICE_CHANGED_ACTION = 'android.net.wifi.p2p.THIS_DEVICE_CHANGED';
      EXTRA_WIFI_P2P_DEVICE = 'wifiP2pDevice';
      ERROR = 0;
      P2P_UNSUPPORTED = 1;
      BUSY = 2;
  public
    function initialize(para1: ACContext; para2: AOLooper; para3: ANWPWifiP2pManager.InnerChannelListener): ANWPWifiP2pManager.InnerChannel; overload; virtual;
    procedure discoverPeers(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerActionListener); overload; virtual;
    procedure connect(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pConfig; para3: ANWPWifiP2pManager.InnerActionListener); overload; virtual;
    procedure cancelConnect(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerActionListener); overload; virtual;
    procedure createGroup(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerActionListener); overload; virtual;
    procedure removeGroup(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerActionListener); overload; virtual;
    procedure requestPeers(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerPeerListListener); overload; virtual;
    procedure requestConnectionInfo(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerConnectionInfoListener); overload; virtual;
    procedure requestGroupInfo(para1: ANWPWifiP2pManager.InnerChannel; para2: ANWPWifiP2pManager.InnerGroupInfoListener); overload; virtual;
  end;

  ANNfcAdapter = class sealed external 'android.nfc' name 'NfcAdapter' (JLObject)
  public
    type
      InnerCreateNdefMessageCallback = interface;
      Arr1InnerCreateNdefMessageCallback = array of InnerCreateNdefMessageCallback;
      Arr2InnerCreateNdefMessageCallback = array of Arr1InnerCreateNdefMessageCallback;
      Arr3InnerCreateNdefMessageCallback = array of Arr2InnerCreateNdefMessageCallback;
      InnerOnNdefPushCompleteCallback = interface;
      Arr1InnerOnNdefPushCompleteCallback = array of InnerOnNdefPushCompleteCallback;
      Arr2InnerOnNdefPushCompleteCallback = array of Arr1InnerOnNdefPushCompleteCallback;
      Arr3InnerOnNdefPushCompleteCallback = array of Arr2InnerOnNdefPushCompleteCallback;
      InnerCreateNdefMessageCallback = interface external 'android.nfc' name 'CreateNdefMessageCallback' 
        function createNdefMessage(para1: ANNfcEvent): ANNdefMessage; overload;
      end;

      InnerOnNdefPushCompleteCallback = interface external 'android.nfc' name 'OnNdefPushCompleteCallback' 
        procedure onNdefPushComplete(para1: ANNfcEvent); overload;
      end;

  public
    const
      ACTION_NDEF_DISCOVERED = 'android.nfc.action.NDEF_DISCOVERED';
      ACTION_TECH_DISCOVERED = 'android.nfc.action.TECH_DISCOVERED';
      ACTION_TAG_DISCOVERED = 'android.nfc.action.TAG_DISCOVERED';
      EXTRA_TAG = 'android.nfc.extra.TAG';
      EXTRA_NDEF_MESSAGES = 'android.nfc.extra.NDEF_MESSAGES';
      EXTRA_ID = 'android.nfc.extra.ID';
  public
    class function getDefaultAdapter(para1: ACContext): ANNfcAdapter; static; overload;
    class function getDefaultAdapter(): ANNfcAdapter; static; overload;
    function isEnabled(): jboolean; overload; virtual;
    procedure setNdefPushMessage(para1: ANNdefMessage; para2: AAActivity; para3: Arr1AAActivity); overload; virtual;
    procedure setNdefPushMessage(para1: ANNdefMessage; para2: AAActivity; const para3: array of AAActivity); overload; virtual;
    procedure setNdefPushMessageCallback(para1: ANNfcAdapter.InnerCreateNdefMessageCallback; para2: AAActivity; para3: Arr1AAActivity); overload; virtual;
    procedure setNdefPushMessageCallback(para1: ANNfcAdapter.InnerCreateNdefMessageCallback; para2: AAActivity; const para3: array of AAActivity); overload; virtual;
    procedure setOnNdefPushCompleteCallback(para1: ANNfcAdapter.InnerOnNdefPushCompleteCallback; para2: AAActivity; para3: Arr1AAActivity); overload; virtual;
    procedure setOnNdefPushCompleteCallback(para1: ANNfcAdapter.InnerOnNdefPushCompleteCallback; para2: AAActivity; const para3: array of AAActivity); overload; virtual;
    procedure enableForegroundDispatch(para1: AAActivity; para2: AAPendingIntent; para3: Arr1ACIntentFilter; para4: Arr2JLString); overload; virtual;
    procedure enableForegroundDispatch(para1: AAActivity; para2: AAPendingIntent; var para3: array of ACIntentFilter; para4: Arr2JLString); overload; virtual;
    procedure disableForegroundDispatch(para1: AAActivity); overload; virtual;
    procedure enableForegroundNdefPush(para1: AAActivity; para2: ANNdefMessage); overload; virtual;
    procedure disableForegroundNdefPush(para1: AAActivity); overload; virtual;
  end;

  ANNfcEvent = class sealed external 'android.nfc' name 'NfcEvent' (JLObject)
  public
    final var
      fnfcAdapter: ANNfcAdapter; external name 'nfcAdapter';
  end;

  ANNfcManager = class sealed external 'android.nfc' name 'NfcManager' (JLObject)
  public
    function getDefaultAdapter(): ANNfcAdapter; overload; virtual;
  end;

  AOETC1 = class external 'android.opengl' name 'ETC1' (JLObject)
  public
    const
      ENCODED_BLOCK_SIZE = 8;
      DECODED_BLOCK_SIZE = 48;
      ETC_PKM_HEADER_SIZE = 16;
      ETC1_RGB8_OES = 36196;
  public
    constructor create(); overload;
    class procedure encodeBlock(para1: JNBuffer; para2: jint; para3: JNBuffer); static; overload;
    class procedure decodeBlock(para1: JNBuffer; para2: JNBuffer); static; overload;
    class function getEncodedDataSize(para1: jint; para2: jint): jint; static; overload;
    class procedure encodeImage(para1: JNBuffer; para2: jint; para3: jint; para4: jint; para5: jint; para6: JNBuffer); static; overload;
    class procedure decodeImage(para1: JNBuffer; para2: JNBuffer; para3: jint; para4: jint; para5: jint; para6: jint); static; overload;
    class procedure formatHeader(para1: JNBuffer; para2: jint; para3: jint); static; overload;
    class function isValid(para1: JNBuffer): jboolean; static; overload;
    class function getWidth(para1: JNBuffer): jint; static; overload;
    class function getHeight(para1: JNBuffer): jint; static; overload;
  end;

  AOETC1Util = class external 'android.opengl' name 'ETC1Util' (JLObject)
  public
    type
      InnerETC1Texture = class;
      Arr1InnerETC1Texture = array of InnerETC1Texture;
      Arr2InnerETC1Texture = array of Arr1InnerETC1Texture;
      Arr3InnerETC1Texture = array of Arr2InnerETC1Texture;
      InnerETC1Texture = class external 'android.opengl' name 'ETC1Texture' (JLObject)
      public
        constructor create(para1: jint; para2: jint; para3: JNByteBuffer); overload;
        function getWidth(): jint; overload; virtual;
        function getHeight(): jint; overload; virtual;
        function getData(): JNByteBuffer; overload; virtual;
      end;

  public
    constructor create(); overload;
    class procedure loadTexture(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: JIInputStream); static; overload;  // throws java.io.IOException
    class procedure loadTexture(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: AOETC1Util.InnerETC1Texture); static; overload;
    class function isETC1Supported(): jboolean; static; overload;
    class function createTexture(para1: JIInputStream): AOETC1Util.InnerETC1Texture; static; overload;  // throws java.io.IOException
    class function compressTexture(para1: JNBuffer; para2: jint; para3: jint; para4: jint; para5: jint): AOETC1Util.InnerETC1Texture; static; overload;
    class procedure writeTexture(para1: AOETC1Util.InnerETC1Texture; para2: JIOutputStream); static; overload;  // throws java.io.IOException
  end;

  AOGLDebugHelper = class external 'android.opengl' name 'GLDebugHelper' (JLObject)
  public
    const
      CONFIG_CHECK_GL_ERROR = 1;
      CONFIG_CHECK_THREAD = 2;
      CONFIG_LOG_ARGUMENT_NAMES = 4;
      ERROR_WRONG_THREAD = 28672;
  public
    constructor create(); overload;
    class function wrap(para1: JMKOGL; para2: jint; para3: JIWriter): JMKOGL; static; overload;
    class function wrap(para1: JMKEEGL; para2: jint; para3: JIWriter): JMKEEGL; static; overload;
  end;

  AOGLES10 = class external 'android.opengl' name 'GLES10' (JLObject)
  public
    const
      GL_ADD = 260;
      GL_ALIASED_LINE_WIDTH_RANGE = 33902;
      GL_ALIASED_POINT_SIZE_RANGE = 33901;
      GL_ALPHA = 6406;
      GL_ALPHA_BITS = 3413;
      GL_ALPHA_TEST = 3008;
      GL_ALWAYS = 519;
      GL_AMBIENT = 4608;
      GL_AMBIENT_AND_DIFFUSE = 5634;
      GL_AND = 5377;
      GL_AND_INVERTED = 5380;
      GL_AND_REVERSE = 5378;
      GL_BACK = 1029;
      GL_BLEND = 3042;
      GL_BLUE_BITS = 3412;
      GL_BYTE = 5120;
      GL_CCW = 2305;
      GL_CLAMP_TO_EDGE = 33071;
      GL_CLEAR = 5376;
      GL_COLOR_ARRAY = 32886;
      GL_COLOR_BUFFER_BIT = 16384;
      GL_COLOR_LOGIC_OP = 3058;
      GL_COLOR_MATERIAL = 2903;
      GL_COMPRESSED_TEXTURE_FORMATS = 34467;
      GL_CONSTANT_ATTENUATION = 4615;
      GL_COPY = 5379;
      GL_COPY_INVERTED = 5388;
      GL_CULL_FACE = 2884;
      GL_CW = 2304;
      GL_DECAL = 8449;
      GL_DECR = 7683;
      GL_DEPTH_BITS = 3414;
      GL_DEPTH_BUFFER_BIT = 256;
      GL_DEPTH_TEST = 2929;
      GL_DIFFUSE = 4609;
      GL_DITHER = 3024;
      GL_DONT_CARE = 4352;
      GL_DST_ALPHA = 772;
      GL_DST_COLOR = 774;
      GL_EMISSION = 5632;
      GL_EQUAL = 514;
      GL_EQUIV = 5385;
      GL_EXP = 2048;
      GL_EXP2 = 2049;
      GL_EXTENSIONS = 7939;
      GL_FALSE = 0;
      GL_FASTEST = 4353;
      GL_FIXED = 5132;
      GL_FLAT = 7424;
      GL_FLOAT = 5126;
      GL_FOG = 2912;
      GL_FOG_COLOR = 2918;
      GL_FOG_DENSITY = 2914;
      GL_FOG_END = 2916;
      GL_FOG_HINT = 3156;
      GL_FOG_MODE = 2917;
      GL_FOG_START = 2915;
      GL_FRONT = 1028;
      GL_FRONT_AND_BACK = 1032;
      GL_GEQUAL = 518;
      GL_GREATER = 516;
      GL_GREEN_BITS = 3411;
      GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 35739;
      GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 35738;
      GL_INCR = 7682;
      GL_INVALID_ENUM = 1280;
      GL_INVALID_OPERATION = 1282;
      GL_INVALID_VALUE = 1281;
      GL_INVERT = 5386;
      GL_KEEP = 7680;
      GL_LEQUAL = 515;
      GL_LESS = 513;
      GL_LIGHT_MODEL_AMBIENT = 2899;
      GL_LIGHT_MODEL_TWO_SIDE = 2898;
      GL_LIGHT0 = 16384;
      GL_LIGHT1 = 16385;
      GL_LIGHT2 = 16386;
      GL_LIGHT3 = 16387;
      GL_LIGHT4 = 16388;
      GL_LIGHT5 = 16389;
      GL_LIGHT6 = 16390;
      GL_LIGHT7 = 16391;
      GL_LIGHTING = 2896;
      GL_LINE_LOOP = 2;
      GL_LINE_SMOOTH = 2848;
      GL_LINE_SMOOTH_HINT = 3154;
      GL_LINE_STRIP = 3;
      GL_LINEAR = 9729;
      GL_LINEAR_ATTENUATION = 4616;
      GL_LINEAR_MIPMAP_LINEAR = 9987;
      GL_LINEAR_MIPMAP_NEAREST = 9985;
      GL_LINES = 1;
      GL_LUMINANCE = 6409;
      GL_LUMINANCE_ALPHA = 6410;
      GL_MAX_ELEMENTS_INDICES = 33001;
      GL_MAX_ELEMENTS_VERTICES = 33000;
      GL_MAX_LIGHTS = 3377;
      GL_MAX_MODELVIEW_STACK_DEPTH = 3382;
      GL_MAX_PROJECTION_STACK_DEPTH = 3384;
      GL_MAX_TEXTURE_SIZE = 3379;
      GL_MAX_TEXTURE_STACK_DEPTH = 3385;
      GL_MAX_TEXTURE_UNITS = 34018;
      GL_MAX_VIEWPORT_DIMS = 3386;
      GL_MODELVIEW = 5888;
      GL_MODULATE = 8448;
      GL_MULTISAMPLE = 32925;
      GL_NAND = 5390;
      GL_NEAREST = 9728;
      GL_NEAREST_MIPMAP_LINEAR = 9986;
      GL_NEAREST_MIPMAP_NEAREST = 9984;
      GL_NEVER = 512;
      GL_NICEST = 4354;
      GL_NO_ERROR = 0;
      GL_NOOP = 5381;
      GL_NOR = 5384;
      GL_NORMAL_ARRAY = 32885;
      GL_NORMALIZE = 2977;
      GL_NOTEQUAL = 517;
      GL_NUM_COMPRESSED_TEXTURE_FORMATS = 34466;
      GL_ONE = 1;
      GL_ONE_MINUS_DST_ALPHA = 773;
      GL_ONE_MINUS_DST_COLOR = 775;
      GL_ONE_MINUS_SRC_ALPHA = 771;
      GL_ONE_MINUS_SRC_COLOR = 769;
      GL_OR = 5383;
      GL_OR_INVERTED = 5389;
      GL_OR_REVERSE = 5387;
      GL_OUT_OF_MEMORY = 1285;
      GL_PACK_ALIGNMENT = 3333;
      GL_PALETTE4_R5_G6_B5_OES = 35730;
      GL_PALETTE4_RGB5_A1_OES = 35732;
      GL_PALETTE4_RGB8_OES = 35728;
      GL_PALETTE4_RGBA4_OES = 35731;
      GL_PALETTE4_RGBA8_OES = 35729;
      GL_PALETTE8_R5_G6_B5_OES = 35735;
      GL_PALETTE8_RGB5_A1_OES = 35737;
      GL_PALETTE8_RGB8_OES = 35733;
      GL_PALETTE8_RGBA4_OES = 35736;
      GL_PALETTE8_RGBA8_OES = 35734;
      GL_PERSPECTIVE_CORRECTION_HINT = 3152;
      GL_POINT_SMOOTH = 2832;
      GL_POINT_SMOOTH_HINT = 3153;
      GL_POINTS = 0;
      GL_POINT_FADE_THRESHOLD_SIZE = 33064;
      GL_POINT_SIZE = 2833;
      GL_POLYGON_OFFSET_FILL = 32823;
      GL_POLYGON_SMOOTH_HINT = 3155;
      GL_POSITION = 4611;
      GL_PROJECTION = 5889;
      GL_QUADRATIC_ATTENUATION = 4617;
      GL_RED_BITS = 3410;
      GL_RENDERER = 7937;
      GL_REPEAT = 10497;
      GL_REPLACE = 7681;
      GL_RESCALE_NORMAL = 32826;
      GL_RGB = 6407;
      GL_RGBA = 6408;
      GL_SAMPLE_ALPHA_TO_COVERAGE = 32926;
      GL_SAMPLE_ALPHA_TO_ONE = 32927;
      GL_SAMPLE_COVERAGE = 32928;
      GL_SCISSOR_TEST = 3089;
      GL_SET = 5391;
      GL_SHININESS = 5633;
      GL_SHORT = 5122;
      GL_SMOOTH = 7425;
      GL_SMOOTH_LINE_WIDTH_RANGE = 2850;
      GL_SMOOTH_POINT_SIZE_RANGE = 2834;
      GL_SPECULAR = 4610;
      GL_SPOT_CUTOFF = 4614;
      GL_SPOT_DIRECTION = 4612;
      GL_SPOT_EXPONENT = 4613;
      GL_SRC_ALPHA = 770;
      GL_SRC_ALPHA_SATURATE = 776;
      GL_SRC_COLOR = 768;
      GL_STACK_OVERFLOW = 1283;
      GL_STACK_UNDERFLOW = 1284;
      GL_STENCIL_BITS = 3415;
      GL_STENCIL_BUFFER_BIT = 1024;
      GL_STENCIL_TEST = 2960;
      GL_SUBPIXEL_BITS = 3408;
      GL_TEXTURE = 5890;
      GL_TEXTURE_2D = 3553;
      GL_TEXTURE_COORD_ARRAY = 32888;
      GL_TEXTURE_ENV = 8960;
      GL_TEXTURE_ENV_COLOR = 8705;
      GL_TEXTURE_ENV_MODE = 8704;
      GL_TEXTURE_MAG_FILTER = 10240;
      GL_TEXTURE_MIN_FILTER = 10241;
      GL_TEXTURE_WRAP_S = 10242;
      GL_TEXTURE_WRAP_T = 10243;
      GL_TEXTURE0 = 33984;
      GL_TEXTURE1 = 33985;
      GL_TEXTURE2 = 33986;
      GL_TEXTURE3 = 33987;
      GL_TEXTURE4 = 33988;
      GL_TEXTURE5 = 33989;
      GL_TEXTURE6 = 33990;
      GL_TEXTURE7 = 33991;
      GL_TEXTURE8 = 33992;
      GL_TEXTURE9 = 33993;
      GL_TEXTURE10 = 33994;
      GL_TEXTURE11 = 33995;
      GL_TEXTURE12 = 33996;
      GL_TEXTURE13 = 33997;
      GL_TEXTURE14 = 33998;
      GL_TEXTURE15 = 33999;
      GL_TEXTURE16 = 34000;
      GL_TEXTURE17 = 34001;
      GL_TEXTURE18 = 34002;
      GL_TEXTURE19 = 34003;
      GL_TEXTURE20 = 34004;
      GL_TEXTURE21 = 34005;
      GL_TEXTURE22 = 34006;
      GL_TEXTURE23 = 34007;
      GL_TEXTURE24 = 34008;
      GL_TEXTURE25 = 34009;
      GL_TEXTURE26 = 34010;
      GL_TEXTURE27 = 34011;
      GL_TEXTURE28 = 34012;
      GL_TEXTURE29 = 34013;
      GL_TEXTURE30 = 34014;
      GL_TEXTURE31 = 34015;
      GL_TRIANGLE_FAN = 6;
      GL_TRIANGLE_STRIP = 5;
      GL_TRIANGLES = 4;
      GL_TRUE = 1;
      GL_UNPACK_ALIGNMENT = 3317;
      GL_UNSIGNED_BYTE = 5121;
      GL_UNSIGNED_SHORT = 5123;
      GL_UNSIGNED_SHORT_4_4_4_4 = 32819;
      GL_UNSIGNED_SHORT_5_5_5_1 = 32820;
      GL_UNSIGNED_SHORT_5_6_5 = 33635;
      GL_VENDOR = 7936;
      GL_VERSION = 7938;
      GL_VERTEX_ARRAY = 32884;
      GL_XOR = 5382;
      GL_ZERO = 0;
  public
    constructor create(); overload;
    class procedure glActiveTexture(para1: jint); static; overload;
    class procedure glAlphaFunc(para1: jint; para2: jfloat); static; overload;
    class procedure glAlphaFuncx(para1: jint; para2: jint); static; overload;
    class procedure glBindTexture(para1: jint; para2: jint); static; overload;
    class procedure glBlendFunc(para1: jint; para2: jint); static; overload;
    class procedure glClear(para1: jint); static; overload;
    class procedure glClearColor(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glClearColorx(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glClearDepthf(para1: jfloat); static; overload;
    class procedure glClearDepthx(para1: jint); static; overload;
    class procedure glClearStencil(para1: jint); static; overload;
    class procedure glClientActiveTexture(para1: jint); static; overload;
    class procedure glColor4f(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glColor4x(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glColorMask(para1: jboolean; para2: jboolean; para3: jboolean; para4: jboolean); static; overload;
    class procedure glColorPointer(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glCompressedTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JNBuffer); static; overload;
    class procedure glCompressedTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); static; overload;
    class procedure glCopyTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); static; overload;
    class procedure glCopyTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); static; overload;
    class procedure glCullFace(para1: jint); static; overload;
    class procedure glDeleteTextures(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteTextures(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteTextures(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glDepthFunc(para1: jint); static; overload;
    class procedure glDepthMask(para1: jboolean); static; overload;
    class procedure glDepthRangef(para1: jfloat; para2: jfloat); static; overload;
    class procedure glDepthRangex(para1: jint; para2: jint); static; overload;
    class procedure glDisable(para1: jint); static; overload;
    class procedure glDisableClientState(para1: jint); static; overload;
    class procedure glDrawArrays(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glDrawElements(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glEnable(para1: jint); static; overload;
    class procedure glEnableClientState(para1: jint); static; overload;
    class procedure glFinish(); static; overload;
    class procedure glFlush(); static; overload;
    class procedure glFogf(para1: jint; para2: jfloat); static; overload;
    class procedure glFogfv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glFogfv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glFogfv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glFogx(para1: jint; para2: jint); static; overload;
    class procedure glFogxv(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glFogxv(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glFogxv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glFrontFace(para1: jint); static; overload;
    class procedure glFrustumf(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure glFrustumx(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); static; overload;
    class procedure glGenTextures(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenTextures(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenTextures(para1: jint; para2: JNIntBuffer); static; overload;
    class function glGetError(): jint; static; overload;
    class procedure glGetIntegerv(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGetIntegerv(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGetIntegerv(para1: jint; para2: JNIntBuffer); static; overload;
    class function glGetString(para1: jint): JLString; static; overload;
    class procedure glHint(para1: jint; para2: jint); static; overload;
    class procedure glLightModelf(para1: jint; para2: jfloat); static; overload;
    class procedure glLightModelfv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glLightModelfv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glLightModelfv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glLightModelx(para1: jint; para2: jint); static; overload;
    class procedure glLightModelxv(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glLightModelxv(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glLightModelxv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glLightf(para1: jint; para2: jint; para3: jfloat); static; overload;
    class procedure glLightfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glLightfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glLightfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glLightx(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glLightxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glLightxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glLightxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glLineWidth(para1: jfloat); static; overload;
    class procedure glLineWidthx(para1: jint); static; overload;
    class procedure glLoadIdentity(); static; overload;
    class procedure glLoadMatrixf(para1: Arr1jfloat; para2: jint); static; overload;
    class procedure glLoadMatrixf(var para1: array of jfloat; para2: jint); static; overload;
    class procedure glLoadMatrixf(para1: JNFloatBuffer); static; overload;
    class procedure glLoadMatrixx(para1: Arr1jint; para2: jint); static; overload;
    class procedure glLoadMatrixx(var para1: array of jint; para2: jint); static; overload;
    class procedure glLoadMatrixx(para1: JNIntBuffer); static; overload;
    class procedure glLogicOp(para1: jint); static; overload;
    class procedure glMaterialf(para1: jint; para2: jint; para3: jfloat); static; overload;
    class procedure glMaterialfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glMaterialfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glMaterialfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glMaterialx(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glMaterialxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glMaterialxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glMaterialxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glMatrixMode(para1: jint); static; overload;
    class procedure glMultMatrixf(para1: Arr1jfloat; para2: jint); static; overload;
    class procedure glMultMatrixf(var para1: array of jfloat; para2: jint); static; overload;
    class procedure glMultMatrixf(para1: JNFloatBuffer); static; overload;
    class procedure glMultMatrixx(para1: Arr1jint; para2: jint); static; overload;
    class procedure glMultMatrixx(var para1: array of jint; para2: jint); static; overload;
    class procedure glMultMatrixx(para1: JNIntBuffer); static; overload;
    class procedure glMultiTexCoord4f(para1: jint; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure glMultiTexCoord4x(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glNormal3f(para1: jfloat; para2: jfloat; para3: jfloat); static; overload;
    class procedure glNormal3x(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glNormalPointer(para1: jint; para2: jint; para3: JNBuffer); static; overload;
    class procedure glOrthof(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure glOrthox(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); static; overload;
    class procedure glPixelStorei(para1: jint; para2: jint); static; overload;
    class procedure glPointSize(para1: jfloat); static; overload;
    class procedure glPointSizex(para1: jint); static; overload;
    class procedure glPolygonOffset(para1: jfloat; para2: jfloat); static; overload;
    class procedure glPolygonOffsetx(para1: jint; para2: jint); static; overload;
    class procedure glPopMatrix(); static; overload;
    class procedure glPushMatrix(); static; overload;
    class procedure glReadPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: JNBuffer); static; overload;
    class procedure glRotatef(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glRotatex(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glSampleCoverage(para1: jfloat; para2: jboolean); static; overload;
    class procedure glSampleCoveragex(para1: jint; para2: jboolean); static; overload;
    class procedure glScalef(para1: jfloat; para2: jfloat; para3: jfloat); static; overload;
    class procedure glScalex(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glScissor(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glShadeModel(para1: jint); static; overload;
    class procedure glStencilFunc(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glStencilMask(para1: jint); static; overload;
    class procedure glStencilOp(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexCoordPointer(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glTexEnvf(para1: jint; para2: jint; para3: jfloat); static; overload;
    class procedure glTexEnvfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glTexEnvfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glTexEnvfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glTexEnvx(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexEnvxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexEnvxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexEnvxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); static; overload;
    class procedure glTexParameterf(para1: jint; para2: jint; para3: jfloat); static; overload;
    class procedure glTexParameterx(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); static; overload;
    class procedure glTranslatef(para1: jfloat; para2: jfloat; para3: jfloat); static; overload;
    class procedure glTranslatex(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glVertexPointer(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glViewport(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
  end;

  AOGLES10Ext = class external 'android.opengl' name 'GLES10Ext' (JLObject)
  public
    constructor create(); overload;
    class function glQueryMatrixxOES(para1: Arr1jint; para2: jint; para3: Arr1jint; para4: jint): jint; static; overload;
    class function glQueryMatrixxOES(var para1: array of jint; para2: jint; var para3: array of jint; para4: jint): jint; static; overload;
    class function glQueryMatrixxOES(para1: JNIntBuffer; para2: JNIntBuffer): jint; static; overload;
  end;

  AOGLES11Ext = class external 'android.opengl' name 'GLES11Ext' (JLObject)
  public
    const
      GL_BLEND_EQUATION_RGB_OES = 32777;
      GL_BLEND_EQUATION_ALPHA_OES = 34877;
      GL_BLEND_DST_RGB_OES = 32968;
      GL_BLEND_SRC_RGB_OES = 32969;
      GL_BLEND_DST_ALPHA_OES = 32970;
      GL_BLEND_SRC_ALPHA_OES = 32971;
      GL_BLEND_EQUATION_OES = 32777;
      GL_FUNC_ADD_OES = 32774;
      GL_FUNC_SUBTRACT_OES = 32778;
      GL_FUNC_REVERSE_SUBTRACT_OES = 32779;
      GL_ETC1_RGB8_OES = 36196;
      GL_DEPTH_COMPONENT24_OES = 33190;
      GL_DEPTH_COMPONENT32_OES = 33191;
      GL_TEXTURE_CROP_RECT_OES = 35741;
      GL_FIXED_OES = 5132;
      GL_NONE_OES = 0;
      GL_FRAMEBUFFER_OES = 36160;
      GL_RENDERBUFFER_OES = 36161;
      GL_RGBA4_OES = 32854;
      GL_RGB5_A1_OES = 32855;
      GL_RGB565_OES = 36194;
      GL_DEPTH_COMPONENT16_OES = 33189;
      GL_RENDERBUFFER_WIDTH_OES = 36162;
      GL_RENDERBUFFER_HEIGHT_OES = 36163;
      GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 36164;
      GL_RENDERBUFFER_RED_SIZE_OES = 36176;
      GL_RENDERBUFFER_GREEN_SIZE_OES = 36177;
      GL_RENDERBUFFER_BLUE_SIZE_OES = 36178;
      GL_RENDERBUFFER_ALPHA_SIZE_OES = 36179;
      GL_RENDERBUFFER_DEPTH_SIZE_OES = 36180;
      GL_RENDERBUFFER_STENCIL_SIZE_OES = 36181;
      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 36048;
      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 36049;
      GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 36050;
      GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 36051;
      GL_COLOR_ATTACHMENT0_OES = 36064;
      GL_DEPTH_ATTACHMENT_OES = 36096;
      GL_STENCIL_ATTACHMENT_OES = 36128;
      GL_FRAMEBUFFER_COMPLETE_OES = 36053;
      GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 36054;
      GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 36055;
      GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 36057;
      GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 36058;
      GL_FRAMEBUFFER_UNSUPPORTED_OES = 36061;
      GL_FRAMEBUFFER_BINDING_OES = 36006;
      GL_RENDERBUFFER_BINDING_OES = 36007;
      GL_MAX_RENDERBUFFER_SIZE_OES = 34024;
      GL_INVALID_FRAMEBUFFER_OPERATION_OES = 1286;
      GL_WRITE_ONLY_OES = 35001;
      GL_BUFFER_ACCESS_OES = 35003;
      GL_BUFFER_MAPPED_OES = 35004;
      GL_BUFFER_MAP_POINTER_OES = 35005;
      GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 35213;
      GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 35214;
      GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 35215;
      GL_MAX_VERTEX_UNITS_OES = 34468;
      GL_MAX_PALETTE_MATRICES_OES = 34882;
      GL_MATRIX_PALETTE_OES = 34880;
      GL_MATRIX_INDEX_ARRAY_OES = 34884;
      GL_WEIGHT_ARRAY_OES = 34477;
      GL_CURRENT_PALETTE_MATRIX_OES = 34883;
      GL_MATRIX_INDEX_ARRAY_SIZE_OES = 34886;
      GL_MATRIX_INDEX_ARRAY_TYPE_OES = 34887;
      GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 34888;
      GL_MATRIX_INDEX_ARRAY_POINTER_OES = 34889;
      GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 35742;
      GL_WEIGHT_ARRAY_SIZE_OES = 34475;
      GL_WEIGHT_ARRAY_TYPE_OES = 34473;
      GL_WEIGHT_ARRAY_STRIDE_OES = 34474;
      GL_WEIGHT_ARRAY_POINTER_OES = 34476;
      GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 34974;
      GL_DEPTH_STENCIL_OES = 34041;
      GL_UNSIGNED_INT_24_8_OES = 34042;
      GL_DEPTH24_STENCIL8_OES = 35056;
      GL_RGB8_OES = 32849;
      GL_RGBA8_OES = 32856;
      GL_STENCIL_INDEX1_OES = 36166;
      GL_STENCIL_INDEX4_OES = 36167;
      GL_STENCIL_INDEX8_OES = 36168;
      GL_INCR_WRAP_OES = 34055;
      GL_DECR_WRAP_OES = 34056;
      GL_NORMAL_MAP_OES = 34065;
      GL_REFLECTION_MAP_OES = 34066;
      GL_TEXTURE_CUBE_MAP_OES = 34067;
      GL_TEXTURE_BINDING_CUBE_MAP_OES = 34068;
      GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 34069;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 34070;
      GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 34071;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 34072;
      GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 34073;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 34074;
      GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 34076;
      GL_TEXTURE_GEN_MODE_OES = 9472;
      GL_TEXTURE_GEN_STR_OES = 36192;
      GL_MIRRORED_REPEAT_OES = 33648;
      GL_3DC_X_AMD = 34809;
      GL_3DC_XY_AMD = 34810;
      GL_ATC_RGB_AMD = 35986;
      GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 35987;
      GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 34798;
      GL_TEXTURE_MAX_ANISOTROPY_EXT = 34046;
      GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;
      GL_BGRA = 32993;
  public
    constructor create(); overload;
    class procedure glBlendEquationSeparateOES(para1: jint; para2: jint); static; overload;
    class procedure glBlendFuncSeparateOES(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glBlendEquationOES(para1: jint); static; overload;
    class procedure glDrawTexsOES(para1: jshort; para2: jshort; para3: jshort; para4: jshort; para5: jshort); static; overload;
    class procedure glDrawTexiOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glDrawTexxOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glDrawTexsvOES(para1: Arr1jshort; para2: jint); static; overload;
    class procedure glDrawTexsvOES(var para1: array of jshort; para2: jint); static; overload;
    class procedure glDrawTexsvOES(para1: JNShortBuffer); static; overload;
    class procedure glDrawTexivOES(para1: Arr1jint; para2: jint); static; overload;
    class procedure glDrawTexivOES(var para1: array of jint; para2: jint); static; overload;
    class procedure glDrawTexivOES(para1: JNIntBuffer); static; overload;
    class procedure glDrawTexxvOES(para1: Arr1jint; para2: jint); static; overload;
    class procedure glDrawTexxvOES(var para1: array of jint; para2: jint); static; overload;
    class procedure glDrawTexxvOES(para1: JNIntBuffer); static; overload;
    class procedure glDrawTexfOES(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure glDrawTexfvOES(para1: Arr1jfloat; para2: jint); static; overload;
    class procedure glDrawTexfvOES(var para1: array of jfloat; para2: jint); static; overload;
    class procedure glDrawTexfvOES(para1: JNFloatBuffer); static; overload;
    class procedure glEGLImageTargetTexture2DOES(para1: jint; para2: JNBuffer); static; overload;
    class procedure glEGLImageTargetRenderbufferStorageOES(para1: jint; para2: JNBuffer); static; overload;
    class procedure glAlphaFuncxOES(para1: jint; para2: jint); static; overload;
    class procedure glClearColorxOES(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glClearDepthxOES(para1: jint); static; overload;
    class procedure glClipPlanexOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glClipPlanexOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glClipPlanexOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glColor4xOES(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glDepthRangexOES(para1: jint; para2: jint); static; overload;
    class procedure glFogxOES(para1: jint; para2: jint); static; overload;
    class procedure glFogxvOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glFogxvOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glFogxvOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glFrustumxOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); static; overload;
    class procedure glGetClipPlanexOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGetClipPlanexOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGetClipPlanexOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetFixedvOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGetFixedvOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGetFixedvOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetLightxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetLightxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetLightxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetMaterialxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetMaterialxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetMaterialxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexEnvxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexEnvxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexEnvxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexParameterxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexParameterxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexParameterxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glLightModelxOES(para1: jint; para2: jint); static; overload;
    class procedure glLightModelxvOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glLightModelxvOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glLightModelxvOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glLightxOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glLightxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glLightxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glLightxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glLineWidthxOES(para1: jint); static; overload;
    class procedure glLoadMatrixxOES(para1: Arr1jint; para2: jint); static; overload;
    class procedure glLoadMatrixxOES(var para1: array of jint; para2: jint); static; overload;
    class procedure glLoadMatrixxOES(para1: JNIntBuffer); static; overload;
    class procedure glMaterialxOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glMaterialxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glMaterialxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glMaterialxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glMultMatrixxOES(para1: Arr1jint; para2: jint); static; overload;
    class procedure glMultMatrixxOES(var para1: array of jint; para2: jint); static; overload;
    class procedure glMultMatrixxOES(para1: JNIntBuffer); static; overload;
    class procedure glMultiTexCoord4xOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glNormal3xOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glOrthoxOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); static; overload;
    class procedure glPointParameterxOES(para1: jint; para2: jint); static; overload;
    class procedure glPointParameterxvOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glPointParameterxvOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glPointParameterxvOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glPointSizexOES(para1: jint); static; overload;
    class procedure glPolygonOffsetxOES(para1: jint; para2: jint); static; overload;
    class procedure glRotatexOES(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glSampleCoveragexOES(para1: jint; para2: jboolean); static; overload;
    class procedure glScalexOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexEnvxOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexEnvxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexEnvxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexEnvxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTexParameterxOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexParameterxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexParameterxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexParameterxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTranslatexOES(para1: jint; para2: jint; para3: jint); static; overload;
    class function glIsRenderbufferOES(para1: jint): jboolean; static; overload;
    class procedure glBindRenderbufferOES(para1: jint; para2: jint); static; overload;
    class procedure glDeleteRenderbuffersOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteRenderbuffersOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteRenderbuffersOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGenRenderbuffersOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenRenderbuffersOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenRenderbuffersOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glRenderbufferStorageOES(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glGetRenderbufferParameterivOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetRenderbufferParameterivOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetRenderbufferParameterivOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class function glIsFramebufferOES(para1: jint): jboolean; static; overload;
    class procedure glBindFramebufferOES(para1: jint; para2: jint); static; overload;
    class procedure glDeleteFramebuffersOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteFramebuffersOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteFramebuffersOES(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGenFramebuffersOES(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenFramebuffersOES(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenFramebuffersOES(para1: jint; para2: JNIntBuffer); static; overload;
    class function glCheckFramebufferStatusOES(para1: jint): jint; static; overload;
    class procedure glFramebufferRenderbufferOES(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glFramebufferTexture2DOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glGetFramebufferAttachmentParameterivOES(para1: jint; para2: jint; para3: jint; para4: Arr1jint; para5: jint); static; overload;
    class procedure glGetFramebufferAttachmentParameterivOES(para1: jint; para2: jint; para3: jint; var para4: array of jint; para5: jint); static; overload;
    class procedure glGetFramebufferAttachmentParameterivOES(para1: jint; para2: jint; para3: jint; para4: JNIntBuffer); static; overload;
    class procedure glGenerateMipmapOES(para1: jint); static; overload;
    class procedure glCurrentPaletteMatrixOES(para1: jint); static; overload;
    class procedure glLoadPaletteFromModelViewMatrixOES(); static; overload;
    class procedure glMatrixIndexPointerOES(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glWeightPointerOES(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glDepthRangefOES(para1: jfloat; para2: jfloat); static; overload;
    class procedure glFrustumfOES(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure glOrthofOES(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure glClipPlanefOES(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glClipPlanefOES(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glClipPlanefOES(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glGetClipPlanefOES(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glGetClipPlanefOES(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glGetClipPlanefOES(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glClearDepthfOES(para1: jfloat); static; overload;
    class procedure glTexGenfOES(para1: jint; para2: jint; para3: jfloat); static; overload;
    class procedure glTexGenfvOES(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glTexGenfvOES(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glTexGenfvOES(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glTexGeniOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexGenivOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexGenivOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexGenivOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTexGenxOES(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexGenxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexGenxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexGenxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexGenfvOES(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetTexGenfvOES(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetTexGenfvOES(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetTexGenivOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexGenivOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexGenivOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexGenxvOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexGenxvOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexGenxvOES(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
  end;

  AOGLES20 = class external 'android.opengl' name 'GLES20' (JLObject)
  public
    const
      GL_ACTIVE_TEXTURE = 34016;
      GL_DEPTH_BUFFER_BIT = 256;
      GL_STENCIL_BUFFER_BIT = 1024;
      GL_COLOR_BUFFER_BIT = 16384;
      GL_FALSE = 0;
      GL_TRUE = 1;
      GL_POINTS = 0;
      GL_LINES = 1;
      GL_LINE_LOOP = 2;
      GL_LINE_STRIP = 3;
      GL_TRIANGLES = 4;
      GL_TRIANGLE_STRIP = 5;
      GL_TRIANGLE_FAN = 6;
      GL_ZERO = 0;
      GL_ONE = 1;
      GL_SRC_COLOR = 768;
      GL_ONE_MINUS_SRC_COLOR = 769;
      GL_SRC_ALPHA = 770;
      GL_ONE_MINUS_SRC_ALPHA = 771;
      GL_DST_ALPHA = 772;
      GL_ONE_MINUS_DST_ALPHA = 773;
      GL_DST_COLOR = 774;
      GL_ONE_MINUS_DST_COLOR = 775;
      GL_SRC_ALPHA_SATURATE = 776;
      GL_FUNC_ADD = 32774;
      GL_BLEND_EQUATION = 32777;
      GL_BLEND_EQUATION_RGB = 32777;
      GL_BLEND_EQUATION_ALPHA = 34877;
      GL_FUNC_SUBTRACT = 32778;
      GL_FUNC_REVERSE_SUBTRACT = 32779;
      GL_BLEND_DST_RGB = 32968;
      GL_BLEND_SRC_RGB = 32969;
      GL_BLEND_DST_ALPHA = 32970;
      GL_BLEND_SRC_ALPHA = 32971;
      GL_CONSTANT_COLOR = 32769;
      GL_ONE_MINUS_CONSTANT_COLOR = 32770;
      GL_CONSTANT_ALPHA = 32771;
      GL_ONE_MINUS_CONSTANT_ALPHA = 32772;
      GL_BLEND_COLOR = 32773;
      GL_ARRAY_BUFFER = 34962;
      GL_ELEMENT_ARRAY_BUFFER = 34963;
      GL_ARRAY_BUFFER_BINDING = 34964;
      GL_ELEMENT_ARRAY_BUFFER_BINDING = 34965;
      GL_STREAM_DRAW = 35040;
      GL_STATIC_DRAW = 35044;
      GL_DYNAMIC_DRAW = 35048;
      GL_BUFFER_SIZE = 34660;
      GL_BUFFER_USAGE = 34661;
      GL_CURRENT_VERTEX_ATTRIB = 34342;
      GL_FRONT = 1028;
      GL_BACK = 1029;
      GL_FRONT_AND_BACK = 1032;
      GL_TEXTURE_2D = 3553;
      GL_CULL_FACE = 2884;
      GL_BLEND = 3042;
      GL_DITHER = 3024;
      GL_STENCIL_TEST = 2960;
      GL_DEPTH_TEST = 2929;
      GL_SCISSOR_TEST = 3089;
      GL_POLYGON_OFFSET_FILL = 32823;
      GL_SAMPLE_ALPHA_TO_COVERAGE = 32926;
      GL_SAMPLE_COVERAGE = 32928;
      GL_NO_ERROR = 0;
      GL_INVALID_ENUM = 1280;
      GL_INVALID_VALUE = 1281;
      GL_INVALID_OPERATION = 1282;
      GL_OUT_OF_MEMORY = 1285;
      GL_CW = 2304;
      GL_CCW = 2305;
      GL_LINE_WIDTH = 2849;
      GL_ALIASED_POINT_SIZE_RANGE = 33901;
      GL_ALIASED_LINE_WIDTH_RANGE = 33902;
      GL_CULL_FACE_MODE = 2885;
      GL_FRONT_FACE = 2886;
      GL_DEPTH_RANGE = 2928;
      GL_DEPTH_WRITEMASK = 2930;
      GL_DEPTH_CLEAR_VALUE = 2931;
      GL_DEPTH_FUNC = 2932;
      GL_STENCIL_CLEAR_VALUE = 2961;
      GL_STENCIL_FUNC = 2962;
      GL_STENCIL_FAIL = 2964;
      GL_STENCIL_PASS_DEPTH_FAIL = 2965;
      GL_STENCIL_PASS_DEPTH_PASS = 2966;
      GL_STENCIL_REF = 2967;
      GL_STENCIL_VALUE_MASK = 2963;
      GL_STENCIL_WRITEMASK = 2968;
      GL_STENCIL_BACK_FUNC = 34816;
      GL_STENCIL_BACK_FAIL = 34817;
      GL_STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
      GL_STENCIL_BACK_PASS_DEPTH_PASS = 34819;
      GL_STENCIL_BACK_REF = 36003;
      GL_STENCIL_BACK_VALUE_MASK = 36004;
      GL_STENCIL_BACK_WRITEMASK = 36005;
      GL_VIEWPORT = 2978;
      GL_SCISSOR_BOX = 3088;
      GL_COLOR_CLEAR_VALUE = 3106;
      GL_COLOR_WRITEMASK = 3107;
      GL_UNPACK_ALIGNMENT = 3317;
      GL_PACK_ALIGNMENT = 3333;
      GL_MAX_TEXTURE_SIZE = 3379;
      GL_MAX_VIEWPORT_DIMS = 3386;
      GL_SUBPIXEL_BITS = 3408;
      GL_RED_BITS = 3410;
      GL_GREEN_BITS = 3411;
      GL_BLUE_BITS = 3412;
      GL_ALPHA_BITS = 3413;
      GL_DEPTH_BITS = 3414;
      GL_STENCIL_BITS = 3415;
      GL_POLYGON_OFFSET_UNITS = 10752;
      GL_POLYGON_OFFSET_FACTOR = 32824;
      GL_TEXTURE_BINDING_2D = 32873;
      GL_SAMPLE_BUFFERS = 32936;
      GL_SAMPLES = 32937;
      GL_SAMPLE_COVERAGE_VALUE = 32938;
      GL_SAMPLE_COVERAGE_INVERT = 32939;
      GL_NUM_COMPRESSED_TEXTURE_FORMATS = 34466;
      GL_COMPRESSED_TEXTURE_FORMATS = 34467;
      GL_DONT_CARE = 4352;
      GL_FASTEST = 4353;
      GL_NICEST = 4354;
      GL_GENERATE_MIPMAP_HINT = 33170;
      GL_BYTE = 5120;
      GL_UNSIGNED_BYTE = 5121;
      GL_SHORT = 5122;
      GL_UNSIGNED_SHORT = 5123;
      GL_INT = 5124;
      GL_UNSIGNED_INT = 5125;
      GL_FLOAT = 5126;
      GL_FIXED = 5132;
      GL_DEPTH_COMPONENT = 6402;
      GL_ALPHA = 6406;
      GL_RGB = 6407;
      GL_RGBA = 6408;
      GL_LUMINANCE = 6409;
      GL_LUMINANCE_ALPHA = 6410;
      GL_UNSIGNED_SHORT_4_4_4_4 = 32819;
      GL_UNSIGNED_SHORT_5_5_5_1 = 32820;
      GL_UNSIGNED_SHORT_5_6_5 = 33635;
      GL_FRAGMENT_SHADER = 35632;
      GL_VERTEX_SHADER = 35633;
      GL_MAX_VERTEX_ATTRIBS = 34921;
      GL_MAX_VERTEX_UNIFORM_VECTORS = 36347;
      GL_MAX_VARYING_VECTORS = 36348;
      GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
      GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
      GL_MAX_TEXTURE_IMAGE_UNITS = 34930;
      GL_MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
      GL_SHADER_TYPE = 35663;
      GL_DELETE_STATUS = 35712;
      GL_LINK_STATUS = 35714;
      GL_VALIDATE_STATUS = 35715;
      GL_ATTACHED_SHADERS = 35717;
      GL_ACTIVE_UNIFORMS = 35718;
      GL_ACTIVE_UNIFORM_MAX_LENGTH = 35719;
      GL_ACTIVE_ATTRIBUTES = 35721;
      GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 35722;
      GL_SHADING_LANGUAGE_VERSION = 35724;
      GL_CURRENT_PROGRAM = 35725;
      GL_NEVER = 512;
      GL_LESS = 513;
      GL_EQUAL = 514;
      GL_LEQUAL = 515;
      GL_GREATER = 516;
      GL_NOTEQUAL = 517;
      GL_GEQUAL = 518;
      GL_ALWAYS = 519;
      GL_KEEP = 7680;
      GL_REPLACE = 7681;
      GL_INCR = 7682;
      GL_DECR = 7683;
      GL_INVERT = 5386;
      GL_INCR_WRAP = 34055;
      GL_DECR_WRAP = 34056;
      GL_VENDOR = 7936;
      GL_RENDERER = 7937;
      GL_VERSION = 7938;
      GL_EXTENSIONS = 7939;
      GL_NEAREST = 9728;
      GL_LINEAR = 9729;
      GL_NEAREST_MIPMAP_NEAREST = 9984;
      GL_LINEAR_MIPMAP_NEAREST = 9985;
      GL_NEAREST_MIPMAP_LINEAR = 9986;
      GL_LINEAR_MIPMAP_LINEAR = 9987;
      GL_TEXTURE_MAG_FILTER = 10240;
      GL_TEXTURE_MIN_FILTER = 10241;
      GL_TEXTURE_WRAP_S = 10242;
      GL_TEXTURE_WRAP_T = 10243;
      GL_TEXTURE = 5890;
      GL_TEXTURE_CUBE_MAP = 34067;
      GL_TEXTURE_BINDING_CUBE_MAP = 34068;
      GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
      GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
      GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
      GL_MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
      GL_TEXTURE0 = 33984;
      GL_TEXTURE1 = 33985;
      GL_TEXTURE2 = 33986;
      GL_TEXTURE3 = 33987;
      GL_TEXTURE4 = 33988;
      GL_TEXTURE5 = 33989;
      GL_TEXTURE6 = 33990;
      GL_TEXTURE7 = 33991;
      GL_TEXTURE8 = 33992;
      GL_TEXTURE9 = 33993;
      GL_TEXTURE10 = 33994;
      GL_TEXTURE11 = 33995;
      GL_TEXTURE12 = 33996;
      GL_TEXTURE13 = 33997;
      GL_TEXTURE14 = 33998;
      GL_TEXTURE15 = 33999;
      GL_TEXTURE16 = 34000;
      GL_TEXTURE17 = 34001;
      GL_TEXTURE18 = 34002;
      GL_TEXTURE19 = 34003;
      GL_TEXTURE20 = 34004;
      GL_TEXTURE21 = 34005;
      GL_TEXTURE22 = 34006;
      GL_TEXTURE23 = 34007;
      GL_TEXTURE24 = 34008;
      GL_TEXTURE25 = 34009;
      GL_TEXTURE26 = 34010;
      GL_TEXTURE27 = 34011;
      GL_TEXTURE28 = 34012;
      GL_TEXTURE29 = 34013;
      GL_TEXTURE30 = 34014;
      GL_TEXTURE31 = 34015;
      GL_REPEAT = 10497;
      GL_CLAMP_TO_EDGE = 33071;
      GL_MIRRORED_REPEAT = 33648;
      GL_FLOAT_VEC2 = 35664;
      GL_FLOAT_VEC3 = 35665;
      GL_FLOAT_VEC4 = 35666;
      GL_INT_VEC2 = 35667;
      GL_INT_VEC3 = 35668;
      GL_INT_VEC4 = 35669;
      GL_BOOL = 35670;
      GL_BOOL_VEC2 = 35671;
      GL_BOOL_VEC3 = 35672;
      GL_BOOL_VEC4 = 35673;
      GL_FLOAT_MAT2 = 35674;
      GL_FLOAT_MAT3 = 35675;
      GL_FLOAT_MAT4 = 35676;
      GL_SAMPLER_2D = 35678;
      GL_SAMPLER_CUBE = 35680;
      GL_VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
      GL_VERTEX_ATTRIB_ARRAY_SIZE = 34339;
      GL_VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
      GL_VERTEX_ATTRIB_ARRAY_TYPE = 34341;
      GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
      GL_VERTEX_ATTRIB_ARRAY_POINTER = 34373;
      GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
      GL_IMPLEMENTATION_COLOR_READ_TYPE = 35738;
      GL_IMPLEMENTATION_COLOR_READ_FORMAT = 35739;
      GL_COMPILE_STATUS = 35713;
      GL_INFO_LOG_LENGTH = 35716;
      GL_SHADER_SOURCE_LENGTH = 35720;
      GL_SHADER_COMPILER = 36346;
      GL_SHADER_BINARY_FORMATS = 36344;
      GL_NUM_SHADER_BINARY_FORMATS = 36345;
      GL_LOW_FLOAT = 36336;
      GL_MEDIUM_FLOAT = 36337;
      GL_HIGH_FLOAT = 36338;
      GL_LOW_INT = 36339;
      GL_MEDIUM_INT = 36340;
      GL_HIGH_INT = 36341;
      GL_FRAMEBUFFER = 36160;
      GL_RENDERBUFFER = 36161;
      GL_RGBA4 = 32854;
      GL_RGB5_A1 = 32855;
      GL_RGB565 = 36194;
      GL_DEPTH_COMPONENT16 = 33189;
      GL_STENCIL_INDEX = 6401;
      GL_STENCIL_INDEX8 = 36168;
      GL_RENDERBUFFER_WIDTH = 36162;
      GL_RENDERBUFFER_HEIGHT = 36163;
      GL_RENDERBUFFER_INTERNAL_FORMAT = 36164;
      GL_RENDERBUFFER_RED_SIZE = 36176;
      GL_RENDERBUFFER_GREEN_SIZE = 36177;
      GL_RENDERBUFFER_BLUE_SIZE = 36178;
      GL_RENDERBUFFER_ALPHA_SIZE = 36179;
      GL_RENDERBUFFER_DEPTH_SIZE = 36180;
      GL_RENDERBUFFER_STENCIL_SIZE = 36181;
      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
      GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
      GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
      GL_COLOR_ATTACHMENT0 = 36064;
      GL_DEPTH_ATTACHMENT = 36096;
      GL_STENCIL_ATTACHMENT = 36128;
      GL_NONE = 0;
      GL_FRAMEBUFFER_COMPLETE = 36053;
      GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
      GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
      GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
      GL_FRAMEBUFFER_UNSUPPORTED = 36061;
      GL_FRAMEBUFFER_BINDING = 36006;
      GL_RENDERBUFFER_BINDING = 36007;
      GL_MAX_RENDERBUFFER_SIZE = 34024;
      GL_INVALID_FRAMEBUFFER_OPERATION = 1286;
  public
    constructor create(); overload;
    class procedure glActiveTexture(para1: jint); static; overload;
    class procedure glAttachShader(para1: jint; para2: jint); static; overload;
    class procedure glBindAttribLocation(para1: jint; para2: jint; para3: JLString); static; overload;
    class procedure glBindBuffer(para1: jint; para2: jint); static; overload;
    class procedure glBindFramebuffer(para1: jint; para2: jint); static; overload;
    class procedure glBindRenderbuffer(para1: jint; para2: jint); static; overload;
    class procedure glBindTexture(para1: jint; para2: jint); static; overload;
    class procedure glBlendColor(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glBlendEquation(para1: jint); static; overload;
    class procedure glBlendEquationSeparate(para1: jint; para2: jint); static; overload;
    class procedure glBlendFunc(para1: jint; para2: jint); static; overload;
    class procedure glBlendFuncSeparate(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glBufferData(para1: jint; para2: jint; para3: JNBuffer; para4: jint); static; overload;
    class procedure glBufferSubData(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class function glCheckFramebufferStatus(para1: jint): jint; static; overload;
    class procedure glClear(para1: jint); static; overload;
    class procedure glClearColor(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glClearDepthf(para1: jfloat); static; overload;
    class procedure glClearStencil(para1: jint); static; overload;
    class procedure glColorMask(para1: jboolean; para2: jboolean; para3: jboolean; para4: jboolean); static; overload;
    class procedure glCompileShader(para1: jint); static; overload;
    class procedure glCompressedTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JNBuffer); static; overload;
    class procedure glCompressedTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); static; overload;
    class procedure glCopyTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); static; overload;
    class procedure glCopyTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); static; overload;
    class function glCreateProgram(): jint; static; overload;
    class function glCreateShader(para1: jint): jint; static; overload;
    class procedure glCullFace(para1: jint); static; overload;
    class procedure glDeleteBuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteBuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteBuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glDeleteFramebuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteFramebuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteFramebuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glDeleteProgram(para1: jint); static; overload;
    class procedure glDeleteRenderbuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteRenderbuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteRenderbuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glDeleteShader(para1: jint); static; overload;
    class procedure glDeleteTextures(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteTextures(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteTextures(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glDepthFunc(para1: jint); static; overload;
    class procedure glDepthMask(para1: jboolean); static; overload;
    class procedure glDepthRangef(para1: jfloat; para2: jfloat); static; overload;
    class procedure glDetachShader(para1: jint; para2: jint); static; overload;
    class procedure glDisable(para1: jint); static; overload;
    class procedure glDisableVertexAttribArray(para1: jint); static; overload;
    class procedure glDrawArrays(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glDrawElements(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glDrawElements(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glEnable(para1: jint); static; overload;
    class procedure glEnableVertexAttribArray(para1: jint); static; overload;
    class procedure glFinish(); static; overload;
    class procedure glFlush(); static; overload;
    class procedure glFramebufferRenderbuffer(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glFramebufferTexture2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glFrontFace(para1: jint); static; overload;
    class procedure glGenBuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenBuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenBuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGenerateMipmap(para1: jint); static; overload;
    class procedure glGenFramebuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenFramebuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenFramebuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGenRenderbuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenRenderbuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenRenderbuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGenTextures(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenTextures(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenTextures(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetActiveAttrib(para1: jint; para2: jint; para3: jint; para4: Arr1jint; para5: jint; para6: Arr1jint; para7: jint; para8: Arr1jint; para9: jint; para10: Arr1jbyte; para11: jint); static; overload;
    class procedure glGetActiveAttrib(para1: jint; para2: jint; para3: jint; var para4: array of jint; para5: jint; var para6: array of jint; para7: jint; var para8: array of jint; para9: jint; var para10: array of jbyte; para11: jint); static; overload;
    class procedure glGetActiveAttrib(para1: jint; para2: jint; para3: jint; para4: JNIntBuffer; para5: JNIntBuffer; para6: JNIntBuffer; para7: jbyte); static; overload;
    class procedure glGetActiveUniform(para1: jint; para2: jint; para3: jint; para4: Arr1jint; para5: jint; para6: Arr1jint; para7: jint; para8: Arr1jint; para9: jint; para10: Arr1jbyte; para11: jint); static; overload;
    class procedure glGetActiveUniform(para1: jint; para2: jint; para3: jint; var para4: array of jint; para5: jint; var para6: array of jint; para7: jint; var para8: array of jint; para9: jint; var para10: array of jbyte; para11: jint); static; overload;
    class procedure glGetActiveUniform(para1: jint; para2: jint; para3: jint; para4: JNIntBuffer; para5: JNIntBuffer; para6: JNIntBuffer; para7: jbyte); static; overload;
    class procedure glGetAttachedShaders(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: Arr1jint; para6: jint); static; overload;
    class procedure glGetAttachedShaders(para1: jint; para2: jint; var para3: array of jint; para4: jint; var para5: array of jint; para6: jint); static; overload;
    class procedure glGetAttachedShaders(para1: jint; para2: jint; para3: JNIntBuffer; para4: JNIntBuffer); static; overload;
    class function glGetAttribLocation(para1: jint; para2: JLString): jint; static; overload;
    class procedure glGetBooleanv(para1: jint; para2: Arr1jboolean; para3: jint); static; overload;
    class procedure glGetBooleanv(para1: jint; var para2: array of jboolean; para3: jint); static; overload;
    class procedure glGetBooleanv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetBufferParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetBufferParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetBufferParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class function glGetError(): jint; static; overload;
    class procedure glGetFloatv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glGetFloatv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glGetFloatv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glGetFramebufferAttachmentParameteriv(para1: jint; para2: jint; para3: jint; para4: Arr1jint; para5: jint); static; overload;
    class procedure glGetFramebufferAttachmentParameteriv(para1: jint; para2: jint; para3: jint; var para4: array of jint; para5: jint); static; overload;
    class procedure glGetFramebufferAttachmentParameteriv(para1: jint; para2: jint; para3: jint; para4: JNIntBuffer); static; overload;
    class procedure glGetIntegerv(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGetIntegerv(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGetIntegerv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetProgramiv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetProgramiv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetProgramiv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class function glGetProgramInfoLog(para1: jint): JLString; static; overload;
    class procedure glGetRenderbufferParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetRenderbufferParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetRenderbufferParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetShaderiv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetShaderiv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetShaderiv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class function glGetShaderInfoLog(para1: jint): JLString; static; overload;
    class procedure glGetShaderPrecisionFormat(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: Arr1jint; para6: jint); static; overload;
    class procedure glGetShaderPrecisionFormat(para1: jint; para2: jint; var para3: array of jint; para4: jint; var para5: array of jint; para6: jint); static; overload;
    class procedure glGetShaderPrecisionFormat(para1: jint; para2: jint; para3: JNIntBuffer; para4: JNIntBuffer); static; overload;
    class procedure glGetShaderSource(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: Arr1jbyte; para6: jint); static; overload;
    class procedure glGetShaderSource(para1: jint; para2: jint; var para3: array of jint; para4: jint; var para5: array of jbyte; para6: jint); static; overload;
    class procedure glGetShaderSource(para1: jint; para2: jint; para3: JNIntBuffer; para4: jbyte); static; overload;
    class function glGetString(para1: jint): JLString; static; overload;
    class procedure glGetTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetTexParameterfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetTexParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetUniformfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetUniformfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetUniformfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetUniformiv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetUniformiv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetUniformiv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class function glGetUniformLocation(para1: jint; para2: JLString): jint; static; overload;
    class procedure glGetVertexAttribfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetVertexAttribfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetVertexAttribfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetVertexAttribiv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetVertexAttribiv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetVertexAttribiv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glHint(para1: jint; para2: jint); static; overload;
    class function glIsBuffer(para1: jint): jboolean; static; overload;
    class function glIsEnabled(para1: jint): jboolean; static; overload;
    class function glIsFramebuffer(para1: jint): jboolean; static; overload;
    class function glIsProgram(para1: jint): jboolean; static; overload;
    class function glIsRenderbuffer(para1: jint): jboolean; static; overload;
    class function glIsShader(para1: jint): jboolean; static; overload;
    class function glIsTexture(para1: jint): jboolean; static; overload;
    class procedure glLineWidth(para1: jfloat); static; overload;
    class procedure glLinkProgram(para1: jint); static; overload;
    class procedure glPixelStorei(para1: jint; para2: jint); static; overload;
    class procedure glPolygonOffset(para1: jfloat; para2: jfloat); static; overload;
    class procedure glReadPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: JNBuffer); static; overload;
    class procedure glReleaseShaderCompiler(); static; overload;
    class procedure glRenderbufferStorage(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glSampleCoverage(para1: jfloat; para2: jboolean); static; overload;
    class procedure glScissor(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glShaderBinary(para1: jint; para2: Arr1jint; para3: jint; para4: jint; para5: JNBuffer; para6: jint); static; overload;
    class procedure glShaderBinary(para1: jint; var para2: array of jint; para3: jint; para4: jint; para5: JNBuffer; para6: jint); static; overload;
    class procedure glShaderBinary(para1: jint; para2: JNIntBuffer; para3: jint; para4: JNBuffer; para5: jint); static; overload;
    class procedure glShaderSource(para1: jint; para2: JLString); static; overload;
    class procedure glStencilFunc(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glStencilFuncSeparate(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glStencilMask(para1: jint); static; overload;
    class procedure glStencilMaskSeparate(para1: jint; para2: jint); static; overload;
    class procedure glStencilOp(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glStencilOpSeparate(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); static; overload;
    class procedure glTexParameterf(para1: jint; para2: jint; para3: jfloat); static; overload;
    class procedure glTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glTexParameterfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glTexParameteri(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); static; overload;
    class procedure glUniform1f(para1: jint; para2: jfloat); static; overload;
    class procedure glUniform1fv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glUniform1fv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glUniform1fv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glUniform1i(para1: jint; para2: jint); static; overload;
    class procedure glUniform1iv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glUniform1iv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glUniform1iv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glUniform2f(para1: jint; para2: jfloat; para3: jfloat); static; overload;
    class procedure glUniform2fv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glUniform2fv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glUniform2fv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glUniform2i(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glUniform2iv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glUniform2iv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glUniform2iv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glUniform3f(para1: jint; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glUniform3fv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glUniform3fv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glUniform3fv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glUniform3i(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glUniform3iv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glUniform3iv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glUniform3iv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glUniform4f(para1: jint; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure glUniform4fv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glUniform4fv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glUniform4fv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glUniform4i(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure glUniform4iv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glUniform4iv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glUniform4iv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glUniformMatrix2fv(para1: jint; para2: jint; para3: jboolean; para4: Arr1jfloat; para5: jint); static; overload;
    class procedure glUniformMatrix2fv(para1: jint; para2: jint; para3: jboolean; var para4: array of jfloat; para5: jint); static; overload;
    class procedure glUniformMatrix2fv(para1: jint; para2: jint; para3: jboolean; para4: JNFloatBuffer); static; overload;
    class procedure glUniformMatrix3fv(para1: jint; para2: jint; para3: jboolean; para4: Arr1jfloat; para5: jint); static; overload;
    class procedure glUniformMatrix3fv(para1: jint; para2: jint; para3: jboolean; var para4: array of jfloat; para5: jint); static; overload;
    class procedure glUniformMatrix3fv(para1: jint; para2: jint; para3: jboolean; para4: JNFloatBuffer); static; overload;
    class procedure glUniformMatrix4fv(para1: jint; para2: jint; para3: jboolean; para4: Arr1jfloat; para5: jint); static; overload;
    class procedure glUniformMatrix4fv(para1: jint; para2: jint; para3: jboolean; var para4: array of jfloat; para5: jint); static; overload;
    class procedure glUniformMatrix4fv(para1: jint; para2: jint; para3: jboolean; para4: JNFloatBuffer); static; overload;
    class procedure glUseProgram(para1: jint); static; overload;
    class procedure glValidateProgram(para1: jint); static; overload;
    class procedure glVertexAttrib1f(para1: jint; para2: jfloat); static; overload;
    class procedure glVertexAttrib1fv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib1fv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib1fv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glVertexAttrib2f(para1: jint; para2: jfloat; para3: jfloat); static; overload;
    class procedure glVertexAttrib2fv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib2fv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib2fv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glVertexAttrib3f(para1: jint; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure glVertexAttrib3fv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib3fv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib3fv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glVertexAttrib4f(para1: jint; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure glVertexAttrib4fv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib4fv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glVertexAttrib4fv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glVertexAttribPointer(para1: jint; para2: jint; para3: jint; para4: jboolean; para5: jint; para6: jint); static; overload;
    class procedure glVertexAttribPointer(para1: jint; para2: jint; para3: jint; para4: jboolean; para5: jint; para6: JNBuffer); static; overload;
    class procedure glViewport(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
  end;

  AOGLU = class external 'android.opengl' name 'GLU' (JLObject)
  public
    constructor create(); overload;
    class function gluErrorString(para1: jint): JLString; static; overload;
    class procedure gluLookAt(para1: JMKOGL10; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat; para9: jfloat; para10: jfloat); static; overload;
    class procedure gluOrtho2D(para1: JMKOGL10; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure gluPerspective(para1: JMKOGL10; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class function gluProject(para1: jfloat; para2: jfloat; para3: jfloat; para4: Arr1jfloat; para5: jint; para6: Arr1jfloat; para7: jint; para8: Arr1jint; para9: jint; para10: Arr1jfloat; para11: jint): jint; static; overload;
    class function gluProject(para1: jfloat; para2: jfloat; para3: jfloat; var para4: array of jfloat; para5: jint; var para6: array of jfloat; para7: jint; var para8: array of jint; para9: jint; var para10: array of jfloat; para11: jint): jint; static; overload;
    class function gluUnProject(para1: jfloat; para2: jfloat; para3: jfloat; para4: Arr1jfloat; para5: jint; para6: Arr1jfloat; para7: jint; para8: Arr1jint; para9: jint; para10: Arr1jfloat; para11: jint): jint; static; overload;
    class function gluUnProject(para1: jfloat; para2: jfloat; para3: jfloat; var para4: array of jfloat; para5: jint; var para6: array of jfloat; para7: jint; var para8: array of jint; para9: jint; var para10: array of jfloat; para11: jint): jint; static; overload;
  end;

  AOGLUtils = class sealed external 'android.opengl' name 'GLUtils' (JLObject)
  public
    class function getInternalFormat(para1: AGBitmap): jint; static; overload;
    class function getType(para1: AGBitmap): jint; static; overload;
    class procedure texImage2D(para1: jint; para2: jint; para3: jint; para4: AGBitmap; para5: jint); static; overload;
    class procedure texImage2D(para1: jint; para2: jint; para3: jint; para4: AGBitmap; para5: jint; para6: jint); static; overload;
    class procedure texImage2D(para1: jint; para2: jint; para3: AGBitmap; para4: jint); static; overload;
    class procedure texSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: AGBitmap); static; overload;
    class procedure texSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: AGBitmap; para6: jint; para7: jint); static; overload;
    class function getEGLErrorString(para1: jint): JLString; static; overload;
  end;

  AOMatrix = class external 'android.opengl' name 'Matrix' (JLObject)
  public
    constructor create(); overload;
    class procedure multiplyMM(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: Arr1jfloat; para6: jint); static; overload;
    class procedure multiplyMM(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; var para5: array of jfloat; para6: jint); static; overload;
    class procedure multiplyMV(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: Arr1jfloat; para6: jint); static; overload;
    class procedure multiplyMV(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; var para5: array of jfloat; para6: jint); static; overload;
    class procedure transposeM(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure transposeM(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class function invertM(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint): jboolean; static; overload;
    class function invertM(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint): jboolean; static; overload;
    class procedure orthoM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); static; overload;
    class procedure orthoM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); static; overload;
    class procedure frustumM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); static; overload;
    class procedure frustumM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); static; overload;
    class procedure perspectiveM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure perspectiveM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class function length(para1: jfloat; para2: jfloat; para3: jfloat): jfloat; static; overload;
    class procedure setIdentityM(para1: Arr1jfloat; para2: jint); static; overload;
    class procedure setIdentityM(var para1: array of jfloat; para2: jint); static; overload;
    class procedure scaleM(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat); static; overload;
    class procedure scaleM(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat); static; overload;
    class procedure scaleM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure scaleM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure translateM(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat); static; overload;
    class procedure translateM(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat); static; overload;
    class procedure translateM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure translateM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure rotateM(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); static; overload;
    class procedure rotateM(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); static; overload;
    class procedure rotateM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure rotateM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure setRotateM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure setRotateM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); static; overload;
    class procedure setRotateEulerM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure setRotateEulerM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat); static; overload;
    class procedure setLookAtM(para1: Arr1jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat; para9: jfloat; para10: jfloat; para11: jfloat); static; overload;
    class procedure setLookAtM(var para1: array of jfloat; para2: jint; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat; para9: jfloat; para10: jfloat; para11: jfloat); static; overload;
  end;

  AOVisibility = class external 'android.opengl' name 'Visibility' (JLObject)
  public
    constructor create(); overload;
    class function visibilityTest(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: Arr1jchar; para6: jint; para7: jint): jint; static; overload;
    class function visibilityTest(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; var para5: array of jchar; para6: jint; para7: jint): jint; static; overload;
    class function frustumCullSpheres(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jint; para6: Arr1jint; para7: jint; para8: jint): jint; static; overload;
    class function frustumCullSpheres(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jint; var para6: array of jint; para7: jint; para8: jint): jint; static; overload;
    class procedure computeBoundingSphere(para1: Arr1jfloat; para2: jint; para3: jint; para4: Arr1jfloat; para5: jint); static; overload;
    class procedure computeBoundingSphere(var para1: array of jfloat; para2: jint; para3: jint; var para4: array of jfloat; para5: jint); static; overload;
  end;

  AOBatteryManager = class external 'android.os' name 'BatteryManager' (JLObject)
  public
    const
      EXTRA_STATUS = 'status';
      EXTRA_HEALTH = 'health';
      EXTRA_PRESENT = 'present';
      EXTRA_LEVEL = 'level';
      EXTRA_SCALE = 'scale';
      EXTRA_ICON_SMALL = 'icon-small';
      EXTRA_PLUGGED = 'plugged';
      EXTRA_VOLTAGE = 'voltage';
      EXTRA_TEMPERATURE = 'temperature';
      EXTRA_TECHNOLOGY = 'technology';
      BATTERY_STATUS_UNKNOWN = 1;
      BATTERY_STATUS_CHARGING = 2;
      BATTERY_STATUS_DISCHARGING = 3;
      BATTERY_STATUS_NOT_CHARGING = 4;
      BATTERY_STATUS_FULL = 5;
      BATTERY_HEALTH_UNKNOWN = 1;
      BATTERY_HEALTH_GOOD = 2;
      BATTERY_HEALTH_OVERHEAT = 3;
      BATTERY_HEALTH_DEAD = 4;
      BATTERY_HEALTH_OVER_VOLTAGE = 5;
      BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6;
      BATTERY_HEALTH_COLD = 7;
      BATTERY_PLUGGED_AC = 1;
      BATTERY_PLUGGED_USB = 2;
  public
    constructor create(); overload;
  end;

  AOBuild = class external 'android.os' name 'Build' (JLObject)
  public
    type
      InnerVERSION_CODES = class;
      Arr1InnerVERSION_CODES = array of InnerVERSION_CODES;
      Arr2InnerVERSION_CODES = array of Arr1InnerVERSION_CODES;
      Arr3InnerVERSION_CODES = array of Arr2InnerVERSION_CODES;
      InnerVERSION = class;
      Arr1InnerVERSION = array of InnerVERSION;
      Arr2InnerVERSION = array of Arr1InnerVERSION;
      Arr3InnerVERSION = array of Arr2InnerVERSION;
      InnerVERSION_CODES = class external 'android.os' name 'VERSION_CODES' (JLObject)
      public
        const
          CUR_DEVELOPMENT = 10000;
          BASE = 1;
          BASE_1_1 = 2;
          CUPCAKE = 3;
          DONUT = 4;
          ECLAIR = 5;
          ECLAIR_0_1 = 6;
          ECLAIR_MR1 = 7;
          FROYO = 8;
          GINGERBREAD = 9;
          GINGERBREAD_MR1 = 10;
          HONEYCOMB = 11;
          HONEYCOMB_MR1 = 12;
          HONEYCOMB_MR2 = 13;
          ICE_CREAM_SANDWICH = 14;
      public
        constructor create(); overload;
      end;

      InnerVERSION = class external 'android.os' name 'VERSION' (JLObject)
      public
        final class var
          fINCREMENTAL: JLString; external name 'INCREMENTAL';
          fRELEASE: JLString; external name 'RELEASE';
          fSDK: JLString; external name 'SDK';
          fSDK_INT: jint; external name 'SDK_INT';
          fCODENAME: JLString; external name 'CODENAME';
      public
        constructor create(); overload;
      end;

  public
    const
      UNKNOWN = 'unknown';
  public
    final class var
      fID: JLString; external name 'ID';
      fDISPLAY: JLString; external name 'DISPLAY';
      fPRODUCT: JLString; external name 'PRODUCT';
      fDEVICE: JLString; external name 'DEVICE';
      fBOARD: JLString; external name 'BOARD';
      fCPU_ABI: JLString; external name 'CPU_ABI';
      fCPU_ABI2: JLString; external name 'CPU_ABI2';
      fMANUFACTURER: JLString; external name 'MANUFACTURER';
      fBRAND: JLString; external name 'BRAND';
      fMODEL: JLString; external name 'MODEL';
      fBOOTLOADER: JLString; external name 'BOOTLOADER';
      fRADIO: JLString; external name 'RADIO';
      fHARDWARE: JLString; external name 'HARDWARE';
      fSERIAL: JLString; external name 'SERIAL';
      fTYPE: JLString; external name 'TYPE';
      fTAGS: JLString; external name 'TAGS';
      fFINGERPRINT: JLString; external name 'FINGERPRINT';
      fTIME: jlong; external name 'TIME';
      fUSER: JLString; external name 'USER';
      fHOST: JLString; external name 'HOST';
  public
    constructor create(); overload;
    class function getRadioVersion(): JLString; static; overload;
  end;

  AOConditionVariable = class external 'android.os' name 'ConditionVariable' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure open(); overload; virtual;
    procedure close(); overload; virtual;
    procedure block(); overload; virtual;
    function block(para1: jlong): jboolean; overload; virtual;
  end;

  AOCountDownTimer = class abstract external 'android.os' name 'CountDownTimer' (JLObject)
  public
    constructor create(para1: jlong; para2: jlong); overload;
    procedure cancel(); overload; virtual; final;
    function start(): AOCountDownTimer; overload; virtual; final;
    procedure onTick(para1: jlong); overload; virtual; abstract;
    procedure onFinish(); overload; virtual; abstract;
  end;

  AOEnvironment = class external 'android.os' name 'Environment' (JLObject)
  public
    class var
      fDIRECTORY_MUSIC: JLString; external name 'DIRECTORY_MUSIC';
      fDIRECTORY_PODCASTS: JLString; external name 'DIRECTORY_PODCASTS';
      fDIRECTORY_RINGTONES: JLString; external name 'DIRECTORY_RINGTONES';
      fDIRECTORY_ALARMS: JLString; external name 'DIRECTORY_ALARMS';
      fDIRECTORY_NOTIFICATIONS: JLString; external name 'DIRECTORY_NOTIFICATIONS';
      fDIRECTORY_PICTURES: JLString; external name 'DIRECTORY_PICTURES';
      fDIRECTORY_MOVIES: JLString; external name 'DIRECTORY_MOVIES';
      fDIRECTORY_DOWNLOADS: JLString; external name 'DIRECTORY_DOWNLOADS';
      fDIRECTORY_DCIM: JLString; external name 'DIRECTORY_DCIM';
  public
    const
      MEDIA_REMOVED = 'removed';
      MEDIA_UNMOUNTED = 'unmounted';
      MEDIA_CHECKING = 'checking';
      MEDIA_NOFS = 'nofs';
      MEDIA_MOUNTED = 'mounted';
      MEDIA_MOUNTED_READ_ONLY = 'mounted_ro';
      MEDIA_SHARED = 'shared';
      MEDIA_BAD_REMOVAL = 'bad_removal';
      MEDIA_UNMOUNTABLE = 'unmountable';
  public
    constructor create(); overload;
    class function getRootDirectory(): JIFile; static; overload;
    class function getDataDirectory(): JIFile; static; overload;
    class function getExternalStorageDirectory(): JIFile; static; overload;
    class function getExternalStoragePublicDirectory(para1: JLString): JIFile; static; overload;
    class function getDownloadCacheDirectory(): JIFile; static; overload;
    class function getExternalStorageState(): JLString; static; overload;
    class function isExternalStorageRemovable(): jboolean; static; overload;
    class function isExternalStorageEmulated(): jboolean; static; overload;
  end;

  AOFileObserver = class abstract external 'android.os' name 'FileObserver' (JLObject)
  public
    const
      ACCESS = 1;
      MODIFY = 2;
      ATTRIB = 4;
      CLOSE_WRITE = 8;
      CLOSE_NOWRITE = 16;
      OPEN = 32;
      MOVED_FROM = 64;
      MOVED_TO = 128;
      CREATE_ = 256;
      DELETE = 512;
      DELETE_SELF = 1024;
      MOVE_SELF = 2048;
      ALL_EVENTS = 4095;
  public
    procedure Create(para1: JLString); overload; virtual;
    procedure Create(para1: JLString; para2: jint); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure startWatching(); overload; virtual;
    procedure stopWatching(); overload; virtual;
    procedure onEvent(para1: jint; para2: JLString); overload; virtual; abstract;
  end;

  AOHandler = class external 'android.os' name 'Handler' (JLObject)
  public
    type
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerCallback = interface external 'android.os' name 'Callback' 
        function handleMessage(para1: AOMessage): jboolean; overload;
      end;

  public
    constructor create(); overload;
    constructor create(para1: AOHandler.InnerCallback); overload;
    constructor create(para1: AOLooper); overload;
    constructor create(para1: AOLooper; para2: AOHandler.InnerCallback); overload;
    procedure handleMessage(para1: AOMessage); overload; virtual;
    procedure dispatchMessage(para1: AOMessage); overload; virtual;
    function getMessageName(para1: AOMessage): JLString; overload; virtual;
    function obtainMessage(): AOMessage; overload; virtual; final;
    function obtainMessage(para1: jint): AOMessage; overload; virtual; final;
    function obtainMessage(para1: jint; para2: JLObject): AOMessage; overload; virtual; final;
    function obtainMessage(para1: jint; para2: jint; para3: jint): AOMessage; overload; virtual; final;
    function obtainMessage(para1: jint; para2: jint; para3: jint; para4: JLObject): AOMessage; overload; virtual; final;
    function post(para1: JLRunnable): jboolean; overload; virtual; final;
    function postAtTime(para1: JLRunnable; para2: jlong): jboolean; overload; virtual; final;
    function postAtTime(para1: JLRunnable; para2: JLObject; para3: jlong): jboolean; overload; virtual; final;
    function postDelayed(para1: JLRunnable; para2: jlong): jboolean; overload; virtual; final;
    function postAtFrontOfQueue(para1: JLRunnable): jboolean; overload; virtual; final;
    procedure removeCallbacks(para1: JLRunnable); overload; virtual; final;
    procedure removeCallbacks(para1: JLRunnable; para2: JLObject); overload; virtual; final;
    function sendMessage(para1: AOMessage): jboolean; overload; virtual; final;
    function sendEmptyMessage(para1: jint): jboolean; overload; virtual; final;
    function sendEmptyMessageDelayed(para1: jint; para2: jlong): jboolean; overload; virtual; final;
    function sendEmptyMessageAtTime(para1: jint; para2: jlong): jboolean; overload; virtual; final;
    function sendMessageDelayed(para1: AOMessage; para2: jlong): jboolean; overload; virtual; final;
    function sendMessageAtTime(para1: AOMessage; para2: jlong): jboolean; overload; virtual;
    function sendMessageAtFrontOfQueue(para1: AOMessage): jboolean; overload; virtual; final;
    procedure removeMessages(para1: jint); overload; virtual; final;
    procedure removeMessages(para1: jint; para2: JLObject); overload; virtual; final;
    procedure removeCallbacksAndMessages(para1: JLObject); overload; virtual; final;
    function hasMessages(para1: jint): jboolean; overload; virtual; final;
    function hasMessages(para1: jint; para2: JLObject): jboolean; overload; virtual; final;
    function getLooper(): AOLooper; overload; virtual; final;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  AOIBinder = interface external 'android.os' name 'IBinder' 
    type
      InnerDeathRecipient = interface;
      Arr1InnerDeathRecipient = array of InnerDeathRecipient;
      Arr2InnerDeathRecipient = array of Arr1InnerDeathRecipient;
      Arr3InnerDeathRecipient = array of Arr2InnerDeathRecipient;
      InnerDeathRecipient = interface external 'android.os' name 'DeathRecipient' 
        procedure binderDied(); overload;
      end;

    const
      FIRST_CALL_TRANSACTION = 1;
      LAST_CALL_TRANSACTION = 16777215;
      PING_TRANSACTION = 1599098439;
      DUMP_TRANSACTION = 1598311760;
      INTERFACE_TRANSACTION = 1598968902;
      TWEET_TRANSACTION = 1599362900;
      FLAG_ONEWAY = 1;
    function getInterfaceDescriptor(): JLString; overload;  // throws android.os.RemoteException
    function pingBinder(): jboolean; overload;
    function isBinderAlive(): jboolean; overload;
    function queryLocalInterface(para1: JLString): AOIInterface; overload;
    procedure dump(para1: JIFileDescriptor; para2: Arr1JLString); overload;  // throws android.os.RemoteException
    procedure dump(para1: JIFileDescriptor; var para2: array of JLString); overload;  // throws android.os.RemoteException
    procedure dumpAsync(para1: JIFileDescriptor; para2: Arr1JLString); overload;  // throws android.os.RemoteException
    procedure dumpAsync(para1: JIFileDescriptor; var para2: array of JLString); overload;  // throws android.os.RemoteException
    function transact(para1: jint; para2: AOParcel; para3: AOParcel; para4: jint): jboolean; overload;  // throws android.os.RemoteException
    procedure linkToDeath(para1: AOIBinder.InnerDeathRecipient; para2: jint); overload;  // throws android.os.RemoteException
    function unlinkToDeath(para1: AOIBinder.InnerDeathRecipient; para2: jint): jboolean; overload;
  end;

  AOIInterface = interface external 'android.os' name 'IInterface' 
    function asBinder(): AOIBinder; overload;
  end;

  AOLooper = class external 'android.os' name 'Looper' (JLObject)
  public
    class procedure prepare(); static; overload;
    class procedure prepareMainLooper(); static; overload;
    class function getMainLooper(): AOLooper; static; overload;
    class procedure loop(); static; overload;
    class function myLooper(): AOLooper; static; overload;
    procedure setMessageLogging(para1: AUPrinter); overload; virtual;
    class function myQueue(): AOMessageQueue; static; overload;
    procedure quit(); overload; virtual;
    function getThread(): JLThread; overload; virtual;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AOMemoryFile = class external 'android.os' name 'MemoryFile' (JLObject)
  public
    constructor create(para1: JLString; para2: jint); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    function length(): jint; overload; virtual;
    function isPurgingAllowed(): jboolean; overload; virtual;
    function allowPurging(para1: jboolean): jboolean; overload; virtual;  // throws java.io.IOException
    function getInputStream(): JIInputStream; overload; virtual;
    function getOutputStream(): JIOutputStream; overload; virtual;
    function readBytes(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint): jint; overload; virtual;  // throws java.io.IOException
    function readBytes(var para1: array of jbyte; para2: jint; para3: jint; para4: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure writeBytes(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBytes(var para1: array of jbyte; para2: jint; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException
  end;

  AOMessageQueue = class external 'android.os' name 'MessageQueue' (JLObject)
  public
    type
      InnerIdleHandler = interface;
      Arr1InnerIdleHandler = array of InnerIdleHandler;
      Arr2InnerIdleHandler = array of Arr1InnerIdleHandler;
      Arr3InnerIdleHandler = array of Arr2InnerIdleHandler;
      InnerIdleHandler = interface external 'android.os' name 'IdleHandler' 
        function queueIdle(): jboolean; overload;
      end;

  public
    procedure addIdleHandler(para1: AOMessageQueue.InnerIdleHandler); overload; virtual; final;
    procedure removeIdleHandler(para1: AOMessageQueue.InnerIdleHandler); overload; virtual; final;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AOParcelable = interface external 'android.os' name 'Parcelable' 
    type
      InnerCreator = interface;
      Arr1InnerCreator = array of InnerCreator;
      Arr2InnerCreator = array of Arr1InnerCreator;
      Arr3InnerCreator = array of Arr2InnerCreator;
      InnerClassLoaderCreator = interface;
      Arr1InnerClassLoaderCreator = array of InnerClassLoaderCreator;
      Arr2InnerClassLoaderCreator = array of Arr1InnerClassLoaderCreator;
      Arr3InnerClassLoaderCreator = array of Arr2InnerClassLoaderCreator;
      InnerCreator = interface external 'android.os' name 'Creator' 
        function createFromParcel(para1: AOParcel): JLObject; overload;
        function newArray(para1: jint): Arr1JLObject; overload;
      end;

      InnerClassLoaderCreator = interface external 'android.os' name 'ClassLoaderCreator' (AOParcelable.InnerCreator)
        function createFromParcel(para1: AOParcel; para2: JLClassLoader): JLObject; overload;
      end;

    const
      PARCELABLE_WRITE_RETURN_VALUE = 1;
      CONTENTS_FILE_DESCRIPTOR = 1;
    function describeContents(): jint; overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload;
  end;

  AOPowerManager = class external 'android.os' name 'PowerManager' (JLObject)
  public
    type
      InnerWakeLock = class;
      Arr1InnerWakeLock = array of InnerWakeLock;
      Arr2InnerWakeLock = array of Arr1InnerWakeLock;
      Arr3InnerWakeLock = array of Arr2InnerWakeLock;
      InnerWakeLock = class external 'android.os' name 'WakeLock' 
        procedure acquire; overload; virtual;
        procedure acquire(timeout: jlong); overload; virtual;
        function isHeld: boolean; overload; virtual;
        procedure release; overload; virtual;
        procedure release(flags: jint); overload; virtual;
        procedure setReferenceCounted(value: boolean); overload; virtual;
        procedure setWorkSource(ws: AOWorkSource); overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    const
      PARTIAL_WAKE_LOCK = 1;
      FULL_WAKE_LOCK = 26;
      SCREEN_BRIGHT_WAKE_LOCK = 10;
      SCREEN_DIM_WAKE_LOCK = 6;
      ACQUIRE_CAUSES_WAKEUP = 268435456;
      ON_AFTER_RELEASE = 536870912;
  public
    function newWakeLock(para1: jint; para2: JLString): AOPowerManager.InnerWakeLock; overload; virtual;
    procedure userActivity(para1: jlong; para2: jboolean); overload; virtual;
    procedure goToSleep(para1: jlong); overload; virtual;
    function isScreenOn(): jboolean; overload; virtual;
    procedure reboot(para1: JLString); overload; virtual;
  end;

  AOProcess = class external 'android.os' name 'Process' (JLObject)
  public
    const
      SYSTEM_UID = 1000;
      PHONE_UID = 1001;
      FIRST_APPLICATION_UID = 10000;
      LAST_APPLICATION_UID = 99999;
      BLUETOOTH_GID = 2000;
      THREAD_PRIORITY_DEFAULT = 0;
      THREAD_PRIORITY_LOWEST = 19;
      THREAD_PRIORITY_BACKGROUND = 10;
      THREAD_PRIORITY_FOREGROUND = -2;
      THREAD_PRIORITY_DISPLAY = -4;
      THREAD_PRIORITY_URGENT_DISPLAY = -8;
      THREAD_PRIORITY_AUDIO = -16;
      THREAD_PRIORITY_URGENT_AUDIO = -19;
      THREAD_PRIORITY_MORE_FAVORABLE = -1;
      THREAD_PRIORITY_LESS_FAVORABLE = 1;
      SIGNAL_QUIT = 3;
      SIGNAL_KILL = 9;
      SIGNAL_USR1 = 10;
  public
    constructor create(); overload;
    class function getElapsedCpuTime(): jlong; static; overload; final;
    class function myPid(): jint; static; overload; final;
    class function myTid(): jint; static; overload; final;
    class function myUid(): jint; static; overload; final;
    class function getUidForName(para1: JLString): jint; static; overload; final;
    class function getGidForName(para1: JLString): jint; static; overload; final;
    class procedure setThreadPriority(para1: jint; para2: jint); static; overload; final;  // throws java.lang.IllegalArgumentException, java.lang.SecurityException
    class procedure setThreadPriority(para1: jint); static; overload; final;  // throws java.lang.IllegalArgumentException, java.lang.SecurityException
    class function getThreadPriority(para1: jint): jint; static; overload; final;  // throws java.lang.IllegalArgumentException
    class function supportsProcesses(): jboolean; static; overload; final;
    class procedure killProcess(para1: jint); static; overload; final;
    class procedure sendSignal(para1: jint; para2: jint); static; overload; final;
  end;

  AORecoverySystem = class external 'android.os' name 'RecoverySystem' (JLObject)
  public
    type
      InnerProgressListener = interface;
      Arr1InnerProgressListener = array of InnerProgressListener;
      Arr2InnerProgressListener = array of Arr1InnerProgressListener;
      Arr3InnerProgressListener = array of Arr2InnerProgressListener;
      InnerProgressListener = interface external 'android.os' name 'ProgressListener' 
        procedure onProgress(para1: jint); overload;
      end;

  public
    constructor create(); overload;
    class procedure verifyPackage(para1: JIFile; para2: AORecoverySystem.InnerProgressListener; para3: JIFile); static; overload;  // throws java.io.IOException, java.security.GeneralSecurityException
    class procedure installPackage(para1: ACContext; para2: JIFile); static; overload;  // throws java.io.IOException
    class procedure rebootWipeUserData(para1: ACContext); static; overload;  // throws java.io.IOException
    class procedure rebootWipeCache(para1: ACContext); static; overload;  // throws java.io.IOException
  end;

  AORemoteCallbackList = class external 'android.os' name 'RemoteCallbackList' (JLObject)
  public
    constructor create(); overload;
    function register(para1: AOIInterface): jboolean; overload; virtual;
    function register(para1: AOIInterface; para2: JLObject): jboolean; overload; virtual;
    function unregister(para1: AOIInterface): jboolean; overload; virtual;
    procedure kill(); overload; virtual;
    procedure onCallbackDied(para1: AOIInterface); overload; virtual;
    procedure onCallbackDied(para1: AOIInterface; para2: JLObject); overload; virtual;
    function beginBroadcast(): jint; overload; virtual;
    function getBroadcastItem(para1: jint): AOIInterface; overload; virtual;
    function getBroadcastCookie(para1: jint): JLObject; overload; virtual;
    procedure finishBroadcast(); overload; virtual;
  end;

  AOStatFs = class external 'android.os' name 'StatFs' (JLObject)
  public
    constructor create(para1: JLString); overload;
    procedure restat(para1: JLString); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    function getBlockSize(): jint; overload; virtual;
    function getBlockCount(): jint; overload; virtual;
    function getFreeBlocks(): jint; overload; virtual;
    function getAvailableBlocks(): jint; overload; virtual;
  end;

  AOStrictMode = class sealed external 'android.os' name 'StrictMode' (JLObject)
  public
    type
      InnerVmPolicy = class;
      Arr1InnerVmPolicy = array of InnerVmPolicy;
      Arr2InnerVmPolicy = array of Arr1InnerVmPolicy;
      Arr3InnerVmPolicy = array of Arr2InnerVmPolicy;
      InnerThreadPolicy = class;
      Arr1InnerThreadPolicy = array of InnerThreadPolicy;
      Arr2InnerThreadPolicy = array of Arr1InnerThreadPolicy;
      Arr3InnerThreadPolicy = array of Arr2InnerThreadPolicy;
      InnerVmPolicy = class sealed external 'android.os' name 'VmPolicy' (JLObject)
      public
        type
          InnerBuilder = class;
          Arr1InnerBuilder = array of InnerBuilder;
          Arr2InnerBuilder = array of Arr1InnerBuilder;
          Arr3InnerBuilder = array of Arr2InnerBuilder;
          InnerBuilder = class sealed external 'android.os' name 'Builder' (JLObject)
          public
            constructor create(); overload;
            constructor create(para1: AOStrictMode.InnerVmPolicy); overload;
            function setClassInstanceLimit(para1: JLClass; para2: jint): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function detectActivityLeaks(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function detectAll(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function detectLeakedSqlLiteObjects(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function detectLeakedClosableObjects(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function penaltyDeath(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function penaltyLog(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function penaltyDropBox(): AOStrictMode.InnerVmPolicy.InnerBuilder; overload; virtual;
            function build(): AOStrictMode.InnerVmPolicy; overload; virtual;
          end;

      public
        final class var
          fLAX: AOStrictMode.InnerVmPolicy; external name 'LAX';
      public
        function toString(): JLString; overload; virtual;
      end;

      InnerThreadPolicy = class sealed external 'android.os' name 'ThreadPolicy' (JLObject)
      public
        type
          InnerBuilder = class;
          Arr1InnerBuilder = array of InnerBuilder;
          Arr2InnerBuilder = array of Arr1InnerBuilder;
          Arr3InnerBuilder = array of Arr2InnerBuilder;
          InnerBuilder = class sealed external 'android.os' name 'Builder' (JLObject)
          public
            constructor create(); overload;
            constructor create(para1: AOStrictMode.InnerThreadPolicy); overload;
            function detectAll(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function permitAll(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function detectNetwork(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function permitNetwork(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function detectDiskReads(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function permitDiskReads(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function detectCustomSlowCalls(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function permitCustomSlowCalls(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function detectDiskWrites(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function permitDiskWrites(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function penaltyDialog(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function penaltyDeath(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function penaltyDeathOnNetwork(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function penaltyFlashScreen(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function penaltyLog(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function penaltyDropBox(): AOStrictMode.InnerThreadPolicy.InnerBuilder; overload; virtual;
            function build(): AOStrictMode.InnerThreadPolicy; overload; virtual;
          end;

      public
        final class var
          fLAX: AOStrictMode.InnerThreadPolicy; external name 'LAX';
      public
        function toString(): JLString; overload; virtual;
      end;

  public
    class procedure setThreadPolicy(para1: AOStrictMode.InnerThreadPolicy); static; overload;
    class function getThreadPolicy(): AOStrictMode.InnerThreadPolicy; static; overload;
    class function allowThreadDiskWrites(): AOStrictMode.InnerThreadPolicy; static; overload;
    class function allowThreadDiskReads(): AOStrictMode.InnerThreadPolicy; static; overload;
    class procedure setVmPolicy(para1: AOStrictMode.InnerVmPolicy); static; overload;
    class function getVmPolicy(): AOStrictMode.InnerVmPolicy; static; overload;
    class procedure enableDefaults(); static; overload;
    class procedure noteSlowCall(para1: JLString); static; overload;
  end;

  AOSystemClock = class sealed external 'android.os' name 'SystemClock' (JLObject)
  public
    class procedure sleep(para1: jlong); static; overload;
    class function setCurrentTimeMillis(para1: jlong): jboolean; static; overload;
    class function uptimeMillis(): jlong; static; overload;
    class function elapsedRealtime(): jlong; static; overload;
    class function currentThreadTimeMillis(): jlong; static; overload;
  end;

  AOTokenWatcher = class abstract external 'android.os' name 'TokenWatcher' (JLObject)
  public
    constructor create(para1: AOHandler; para2: JLString); overload;
    procedure acquired(); overload; virtual; abstract;
    procedure released(); overload; virtual; abstract;
    procedure acquire(para1: AOIBinder; para2: JLString); overload; virtual;
    procedure cleanup(para1: AOIBinder; para2: jboolean); overload; virtual;
    procedure release(para1: AOIBinder); overload; virtual;
    function isAcquired(): jboolean; overload; virtual;
    procedure dump(); overload; virtual;
  end;

  AOVibrator = class external 'android.os' name 'Vibrator' (JLObject)
  public
    function hasVibrator(): jboolean; overload; virtual;
    procedure vibrate(para1: jlong); overload; virtual;
    procedure vibrate(para1: Arr1jlong; para2: jint); overload; virtual;
    procedure vibrate(var para1: array of jlong; para2: jint); overload; virtual;
    procedure cancel(); overload; virtual;
  end;

  AOSOnObbStateChangeListener = class abstract external 'android.os.storage' name 'OnObbStateChangeListener' (JLObject)
  public
    const
      MOUNTED = 1;
      UNMOUNTED = 2;
      ERROR_INTERNAL = 20;
      ERROR_COULD_NOT_MOUNT = 21;
      ERROR_COULD_NOT_UNMOUNT = 22;
      ERROR_NOT_MOUNTED = 23;
      ERROR_ALREADY_MOUNTED = 24;
      ERROR_PERMISSION_DENIED = 25;
  public
    constructor create(); overload;
    procedure onObbStateChange(para1: JLString; para2: jint); overload; virtual;
  end;

  AOSStorageManager = class external 'android.os.storage' name 'StorageManager' (JLObject)
  public
    function mountObb(para1: JLString; para2: JLString; para3: AOSOnObbStateChangeListener): jboolean; overload; virtual;
    function unmountObb(para1: JLString; para2: jboolean; para3: AOSOnObbStateChangeListener): jboolean; overload; virtual;
    function isObbMounted(para1: JLString): jboolean; overload; virtual;
    function getMountedObbPath(para1: JLString): JLString; overload; virtual;
  end;

  APPreferenceManager = class external 'android.preference' name 'PreferenceManager' (JLObject)
  public
    type
      InnerOnActivityDestroyListener = interface;
      Arr1InnerOnActivityDestroyListener = array of InnerOnActivityDestroyListener;
      Arr2InnerOnActivityDestroyListener = array of Arr1InnerOnActivityDestroyListener;
      Arr3InnerOnActivityDestroyListener = array of Arr2InnerOnActivityDestroyListener;
      InnerOnActivityStopListener = interface;
      Arr1InnerOnActivityStopListener = array of InnerOnActivityStopListener;
      Arr2InnerOnActivityStopListener = array of Arr1InnerOnActivityStopListener;
      Arr3InnerOnActivityStopListener = array of Arr2InnerOnActivityStopListener;
      InnerOnActivityResultListener = interface;
      Arr1InnerOnActivityResultListener = array of InnerOnActivityResultListener;
      Arr2InnerOnActivityResultListener = array of Arr1InnerOnActivityResultListener;
      Arr3InnerOnActivityResultListener = array of Arr2InnerOnActivityResultListener;
      InnerOnActivityDestroyListener = interface external 'android.preference' name 'OnActivityDestroyListener' 
        procedure onActivityDestroy(); overload;
      end;

      InnerOnActivityStopListener = interface external 'android.preference' name 'OnActivityStopListener' 
        procedure onActivityStop(); overload;
      end;

      InnerOnActivityResultListener = interface external 'android.preference' name 'OnActivityResultListener' 
        function onActivityResult(para1: jint; para2: jint; para3: ACIntent): jboolean; overload;
      end;

  public
    const
      METADATA_KEY_PREFERENCES = 'android.preference';
      KEY_HAS_SET_DEFAULT_VALUES = '_has_set_default_values';
  public
    function createPreferenceScreen(para1: ACContext): APPreferenceScreen; overload; virtual;
    function getSharedPreferencesName(): JLString; overload; virtual;
    procedure setSharedPreferencesName(para1: JLString); overload; virtual;
    function getSharedPreferencesMode(): jint; overload; virtual;
    procedure setSharedPreferencesMode(para1: jint); overload; virtual;
    function getSharedPreferences(): ACSharedPreferences; overload; virtual;
    class function getDefaultSharedPreferences(para1: ACContext): ACSharedPreferences; static; overload;
    function findPreference(para1: JLCharSequence): APPreference; overload; virtual;
    class procedure setDefaultValues(para1: ACContext; para2: jint; para3: jboolean); static; overload;
    class procedure setDefaultValues(para1: ACContext; para2: JLString; para3: jint; para4: jint; para5: jboolean); static; overload;
  end;

  APAlarmClock = class sealed external 'android.provider' name 'AlarmClock' (JLObject)
  public
    const
      ACTION_SET_ALARM = 'android.intent.action.SET_ALARM';
      EXTRA_MESSAGE = 'android.intent.extra.alarm.MESSAGE';
      EXTRA_HOUR = 'android.intent.extra.alarm.HOUR';
      EXTRA_MINUTES = 'android.intent.extra.alarm.MINUTES';
      EXTRA_SKIP_UI = 'android.intent.extra.alarm.SKIP_UI';
  public
    constructor create(); overload;
  end;

  APBaseColumns = interface external 'android.provider' name 'BaseColumns' 
    const
      _ID = '_id';
      _COUNT = '_count';
  end;

  APOpenableColumns = interface external 'android.provider' name 'OpenableColumns' 
    const
      DISPLAY_NAME = '_display_name';
      SIZE = '_size';
  end;

  APSearchRecentSuggestions = class external 'android.provider' name 'SearchRecentSuggestions' (JLObject)
  public
    final class var
      fQUERIES_PROJECTION_1LINE: Arr1JLString; external name 'QUERIES_PROJECTION_1LINE';
      fQUERIES_PROJECTION_2LINE: Arr1JLString; external name 'QUERIES_PROJECTION_2LINE';
  public
    const
      QUERIES_PROJECTION_DATE_INDEX = 1;
      QUERIES_PROJECTION_QUERY_INDEX = 2;
      QUERIES_PROJECTION_DISPLAY1_INDEX = 3;
      QUERIES_PROJECTION_DISPLAY2_INDEX = 4;
  public
    constructor create(para1: ACContext; para2: JLString; para3: jint); overload;
    procedure saveRecentQuery(para1: JLString; para2: JLString); overload; virtual;
    procedure clearHistory(); overload; virtual;
  strict protected
    procedure truncateHistory(para1: ACContentResolver; para2: jint); overload; virtual;
  end;

  ARBaseObj = class external 'android.renderscript' name 'BaseObj' (JLObject)
  public
    procedure setName(para1: JLString); overload; virtual;
    function getName(): JLString; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    procedure destroy(); overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  ARByte2 = class external 'android.renderscript' name 'Byte2' (JLObject)
  public
    var
      fx: jbyte; external name 'x';
      fy: jbyte; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: jbyte; para2: jbyte); overload;
  end;

  ARByte3 = class external 'android.renderscript' name 'Byte3' (JLObject)
  public
    var
      fx: jbyte; external name 'x';
      fy: jbyte; external name 'y';
      fz: jbyte; external name 'z';
  public
    constructor create(); overload;
    constructor create(para1: jbyte; para2: jbyte; para3: jbyte); overload;
  end;

  ARByte4 = class external 'android.renderscript' name 'Byte4' (JLObject)
  public
    var
      fx: jbyte; external name 'x';
      fy: jbyte; external name 'y';
      fz: jbyte; external name 'z';
      fw: jbyte; external name 'w';
  public
    constructor create(); overload;
    constructor create(para1: jbyte; para2: jbyte; para3: jbyte; para4: jbyte); overload;
  end;

  ARDouble2 = class external 'android.renderscript' name 'Double2' (JLObject)
  public
    var
      fx: jdouble; external name 'x';
      fy: jdouble; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: jdouble; para2: jdouble); overload;
  end;

  ARDouble3 = class external 'android.renderscript' name 'Double3' (JLObject)
  public
    var
      fx: jdouble; external name 'x';
      fy: jdouble; external name 'y';
      fz: jdouble; external name 'z';
  public
    constructor create(); overload;
    constructor create(para1: jdouble; para2: jdouble; para3: jdouble); overload;
  end;

  ARDouble4 = class external 'android.renderscript' name 'Double4' (JLObject)
  public
    var
      fx: jdouble; external name 'x';
      fy: jdouble; external name 'y';
      fz: jdouble; external name 'z';
      fw: jdouble; external name 'w';
  public
    constructor create(); overload;
    constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload;
  end;

  ARFieldPacker = class external 'android.renderscript' name 'FieldPacker' (JLObject)
  public
    constructor create(para1: jint); overload;
    procedure align(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;
    procedure reset(para1: jint); overload; virtual;
    procedure skip(para1: jint); overload; virtual;
    procedure addI8(para1: jbyte); overload; virtual;
    procedure addI16(para1: jshort); overload; virtual;
    procedure addI32(para1: jint); overload; virtual;
    procedure addI64(para1: jlong); overload; virtual;
    procedure addU8(para1: jshort); overload; virtual;
    procedure addU16(para1: jint); overload; virtual;
    procedure addU32(para1: jlong); overload; virtual;
    procedure addU64(para1: jlong); overload; virtual;
    procedure addF32(para1: jfloat); overload; virtual;
    procedure addF64(para1: jdouble); overload; virtual;
    procedure addObj(para1: ARBaseObj); overload; virtual;
    procedure addF32(para1: ARFloat2); overload; virtual;
    procedure addF32(para1: ARFloat3); overload; virtual;
    procedure addF32(para1: ARFloat4); overload; virtual;
    procedure addF64(para1: ARDouble2); overload; virtual;
    procedure addF64(para1: ARDouble3); overload; virtual;
    procedure addF64(para1: ARDouble4); overload; virtual;
    procedure addI8(para1: ARByte2); overload; virtual;
    procedure addI8(para1: ARByte3); overload; virtual;
    procedure addI8(para1: ARByte4); overload; virtual;
    procedure addU8(para1: ARShort2); overload; virtual;
    procedure addU8(para1: ARShort3); overload; virtual;
    procedure addU8(para1: ARShort4); overload; virtual;
    procedure addI16(para1: ARShort2); overload; virtual;
    procedure addI16(para1: ARShort3); overload; virtual;
    procedure addI16(para1: ARShort4); overload; virtual;
    procedure addU16(para1: ARInt2); overload; virtual;
    procedure addU16(para1: ARInt3); overload; virtual;
    procedure addU16(para1: ARInt4); overload; virtual;
    procedure addI32(para1: ARInt2); overload; virtual;
    procedure addI32(para1: ARInt3); overload; virtual;
    procedure addI32(para1: ARInt4); overload; virtual;
    procedure addU32(para1: ARLong2); overload; virtual;
    procedure addU32(para1: ARLong3); overload; virtual;
    procedure addU32(para1: ARLong4); overload; virtual;
    procedure addI64(para1: ARLong2); overload; virtual;
    procedure addI64(para1: ARLong3); overload; virtual;
    procedure addI64(para1: ARLong4); overload; virtual;
    procedure addU64(para1: ARLong2); overload; virtual;
    procedure addU64(para1: ARLong3); overload; virtual;
    procedure addU64(para1: ARLong4); overload; virtual;
    procedure addMatrix(para1: ARMatrix4f); overload; virtual;
    procedure addMatrix(para1: ARMatrix3f); overload; virtual;
    procedure addMatrix(para1: ARMatrix2f); overload; virtual;
    procedure addBoolean(para1: jboolean); overload; virtual;
    function getData(): Arr1jbyte; overload; virtual; final;
  end;

  ARFloat2 = class external 'android.renderscript' name 'Float2' (JLObject)
  public
    var
      fx: jfloat; external name 'x';
      fy: jfloat; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: jfloat; para2: jfloat); overload;
  end;

  ARFloat3 = class external 'android.renderscript' name 'Float3' (JLObject)
  public
    var
      fx: jfloat; external name 'x';
      fy: jfloat; external name 'y';
      fz: jfloat; external name 'z';
  public
    constructor create(); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat); overload;
  end;

  ARFloat4 = class external 'android.renderscript' name 'Float4' (JLObject)
  public
    var
      fx: jfloat; external name 'x';
      fy: jfloat; external name 'y';
      fz: jfloat; external name 'z';
      fw: jfloat; external name 'w';
  public
    constructor create(); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
  end;

  ARInt2 = class external 'android.renderscript' name 'Int2' (JLObject)
  public
    var
      fx: jint; external name 'x';
      fy: jint; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
  end;

  ARInt3 = class external 'android.renderscript' name 'Int3' (JLObject)
  public
    var
      fx: jint; external name 'x';
      fy: jint; external name 'y';
      fz: jint; external name 'z';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
  end;

  ARInt4 = class external 'android.renderscript' name 'Int4' (JLObject)
  public
    var
      fx: jint; external name 'x';
      fy: jint; external name 'y';
      fz: jint; external name 'z';
      fw: jint; external name 'w';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
  end;

  ARLong2 = class external 'android.renderscript' name 'Long2' (JLObject)
  public
    var
      fx: jlong; external name 'x';
      fy: jlong; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: jlong; para2: jlong); overload;
  end;

  ARLong3 = class external 'android.renderscript' name 'Long3' (JLObject)
  public
    var
      fx: jlong; external name 'x';
      fy: jlong; external name 'y';
      fz: jlong; external name 'z';
  public
    constructor create(); overload;
    constructor create(para1: jlong; para2: jlong; para3: jlong); overload;
  end;

  ARLong4 = class external 'android.renderscript' name 'Long4' (JLObject)
  public
    var
      fx: jlong; external name 'x';
      fy: jlong; external name 'y';
      fz: jlong; external name 'z';
      fw: jlong; external name 'w';
  public
    constructor create(); overload;
    constructor create(para1: jlong; para2: jlong; para3: jlong; para4: jlong); overload;
  end;

  ARMatrix2f = class external 'android.renderscript' name 'Matrix2f' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
    function getArray(): Arr1jfloat; overload; virtual;
    function get(para1: jint; para2: jint): jfloat; overload; virtual;
    procedure &set(para1: jint; para2: jint; para3: jfloat); overload; virtual;
    procedure loadIdentity(); overload; virtual;
    procedure load(para1: ARMatrix2f); overload; virtual;
    procedure loadRotate(para1: jfloat); overload; virtual;
    procedure loadScale(para1: jfloat; para2: jfloat); overload; virtual;
    procedure loadMultiply(para1: ARMatrix2f; para2: ARMatrix2f); overload; virtual;
    procedure multiply(para1: ARMatrix2f); overload; virtual;
    procedure rotate(para1: jfloat); overload; virtual;
    procedure scale(para1: jfloat; para2: jfloat); overload; virtual;
    procedure transpose(); overload; virtual;
  end;

  ARMatrix3f = class external 'android.renderscript' name 'Matrix3f' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
    function getArray(): Arr1jfloat; overload; virtual;
    function get(para1: jint; para2: jint): jfloat; overload; virtual;
    procedure &set(para1: jint; para2: jint; para3: jfloat); overload; virtual;
    procedure loadIdentity(); overload; virtual;
    procedure load(para1: ARMatrix3f); overload; virtual;
    procedure loadRotate(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure loadRotate(para1: jfloat); overload; virtual;
    procedure loadScale(para1: jfloat; para2: jfloat); overload; virtual;
    procedure loadScale(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure loadTranslate(para1: jfloat; para2: jfloat); overload; virtual;
    procedure loadMultiply(para1: ARMatrix3f; para2: ARMatrix3f); overload; virtual;
    procedure multiply(para1: ARMatrix3f); overload; virtual;
    procedure rotate(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure rotate(para1: jfloat); overload; virtual;
    procedure scale(para1: jfloat; para2: jfloat); overload; virtual;
    procedure scale(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure translate(para1: jfloat; para2: jfloat); overload; virtual;
    procedure transpose(); overload; virtual;
  end;

  ARMatrix4f = class external 'android.renderscript' name 'Matrix4f' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
    function getArray(): Arr1jfloat; overload; virtual;
    function get(para1: jint; para2: jint): jfloat; overload; virtual;
    procedure &set(para1: jint; para2: jint; para3: jfloat); overload; virtual;
    procedure loadIdentity(); overload; virtual;
    procedure load(para1: ARMatrix4f); overload; virtual;
    procedure loadRotate(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure loadScale(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure loadTranslate(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure loadMultiply(para1: ARMatrix4f; para2: ARMatrix4f); overload; virtual;
    procedure loadOrtho(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual;
    procedure loadOrthoWindow(para1: jint; para2: jint); overload; virtual;
    procedure loadFrustum(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual;
    procedure loadPerspective(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure loadProjectionNormalized(para1: jint; para2: jint); overload; virtual;
    procedure multiply(para1: ARMatrix4f); overload; virtual;
    procedure rotate(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure scale(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure translate(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    function inverse(): jboolean; overload; virtual;
    function inverseTranspose(): jboolean; overload; virtual;
    procedure transpose(); overload; virtual;
  end;

  ARShort2 = class external 'android.renderscript' name 'Short2' (JLObject)
  public
    var
      fx: jshort; external name 'x';
      fy: jshort; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: jshort; para2: jshort); overload;
  end;

  ARShort3 = class external 'android.renderscript' name 'Short3' (JLObject)
  public
    var
      fx: jshort; external name 'x';
      fy: jshort; external name 'y';
      fz: jshort; external name 'z';
  public
    constructor create(); overload;
    constructor create(para1: jshort; para2: jshort; para3: jshort); overload;
  end;

  ARShort4 = class external 'android.renderscript' name 'Short4' (JLObject)
  public
    var
      fx: jshort; external name 'x';
      fy: jshort; external name 'y';
      fz: jshort; external name 'z';
      fw: jshort; external name 'w';
  public
    constructor create(); overload;
    constructor create(para1: jshort; para2: jshort; para3: jshort; para4: jshort); overload;
  end;

  ASElement = class external 'android.sax' name 'Element' (JLObject)
  public
    function getChild(para1: JLString): ASElement; overload; virtual;
    function getChild(para1: JLString; para2: JLString): ASElement; overload; virtual;
    function requireChild(para1: JLString): ASElement; overload; virtual;
    function requireChild(para1: JLString; para2: JLString): ASElement; overload; virtual;
    procedure setElementListener(para1: ASElementListener); overload; virtual;
    procedure setTextElementListener(para1: ASTextElementListener); overload; virtual;
    procedure setStartElementListener(para1: ASStartElementListener); overload; virtual;
    procedure setEndElementListener(para1: ASEndElementListener); overload; virtual;
    procedure setEndTextElementListener(para1: ASEndTextElementListener); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ASEndElementListener = interface external 'android.sax' name 'EndElementListener' 
    procedure &end(); overload;
  end;

  ASEndTextElementListener = interface external 'android.sax' name 'EndTextElementListener' 
    procedure &end(para1: JLString); overload;
  end;

  ASStartElementListener = interface external 'android.sax' name 'StartElementListener' 
    procedure start(para1: OXSAttributes); overload;
  end;

  ASKeyChain = class sealed external 'android.security' name 'KeyChain' (JLObject)
  public
    const
      EXTRA_NAME = 'name';
      EXTRA_CERTIFICATE = 'CERT';
      EXTRA_PKCS12 = 'PKCS12';
  public
    constructor create(); overload;
    class function createInstallIntent(): ACIntent; static; overload;
    class procedure choosePrivateKeyAlias(para1: AAActivity; para2: ASKeyChainAliasCallback; para3: Arr1JLString; para4: Arr1JSPrincipal; para5: JLString; para6: jint; para7: JLString); static; overload;
    class procedure choosePrivateKeyAlias(para1: AAActivity; para2: ASKeyChainAliasCallback; var para3: array of JLString; var para4: array of JSPrincipal; para5: JLString; para6: jint; para7: JLString); static; overload;
    class function getPrivateKey(para1: ACContext; para2: JLString): JSPrivateKey; static; overload;  // throws android.security.KeyChainException, java.lang.InterruptedException
    class function getCertificateChain(para1: ACContext; para2: JLString): Arr1JSCX509Certificate; static; overload;  // throws android.security.KeyChainException, java.lang.InterruptedException
  end;

  ASKeyChainAliasCallback = interface external 'android.security' name 'KeyChainAliasCallback' 
    procedure alias(para1: JLString); overload;
  end;

  ASRecognitionListener = interface external 'android.speech' name 'RecognitionListener' 
    procedure onReadyForSpeech(para1: AOBundle); overload;
    procedure onBeginningOfSpeech(); overload;
    procedure onRmsChanged(para1: jfloat); overload;
    procedure onBufferReceived(para1: Arr1jbyte); overload;
    procedure onBufferReceived(var para1: array of jbyte); overload;
    procedure onEndOfSpeech(); overload;
    procedure onError(para1: jint); overload;
    procedure onResults(para1: AOBundle); overload;
    procedure onPartialResults(para1: AOBundle); overload;
    procedure onEvent(para1: jint; para2: AOBundle); overload;
  end;

  ASRecognizerIntent = class external 'android.speech' name 'RecognizerIntent' (JLObject)
  public
    const
      EXTRA_CALLING_PACKAGE = 'calling_package';
      ACTION_RECOGNIZE_SPEECH = 'android.speech.action.RECOGNIZE_SPEECH';
      ACTION_WEB_SEARCH = 'android.speech.action.WEB_SEARCH';
      EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS = 'android.speech.extras.SPEECH_INPUT_MINIMUM_LENGTH_MILLIS';
      EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS = 'android.speech.extras.SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS';
      EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS = 'android.speech.extras.SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS';
      EXTRA_LANGUAGE_MODEL = 'android.speech.extra.LANGUAGE_MODEL';
      LANGUAGE_MODEL_FREE_FORM = 'free_form';
      LANGUAGE_MODEL_WEB_SEARCH = 'web_search';
      EXTRA_PROMPT = 'android.speech.extra.PROMPT';
      EXTRA_LANGUAGE = 'android.speech.extra.LANGUAGE';
      EXTRA_ORIGIN = 'android.speech.extra.ORIGIN';
      EXTRA_MAX_RESULTS = 'android.speech.extra.MAX_RESULTS';
      EXTRA_WEB_SEARCH_ONLY = 'android.speech.extra.WEB_SEARCH_ONLY';
      EXTRA_PARTIAL_RESULTS = 'android.speech.extra.PARTIAL_RESULTS';
      EXTRA_RESULTS_PENDINGINTENT = 'android.speech.extra.RESULTS_PENDINGINTENT';
      EXTRA_RESULTS_PENDINGINTENT_BUNDLE = 'android.speech.extra.RESULTS_PENDINGINTENT_BUNDLE';
      RESULT_NO_MATCH = 1;
      RESULT_CLIENT_ERROR = 2;
      RESULT_SERVER_ERROR = 3;
      RESULT_NETWORK_ERROR = 4;
      RESULT_AUDIO_ERROR = 5;
      EXTRA_RESULTS = 'android.speech.extra.RESULTS';
      EXTRA_CONFIDENCE_SCORES = 'android.speech.extra.CONFIDENCE_SCORES';
      DETAILS_META_DATA = 'android.speech.DETAILS';
      ACTION_GET_LANGUAGE_DETAILS = 'android.speech.action.GET_LANGUAGE_DETAILS';
      EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE = 'android.speech.extra.ONLY_RETURN_LANGUAGE_PREFERENCE';
      EXTRA_LANGUAGE_PREFERENCE = 'android.speech.extra.LANGUAGE_PREFERENCE';
      EXTRA_SUPPORTED_LANGUAGES = 'android.speech.extra.SUPPORTED_LANGUAGES';
  public
    class function getVoiceDetailsIntent(para1: ACContext): ACIntent; static; overload; final;
  end;

  ASRecognizerResultsIntent = class external 'android.speech' name 'RecognizerResultsIntent' (JLObject)
  public
    const
      ACTION_VOICE_SEARCH_RESULTS = 'android.speech.action.VOICE_SEARCH_RESULTS';
      EXTRA_VOICE_SEARCH_RESULT_STRINGS = 'android.speech.extras.VOICE_SEARCH_RESULT_STRINGS';
      EXTRA_VOICE_SEARCH_RESULT_URLS = 'android.speech.extras.VOICE_SEARCH_RESULT_URLS';
      EXTRA_VOICE_SEARCH_RESULT_HTML = 'android.speech.extras.VOICE_SEARCH_RESULT_HTML';
      EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS = 'android.speech.extras.VOICE_SEARCH_RESULT_HTML_BASE_URLS';
      EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS = 'android.speech.extras.EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS';
      URI_SCHEME_INLINE = 'inline';
  end;

  ASSpeechRecognizer = class external 'android.speech' name 'SpeechRecognizer' (JLObject)
  public
    const
      RESULTS_RECOGNITION = 'results_recognition';
      CONFIDENCE_SCORES = 'confidence_scores';
      ERROR_NETWORK_TIMEOUT = 1;
      ERROR_NETWORK = 2;
      ERROR_AUDIO = 3;
      ERROR_SERVER = 4;
      ERROR_CLIENT = 5;
      ERROR_SPEECH_TIMEOUT = 6;
      ERROR_NO_MATCH = 7;
      ERROR_RECOGNIZER_BUSY = 8;
      ERROR_INSUFFICIENT_PERMISSIONS = 9;
  public
    class function isRecognitionAvailable(para1: ACContext): jboolean; static; overload;
    class function createSpeechRecognizer(para1: ACContext): ASSpeechRecognizer; static; overload;
    class function createSpeechRecognizer(para1: ACContext; para2: ACComponentName): ASSpeechRecognizer; static; overload;
    procedure setRecognitionListener(para1: ASRecognitionListener); overload; virtual;
    procedure startListening(para1: ACIntent); overload; virtual;
    procedure stopListening(); overload; virtual;
    procedure cancel(); overload; virtual;
    procedure destroy(); overload; virtual;
  end;

  ASTSynthesisCallback = interface external 'android.speech.tts' name 'SynthesisCallback' 
    function getMaxBufferSize(): jint; overload;
    function start(para1: jint; para2: jint; para3: jint): jint; overload;
    function audioAvailable(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;
    function audioAvailable(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;
    function done(): jint; overload;
    procedure error(); overload;
  end;

  ASTSynthesisRequest = class sealed external 'android.speech.tts' name 'SynthesisRequest' (JLObject)
  public
    constructor create(para1: JLString; para2: AOBundle); overload;
    function getText(): JLString; overload; virtual;
    function getLanguage(): JLString; overload; virtual;
    function getCountry(): JLString; overload; virtual;
    function getVariant(): JLString; overload; virtual;
    function getSpeechRate(): jint; overload; virtual;
    function getPitch(): jint; overload; virtual;
    function getParams(): AOBundle; overload; virtual;
  end;

  ASTTextToSpeech = class external 'android.speech.tts' name 'TextToSpeech' (JLObject)
  public
    type
      InnerEngineInfo = class;
      Arr1InnerEngineInfo = array of InnerEngineInfo;
      Arr2InnerEngineInfo = array of Arr1InnerEngineInfo;
      Arr3InnerEngineInfo = array of Arr2InnerEngineInfo;
      InnerEngine = class;
      Arr1InnerEngine = array of InnerEngine;
      Arr2InnerEngine = array of Arr1InnerEngine;
      Arr3InnerEngine = array of Arr2InnerEngine;
      InnerOnUtteranceCompletedListener = interface;
      Arr1InnerOnUtteranceCompletedListener = array of InnerOnUtteranceCompletedListener;
      Arr2InnerOnUtteranceCompletedListener = array of Arr1InnerOnUtteranceCompletedListener;
      Arr3InnerOnUtteranceCompletedListener = array of Arr2InnerOnUtteranceCompletedListener;
      InnerOnInitListener = interface;
      Arr1InnerOnInitListener = array of InnerOnInitListener;
      Arr2InnerOnInitListener = array of Arr1InnerOnInitListener;
      Arr3InnerOnInitListener = array of Arr2InnerOnInitListener;
      InnerEngineInfo = class external 'android.speech.tts' name 'EngineInfo' (JLObject)
      public
        var
          fname: JLString; external name 'name';
          flabel: JLString; external name 'label';
          ficon: jint; external name 'icon';
      public
        constructor create(); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerEngine = class external 'android.speech.tts' name 'Engine' 
      end;

      InnerOnUtteranceCompletedListener = interface external 'android.speech.tts' name 'OnUtteranceCompletedListener' 
        procedure onUtteranceCompleted(para1: JLString); overload;
      end;

      InnerOnInitListener = interface external 'android.speech.tts' name 'OnInitListener' 
        procedure onInit(para1: jint); overload;
      end;

  public
    const
      SUCCESS = 0;
      ERROR = -1;
      QUEUE_FLUSH = 0;
      QUEUE_ADD = 1;
      LANG_COUNTRY_VAR_AVAILABLE = 2;
      LANG_COUNTRY_AVAILABLE = 1;
      LANG_AVAILABLE = 0;
      LANG_MISSING_DATA = -1;
      LANG_NOT_SUPPORTED = -2;
      ACTION_TTS_QUEUE_PROCESSING_COMPLETED = 'android.speech.tts.TTS_QUEUE_PROCESSING_COMPLETED';
  public
    constructor create(para1: ACContext; para2: ASTTextToSpeech.InnerOnInitListener); overload;
    constructor create(para1: ACContext; para2: ASTTextToSpeech.InnerOnInitListener; para3: JLString); overload;
    procedure shutdown(); overload; virtual;
    function addSpeech(para1: JLString; para2: JLString; para3: jint): jint; overload; virtual;
    function addSpeech(para1: JLString; para2: JLString): jint; overload; virtual;
    function addEarcon(para1: JLString; para2: JLString; para3: jint): jint; overload; virtual;
    function addEarcon(para1: JLString; para2: JLString): jint; overload; virtual;
    function speak(para1: JLString; para2: jint; para3: JUHashMap): jint; overload; virtual;
    function playEarcon(para1: JLString; para2: jint; para3: JUHashMap): jint; overload; virtual;
    function playSilence(para1: jlong; para2: jint; para3: JUHashMap): jint; overload; virtual;
    function isSpeaking(): jboolean; overload; virtual;
    function stop(): jint; overload; virtual;
    function setSpeechRate(para1: jfloat): jint; overload; virtual;
    function setPitch(para1: jfloat): jint; overload; virtual;
    function setLanguage(para1: JULocale): jint; overload; virtual;
    function getLanguage(): JULocale; overload; virtual;
    function isLanguageAvailable(para1: JULocale): jint; overload; virtual;
    function synthesizeToFile(para1: JLString; para2: JUHashMap; para3: JLString): jint; overload; virtual;
    function setOnUtteranceCompletedListener(para1: ASTTextToSpeech.InnerOnUtteranceCompletedListener): jint; overload; virtual;
    function setEngineByPackageName(para1: JLString): jint; overload; virtual;
    function getDefaultEngine(): JLString; overload; virtual;
    function areDefaultsEnforced(): jboolean; overload; virtual;
    function getEngines(): JUList; overload; virtual;
  end;

  ATCellLocation = class abstract external 'android.telephony' name 'CellLocation' (JLObject)
  public
    constructor create(); overload;
    class procedure requestLocationUpdate(); static; overload;
    class function getEmpty(): ATCellLocation; static; overload;
  end;

  ATPhoneNumberUtils = class external 'android.telephony' name 'PhoneNumberUtils' (JLObject)
  public
    const
      PAUSE = 44;
      WAIT = 59;
      WILD = 78;
      TOA_International = 145;
      TOA_Unknown = 129;
      FORMAT_UNKNOWN = 0;
      FORMAT_NANP = 1;
      FORMAT_JAPAN = 2;
  public
    constructor create(); overload;
    class function isISODigit(para1: jchar): jboolean; static; overload;
    class function is12Key(para1: jchar): jboolean; static; overload; final;
    class function isDialable(para1: jchar): jboolean; static; overload; final;
    class function isReallyDialable(para1: jchar): jboolean; static; overload; final;
    class function isNonSeparator(para1: jchar): jboolean; static; overload; final;
    class function isStartsPostDial(para1: jchar): jboolean; static; overload; final;
    class function getNumberFromIntent(para1: ACIntent; para2: ACContext): JLString; static; overload;
    class function extractNetworkPortion(para1: JLString): JLString; static; overload;
    class function stripSeparators(para1: JLString): JLString; static; overload;
    class function extractPostDialPortion(para1: JLString): JLString; static; overload;
    class function compare(para1: JLString; para2: JLString): jboolean; static; overload;
    class function compare(para1: ACContext; para2: JLString; para3: JLString): jboolean; static; overload;
    class function toCallerIDMinMatch(para1: JLString): JLString; static; overload;
    class function getStrippedReversed(para1: JLString): JLString; static; overload;
    class function stringFromStringAndTOA(para1: JLString; para2: jint): JLString; static; overload;
    class function toaFromString(para1: JLString): jint; static; overload;
    class function calledPartyBCDToString(para1: Arr1jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function calledPartyBCDToString(var para1: array of jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function calledPartyBCDFragmentToString(para1: Arr1jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function calledPartyBCDFragmentToString(var para1: array of jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function isWellFormedSmsAddress(para1: JLString): jboolean; static; overload;
    class function isGlobalPhoneNumber(para1: JLString): jboolean; static; overload;
    class function networkPortionToCalledPartyBCD(para1: JLString): Arr1jbyte; static; overload;
    class function networkPortionToCalledPartyBCDWithLength(para1: JLString): Arr1jbyte; static; overload;
    class function numberToCalledPartyBCD(para1: JLString): Arr1jbyte; static; overload;
    class function formatNumber(para1: JLString): JLString; static; overload;
    class function getFormatTypeForLocale(para1: JULocale): jint; static; overload;
    class procedure formatNumber(para1: ATEditable; para2: jint); static; overload;
    class procedure formatNanpNumber(para1: ATEditable); static; overload;
    class procedure formatJapaneseNumber(para1: ATEditable); static; overload;
    class function isEmergencyNumber(para1: JLString): jboolean; static; overload;
    class function convertKeypadLettersToDigits(para1: JLString): JLString; static; overload;
  end;

  ATPhoneStateListener = class external 'android.telephony' name 'PhoneStateListener' (JLObject)
  public
    const
      LISTEN_NONE = 0;
      LISTEN_SERVICE_STATE = 1;
      LISTEN_SIGNAL_STRENGTH = 2;
      LISTEN_MESSAGE_WAITING_INDICATOR = 4;
      LISTEN_CALL_FORWARDING_INDICATOR = 8;
      LISTEN_CELL_LOCATION = 16;
      LISTEN_CALL_STATE = 32;
      LISTEN_DATA_CONNECTION_STATE = 64;
      LISTEN_DATA_ACTIVITY = 128;
      LISTEN_SIGNAL_STRENGTHS = 256;
  public
    constructor create(); overload;
    procedure onServiceStateChanged(para1: ATServiceState); overload; virtual;
    procedure onSignalStrengthChanged(para1: jint); overload; virtual;
    procedure onMessageWaitingIndicatorChanged(para1: jboolean); overload; virtual;
    procedure onCallForwardingIndicatorChanged(para1: jboolean); overload; virtual;
    procedure onCellLocationChanged(para1: ATCellLocation); overload; virtual;
    procedure onCallStateChanged(para1: jint; para2: JLString); overload; virtual;
    procedure onDataConnectionStateChanged(para1: jint); overload; virtual;
    procedure onDataConnectionStateChanged(para1: jint; para2: jint); overload; virtual;
    procedure onDataActivity(para1: jint); overload; virtual;
    procedure onSignalStrengthsChanged(para1: ATSignalStrength); overload; virtual;
  end;

  ATSmsManager = class sealed external 'android.telephony' name 'SmsManager' (JLObject)
  public
    const
      STATUS_ON_ICC_FREE = 0;
      STATUS_ON_ICC_READ = 1;
      STATUS_ON_ICC_UNREAD = 3;
      STATUS_ON_ICC_SENT = 5;
      STATUS_ON_ICC_UNSENT = 7;
      RESULT_ERROR_GENERIC_FAILURE = 1;
      RESULT_ERROR_RADIO_OFF = 2;
      RESULT_ERROR_NULL_PDU = 3;
      RESULT_ERROR_NO_SERVICE = 4;
  public
    procedure sendTextMessage(para1: JLString; para2: JLString; para3: JLString; para4: AAPendingIntent; para5: AAPendingIntent); overload; virtual;
    function divideMessage(para1: JLString): JUArrayList; overload; virtual;
    procedure sendMultipartTextMessage(para1: JLString; para2: JLString; para3: JUArrayList; para4: JUArrayList; para5: JUArrayList); overload; virtual;
    procedure sendDataMessage(para1: JLString; para2: JLString; para3: jshort; para4: Arr1jbyte; para5: AAPendingIntent; para6: AAPendingIntent); overload; virtual;
    procedure sendDataMessage(para1: JLString; para2: JLString; para3: jshort; var para4: array of jbyte; para5: AAPendingIntent; para6: AAPendingIntent); overload; virtual;
    class function getDefault(): ATSmsManager; static; overload;
  end;

  ATTelephonyManager = class external 'android.telephony' name 'TelephonyManager' (JLObject)
  public
    const
      ACTION_PHONE_STATE_CHANGED = 'android.intent.action.PHONE_STATE';
      EXTRA_STATE = 'state';
  public
    final class var
      fEXTRA_STATE_IDLE: JLString; external name 'EXTRA_STATE_IDLE';
      fEXTRA_STATE_RINGING: JLString; external name 'EXTRA_STATE_RINGING';
      fEXTRA_STATE_OFFHOOK: JLString; external name 'EXTRA_STATE_OFFHOOK';
  public
    const
      EXTRA_INCOMING_NUMBER = 'incoming_number';
      PHONE_TYPE_NONE = 0;
      PHONE_TYPE_GSM = 1;
      PHONE_TYPE_CDMA = 2;
      PHONE_TYPE_SIP = 3;
      NETWORK_TYPE_UNKNOWN = 0;
      NETWORK_TYPE_GPRS = 1;
      NETWORK_TYPE_EDGE = 2;
      NETWORK_TYPE_UMTS = 3;
      NETWORK_TYPE_CDMA = 4;
      NETWORK_TYPE_EVDO_0 = 5;
      NETWORK_TYPE_EVDO_A = 6;
      NETWORK_TYPE_1xRTT = 7;
      NETWORK_TYPE_HSDPA = 8;
      NETWORK_TYPE_HSUPA = 9;
      NETWORK_TYPE_HSPA = 10;
      NETWORK_TYPE_IDEN = 11;
      NETWORK_TYPE_EVDO_B = 12;
      NETWORK_TYPE_LTE = 13;
      NETWORK_TYPE_EHRPD = 14;
      NETWORK_TYPE_HSPAP = 15;
      SIM_STATE_UNKNOWN = 0;
      SIM_STATE_ABSENT = 1;
      SIM_STATE_PIN_REQUIRED = 2;
      SIM_STATE_PUK_REQUIRED = 3;
      SIM_STATE_NETWORK_LOCKED = 4;
      SIM_STATE_READY = 5;
      CALL_STATE_IDLE = 0;
      CALL_STATE_RINGING = 1;
      CALL_STATE_OFFHOOK = 2;
      DATA_ACTIVITY_NONE = 0;
      DATA_ACTIVITY_IN = 1;
      DATA_ACTIVITY_OUT = 2;
      DATA_ACTIVITY_INOUT = 3;
      DATA_ACTIVITY_DORMANT = 4;
      DATA_DISCONNECTED = 0;
      DATA_CONNECTING = 1;
      DATA_CONNECTED = 2;
      DATA_SUSPENDED = 3;
  public
    function getDeviceSoftwareVersion(): JLString; overload; virtual;
    function getDeviceId(): JLString; overload; virtual;
    function getCellLocation(): ATCellLocation; overload; virtual;
    function getNeighboringCellInfo(): JUList; overload; virtual;
    function getPhoneType(): jint; overload; virtual;
    function getNetworkOperatorName(): JLString; overload; virtual;
    function getNetworkOperator(): JLString; overload; virtual;
    function isNetworkRoaming(): jboolean; overload; virtual;
    function getNetworkCountryIso(): JLString; overload; virtual;
    function getNetworkType(): jint; overload; virtual;
    function hasIccCard(): jboolean; overload; virtual;
    function getSimState(): jint; overload; virtual;
    function getSimOperator(): JLString; overload; virtual;
    function getSimOperatorName(): JLString; overload; virtual;
    function getSimCountryIso(): JLString; overload; virtual;
    function getSimSerialNumber(): JLString; overload; virtual;
    function getSubscriberId(): JLString; overload; virtual;
    function getLine1Number(): JLString; overload; virtual;
    function getVoiceMailNumber(): JLString; overload; virtual;
    function getVoiceMailAlphaTag(): JLString; overload; virtual;
    function getCallState(): jint; overload; virtual;
    function getDataActivity(): jint; overload; virtual;
    function getDataState(): jint; overload; virtual;
    procedure listen(para1: ATPhoneStateListener; para2: jint); overload; virtual;
  end;

  ATGSmsManager = class sealed external 'android.telephony.gsm' name 'SmsManager' (JLObject)
  public
    const
      STATUS_ON_SIM_FREE = 0;
      STATUS_ON_SIM_READ = 1;
      STATUS_ON_SIM_UNREAD = 3;
      STATUS_ON_SIM_SENT = 5;
      STATUS_ON_SIM_UNSENT = 7;
      RESULT_ERROR_GENERIC_FAILURE = 1;
      RESULT_ERROR_RADIO_OFF = 2;
      RESULT_ERROR_NULL_PDU = 3;
      RESULT_ERROR_NO_SERVICE = 4;
  public
    class function getDefault(): ATGSmsManager; static; overload; final;
    procedure sendTextMessage(para1: JLString; para2: JLString; para3: JLString; para4: AAPendingIntent; para5: AAPendingIntent); overload; virtual; final;
    function divideMessage(para1: JLString): JUArrayList; overload; virtual; final;
    procedure sendMultipartTextMessage(para1: JLString; para2: JLString; para3: JUArrayList; para4: JUArrayList; para5: JUArrayList); overload; virtual; final;
    procedure sendDataMessage(para1: JLString; para2: JLString; para3: jshort; para4: Arr1jbyte; para5: AAPendingIntent; para6: AAPendingIntent); overload; virtual; final;
    procedure sendDataMessage(para1: JLString; para2: JLString; para3: jshort; var para4: array of jbyte; para5: AAPendingIntent; para6: AAPendingIntent); overload; virtual; final;
  end;

  ATMoreAsserts = class sealed external 'android.test' name 'MoreAsserts' (JLObject)
  public
    class procedure assertAssignableFrom(para1: JLClass; para2: JLObject); static; overload;
    class procedure assertAssignableFrom(para1: JLClass; para2: JLClass); static; overload;
    class procedure assertNotEqual(para1: JLString; para2: JLObject; para3: JLObject); static; overload;
    class procedure assertNotEqual(para1: JLObject; para2: JLObject); static; overload;
    class procedure assertEquals(para1: JLString; para2: Arr1jbyte; para3: Arr1jbyte); static; overload;
    class procedure assertEquals(para1: JLString; var para2: array of jbyte; var para3: array of jbyte); static; overload;
    class procedure assertEquals(para1: Arr1jbyte; para2: Arr1jbyte); static; overload;
    class procedure assertEquals(var para1: array of jbyte; var para2: array of jbyte); static; overload;
    class procedure assertEquals(para1: JLString; para2: Arr1jint; para3: Arr1jint); static; overload;
    class procedure assertEquals(para1: JLString; var para2: array of jint; var para3: array of jint); static; overload;
    class procedure assertEquals(para1: Arr1jint; para2: Arr1jint); static; overload;
    class procedure assertEquals(var para1: array of jint; var para2: array of jint); static; overload;
    class procedure assertEquals(para1: JLString; para2: Arr1jdouble; para3: Arr1jdouble); static; overload;
    class procedure assertEquals(para1: JLString; var para2: array of jdouble; var para3: array of jdouble); static; overload;
    class procedure assertEquals(para1: Arr1jdouble; para2: Arr1jdouble); static; overload;
    class procedure assertEquals(var para1: array of jdouble; var para2: array of jdouble); static; overload;
    class procedure assertEquals(para1: JLString; para2: Arr1JLObject; para3: Arr1JLObject); static; overload;
    class procedure assertEquals(para1: JLString; var para2: array of JLObject; var para3: array of JLObject); static; overload;
    class procedure assertEquals(para1: Arr1JLObject; para2: Arr1JLObject); static; overload;
    class procedure assertEquals(var para1: array of JLObject; var para2: array of JLObject); static; overload;
    class procedure assertEquals(para1: JLString; para2: JUSet; para3: JUSet); static; overload;
    class procedure assertEquals(para1: JUSet; para2: JUSet); static; overload;
    class function assertMatchesRegex(para1: JLString; para2: JLString; para3: JLString): JURMatchResult; static; overload;
    class function assertMatchesRegex(para1: JLString; para2: JLString): JURMatchResult; static; overload;
    class function assertContainsRegex(para1: JLString; para2: JLString; para3: JLString): JURMatchResult; static; overload;
    class function assertContainsRegex(para1: JLString; para2: JLString): JURMatchResult; static; overload;
    class procedure assertNotMatchesRegex(para1: JLString; para2: JLString; para3: JLString); static; overload;
    class procedure assertNotMatchesRegex(para1: JLString; para2: JLString); static; overload;
    class procedure assertNotContainsRegex(para1: JLString; para2: JLString; para3: JLString); static; overload;
    class procedure assertNotContainsRegex(para1: JLString; para2: JLString); static; overload;
    class procedure assertContentsInOrder(para1: JLString; para2: JLIterable; para3: Arr1JLObject); static; overload;
    class procedure assertContentsInOrder(para1: JLString; para2: JLIterable; const para3: array of JLObject); static; overload;
    class procedure assertContentsInOrder(para1: JLIterable; para2: Arr1JLObject); static; overload;
    class procedure assertContentsInOrder(para1: JLIterable; const para2: array of JLObject); static; overload;
    class procedure assertContentsInAnyOrder(para1: JLString; para2: JLIterable; para3: Arr1JLObject); static; overload;
    class procedure assertContentsInAnyOrder(para1: JLString; para2: JLIterable; const para3: array of JLObject); static; overload;
    class procedure assertContentsInAnyOrder(para1: JLIterable; para2: Arr1JLObject); static; overload;
    class procedure assertContentsInAnyOrder(para1: JLIterable; const para2: array of JLObject); static; overload;
    class procedure assertEmpty(para1: JLString; para2: JLIterable); static; overload;
    class procedure assertEmpty(para1: JLIterable); static; overload;
    class procedure assertEmpty(para1: JLString; para2: JUMap); static; overload;
    class procedure assertEmpty(para1: JUMap); static; overload;
    class procedure assertNotEmpty(para1: JLString; para2: JLIterable); static; overload;
    class procedure assertNotEmpty(para1: JLIterable); static; overload;
    class procedure assertNotEmpty(para1: JLString; para2: JUMap); static; overload;
    class procedure assertNotEmpty(para1: JUMap); static; overload;
    class procedure checkEqualsAndHashCodeMethods(para1: JLString; para2: JLObject; para3: JLObject; para4: jboolean); static; overload;
    class procedure checkEqualsAndHashCodeMethods(para1: JLObject; para2: JLObject; para3: jboolean); static; overload;
  end;

  ATPerformanceTestCase = interface external 'android.test' name 'PerformanceTestCase' 
    type
      InnerIntermediates = interface;
      Arr1InnerIntermediates = array of InnerIntermediates;
      Arr2InnerIntermediates = array of Arr1InnerIntermediates;
      Arr3InnerIntermediates = array of Arr2InnerIntermediates;
      InnerIntermediates = interface external 'android.test' name 'Intermediates' 
        procedure setInternalIterations(para1: jint); overload;
        procedure startTiming(para1: jboolean); overload;
        procedure addIntermediate(para1: JLString); overload;
        procedure addIntermediate(para1: JLString; para2: jlong); overload;
        procedure finishTiming(para1: jboolean); overload;
      end;

    function startPerformance(para1: ATPerformanceTestCase.InnerIntermediates): jint; overload;
    function isPerformanceOnly(): jboolean; overload;
  end;

  ATTestSuiteProvider = interface external 'android.test' name 'TestSuiteProvider' 
    function getTestSuite(): JFTestSuite; overload;
  end;

  ATTouchUtils = class external 'android.test' name 'TouchUtils' (JLObject)
  public
    constructor create(); overload;
    class procedure dragQuarterScreenDown(para1: ATActivityInstrumentationTestCase); static; overload;
    class procedure dragQuarterScreenDown(para1: ATInstrumentationTestCase; para2: AAActivity); static; overload;
    class procedure dragQuarterScreenUp(para1: ATActivityInstrumentationTestCase); static; overload;
    class procedure dragQuarterScreenUp(para1: ATInstrumentationTestCase; para2: AAActivity); static; overload;
    class procedure scrollToBottom(para1: ATActivityInstrumentationTestCase; para2: AVViewGroup); static; overload;
    class procedure scrollToBottom(para1: ATInstrumentationTestCase; para2: AAActivity; para3: AVViewGroup); static; overload;
    class procedure scrollToTop(para1: ATActivityInstrumentationTestCase; para2: AVViewGroup); static; overload;
    class procedure scrollToTop(para1: ATInstrumentationTestCase; para2: AAActivity; para3: AVViewGroup); static; overload;
    class procedure dragViewToBottom(para1: ATActivityInstrumentationTestCase; para2: AVView); static; overload;
    class procedure dragViewToBottom(para1: ATInstrumentationTestCase; para2: AAActivity; para3: AVView); static; overload;
    class procedure dragViewToBottom(para1: ATActivityInstrumentationTestCase; para2: AVView; para3: jint); static; overload;
    class procedure dragViewToBottom(para1: ATInstrumentationTestCase; para2: AAActivity; para3: AVView; para4: jint); static; overload;
    class procedure tapView(para1: ATInstrumentationTestCase; para2: AVView); static; overload;
    class procedure touchAndCancelView(para1: ATInstrumentationTestCase; para2: AVView); static; overload;
    class procedure clickView(para1: ATInstrumentationTestCase; para2: AVView); static; overload;
    class procedure longClickView(para1: ATActivityInstrumentationTestCase; para2: AVView); static; overload;
    class procedure longClickView(para1: ATInstrumentationTestCase; para2: AVView); static; overload;
    class procedure dragViewToTop(para1: ATActivityInstrumentationTestCase; para2: AVView); static; overload;
    class procedure dragViewToTop(para1: ATActivityInstrumentationTestCase; para2: AVView; para3: jint); static; overload;
    class procedure dragViewToTop(para1: ATInstrumentationTestCase; para2: AVView); static; overload;
    class procedure dragViewToTop(para1: ATInstrumentationTestCase; para2: AVView; para3: jint); static; overload;
    class function dragViewBy(para1: ATActivityInstrumentationTestCase; para2: AVView; para3: jint; para4: jint; para5: jint): jint; static; overload;
    class function dragViewBy(para1: ATInstrumentationTestCase; para2: AVView; para3: jint; para4: jint; para5: jint): jint; static; overload;
    class function dragViewTo(para1: ATActivityInstrumentationTestCase; para2: AVView; para3: jint; para4: jint; para5: jint): jint; static; overload;
    class function dragViewTo(para1: ATInstrumentationTestCase; para2: AVView; para3: jint; para4: jint; para5: jint): jint; static; overload;
    class function dragViewToX(para1: ATActivityInstrumentationTestCase; para2: AVView; para3: jint; para4: jint): jint; static; overload;
    class function dragViewToX(para1: ATInstrumentationTestCase; para2: AVView; para3: jint; para4: jint): jint; static; overload;
    class function dragViewToY(para1: ATActivityInstrumentationTestCase; para2: AVView; para3: jint; para4: jint): jint; static; overload;
    class function dragViewToY(para1: ATInstrumentationTestCase; para2: AVView; para3: jint; para4: jint): jint; static; overload;
    class procedure drag(para1: ATActivityInstrumentationTestCase; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jint); static; overload;
    class procedure drag(para1: ATInstrumentationTestCase; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jint); static; overload;
  end;

  ATViewAsserts = class external 'android.test' name 'ViewAsserts' (JLObject)
  public
    class procedure assertOnScreen(para1: AVView; para2: AVView); static; overload;
    class procedure assertOffScreenBelow(para1: AVView; para2: AVView); static; overload;
    class procedure assertOffScreenAbove(para1: AVView; para2: AVView); static; overload;
    class procedure assertHasScreenCoordinates(para1: AVView; para2: AVView; para3: jint; para4: jint); static; overload;
    class procedure assertBaselineAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertRightAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertRightAligned(para1: AVView; para2: AVView; para3: jint); static; overload;
    class procedure assertLeftAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertLeftAligned(para1: AVView; para2: AVView; para3: jint); static; overload;
    class procedure assertBottomAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertBottomAligned(para1: AVView; para2: AVView; para3: jint); static; overload;
    class procedure assertTopAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertTopAligned(para1: AVView; para2: AVView; para3: jint); static; overload;
    class procedure assertHorizontalCenterAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertVerticalCenterAligned(para1: AVView; para2: AVView); static; overload;
    class procedure assertGroupIntegrity(para1: AVViewGroup); static; overload;
    class procedure assertGroupContains(para1: AVViewGroup; para2: AVView); static; overload;
    class procedure assertGroupNotContains(para1: AVViewGroup; para2: AVView); static; overload;
  end;

  ATSTestMethod = class external 'android.test.suitebuilder' name 'TestMethod' (JLObject)
  public
    constructor create(para1: JLRMethod; para2: JLClass); overload;
    constructor create(para1: JLString; para2: JLClass); overload;
    constructor create(para1: JFTestCase); overload;
    function getName(): JLString; overload; virtual;
    function getEnclosingClassname(): JLString; overload; virtual;
    function getAnnotation(para1: JLClass): JLAAnnotation; overload; virtual;
    function getEnclosingClass(): JLClass; overload; virtual;
    function createTest(): JFTestCase; overload; virtual;  // throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException, java.lang.InstantiationException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ATAndroidCharacter = class external 'android.text' name 'AndroidCharacter' (JLObject)
  public
    const
      EAST_ASIAN_WIDTH_NEUTRAL = 0;
      EAST_ASIAN_WIDTH_AMBIGUOUS = 1;
      EAST_ASIAN_WIDTH_HALF_WIDTH = 2;
      EAST_ASIAN_WIDTH_FULL_WIDTH = 3;
      EAST_ASIAN_WIDTH_NARROW = 4;
      EAST_ASIAN_WIDTH_WIDE = 5;
  public
    constructor create(); overload;
    class procedure getDirectionalities(para1: Arr1jchar; para2: Arr1jbyte; para3: jint); static; overload;
    class procedure getDirectionalities(var para1: array of jchar; var para2: array of jbyte; para3: jint); static; overload;
    class function getEastAsianWidth(para1: jchar): jint; static; overload;
    class procedure getEastAsianWidths(para1: Arr1jchar; para2: jint; para3: jint; para4: Arr1jbyte); static; overload;
    class procedure getEastAsianWidths(var para1: array of jchar; para2: jint; para3: jint; var para4: array of jbyte); static; overload;
    class function mirror(para1: Arr1jchar; para2: jint; para3: jint): jboolean; static; overload;
    class function mirror(var para1: array of jchar; para2: jint; para3: jint): jboolean; static; overload;
    class function getMirror(para1: jchar): jchar; static; overload;
  end;

  ATAutoText = class external 'android.text' name 'AutoText' (JLObject)
  public
    class function get(para1: JLCharSequence; para2: jint; para3: jint; para4: AVView): JLString; static; overload;
    class function getSize(para1: AVView): jint; static; overload;
  end;

  ATClipboardManager = class abstract external 'android.text' name 'ClipboardManager' (JLObject)
  public
    constructor create(); overload;
    function getText(): JLCharSequence; overload; virtual; abstract;
    procedure setText(para1: JLCharSequence); overload; virtual; abstract;
    function hasText(): jboolean; overload; virtual; abstract;
  end;

  ATHtml = class external 'android.text' name 'Html' (JLObject)
  public
    type
      InnerTagHandler = interface;
      Arr1InnerTagHandler = array of InnerTagHandler;
      Arr2InnerTagHandler = array of Arr1InnerTagHandler;
      Arr3InnerTagHandler = array of Arr2InnerTagHandler;
      InnerImageGetter = interface;
      Arr1InnerImageGetter = array of InnerImageGetter;
      Arr2InnerImageGetter = array of Arr1InnerImageGetter;
      Arr3InnerImageGetter = array of Arr2InnerImageGetter;
      InnerTagHandler = interface external 'android.text' name 'TagHandler' 
        procedure handleTag(para1: jboolean; para2: JLString; para3: ATEditable; para4: OXSXMLReader); overload;
      end;

      InnerImageGetter = interface external 'android.text' name 'ImageGetter' 
        function getDrawable(para1: JLString): AGDDrawable; overload;
      end;

  public
    class function fromHtml(para1: JLString): ATSpanned; static; overload;
    class function fromHtml(para1: JLString; para2: ATHtml.InnerImageGetter; para3: ATHtml.InnerTagHandler): ATSpanned; static; overload;
    class function toHtml(para1: ATSpanned): JLString; static; overload;
  end;

  ATInputFilter = interface external 'android.text' name 'InputFilter' 
    type
      InnerLengthFilter = class;
      Arr1InnerLengthFilter = array of InnerLengthFilter;
      Arr2InnerLengthFilter = array of Arr1InnerLengthFilter;
      Arr3InnerLengthFilter = array of Arr2InnerLengthFilter;
      InnerAllCaps = class;
      Arr1InnerAllCaps = array of InnerAllCaps;
      Arr2InnerAllCaps = array of Arr1InnerAllCaps;
      Arr3InnerAllCaps = array of Arr2InnerAllCaps;
      InnerLengthFilter = class external 'android.text' name 'LengthFilter' (JLObject, ATInputFilter)
      public
        constructor create(para1: jint); overload;
        function filter(para1: JLCharSequence; para2: jint; para3: jint; para4: ATSpanned; para5: jint; para6: jint): JLCharSequence; overload; virtual;
      end;

      InnerAllCaps = class external 'android.text' name 'AllCaps' (JLObject, ATInputFilter)
      public
        constructor create(); overload;
        function filter(para1: JLCharSequence; para2: jint; para3: jint; para4: ATSpanned; para5: jint; para6: jint): JLCharSequence; overload; virtual;
      end;

    function filter(para1: JLCharSequence; para2: jint; para3: jint; para4: ATSpanned; para5: jint; para6: jint): JLCharSequence; overload;
  end;

  ATInputType = interface external 'android.text' name 'InputType' 
    const
      TYPE_MASK_CLASS = 15;
      TYPE_MASK_VARIATION = 4080;
      TYPE_MASK_FLAGS = 16773120;
      TYPE_NULL = 0;
      TYPE_CLASS_TEXT = 1;
      TYPE_TEXT_FLAG_CAP_CHARACTERS = 4096;
      TYPE_TEXT_FLAG_CAP_WORDS = 8192;
      TYPE_TEXT_FLAG_CAP_SENTENCES = 16384;
      TYPE_TEXT_FLAG_AUTO_CORRECT = 32768;
      TYPE_TEXT_FLAG_AUTO_COMPLETE = 65536;
      TYPE_TEXT_FLAG_MULTI_LINE = 131072;
      TYPE_TEXT_FLAG_IME_MULTI_LINE = 262144;
      TYPE_TEXT_FLAG_NO_SUGGESTIONS = 524288;
      TYPE_TEXT_VARIATION_NORMAL = 0;
      TYPE_TEXT_VARIATION_URI = 16;
      TYPE_TEXT_VARIATION_EMAIL_ADDRESS = 32;
      TYPE_TEXT_VARIATION_EMAIL_SUBJECT = 48;
      TYPE_TEXT_VARIATION_SHORT_MESSAGE = 64;
      TYPE_TEXT_VARIATION_LONG_MESSAGE = 80;
      TYPE_TEXT_VARIATION_PERSON_NAME = 96;
      TYPE_TEXT_VARIATION_POSTAL_ADDRESS = 112;
      TYPE_TEXT_VARIATION_PASSWORD = 128;
      TYPE_TEXT_VARIATION_VISIBLE_PASSWORD = 144;
      TYPE_TEXT_VARIATION_WEB_EDIT_TEXT = 160;
      TYPE_TEXT_VARIATION_FILTER = 176;
      TYPE_TEXT_VARIATION_PHONETIC = 192;
      TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS = 208;
      TYPE_TEXT_VARIATION_WEB_PASSWORD = 224;
      TYPE_CLASS_NUMBER = 2;
      TYPE_NUMBER_FLAG_SIGNED = 4096;
      TYPE_NUMBER_FLAG_DECIMAL = 8192;
      TYPE_NUMBER_VARIATION_NORMAL = 0;
      TYPE_NUMBER_VARIATION_PASSWORD = 16;
      TYPE_CLASS_PHONE = 3;
      TYPE_CLASS_DATETIME = 4;
      TYPE_DATETIME_VARIATION_NORMAL = 0;
      TYPE_DATETIME_VARIATION_DATE = 16;
      TYPE_DATETIME_VARIATION_TIME = 32;
  end;

  ATNoCopySpan = interface external 'android.text' name 'NoCopySpan' 
    type
      InnerConcrete = class;
      Arr1InnerConcrete = array of InnerConcrete;
      Arr2InnerConcrete = array of Arr1InnerConcrete;
      Arr3InnerConcrete = array of Arr2InnerConcrete;
      InnerConcrete = class external 'android.text' name 'Concrete' (JLObject, ATNoCopySpan)
      public
        constructor create(); overload;
      end;

  end;

  ATSelection = class external 'android.text' name 'Selection' (JLObject)
  public
    final class var
      fSELECTION_START: JLObject; external name 'SELECTION_START';
      fSELECTION_END: JLObject; external name 'SELECTION_END';
  public
    class function getSelectionStart(para1: JLCharSequence): jint; static; overload; final;
    class function getSelectionEnd(para1: JLCharSequence): jint; static; overload; final;
    class procedure setSelection(para1: ATSpannable; para2: jint; para3: jint); static; overload;
    class procedure setSelection(para1: ATSpannable; para2: jint); static; overload; final;
    class procedure selectAll(para1: ATSpannable); static; overload; final;
    class procedure extendSelection(para1: ATSpannable; para2: jint); static; overload; final;
    class procedure removeSelection(para1: ATSpannable); static; overload; final;
    class function moveUp(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function moveDown(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function moveLeft(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function moveRight(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function extendUp(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function extendDown(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function extendLeft(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function extendRight(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function extendToLeftEdge(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function extendToRightEdge(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function moveToLeftEdge(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
    class function moveToRightEdge(para1: ATSpannable; para2: ATLayout): jboolean; static; overload;
  end;

  ATSpannableStringInternal = class abstract external 'android.text' name 'SpannableStringInternal' (JLObject)
  public
    function length(): jint; overload; virtual; final;
    function charAt(para1: jint): jchar; overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
    procedure getChars(para1: jint; para2: jint; para3: Arr1jchar; para4: jint); overload; virtual; final;
    procedure getChars(para1: jint; para2: jint; var para3: array of jchar; para4: jint); overload; virtual; final;
    function getSpanStart(para1: JLObject): jint; overload; virtual;
    function getSpanEnd(para1: JLObject): jint; overload; virtual;
    function getSpanFlags(para1: JLObject): jint; overload; virtual;
    function getSpans(para1: jint; para2: jint; para3: JLClass): Arr1JLObject; overload; virtual;
    function nextSpanTransition(para1: jint; para2: jint; para3: JLClass): jint; overload; virtual;
  end;

  ATFDateFormat = class external 'android.text.format' name 'DateFormat' (JLObject)
  public
    const
      QUOTE = 39;
      AM_PM = 97;
      CAPITAL_AM_PM = 65;
      DATE = 100;
      DAY = 69;
      HOUR = 104;
      HOUR_OF_DAY = 107;
      MINUTE = 109;
      MONTH = 77;
      SECONDS = 115;
      TIME_ZONE = 122;
      YEAR = 121;
  public
    constructor create(); overload;
    class function is24HourFormat(para1: ACContext): jboolean; static; overload;
    class function getTimeFormat(para1: ACContext): JTDateFormat; static; overload; final;
    class function getDateFormat(para1: ACContext): JTDateFormat; static; overload; final;
    class function getLongDateFormat(para1: ACContext): JTDateFormat; static; overload; final;
    class function getMediumDateFormat(para1: ACContext): JTDateFormat; static; overload; final;
    class function getDateFormatOrder(para1: ACContext): Arr1jchar; static; overload; final;
    class function format(para1: JLCharSequence; para2: jlong): JLCharSequence; static; overload; final;
    class function format(para1: JLCharSequence; para2: JUDate): JLCharSequence; static; overload; final;
    class function format(para1: JLCharSequence; para2: JUCalendar): JLCharSequence; static; overload; final;
  end;

  ATFDateUtils = class external 'android.text.format' name 'DateUtils' (JLObject)
  public
    const
      SECOND_IN_MILLIS = jlong(1000);
      MINUTE_IN_MILLIS = jlong(60000);
      HOUR_IN_MILLIS = jlong(3600000);
      DAY_IN_MILLIS = jlong(86400000);
      WEEK_IN_MILLIS = jlong(604800000);
      YEAR_IN_MILLIS = jlong(31449600000);
      FORMAT_SHOW_TIME = 1;
      FORMAT_SHOW_WEEKDAY = 2;
      FORMAT_SHOW_YEAR = 4;
      FORMAT_NO_YEAR = 8;
      FORMAT_SHOW_DATE = 16;
      FORMAT_NO_MONTH_DAY = 32;
      FORMAT_12HOUR = 64;
      FORMAT_24HOUR = 128;
      FORMAT_CAP_AMPM = 256;
      FORMAT_NO_NOON = 512;
      FORMAT_CAP_NOON = 1024;
      FORMAT_NO_MIDNIGHT = 2048;
      FORMAT_CAP_MIDNIGHT = 4096;
      FORMAT_UTC = 8192;
      FORMAT_ABBREV_TIME = 16384;
      FORMAT_ABBREV_WEEKDAY = 32768;
      FORMAT_ABBREV_MONTH = 65536;
      FORMAT_NUMERIC_DATE = 131072;
      FORMAT_ABBREV_RELATIVE = 262144;
      FORMAT_ABBREV_ALL = 524288;
      FORMAT_CAP_NOON_MIDNIGHT = 5120;
      FORMAT_NO_NOON_MIDNIGHT = 2560;
      HOUR_MINUTE_24 = '%H:%M';
      MONTH_FORMAT = '%B';
      ABBREV_MONTH_FORMAT = '%b';
      NUMERIC_MONTH_FORMAT = '%m';
      MONTH_DAY_FORMAT = '%-d';
      YEAR_FORMAT = '%Y';
      YEAR_FORMAT_TWO_DIGITS = '%g';
      WEEKDAY_FORMAT = '%A';
      ABBREV_WEEKDAY_FORMAT = '%a';
  public
    final class var
      fsameYearTable: Arr1jint; external name 'sameYearTable';
      fsameMonthTable: Arr1jint; external name 'sameMonthTable';
  public
    const
      LENGTH_LONG = 10;
      LENGTH_MEDIUM = 20;
      LENGTH_SHORT = 30;
      LENGTH_SHORTER = 40;
      LENGTH_SHORTEST = 50;
  public
    constructor create(); overload;
    class function getDayOfWeekString(para1: jint; para2: jint): JLString; static; overload;
    class function getAMPMString(para1: jint): JLString; static; overload;
    class function getMonthString(para1: jint; para2: jint): JLString; static; overload;
    class function getRelativeTimeSpanString(para1: jlong): JLCharSequence; static; overload;
    class function getRelativeTimeSpanString(para1: jlong; para2: jlong; para3: jlong): JLCharSequence; static; overload;
    class function getRelativeTimeSpanString(para1: jlong; para2: jlong; para3: jlong; para4: jint): JLCharSequence; static; overload;
    class function getRelativeDateTimeString(para1: ACContext; para2: jlong; para3: jlong; para4: jlong; para5: jint): JLCharSequence; static; overload;
    class function formatElapsedTime(para1: jlong): JLString; static; overload;
    class function formatElapsedTime(para1: JLStringBuilder; para2: jlong): JLString; static; overload;
    class function formatSameDayTime(para1: jlong; para2: jlong; para3: jint; para4: jint): JLCharSequence; static; overload; final;
    class function isToday(para1: jlong): jboolean; static; overload;
    class function formatDateRange(para1: ACContext; para2: jlong; para3: jlong; para4: jint): JLString; static; overload;
    class function formatDateRange(para1: ACContext; para2: JUFormatter; para3: jlong; para4: jlong; para5: jint): JUFormatter; static; overload;
    class function formatDateRange(para1: ACContext; para2: JUFormatter; para3: jlong; para4: jlong; para5: jint; para6: JLString): JUFormatter; static; overload;
    class function formatDateTime(para1: ACContext; para2: jlong; para3: jint): JLString; static; overload;
    class function getRelativeTimeSpanString(para1: ACContext; para2: jlong; para3: jboolean): JLCharSequence; static; overload;
    class function getRelativeTimeSpanString(para1: ACContext; para2: jlong): JLCharSequence; static; overload;
  end;

  ATFFormatter = class sealed external 'android.text.format' name 'Formatter' (JLObject)
  public
    constructor create(); overload;
    class function formatFileSize(para1: ACContext; para2: jlong): JLString; static; overload;
    class function formatShortFileSize(para1: ACContext; para2: jlong): JLString; static; overload;
    class function formatIpAddress(para1: jint): JLString; static; overload;
  end;

  ATFTime = class external 'android.text.format' name 'Time' (JLObject)
  public
    const
      TIMEZONE_UTC = 'UTC';
      EPOCH_JULIAN_DAY = 2440588;
      MONDAY_BEFORE_JULIAN_EPOCH = 2440585;
  public
    var
      fallDay: jboolean; external name 'allDay';
      fsecond: jint; external name 'second';
      fminute: jint; external name 'minute';
      fhour: jint; external name 'hour';
      fmonthDay: jint; external name 'monthDay';
      fmonth: jint; external name 'month';
      fyear: jint; external name 'year';
      fweekDay: jint; external name 'weekDay';
      fyearDay: jint; external name 'yearDay';
      fisDst: jint; external name 'isDst';
      fgmtoff: jlong; external name 'gmtoff';
      ftimezone: JLString; external name 'timezone';
  public
    const
      SECOND = 1;
      MINUTE = 2;
      HOUR = 3;
      MONTH_DAY = 4;
      MONTH = 5;
      YEAR = 6;
      WEEK_DAY = 7;
      YEAR_DAY = 8;
      WEEK_NUM = 9;
      SUNDAY = 0;
      MONDAY = 1;
      TUESDAY = 2;
      WEDNESDAY = 3;
      THURSDAY = 4;
      FRIDAY = 5;
      SATURDAY = 6;
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: ATFTime); overload;
    function normalize(para1: jboolean): jlong; overload; virtual;
    procedure switchTimezone(para1: JLString); overload; virtual;
    function getActualMaximum(para1: jint): jint; overload; virtual;
    procedure clear(para1: JLString); overload; virtual;
    class function compare(para1: ATFTime; para2: ATFTime): jint; static; overload;
    function format(para1: JLString): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function parse(para1: JLString): jboolean; overload; virtual;
    function parse3339(para1: JLString): jboolean; overload; virtual;
    class function getCurrentTimezone(): JLString; static; overload;
    procedure setToNow(); overload; virtual;
    function toMillis(para1: jboolean): jlong; overload; virtual;
    procedure &set(para1: jlong); overload; virtual;
    function format2445(): JLString; overload; virtual;
    procedure &set(para1: ATFTime); overload; virtual;
    procedure &set(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure &set(para1: jint; para2: jint; para3: jint); overload; virtual;
    function before(para1: ATFTime): jboolean; overload; virtual;
    function after(para1: ATFTime): jboolean; overload; virtual;
    function getWeekNumber(): jint; overload; virtual;
    function format3339(para1: jboolean): JLString; overload; virtual;
    class function isEpoch(para1: ATFTime): jboolean; static; overload;
    class function getJulianDay(para1: jlong; para2: jlong): jint; static; overload;
    function setJulianDay(para1: jint): jlong; overload; virtual;
    class function getWeeksSinceEpochFromJulianDay(para1: jint; para2: jint): jint; static; overload;
    class function getJulianMondayFromWeeksSinceEpoch(para1: jint): jint; static; overload;
  end;

  ATMKeyListener = interface external 'android.text.method' name 'KeyListener' 
    function getInputType(): jint; overload;
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload;
    function onKeyUp(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload;
    function onKeyOther(para1: AVView; para2: ATEditable; para3: AVKeyEvent): jboolean; overload;
    procedure clearMetaKeyState(para1: AVView; para2: ATEditable; para3: jint); overload;
  end;

  ATMMetaKeyKeyListener = class abstract external 'android.text.method' name 'MetaKeyKeyListener' (JLObject)
  public
    const
      META_SHIFT_ON = 1;
      META_ALT_ON = 2;
      META_SYM_ON = 4;
      META_CAP_LOCKED = 256;
      META_ALT_LOCKED = 512;
      META_SYM_LOCKED = 1024;
  public
    constructor create(); overload;
    class procedure resetMetaState(para1: ATSpannable); static; overload;
    class function getMetaState(para1: JLCharSequence): jint; static; overload; final;
    class function getMetaState(para1: JLCharSequence; para2: jint): jint; static; overload; final;
    class procedure adjustMetaAfterKeypress(para1: ATSpannable); static; overload;
    class function isMetaTracker(para1: JLCharSequence; para2: JLObject): jboolean; static; overload;
    class function isSelectingMetaTracker(para1: JLCharSequence; para2: JLObject): jboolean; static; overload;
  strict protected
    class procedure resetLockedMeta(para1: ATSpannable); static; overload;
  public
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    procedure clearMetaKeyState(para1: AVView; para2: ATEditable; para3: jint); overload; virtual;
    class procedure clearMetaKeyState(para1: ATEditable; para2: jint); static; overload;
    class function resetLockedMeta(para1: jlong): jlong; static; overload;
    class function getMetaState(para1: jlong): jint; static; overload; final;
    class function getMetaState(para1: jlong; para2: jint): jint; static; overload; final;
    class function adjustMetaAfterKeypress(para1: jlong): jlong; static; overload;
    class function handleKeyDown(para1: jlong; para2: jint; para3: AVKeyEvent): jlong; static; overload;
    class function handleKeyUp(para1: jlong; para2: jint; para3: AVKeyEvent): jlong; static; overload;
    function clearMetaKeyState(para1: jlong; para2: jint): jlong; overload; virtual;
  end;

  ATMMovementMethod = interface external 'android.text.method' name 'MovementMethod' 
    procedure initialize(para1: AWTextView; para2: ATSpannable); overload;
    function onKeyDown(para1: AWTextView; para2: ATSpannable; para3: jint; para4: AVKeyEvent): jboolean; overload;
    function onKeyUp(para1: AWTextView; para2: ATSpannable; para3: jint; para4: AVKeyEvent): jboolean; overload;
    function onKeyOther(para1: AWTextView; para2: ATSpannable; para3: AVKeyEvent): jboolean; overload;
    procedure onTakeFocus(para1: AWTextView; para2: ATSpannable; para3: jint); overload;
    function onTrackballEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload;
    function onTouchEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload;
    function onGenericMotionEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload;
    function canSelectArbitrarily(): jboolean; overload;
  end;

  ATMTouch = class external 'android.text.method' name 'Touch' (JLObject)
  public
    class procedure scrollTo(para1: AWTextView; para2: ATLayout; para3: jint; para4: jint); static; overload;
    class function onTouchEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; static; overload;
    class function getInitialScrollX(para1: AWTextView; para2: ATSpannable): jint; static; overload;
    class function getInitialScrollY(para1: AWTextView; para2: ATSpannable): jint; static; overload;
  end;

  ATMTransformationMethod = interface external 'android.text.method' name 'TransformationMethod' 
    function getTransformation(para1: JLCharSequence; para2: AVView): JLCharSequence; overload;
    procedure onFocusChanged(para1: AVView; para2: JLCharSequence; para3: jboolean; para4: jint; para5: AGRect); overload;
  end;

  ATSCharacterStyle = class abstract external 'android.text.style' name 'CharacterStyle' (JLObject)
  public
    constructor create(); overload;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual; abstract;
    class function wrap(para1: ATSCharacterStyle): ATSCharacterStyle; static; overload;
    function getUnderlying(): ATSCharacterStyle; overload; virtual;
  end;

  ATSParagraphStyle = interface external 'android.text.style' name 'ParagraphStyle' 
  end;

  ATSUpdateAppearance = interface external 'android.text.style' name 'UpdateAppearance' 
  end;

  ATULinkify = class external 'android.text.util' name 'Linkify' (JLObject)
  public
    type
      InnerTransformFilter = interface;
      Arr1InnerTransformFilter = array of InnerTransformFilter;
      Arr2InnerTransformFilter = array of Arr1InnerTransformFilter;
      Arr3InnerTransformFilter = array of Arr2InnerTransformFilter;
      InnerMatchFilter = interface;
      Arr1InnerMatchFilter = array of InnerMatchFilter;
      Arr2InnerMatchFilter = array of Arr1InnerMatchFilter;
      Arr3InnerMatchFilter = array of Arr2InnerMatchFilter;
      InnerTransformFilter = interface external 'android.text.util' name 'TransformFilter' 
        function transformUrl(para1: JURMatcher; para2: JLString): JLString; overload;
      end;

      InnerMatchFilter = interface external 'android.text.util' name 'MatchFilter' 
        function acceptMatch(para1: JLCharSequence; para2: jint; para3: jint): jboolean; overload;
      end;

  public
    const
      WEB_URLS = 1;
      EMAIL_ADDRESSES = 2;
      PHONE_NUMBERS = 4;
      MAP_ADDRESSES = 8;
      ALL = 15;
  public
    final class var
      fsUrlMatchFilter: ATULinkify.InnerMatchFilter; external name 'sUrlMatchFilter';
      fsPhoneNumberMatchFilter: ATULinkify.InnerMatchFilter; external name 'sPhoneNumberMatchFilter';
      fsPhoneNumberTransformFilter: ATULinkify.InnerTransformFilter; external name 'sPhoneNumberTransformFilter';
  public
    constructor create(); overload;
    class function addLinks(para1: ATSpannable; para2: jint): jboolean; static; overload; final;
    class function addLinks(para1: AWTextView; para2: jint): jboolean; static; overload; final;
    class procedure addLinks(para1: AWTextView; para2: JURPattern; para3: JLString); static; overload; final;
    class procedure addLinks(para1: AWTextView; para2: JURPattern; para3: JLString; para4: ATULinkify.InnerMatchFilter; para5: ATULinkify.InnerTransformFilter); static; overload; final;
    class function addLinks(para1: ATSpannable; para2: JURPattern; para3: JLString): jboolean; static; overload; final;
    class function addLinks(para1: ATSpannable; para2: JURPattern; para3: JLString; para4: ATULinkify.InnerMatchFilter; para5: ATULinkify.InnerTransformFilter): jboolean; static; overload; final;
  end;

  ATURfc822Token = class external 'android.text.util' name 'Rfc822Token' (JLObject)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getAddress(): JLString; overload; virtual;
    function getComment(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    procedure setAddress(para1: JLString); overload; virtual;
    procedure setComment(para1: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    class function quoteNameIfNecessary(para1: JLString): JLString; static; overload;
    class function quoteName(para1: JLString): JLString; static; overload;
    class function quoteComment(para1: JLString): JLString; static; overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  AUAttributeSet = interface external 'android.util' name 'AttributeSet' 
    function getAttributeCount(): jint; overload;
    function getAttributeName(para1: jint): JLString; overload;
    function getAttributeValue(para1: jint): JLString; overload;
    function getAttributeValue(para1: JLString; para2: JLString): JLString; overload;
    function getPositionDescription(): JLString; overload;
    function getAttributeNameResource(para1: jint): jint; overload;
    function getAttributeListValue(para1: JLString; para2: JLString; para3: Arr1JLString; para4: jint): jint; overload;
    function getAttributeListValue(para1: JLString; para2: JLString; var para3: array of JLString; para4: jint): jint; overload;
    function getAttributeBooleanValue(para1: JLString; para2: JLString; para3: jboolean): jboolean; overload;
    function getAttributeResourceValue(para1: JLString; para2: JLString; para3: jint): jint; overload;
    function getAttributeIntValue(para1: JLString; para2: JLString; para3: jint): jint; overload;
    function getAttributeUnsignedIntValue(para1: JLString; para2: JLString; para3: jint): jint; overload;
    function getAttributeFloatValue(para1: JLString; para2: JLString; para3: jfloat): jfloat; overload;
    function getAttributeListValue(para1: jint; para2: Arr1JLString; para3: jint): jint; overload;
    function getAttributeListValue(para1: jint; var para2: array of JLString; para3: jint): jint; overload;
    function getAttributeBooleanValue(para1: jint; para2: jboolean): jboolean; overload;
    function getAttributeResourceValue(para1: jint; para2: jint): jint; overload;
    function getAttributeIntValue(para1: jint; para2: jint): jint; overload;
    function getAttributeUnsignedIntValue(para1: jint; para2: jint): jint; overload;
    function getAttributeFloatValue(para1: jint; para2: jfloat): jfloat; overload;
    function getIdAttribute(): JLString; overload;
    function getClassAttribute(): JLString; overload;
    function getIdAttributeResourceValue(para1: jint): jint; overload;
    function getStyleAttribute(): jint; overload;
  end;

  AUBase64 = class external 'android.util' name 'Base64' (JLObject)
  public
    const
      DEFAULT = 0;
      NO_PADDING = 1;
      NO_WRAP = 2;
      CRLF = 4;
      URL_SAFE = 8;
      NO_CLOSE = 16;
  public
    class function decode(para1: JLString; para2: jint): Arr1jbyte; static; overload;
    class function decode(para1: Arr1jbyte; para2: jint): Arr1jbyte; static; overload;
    class function decode(var para1: array of jbyte; para2: jint): Arr1jbyte; static; overload;
    class function decode(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint): Arr1jbyte; static; overload;
    class function decode(var para1: array of jbyte; para2: jint; para3: jint; para4: jint): Arr1jbyte; static; overload;
    class function encodeToString(para1: Arr1jbyte; para2: jint): JLString; static; overload;
    class function encodeToString(var para1: array of jbyte; para2: jint): JLString; static; overload;
    class function encodeToString(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint): JLString; static; overload;
    class function encodeToString(var para1: array of jbyte; para2: jint; para3: jint; para4: jint): JLString; static; overload;
    class function encode(para1: Arr1jbyte; para2: jint): Arr1jbyte; static; overload;
    class function encode(var para1: array of jbyte; para2: jint): Arr1jbyte; static; overload;
    class function encode(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint): Arr1jbyte; static; overload;
    class function encode(var para1: array of jbyte; para2: jint; para3: jint; para4: jint): Arr1jbyte; static; overload;
  end;

  AUConfig = class sealed external 'android.util' name 'Config' (JLObject)
  public
    const
      DEBUG = 0;
      RELEASE = 1;
      PROFILE = 0;
      LOGV = 0;
      LOGD = 1;
  end;

  AUDebugUtils = class external 'android.util' name 'DebugUtils' (JLObject)
  public
    class function isObjectSelected(para1: JLObject): jboolean; static; overload;
  end;

  AUDisplayMetrics = class external 'android.util' name 'DisplayMetrics' (JLObject)
  public
    const
      DENSITY_LOW = 120;
      DENSITY_MEDIUM = 160;
      DENSITY_TV = 213;
      DENSITY_HIGH = 240;
      DENSITY_XHIGH = 320;
      DENSITY_DEFAULT = 160;
  public
    var
      fwidthPixels: jint; external name 'widthPixels';
      fheightPixels: jint; external name 'heightPixels';
      fdensity: jfloat; external name 'density';
      fdensityDpi: jint; external name 'densityDpi';
      fscaledDensity: jfloat; external name 'scaledDensity';
      fxdpi: jfloat; external name 'xdpi';
      fydpi: jfloat; external name 'ydpi';
  public
    constructor create(); overload;
    procedure setTo(para1: AUDisplayMetrics); overload; virtual;
    procedure setToDefaults(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AUEventLog = class external 'android.util' name 'EventLog' (JLObject)
  public
    type
      InnerEvent = class;
      Arr1InnerEvent = array of InnerEvent;
      Arr2InnerEvent = array of Arr1InnerEvent;
      Arr3InnerEvent = array of Arr2InnerEvent;
      InnerEvent = class sealed external 'android.util' name 'Event' (JLObject)
      public
        function getProcessId(): jint; overload; virtual;
        function getThreadId(): jint; overload; virtual;
        function getTimeNanos(): jlong; overload; virtual;
        function getTag(): jint; overload; virtual;
        function getData(): JLObject; overload; virtual;
      end;

  public
    class function writeEvent(para1: jint; para2: jint): jint; static; overload;
    class function writeEvent(para1: jint; para2: jlong): jint; static; overload;
    class function writeEvent(para1: jint; para2: JLString): jint; static; overload;
    class function writeEvent(para1: jint; para2: Arr1JLObject): jint; static; overload;
    class function writeEvent(para1: jint; const para2: array of JLObject): jint; static; overload;
    class procedure readEvents(para1: Arr1jint; para2: JUCollection); static; overload;  // throws java.io.IOException
    class procedure readEvents(var para1: array of jint; para2: JUCollection); static; overload;  // throws java.io.IOException
    class function getTagName(para1: jint): JLString; static; overload;
    class function getTagCode(para1: JLString): jint; static; overload;
  end;

  AUEventLogTags = class external 'android.util' name 'EventLogTags' (JLObject)
  public
    type
      InnerDescription = class;
      Arr1InnerDescription = array of InnerDescription;
      Arr2InnerDescription = array of Arr1InnerDescription;
      Arr3InnerDescription = array of Arr2InnerDescription;
      InnerDescription = class external 'android.util' name 'Description' (JLObject)
      public
        final var
          fmTag: jint; external name 'mTag';
          fmName: JLString; external name 'mName';
      end;

  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: JIBufferedReader); overload;  // throws java.io.IOException
    function get(para1: JLString): AUEventLogTags.InnerDescription; overload; virtual;
    function get(para1: jint): AUEventLogTags.InnerDescription; overload; virtual;
  end;

  AUFloatMath = class external 'android.util' name 'FloatMath' (JLObject)
  public
    class function floor(para1: jfloat): jfloat; static; overload;
    class function ceil(para1: jfloat): jfloat; static; overload;
    class function sin(para1: jfloat): jfloat; static; overload;
    class function cos(para1: jfloat): jfloat; static; overload;
    class function sqrt(para1: jfloat): jfloat; static; overload;
  end;

  AULog = class sealed external 'android.util' name 'Log' (JLObject)
  public
    const
      VERBOSE = 2;
      DEBUG = 3;
      INFO = 4;
      WARN = 5;
      ERROR = 6;
      ASSERT = 7;
  public
    class function v(para1: JLString; para2: JLString): jint; static; overload;
    class function v(para1: JLString; para2: JLString; para3: JLThrowable): jint; static; overload;
    class function d(para1: JLString; para2: JLString): jint; static; overload;
    class function d(para1: JLString; para2: JLString; para3: JLThrowable): jint; static; overload;
    class function i(para1: JLString; para2: JLString): jint; static; overload;
    class function i(para1: JLString; para2: JLString; para3: JLThrowable): jint; static; overload;
    class function w(para1: JLString; para2: JLString): jint; static; overload;
    class function w(para1: JLString; para2: JLString; para3: JLThrowable): jint; static; overload;
    class function isLoggable(para1: JLString; para2: jint): jboolean; static; overload;
    class function w(para1: JLString; para2: JLThrowable): jint; static; overload;
    class function e(para1: JLString; para2: JLString): jint; static; overload;
    class function e(para1: JLString; para2: JLString; para3: JLThrowable): jint; static; overload;
    class function wtf(para1: JLString; para2: JLString): jint; static; overload;
    class function wtf(para1: JLString; para2: JLThrowable): jint; static; overload;
    class function wtf(para1: JLString; para2: JLString; para3: JLThrowable): jint; static; overload;
    class function getStackTraceString(para1: JLThrowable): JLString; static; overload;
    class function println(para1: jint; para2: JLString; para3: JLString): jint; static; overload;
  end;

  AULruCache = class external 'android.util' name 'LruCache' (JLObject)
  public
    constructor create(para1: jint); overload;
    function get(para1: JLObject): JLObject; overload; virtual; final;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual; final;
    function remove(para1: JLObject): JLObject; overload; virtual; final;
  strict protected
    procedure entryRemoved(para1: jboolean; para2: JLObject; para3: JLObject; para4: JLObject); overload; virtual;
    function create_(para1: JLObject): JLObject; external name 'create'; overload; virtual;
    function sizeOf(para1: JLObject; para2: JLObject): jint; overload; virtual;
  public
    procedure evictAll(); overload; virtual; final;
    function size(): jint; overload; virtual; final;
    function maxSize(): jint; overload; virtual; final;
    function hitCount(): jint; overload; virtual; final;
    function missCount(): jint; overload; virtual; final;
    function createCount(): jint; overload; virtual; final;
    function putCount(): jint; overload; virtual; final;
    function evictionCount(): jint; overload; virtual; final;
    function snapshot(): JUMap; overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
  end;

  AUMonthDisplayHelper = class external 'android.util' name 'MonthDisplayHelper' (JLObject)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    function getYear(): jint; overload; virtual;
    function getMonth(): jint; overload; virtual;
    function getWeekStartDay(): jint; overload; virtual;
    function getFirstDayOfMonth(): jint; overload; virtual;
    function getNumberOfDaysInMonth(): jint; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function getDigitsForRow(para1: jint): Arr1jint; overload; virtual;
    function getDayAt(para1: jint; para2: jint): jint; overload; virtual;
    function getRowOf(para1: jint): jint; overload; virtual;
    function getColumnOf(para1: jint): jint; overload; virtual;
    procedure previousMonth(); overload; virtual;
    procedure nextMonth(); overload; virtual;
    function isWithinCurrentMonth(para1: jint; para2: jint): jboolean; overload; virtual;
  end;

  AUPair = class external 'android.util' name 'Pair' (JLObject)
  public
    final var
      ffirst: JLObject; external name 'first';
      fsecond: JLObject; external name 'second';
  public
    constructor create(para1: JLObject; para2: JLObject); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    class function create_(para1: JLObject; para2: JLObject): AUPair; static; external name 'create'; overload;
  end;

  AUPatterns = class external 'android.util' name 'Patterns' (JLObject)
  public
    const
      TOP_LEVEL_DOMAIN_STR = '((aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(biz|b[abdefghijmnorstvwyz])|(cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(edu|e[cegrstu])|f[ijkmor]|(gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(info|int|i[delmnoqrst])|(jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(name|net|n[acefgilopruz])|(org|om)|(pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|('#$03b4''#$03bf''#$03ba''#$03b9''#$03bc''#$03ae'|'#$0438''#$0441''#$043f''#$044b''#$0442''#$0430''#$043d''#$0438''#$0435'|'#$0440''#$0444'|'#$0441''#$0440''#$0431'|'#$05d8''#$05e2''#$05e1''#$05d8'|'#$0622''#$0632''#$0645''#$0627''#$06cc''#$0634''#$06cc'|'#$0625''#$062e''#$062a''#$0628''#$0627''#$0631'|'#$0627''#$0644''#$0627''#$0631''#$062f''#$0646'|'#$0627''#$0644''#$062c''#$0632''#$0627''#$0626''#$0631'|'#$0627''#$0644''#$0633''#$0639''#$0648''#$062f''#$064a''#$0629'|'#$0627''#$0644''#$0645''#$063a''#$0631''#$0628'|'#$0627''#$0645''#$0627''#$0631''#$0627''#$062a'|'#$0628''#$06be''#$0627''#$0631''#$062a'|'#$062a''#$0648''#$0646''#$0633'|'#$0633''#$0648''#$0631''#$064a''#$0629'|'#$0641''#$0644''#$0633''#$0637''#$064a''#$0646'|'#$0642''#$0637''#$0631'|'#$0645''#$0635''#$0631'|'#$092a''#$0930''#$0940''#$0915''#$094d''#$0937''#$093e'|'#$092d''#$093e''#$0930''#$0924'|'#$09ad''#$09be''#$09b0''#$09a4'|'#$0a2d''#$0a3e''#$0a30''#$0a24'|'#$0aad''#$0abe''#$0ab0''#$0aa4'|'#$0b87''#$0ba8''#$0bcd''#$0ba4''#$0bbf''#$0baf''#$0bbe'|'#$0b87''#$0bb2''#$0b99''#$0bcd''#$0b95''#$0bc8'|'#$0b9a''#$0bbf''#$0b99''#$0bcd''#$0b95''#$0baa''#$0bcd''#$0baa''#$0bc2''#$0bb0''#$0bcd'|'#$0baa''#$0bb0''#$0bbf''#$0b9f''#$0bcd''#$0b9a''#$0bc8'|'#$0c2d''#$0c3e''#$0c30''#$0c24''#$0c4d'|'#$0dbd''#$0d82''#$0d9a''#$0dcf'|'#$0e44''#$0e17''#$0e22'|'#$30c6''#$30b9''#$30c8'|'#$4e2d''#$56fd'|'#$4e2d''#$570b'|'#$53f0''#$6e7e'|'#$53f0''#$7063'|'#$65b0''#$52a0''#$5761'|'#$6d4b''#$8bd5'|'#$6e2c''#$8a66'|'#$9999''#$6e2f'|'#$d14c''#$c2a4''#$d2b8'|'#$d55c''#$ad6d'|xn\-\-0zwm56d|xn\-\-11b5bs3a9aj6g|xn\-\-3e0b707e|xn\-\-45brj9c|xn\-\-80akhbyknj4f|xn\-\-90a3ac|xn\-\-9t4b11yi5a|xn\-\-clchc0ea0b2g2a9gcd|xn\-\-deba0ad|xn\-\-fiqs8s|xn\-\-fiqz9s|xn\-\-fpcrj9c3d|xn\-\-fzc2c9e2c|xn\-\-g6w251d|xn\-\-gecrj9c|xn\-\-h2brj9c|xn\-\-hgbk6aj7f53bba|xn\-\-hlcj6aya9esc7a|xn\-\-j6w193g|xn\-\-jxalpdlp|xn\-\-kgbechtv|xn\-\-kprw13d|xn\-\-kpry57d|xn\-\-lgbbat1ad8j|xn\-\-mgbaam7a8h|xn\-\-mgbayh7gpa|xn\-\-mgbbh1a71e|xn\-\-mgbc0a9azcg|xn\-\-mgberp4a5d4ar|xn\-\-o3cw4h|xn\-\-ogbpf8fl|xn\-\-p1ai|xn\-\-pgbs0dh|xn\-\-s9brj9c|xn\-\-wgbh1c|xn\-\-wgbl6a|xn\-\-xkc2al3hye2a|xn\-\-xkc2dl3a5ee0h|xn\-\-yfro4i67o|xn\-\-ygbi2ammx|xn\-\-zckzah|xxx)|y[et]|z[amw])';
  public
    final class var
      fTOP_LEVEL_DOMAIN: JURPattern; external name 'TOP_LEVEL_DOMAIN';
  public
    const
      TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL = '(?:(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(?:biz|b[abdefghijmnorstvwyz])|(?:cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(?:edu|e[cegrstu])|f[ijkmor]|(?:gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(?:info|int|i[delmnoqrst])|(?:jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(?:name|net|n[acefgilopruz])|(?:org|om)|(?:pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(?:tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(?:'#$03b4''#$03bf''#$03ba''#$03b9''#$03bc''#$03ae'|'#$0438''#$0441''#$043f''#$044b''#$0442''#$0430''#$043d''#$0438''#$0435'|'#$0440''#$0444'|'#$0441''#$0440''#$0431'|'#$05d8''#$05e2''#$05e1''#$05d8'|'#$0622''#$0632''#$0645''#$0627''#$06cc''#$0634''#$06cc'|'#$0625''#$062e''#$062a''#$0628''#$0627''#$0631'|'#$0627''#$0644''#$0627''#$0631''#$062f''#$0646'|'#$0627''#$0644''#$062c''#$0632''#$0627''#$0626''#$0631'|'#$0627''#$0644''#$0633''#$0639''#$0648''#$062f''#$064a''#$0629'|'#$0627''#$0644''#$0645''#$063a''#$0631''#$0628'|'#$0627''#$0645''#$0627''#$0631''#$0627''#$062a'|'#$0628''#$06be''#$0627''#$0631''#$062a'|'#$062a''#$0648''#$0646''#$0633'|'#$0633''#$0648''#$0631''#$064a''#$0629'|'#$0641''#$0644''#$0633''#$0637''#$064a''#$0646'|'#$0642''#$0637''#$0631'|'#$0645''#$0635''#$0631'|'#$092a''#$0930''#$0940''#$0915''#$094d''#$0937''#$093e'|'#$092d''#$093e''#$0930''#$0924'|'#$09ad''#$09be''#$09b0''#$09a4'|'#$0a2d''#$0a3e''#$0a30''#$0a24'|'#$0aad''#$0abe''#$0ab0''#$0aa4'|'#$0b87''#$0ba8''#$0bcd''#$0ba4''#$0bbf''#$0baf''#$0bbe'|'#$0b87''#$0bb2''#$0b99''#$0bcd''#$0b95''#$0bc8'|'#$0b9a''#$0bbf''#$0b99''#$0bcd''#$0b95''#$0baa''#$0bcd''#$0baa''#$0bc2''#$0bb0''#$0bcd'|'#$0baa''#$0bb0''#$0bbf''#$0b9f''#$0bcd''#$0b9a''#$0bc8'|'#$0c2d''#$0c3e''#$0c30''#$0c24''#$0c4d'|'#$0dbd''#$0d82''#$0d9a''#$0dcf'|'#$0e44''#$0e17''#$0e22'|'#$30c6''#$30b9''#$30c8'|'#$4e2d''#$56fd'|'#$4e2d''#$570b'|'#$53f0''#$6e7e'|'#$53f0''#$7063'|'#$65b0''#$52a0''#$5761'|'#$6d4b''#$8bd5'|'#$6e2c''#$8a66'|'#$9999''#$6e2f'|'#$d14c''#$c2a4''#$d2b8'|'#$d55c''#$ad6d'|xn\-\-0zwm56d|xn\-\-11b5bs3a9aj6g|xn\-\-3e0b707e|xn\-\-45brj9c|xn\-\-80akhbyknj4f|xn\-\-90a3ac|xn\-\-9t4b11yi5a|xn\-\-clchc0ea0b2g2a9gcd|xn\-\-deba0ad|xn\-\-fiqs8s|xn\-\-fiqz9s|xn\-\-fpcrj9c3d|xn\-\-fzc2c9e2c|xn\-\-g6w251d|xn\-\-gecrj9c|xn\-\-h2brj9c|xn\-\-hgbk6aj7f53bba|xn\-\-hlcj6aya9esc7a|xn\-\-j6w193g|xn\-\-jxalpdlp|xn\-\-kgbechtv|xn\-\-kprw13d|xn\-\-kpry57d|xn\-\-lgbbat1ad8j|xn\-\-mgbaam7a8h|xn\-\-mgbayh7gpa|xn\-\-mgbbh1a71e|xn\-\-mgbc0a9azcg|xn\-\-mgberp4a5d4ar|xn\-\-o3cw4h|xn\-\-ogbpf8fl|xn\-\-p1ai|xn\-\-pgbs0dh|xn\-\-s9brj9c|xn\-\-wgbh1c|xn\-\-wgbl6a|xn\-\-xkc2al3hye2a|xn\-\-xkc2dl3a5ee0h|xn\-\-yfro4i67o|xn\-\-ygbi2ammx|xn\-\-zckzah|xxx)|y[et]|z[amw]))';
      GOOD_IRI_CHAR = 'a-zA-Z0-9'#$00a0'-'#$d7ff''#$f900'-'#$fdcf''#$fdf0'-'#$ffef'';
  public
    final class var
      fWEB_URL: JURPattern; external name 'WEB_URL';
      fIP_ADDRESS: JURPattern; external name 'IP_ADDRESS';
      fDOMAIN_NAME: JURPattern; external name 'DOMAIN_NAME';
      fEMAIL_ADDRESS: JURPattern; external name 'EMAIL_ADDRESS';
      fPHONE: JURPattern; external name 'PHONE';
  public
    class function concatGroups(para1: JURMatcher): JLString; static; overload; final;
    class function digitsAndPlusOnly(para1: JURMatcher): JLString; static; overload; final;
  end;

  AUPrinter = interface external 'android.util' name 'Printer' 
    procedure println(para1: JLString); overload;
  end;

  AUProperty = class abstract external 'android.util' name 'Property' (JLObject)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    class function &of(para1: JLClass; para2: JLClass; para3: JLString): AUProperty; static; overload;
    function isReadOnly(): jboolean; overload; virtual;
    procedure &set(para1: JLObject; para2: JLObject); overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual; abstract;
    function getName(): JLString; overload; virtual;
    function getType(): JLClass; overload; virtual;
  end;

  AUStateSet = class external 'android.util' name 'StateSet' (JLObject)
  public
    final class var
      fWILD_CARD: Arr1jint; external name 'WILD_CARD';
      fNOTHING: Arr1jint; external name 'NOTHING';
  public
    class function isWildCard(para1: Arr1jint): jboolean; static; overload;
    class function isWildCard(var para1: array of jint): jboolean; static; overload;
    class function stateSetMatches(para1: Arr1jint; para2: Arr1jint): jboolean; static; overload;
    class function stateSetMatches(var para1: array of jint; var para2: array of jint): jboolean; static; overload;
    class function stateSetMatches(para1: Arr1jint; para2: jint): jboolean; static; overload;
    class function stateSetMatches(var para1: array of jint; para2: jint): jboolean; static; overload;
    class function trimStateSet(para1: Arr1jint; para2: jint): Arr1jint; static; overload;
    class function trimStateSet(var para1: array of jint; para2: jint): Arr1jint; static; overload;
    class function dump(para1: Arr1jint): JLString; static; overload;
    class function dump(var para1: array of jint): JLString; static; overload;
  end;

  AUTimeUtils = class external 'android.util' name 'TimeUtils' (JLObject)
  public
    class function getTimeZone(para1: jint; para2: jboolean; para3: jlong; para4: JLString): JUTimeZone; static; overload;
    class function getTimeZoneDatabaseVersion(): JLString; static; overload;
  end;

  AUTimingLogger = class external 'android.util' name 'TimingLogger' (JLObject)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    procedure reset(para1: JLString; para2: JLString); overload; virtual;
    procedure reset(); overload; virtual;
    procedure addSplit(para1: JLString); overload; virtual;
    procedure dumpToLog(); overload; virtual;
  end;

  AUTypedValue = class external 'android.util' name 'TypedValue' (JLObject)
  public
    const
      TYPE_NULL = 0;
      TYPE_REFERENCE = 1;
      TYPE_ATTRIBUTE = 2;
      TYPE_STRING = 3;
      TYPE_FLOAT = 4;
      TYPE_DIMENSION = 5;
      TYPE_FRACTION = 6;
      TYPE_FIRST_INT = 16;
      TYPE_INT_DEC = 16;
      TYPE_INT_HEX = 17;
      TYPE_INT_BOOLEAN = 18;
      TYPE_FIRST_COLOR_INT = 28;
      TYPE_INT_COLOR_ARGB8 = 28;
      TYPE_INT_COLOR_RGB8 = 29;
      TYPE_INT_COLOR_ARGB4 = 30;
      TYPE_INT_COLOR_RGB4 = 31;
      TYPE_LAST_COLOR_INT = 31;
      TYPE_LAST_INT = 31;
      COMPLEX_UNIT_SHIFT = 0;
      COMPLEX_UNIT_MASK = 15;
      COMPLEX_UNIT_PX = 0;
      COMPLEX_UNIT_DIP = 1;
      COMPLEX_UNIT_SP = 2;
      COMPLEX_UNIT_PT = 3;
      COMPLEX_UNIT_IN = 4;
      COMPLEX_UNIT_MM = 5;
      COMPLEX_UNIT_FRACTION = 0;
      COMPLEX_UNIT_FRACTION_PARENT = 1;
      COMPLEX_RADIX_SHIFT = 4;
      COMPLEX_RADIX_MASK = 3;
      COMPLEX_RADIX_23p0 = 0;
      COMPLEX_RADIX_16p7 = 1;
      COMPLEX_RADIX_8p15 = 2;
      COMPLEX_RADIX_0p23 = 3;
      COMPLEX_MANTISSA_SHIFT = 8;
      COMPLEX_MANTISSA_MASK = 16777215;
      DENSITY_DEFAULT = 0;
      DENSITY_NONE = 65535;
  public
    var
      ftype: jint; external name 'type';
      fstring: JLCharSequence; external name 'string';
      fdata: jint; external name 'data';
      fassetCookie: jint; external name 'assetCookie';
      fresourceId: jint; external name 'resourceId';
      fchangingConfigurations: jint; external name 'changingConfigurations';
      fdensity: jint; external name 'density';
  public
    constructor create(); overload;
    function getFloat(): jfloat; overload; virtual; final;
    class function complexToFloat(para1: jint): jfloat; static; overload;
    class function complexToDimension(para1: jint; para2: AUDisplayMetrics): jfloat; static; overload;
    class function complexToDimensionPixelOffset(para1: jint; para2: AUDisplayMetrics): jint; static; overload;
    class function complexToDimensionPixelSize(para1: jint; para2: AUDisplayMetrics): jint; static; overload;
    class function complexToDimensionNoisy(para1: jint; para2: AUDisplayMetrics): jfloat; static; overload;
    class function applyDimension(para1: jint; para2: jfloat; para3: AUDisplayMetrics): jfloat; static; overload;
    function getDimension(para1: AUDisplayMetrics): jfloat; overload; virtual;
    class function complexToFraction(para1: jint; para2: jfloat; para3: jfloat): jfloat; static; overload;
    function getFraction(para1: jfloat; para2: jfloat): jfloat; overload; virtual;
    function coerceToString(): JLCharSequence; overload; virtual; final;
    class function coerceToString(para1: jint; para2: jint): JLString; static; overload; final;
    procedure setTo(para1: AUTypedValue); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AVActionMode = class abstract external 'android.view' name 'ActionMode' (JLObject)
  public
    type
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerCallback = interface external 'android.view' name 'Callback' 
        function onCreateActionMode(para1: AVActionMode; para2: AVMenu): jboolean; overload;
        function onPrepareActionMode(para1: AVActionMode; para2: AVMenu): jboolean; overload;
        function onActionItemClicked(para1: AVActionMode; para2: AVMenuItem): jboolean; overload;
        procedure onDestroyActionMode(para1: AVActionMode); overload;
      end;

  public
    constructor create(); overload;
    procedure setTag(para1: JLObject); overload; virtual;
    function getTag(): JLObject; overload; virtual;
    procedure setTitle(para1: JLCharSequence); overload; virtual; abstract;
    procedure setTitle(para1: jint); overload; virtual; abstract;
    procedure setSubtitle(para1: JLCharSequence); overload; virtual; abstract;
    procedure setSubtitle(para1: jint); overload; virtual; abstract;
    procedure setCustomView(para1: AVView); overload; virtual; abstract;
    procedure invalidate(); overload; virtual; abstract;
    procedure finish(); overload; virtual; abstract;
    function getMenu(): AVMenu; overload; virtual; abstract;
    function getTitle(): JLCharSequence; overload; virtual; abstract;
    function getSubtitle(): JLCharSequence; overload; virtual; abstract;
    function getCustomView(): AVView; overload; virtual; abstract;
    function getMenuInflater(): AVMenuInflater; overload; virtual; abstract;
  end;

  AVActionProvider = class abstract external 'android.view' name 'ActionProvider' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    function onCreateActionView(): AVView; overload; virtual; abstract;
    function onPerformDefaultAction(): jboolean; overload; virtual;
    function hasSubMenu(): jboolean; overload; virtual;
    procedure onPrepareSubMenu(para1: AVSubMenu); overload; virtual;
  end;

  AVCollapsibleActionView = interface external 'android.view' name 'CollapsibleActionView' 
    procedure onActionViewExpanded(); overload;
    procedure onActionViewCollapsed(); overload;
  end;

  AVDisplay = class external 'android.view' name 'Display' (JLObject)
  public
    const
      DEFAULT_DISPLAY = 0;
  public
    function getDisplayId(): jint; overload; virtual;
    procedure getSize(para1: AGPoint); overload; virtual;
    procedure getRectSize(para1: AGRect); overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getRotation(): jint; overload; virtual;
    function getOrientation(): jint; overload; virtual;
    function getPixelFormat(): jint; overload; virtual;
    function getRefreshRate(): jfloat; overload; virtual;
    procedure getMetrics(para1: AUDisplayMetrics); overload; virtual;
  end;

  AVFocusFinder = class external 'android.view' name 'FocusFinder' (JLObject)
  public
    class function getInstance(): AVFocusFinder; static; overload;
    function findNextFocus(para1: AVViewGroup; para2: AVView; para3: jint): AVView; overload; virtual; final;
    function findNextFocusFromRect(para1: AVViewGroup; para2: AGRect; para3: jint): AVView; overload; virtual;
    function findNearestTouchable(para1: AVViewGroup; para2: jint; para3: jint; para4: jint; para5: Arr1jint): AVView; overload; virtual;
    function findNearestTouchable(para1: AVViewGroup; para2: jint; para3: jint; para4: jint; var para5: array of jint): AVView; overload; virtual;
  end;

  AVGestureDetector = class external 'android.view' name 'GestureDetector' (JLObject)
  public
    type
      InnerOnDoubleTapListener = interface;
      Arr1InnerOnDoubleTapListener = array of InnerOnDoubleTapListener;
      Arr2InnerOnDoubleTapListener = array of Arr1InnerOnDoubleTapListener;
      Arr3InnerOnDoubleTapListener = array of Arr2InnerOnDoubleTapListener;
      InnerOnGestureListener = interface;
      Arr1InnerOnGestureListener = array of InnerOnGestureListener;
      Arr2InnerOnGestureListener = array of Arr1InnerOnGestureListener;
      Arr3InnerOnGestureListener = array of Arr2InnerOnGestureListener;
      InnerSimpleOnGestureListener = class;
      Arr1InnerSimpleOnGestureListener = array of InnerSimpleOnGestureListener;
      Arr2InnerSimpleOnGestureListener = array of Arr1InnerSimpleOnGestureListener;
      Arr3InnerSimpleOnGestureListener = array of Arr2InnerSimpleOnGestureListener;
      InnerOnDoubleTapListener = interface external 'android.view' name 'OnDoubleTapListener' 
        function onSingleTapConfirmed(para1: AVMotionEvent): jboolean; overload;
        function onDoubleTap(para1: AVMotionEvent): jboolean; overload;
        function onDoubleTapEvent(para1: AVMotionEvent): jboolean; overload;
      end;

      InnerOnGestureListener = interface external 'android.view' name 'OnGestureListener' 
        function onDown(para1: AVMotionEvent): jboolean; overload;
        procedure onShowPress(para1: AVMotionEvent); overload;
        function onSingleTapUp(para1: AVMotionEvent): jboolean; overload;
        function onScroll(para1: AVMotionEvent; para2: AVMotionEvent; para3: jfloat; para4: jfloat): jboolean; overload;
        procedure onLongPress(para1: AVMotionEvent); overload;
        function onFling(para1: AVMotionEvent; para2: AVMotionEvent; para3: jfloat; para4: jfloat): jboolean; overload;
      end;

      InnerSimpleOnGestureListener = class external 'android.view' name 'SimpleOnGestureListener' (JLObject, AVGestureDetector.InnerOnGestureListener, AVGestureDetector.InnerOnDoubleTapListener)
      public
        constructor create(); overload;
        function onSingleTapUp(para1: AVMotionEvent): jboolean; overload; virtual;
        procedure onLongPress(para1: AVMotionEvent); overload; virtual;
        function onScroll(para1: AVMotionEvent; para2: AVMotionEvent; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
        function onFling(para1: AVMotionEvent; para2: AVMotionEvent; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
        procedure onShowPress(para1: AVMotionEvent); overload; virtual;
        function onDown(para1: AVMotionEvent): jboolean; overload; virtual;
        function onDoubleTap(para1: AVMotionEvent): jboolean; overload; virtual;
        function onDoubleTapEvent(para1: AVMotionEvent): jboolean; overload; virtual;
        function onSingleTapConfirmed(para1: AVMotionEvent): jboolean; overload; virtual;
      end;

  public
    constructor create(para1: AVGestureDetector.InnerOnGestureListener; para2: AOHandler); overload;
    constructor create(para1: AVGestureDetector.InnerOnGestureListener); overload;
    constructor create(para1: ACContext; para2: AVGestureDetector.InnerOnGestureListener); overload;
    constructor create(para1: ACContext; para2: AVGestureDetector.InnerOnGestureListener; para3: AOHandler); overload;
    constructor create(para1: ACContext; para2: AVGestureDetector.InnerOnGestureListener; para3: AOHandler; para4: jboolean); overload;
    procedure setOnDoubleTapListener(para1: AVGestureDetector.InnerOnDoubleTapListener); overload; virtual;
    procedure setIsLongpressEnabled(para1: jboolean); overload; virtual;
    function isLongpressEnabled(): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  end;

  AVGravity = class external 'android.view' name 'Gravity' (JLObject)
  public
    const
      NO_GRAVITY = 0;
      AXIS_SPECIFIED = 1;
      AXIS_PULL_BEFORE = 2;
      AXIS_PULL_AFTER = 4;
      AXIS_CLIP = 8;
      AXIS_X_SHIFT = 0;
      AXIS_Y_SHIFT = 4;
      TOP = 48;
      BOTTOM = 80;
      LEFT = 3;
      RIGHT = 5;
      CENTER_VERTICAL = 16;
      FILL_VERTICAL = 112;
      CENTER_HORIZONTAL = 1;
      FILL_HORIZONTAL = 7;
      CENTER = 17;
      FILL = 119;
      CLIP_VERTICAL = 128;
      CLIP_HORIZONTAL = 8;
      RELATIVE_LAYOUT_DIRECTION = 8388608;
      HORIZONTAL_GRAVITY_MASK = 7;
      VERTICAL_GRAVITY_MASK = 112;
      DISPLAY_CLIP_VERTICAL = 268435456;
      DISPLAY_CLIP_HORIZONTAL = 16777216;
      START = 8388611;
      &END = 8388613;
      RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615;
  public
    constructor create(); overload;
    class procedure apply(para1: jint; para2: jint; para3: jint; para4: AGRect; para5: AGRect); static; overload;
    class procedure apply(para1: jint; para2: jint; para3: jint; para4: AGRect; para5: jint; para6: jint; para7: AGRect); static; overload;
    class procedure applyDisplay(para1: jint; para2: AGRect; para3: AGRect); static; overload;
    class function isVertical(para1: jint): jboolean; static; overload;
    class function isHorizontal(para1: jint): jboolean; static; overload;
    class function getAbsoluteGravity(para1: jint; para2: jint): jint; static; overload;
  end;

  AVHapticFeedbackConstants = class external 'android.view' name 'HapticFeedbackConstants' (JLObject)
  public
    const
      LONG_PRESS = 0;
      VIRTUAL_KEY = 1;
      KEYBOARD_TAP = 3;
      FLAG_IGNORE_VIEW_SETTING = 1;
      FLAG_IGNORE_GLOBAL_SETTING = 2;
  end;

  AVInputQueue = class sealed external 'android.view' name 'InputQueue' (JLObject)
  public
    type
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerCallback = interface external 'android.view' name 'Callback' 
        procedure onInputQueueCreated(para1: AVInputQueue); overload;
        procedure onInputQueueDestroyed(para1: AVInputQueue); overload;
      end;

  end;

  AVLayoutInflater = class abstract external 'android.view' name 'LayoutInflater' (JLObject)
  public
    type
      InnerFactory = interface;
      Arr1InnerFactory = array of InnerFactory;
      Arr2InnerFactory = array of Arr1InnerFactory;
      Arr3InnerFactory = array of Arr2InnerFactory;
      InnerFilter = interface;
      Arr1InnerFilter = array of InnerFilter;
      Arr2InnerFilter = array of Arr1InnerFilter;
      Arr3InnerFilter = array of Arr2InnerFilter;
      InnerFactory2 = interface;
      Arr1InnerFactory2 = array of InnerFactory2;
      Arr2InnerFactory2 = array of Arr1InnerFactory2;
      Arr3InnerFactory2 = array of Arr2InnerFactory2;
      InnerFactory = interface external 'android.view' name 'Factory' 
        function onCreateView(para1: JLString; para2: ACContext; para3: AUAttributeSet): AVView; overload;
      end;

      InnerFilter = interface external 'android.view' name 'Filter' 
        function onLoadClass(para1: JLClass): jboolean; overload;
      end;

      InnerFactory2 = interface external 'android.view' name 'Factory2' (AVLayoutInflater.InnerFactory)
        function onCreateView(para1: AVView; para2: JLString; para3: ACContext; para4: AUAttributeSet): AVView; overload;
      end;

  strict protected
    constructor create(para1: ACContext); overload;
    constructor create(para1: AVLayoutInflater; para2: ACContext); overload;
  public
    class function from(para1: ACContext): AVLayoutInflater; static; overload;
    function cloneInContext(para1: ACContext): AVLayoutInflater; overload; virtual; abstract;
    function getContext(): ACContext; overload; virtual;
    function getFactory(): AVLayoutInflater.InnerFactory; overload; virtual; final;
    function getFactory2(): AVLayoutInflater.InnerFactory2; overload; virtual; final;
    procedure setFactory(para1: AVLayoutInflater.InnerFactory); overload; virtual;
    procedure setFactory2(para1: AVLayoutInflater.InnerFactory2); overload; virtual;
    function getFilter(): AVLayoutInflater.InnerFilter; overload; virtual;
    procedure setFilter(para1: AVLayoutInflater.InnerFilter); overload; virtual;
    function inflate(para1: jint; para2: AVViewGroup): AVView; overload; virtual;
    function inflate(para1: OXVXmlPullParser; para2: AVViewGroup): AVView; overload; virtual;
    function inflate(para1: jint; para2: AVViewGroup; para3: jboolean): AVView; overload; virtual;
    function inflate(para1: OXVXmlPullParser; para2: AVViewGroup; para3: jboolean): AVView; overload; virtual;
    function createView(para1: JLString; para2: JLString; para3: AUAttributeSet): AVView; overload; virtual; final;  // throws java.lang.ClassNotFoundException, android.view.InflateException
  strict protected
    function onCreateView(para1: JLString; para2: AUAttributeSet): AVView; overload; virtual;  // throws java.lang.ClassNotFoundException
    function onCreateView(para1: AVView; para2: JLString; para3: AUAttributeSet): AVView; overload; virtual;  // throws java.lang.ClassNotFoundException
  end;

  AVMenu = interface external 'android.view' name 'Menu' 
    const
      NONE = 0;
      FIRST = 1;
      CATEGORY_CONTAINER = 65536;
      CATEGORY_SYSTEM = 131072;
      CATEGORY_SECONDARY = 196608;
      CATEGORY_ALTERNATIVE = 262144;
      FLAG_APPEND_TO_GROUP = 1;
      FLAG_PERFORM_NO_CLOSE = 1;
      FLAG_ALWAYS_PERFORM_CLOSE = 2;
    function add(para1: JLCharSequence): AVMenuItem; overload;
    function add(para1: jint): AVMenuItem; overload;
    function add(para1: jint; para2: jint; para3: jint; para4: JLCharSequence): AVMenuItem; overload;
    function add(para1: jint; para2: jint; para3: jint; para4: jint): AVMenuItem; overload;
    function addSubMenu(para1: JLCharSequence): AVSubMenu; overload;
    function addSubMenu(para1: jint): AVSubMenu; overload;
    function addSubMenu(para1: jint; para2: jint; para3: jint; para4: JLCharSequence): AVSubMenu; overload;
    function addSubMenu(para1: jint; para2: jint; para3: jint; para4: jint): AVSubMenu; overload;
    function addIntentOptions(para1: jint; para2: jint; para3: jint; para4: ACComponentName; para5: Arr1ACIntent; para6: ACIntent; para7: jint; para8: Arr1AVMenuItem): jint; overload;
    function addIntentOptions(para1: jint; para2: jint; para3: jint; para4: ACComponentName; var para5: array of ACIntent; para6: ACIntent; para7: jint; var para8: array of AVMenuItem): jint; overload;
    procedure removeItem(para1: jint); overload;
    procedure removeGroup(para1: jint); overload;
    procedure clear(); overload;
    procedure setGroupCheckable(para1: jint; para2: jboolean; para3: jboolean); overload;
    procedure setGroupVisible(para1: jint; para2: jboolean); overload;
    procedure setGroupEnabled(para1: jint; para2: jboolean); overload;
    function hasVisibleItems(): jboolean; overload;
    function findItem(para1: jint): AVMenuItem; overload;
    function size(): jint; overload;
    function getItem(para1: jint): AVMenuItem; overload;
    procedure close(); overload;
    function performShortcut(para1: jint; para2: AVKeyEvent; para3: jint): jboolean; overload;
    function isShortcutKey(para1: jint; para2: AVKeyEvent): jboolean; overload;
    function performIdentifierAction(para1: jint; para2: jint): jboolean; overload;
    procedure setQwertyMode(para1: jboolean); overload;
  end;

  AVMenuInflater = class external 'android.view' name 'MenuInflater' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    procedure inflate(para1: jint; para2: AVMenu); overload; virtual;
  end;

  AVOrientationEventListener = class abstract external 'android.view' name 'OrientationEventListener' (JLObject)
  public
    const
      ORIENTATION_UNKNOWN = -1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    procedure enable(); overload; virtual;
    procedure disable(); overload; virtual;
    function canDetectOrientation(): jboolean; overload; virtual;
    procedure onOrientationChanged(para1: jint); overload; virtual; abstract;
  end;

  AVScaleGestureDetector = class external 'android.view' name 'ScaleGestureDetector' (JLObject)
  public
    type
      InnerOnScaleGestureListener = interface;
      Arr1InnerOnScaleGestureListener = array of InnerOnScaleGestureListener;
      Arr2InnerOnScaleGestureListener = array of Arr1InnerOnScaleGestureListener;
      Arr3InnerOnScaleGestureListener = array of Arr2InnerOnScaleGestureListener;
      InnerSimpleOnScaleGestureListener = class;
      Arr1InnerSimpleOnScaleGestureListener = array of InnerSimpleOnScaleGestureListener;
      Arr2InnerSimpleOnScaleGestureListener = array of Arr1InnerSimpleOnScaleGestureListener;
      Arr3InnerSimpleOnScaleGestureListener = array of Arr2InnerSimpleOnScaleGestureListener;
      InnerOnScaleGestureListener = interface external 'android.view' name 'OnScaleGestureListener' 
        function onScale(para1: AVScaleGestureDetector): jboolean; overload;
        function onScaleBegin(para1: AVScaleGestureDetector): jboolean; overload;
        procedure onScaleEnd(para1: AVScaleGestureDetector); overload;
      end;

      InnerSimpleOnScaleGestureListener = class external 'android.view' name 'SimpleOnScaleGestureListener' (JLObject, AVScaleGestureDetector.InnerOnScaleGestureListener)
      public
        constructor create(); overload;
        function onScale(para1: AVScaleGestureDetector): jboolean; overload; virtual;
        function onScaleBegin(para1: AVScaleGestureDetector): jboolean; overload; virtual;
        procedure onScaleEnd(para1: AVScaleGestureDetector); overload; virtual;
      end;

  public
    constructor create(para1: ACContext; para2: AVScaleGestureDetector.InnerOnScaleGestureListener); overload;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function isInProgress(): jboolean; overload; virtual;
    function getFocusX(): jfloat; overload; virtual;
    function getFocusY(): jfloat; overload; virtual;
    function getCurrentSpan(): jfloat; overload; virtual;
    function getCurrentSpanX(): jfloat; overload; virtual;
    function getCurrentSpanY(): jfloat; overload; virtual;
    function getPreviousSpan(): jfloat; overload; virtual;
    function getPreviousSpanX(): jfloat; overload; virtual;
    function getPreviousSpanY(): jfloat; overload; virtual;
    function getScaleFactor(): jfloat; overload; virtual;
    function getTimeDelta(): jlong; overload; virtual;
    function getEventTime(): jlong; overload; virtual;
  end;

  AVSoundEffectConstants = class external 'android.view' name 'SoundEffectConstants' (JLObject)
  public
    const
      CLICK = 0;
      NAVIGATION_LEFT = 1;
      NAVIGATION_UP = 2;
      NAVIGATION_RIGHT = 3;
      NAVIGATION_DOWN = 4;
  public
    class function getContantForFocusDirection(para1: jint): jint; static; overload;
  end;

  AVTouchDelegate = class external 'android.view' name 'TouchDelegate' (JLObject)
  public
    const
      ABOVE = 1;
      BELOW = 2;
      TO_LEFT = 4;
      TO_RIGHT = 8;
  public
    constructor create(para1: AGRect; para2: AVView); overload;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  end;

  AVVelocityTracker = class sealed external 'android.view' name 'VelocityTracker' (JLObject)
  public
    class function obtain(): AVVelocityTracker; static; overload;
    procedure recycle(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    procedure clear(); overload; virtual;
    procedure addMovement(para1: AVMotionEvent); overload; virtual;
    procedure computeCurrentVelocity(para1: jint); overload; virtual;
    procedure computeCurrentVelocity(para1: jint; para2: jfloat); overload; virtual;
    function getXVelocity(): jfloat; overload; virtual;
    function getYVelocity(): jfloat; overload; virtual;
    function getXVelocity(para1: jint): jfloat; overload; virtual;
    function getYVelocity(para1: jint): jfloat; overload; virtual;
  end;

  AVViewConfiguration = class external 'android.view' name 'ViewConfiguration' (JLObject)
  public
    constructor create(); overload;
    class function get(para1: ACContext): AVViewConfiguration; static; overload;
    class function getScrollBarSize(): jint; static; overload;
    function getScaledScrollBarSize(): jint; overload; virtual;
    class function getScrollBarFadeDuration(): jint; static; overload;
    class function getScrollDefaultDelay(): jint; static; overload;
    class function getFadingEdgeLength(): jint; static; overload;
    function getScaledFadingEdgeLength(): jint; overload; virtual;
    class function getPressedStateDuration(): jint; static; overload;
    class function getLongPressTimeout(): jint; static; overload;
    class function getKeyRepeatTimeout(): jint; static; overload;
    class function getKeyRepeatDelay(): jint; static; overload;
    class function getTapTimeout(): jint; static; overload;
    class function getJumpTapTimeout(): jint; static; overload;
    class function getDoubleTapTimeout(): jint; static; overload;
    class function getEdgeSlop(): jint; static; overload;
    function getScaledEdgeSlop(): jint; overload; virtual;
    class function getTouchSlop(): jint; static; overload;
    function getScaledTouchSlop(): jint; overload; virtual;
    function getScaledPagingTouchSlop(): jint; overload; virtual;
    function getScaledDoubleTapSlop(): jint; overload; virtual;
    class function getWindowTouchSlop(): jint; static; overload;
    function getScaledWindowTouchSlop(): jint; overload; virtual;
    class function getMinimumFlingVelocity(): jint; static; overload;
    function getScaledMinimumFlingVelocity(): jint; overload; virtual;
    class function getMaximumFlingVelocity(): jint; static; overload;
    function getScaledMaximumFlingVelocity(): jint; overload; virtual;
    class function getMaximumDrawingCacheSize(): jint; static; overload;
    function getScaledMaximumDrawingCacheSize(): jint; overload; virtual;
    function getScaledOverscrollDistance(): jint; overload; virtual;
    function getScaledOverflingDistance(): jint; overload; virtual;
    class function getZoomControlsTimeout(): jlong; static; overload;
    class function getGlobalActionKeyTimeout(): jlong; static; overload;
    class function getScrollFriction(): jfloat; static; overload;
    function hasPermanentMenuKey(): jboolean; overload; virtual;
  end;

  AVViewManager = interface external 'android.view' name 'ViewManager' 
    procedure addView(para1: AVView; para2: AVViewGroup_LayoutParams); overload;
    procedure updateViewLayout(para1: AVView; para2: AVViewGroup_LayoutParams); overload;
    procedure removeView(para1: AVView); overload;
  end;

  AVViewTreeObserver = class sealed external 'android.view' name 'ViewTreeObserver' (JLObject)
  public
    type
      InnerOnScrollChangedListener = interface;
      Arr1InnerOnScrollChangedListener = array of InnerOnScrollChangedListener;
      Arr2InnerOnScrollChangedListener = array of Arr1InnerOnScrollChangedListener;
      Arr3InnerOnScrollChangedListener = array of Arr2InnerOnScrollChangedListener;
      InnerOnTouchModeChangeListener = interface;
      Arr1InnerOnTouchModeChangeListener = array of InnerOnTouchModeChangeListener;
      Arr2InnerOnTouchModeChangeListener = array of Arr1InnerOnTouchModeChangeListener;
      Arr3InnerOnTouchModeChangeListener = array of Arr2InnerOnTouchModeChangeListener;
      InnerOnPreDrawListener = interface;
      Arr1InnerOnPreDrawListener = array of InnerOnPreDrawListener;
      Arr2InnerOnPreDrawListener = array of Arr1InnerOnPreDrawListener;
      Arr3InnerOnPreDrawListener = array of Arr2InnerOnPreDrawListener;
      InnerOnGlobalLayoutListener = interface;
      Arr1InnerOnGlobalLayoutListener = array of InnerOnGlobalLayoutListener;
      Arr2InnerOnGlobalLayoutListener = array of Arr1InnerOnGlobalLayoutListener;
      Arr3InnerOnGlobalLayoutListener = array of Arr2InnerOnGlobalLayoutListener;
      InnerOnGlobalFocusChangeListener = interface;
      Arr1InnerOnGlobalFocusChangeListener = array of InnerOnGlobalFocusChangeListener;
      Arr2InnerOnGlobalFocusChangeListener = array of Arr1InnerOnGlobalFocusChangeListener;
      Arr3InnerOnGlobalFocusChangeListener = array of Arr2InnerOnGlobalFocusChangeListener;
      InnerOnScrollChangedListener = interface external 'android.view' name 'OnScrollChangedListener' 
        procedure onScrollChanged(); overload;
      end;

      InnerOnTouchModeChangeListener = interface external 'android.view' name 'OnTouchModeChangeListener' 
        procedure onTouchModeChanged(para1: jboolean); overload;
      end;

      InnerOnPreDrawListener = interface external 'android.view' name 'OnPreDrawListener' 
        function onPreDraw(): jboolean; overload;
      end;

      InnerOnGlobalLayoutListener = interface external 'android.view' name 'OnGlobalLayoutListener' 
        procedure onGlobalLayout(); overload;
      end;

      InnerOnGlobalFocusChangeListener = interface external 'android.view' name 'OnGlobalFocusChangeListener' 
        procedure onGlobalFocusChanged(para1: AVView; para2: AVView); overload;
      end;

  public
    procedure addOnGlobalFocusChangeListener(para1: AVViewTreeObserver.InnerOnGlobalFocusChangeListener); overload; virtual;
    procedure removeOnGlobalFocusChangeListener(para1: AVViewTreeObserver.InnerOnGlobalFocusChangeListener); overload; virtual;
    procedure addOnGlobalLayoutListener(para1: AVViewTreeObserver.InnerOnGlobalLayoutListener); overload; virtual;
    procedure removeGlobalOnLayoutListener(para1: AVViewTreeObserver.InnerOnGlobalLayoutListener); overload; virtual;
    procedure addOnPreDrawListener(para1: AVViewTreeObserver.InnerOnPreDrawListener); overload; virtual;
    procedure removeOnPreDrawListener(para1: AVViewTreeObserver.InnerOnPreDrawListener); overload; virtual;
    procedure addOnScrollChangedListener(para1: AVViewTreeObserver.InnerOnScrollChangedListener); overload; virtual;
    procedure removeOnScrollChangedListener(para1: AVViewTreeObserver.InnerOnScrollChangedListener); overload; virtual;
    procedure addOnTouchModeChangeListener(para1: AVViewTreeObserver.InnerOnTouchModeChangeListener); overload; virtual;
    procedure removeOnTouchModeChangeListener(para1: AVViewTreeObserver.InnerOnTouchModeChangeListener); overload; virtual;
    function isAlive(): jboolean; overload; virtual;
    procedure dispatchOnGlobalLayout(); overload; virtual; final;
    function dispatchOnPreDraw(): jboolean; overload; virtual; final;
  end;

  AVAAccessibilityEventSource = interface external 'android.view.accessibility' name 'AccessibilityEventSource' 
    procedure sendAccessibilityEvent(para1: jint); overload;
    procedure sendAccessibilityEventUnchecked(para1: AVAAccessibilityEvent); overload;
  end;

  AVAAccessibilityManager = class sealed external 'android.view.accessibility' name 'AccessibilityManager' (JLObject)
  public
    type
      InnerAccessibilityStateChangeListener = interface;
      Arr1InnerAccessibilityStateChangeListener = array of InnerAccessibilityStateChangeListener;
      Arr2InnerAccessibilityStateChangeListener = array of Arr1InnerAccessibilityStateChangeListener;
      Arr3InnerAccessibilityStateChangeListener = array of Arr2InnerAccessibilityStateChangeListener;
      InnerAccessibilityStateChangeListener = interface external 'android.view.accessibility' name 'AccessibilityStateChangeListener' 
        procedure onAccessibilityStateChanged(para1: jboolean); overload;
      end;

  public
    function isEnabled(): jboolean; overload; virtual;
    function isTouchExplorationEnabled(): jboolean; overload; virtual;
    procedure sendAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure interrupt(); overload; virtual;
    function getAccessibilityServiceList(): JUList; overload; virtual;
    function getInstalledAccessibilityServiceList(): JUList; overload; virtual;
    function getEnabledAccessibilityServiceList(para1: jint): JUList; overload; virtual;
    function addAccessibilityStateChangeListener(para1: AVAAccessibilityManager.InnerAccessibilityStateChangeListener): jboolean; overload; virtual;
    function removeAccessibilityStateChangeListener(para1: AVAAccessibilityManager.InnerAccessibilityStateChangeListener): jboolean; overload; virtual;
  end;

  AVAAccessibilityRecord = class external 'android.view.accessibility' name 'AccessibilityRecord' (JLObject)
  public
    procedure setSource(para1: AVView); overload; virtual;
    function getSource(): AVAAccessibilityNodeInfo; overload; virtual;
    function getWindowId(): jint; overload; virtual;
    function isChecked(): jboolean; overload; virtual;
    procedure setChecked(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isPassword(): jboolean; overload; virtual;
    procedure setPassword(para1: jboolean); overload; virtual;
    function isFullScreen(): jboolean; overload; virtual;
    procedure setFullScreen(para1: jboolean); overload; virtual;
    function isScrollable(): jboolean; overload; virtual;
    procedure setScrollable(para1: jboolean); overload; virtual;
    function getItemCount(): jint; overload; virtual;
    procedure setItemCount(para1: jint); overload; virtual;
    function getCurrentItemIndex(): jint; overload; virtual;
    procedure setCurrentItemIndex(para1: jint); overload; virtual;
    function getFromIndex(): jint; overload; virtual;
    procedure setFromIndex(para1: jint); overload; virtual;
    function getToIndex(): jint; overload; virtual;
    procedure setToIndex(para1: jint); overload; virtual;
    function getScrollX(): jint; overload; virtual;
    procedure setScrollX(para1: jint); overload; virtual;
    function getScrollY(): jint; overload; virtual;
    procedure setScrollY(para1: jint); overload; virtual;
    function getAddedCount(): jint; overload; virtual;
    procedure setAddedCount(para1: jint); overload; virtual;
    function getRemovedCount(): jint; overload; virtual;
    procedure setRemovedCount(para1: jint); overload; virtual;
    function getClassName(): JLCharSequence; overload; virtual;
    procedure setClassName(para1: JLCharSequence); overload; virtual;
    function getText(): JUList; overload; virtual;
    function getBeforeText(): JLCharSequence; overload; virtual;
    procedure setBeforeText(para1: JLCharSequence); overload; virtual;
    function getContentDescription(): JLCharSequence; overload; virtual;
    procedure setContentDescription(para1: JLCharSequence); overload; virtual;
    function getParcelableData(): AOParcelable; overload; virtual;
    procedure setParcelableData(para1: AOParcelable); overload; virtual;
    class function obtain(para1: AVAAccessibilityRecord): AVAAccessibilityRecord; static; overload;
    class function obtain(): AVAAccessibilityRecord; static; overload;
    procedure recycle(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AVAAnimationUtils = class external 'android.view.animation' name 'AnimationUtils' (JLObject)
  public
    constructor create(); overload;
    class function currentAnimationTimeMillis(): jlong; static; overload;
    class function loadAnimation(para1: ACContext; para2: jint): AVAAnimation; static; overload;  // throws android.content.res.Resources$NotFoundException
    class function loadLayoutAnimation(para1: ACContext; para2: jint): AVALayoutAnimationController; static; overload;  // throws android.content.res.Resources$NotFoundException
    class function makeInAnimation(para1: ACContext; para2: jboolean): AVAAnimation; static; overload;
    class function makeOutAnimation(para1: ACContext; para2: jboolean): AVAAnimation; static; overload;
    class function makeInChildBottomAnimation(para1: ACContext): AVAAnimation; static; overload;
    class function loadInterpolator(para1: ACContext; para2: jint): AVAInterpolator; static; overload;  // throws android.content.res.Resources$NotFoundException
  end;

  AVALayoutAnimationController = class external 'android.view.animation' name 'LayoutAnimationController' (JLObject)
  public
    type
      InnerAnimationParameters = class;
      Arr1InnerAnimationParameters = array of InnerAnimationParameters;
      Arr2InnerAnimationParameters = array of Arr1InnerAnimationParameters;
      Arr3InnerAnimationParameters = array of Arr2InnerAnimationParameters;
      InnerAnimationParameters = class external 'android.view.animation' name 'AnimationParameters' (JLObject)
      public
        var
          fcount: jint; external name 'count';
          findex: jint; external name 'index';
      public
        constructor create(); overload;
      end;

  public
    const
      ORDER_NORMAL = 0;
      ORDER_REVERSE = 1;
      ORDER_RANDOM = 2;
  strict protected
    var
      fmAnimation: AVAAnimation; external name 'mAnimation';
      fmRandomizer: JURandom; external name 'mRandomizer';
      fmInterpolator: AVAInterpolator; external name 'mInterpolator';
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: AVAAnimation); overload;
    constructor create(para1: AVAAnimation; para2: jfloat); overload;
    function getOrder(): jint; overload; virtual;
    procedure setOrder(para1: jint); overload; virtual;
    procedure setAnimation(para1: ACContext; para2: jint); overload; virtual;
    procedure setAnimation(para1: AVAAnimation); overload; virtual;
    function getAnimation(): AVAAnimation; overload; virtual;
    procedure setInterpolator(para1: ACContext; para2: jint); overload; virtual;
    procedure setInterpolator(para1: AVAInterpolator); overload; virtual;
    function getInterpolator(): AVAInterpolator; overload; virtual;
    function getDelay(): jfloat; overload; virtual;
    procedure setDelay(para1: jfloat); overload; virtual;
    function willOverlap(): jboolean; overload; virtual;
    procedure start(); overload; virtual;
    function getAnimationForView(para1: AVView): AVAAnimation; overload; virtual; final;
    function isDone(): jboolean; overload; virtual;
  strict protected
    function getDelayForView(para1: AVView): jlong; overload; virtual;
    function getTransformedIndex(para1: AVALayoutAnimationController.InnerAnimationParameters): jint; overload; virtual;
  end;

  AVATransformation = class external 'android.view.animation' name 'Transformation' (JLObject)
  public
    class var
      fTYPE_IDENTITY: jint; external name 'TYPE_IDENTITY';
      fTYPE_ALPHA: jint; external name 'TYPE_ALPHA';
      fTYPE_MATRIX: jint; external name 'TYPE_MATRIX';
      fTYPE_BOTH: jint; external name 'TYPE_BOTH';
  strict protected
    var
      fmMatrix: AGMatrix; external name 'mMatrix';
      fmAlpha: jfloat; external name 'mAlpha';
      fmTransformationType: jint; external name 'mTransformationType';
  public
    constructor create(); overload;
    procedure clear(); overload; virtual;
    function getTransformationType(): jint; overload; virtual;
    procedure setTransformationType(para1: jint); overload; virtual;
    procedure &set(para1: AVATransformation); overload; virtual;
    procedure compose(para1: AVATransformation); overload; virtual;
    function getMatrix(): AGMatrix; overload; virtual;
    procedure setAlpha(para1: jfloat); overload; virtual;
    function getAlpha(): jfloat; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toShortString(): JLString; overload; virtual;
  end;

  AVIInputConnection = interface external 'android.view.inputmethod' name 'InputConnection' 
    const
      GET_TEXT_WITH_STYLES = 1;
      GET_EXTRACTED_TEXT_MONITOR = 1;
    function getTextBeforeCursor(para1: jint; para2: jint): JLCharSequence; overload;
    function getTextAfterCursor(para1: jint; para2: jint): JLCharSequence; overload;
    function getSelectedText(para1: jint): JLCharSequence; overload;
    function getCursorCapsMode(para1: jint): jint; overload;
    function getExtractedText(para1: AVIExtractedTextRequest; para2: jint): AVIExtractedText; overload;
    function deleteSurroundingText(para1: jint; para2: jint): jboolean; overload;
    function setComposingText(para1: JLCharSequence; para2: jint): jboolean; overload;
    function setComposingRegion(para1: jint; para2: jint): jboolean; overload;
    function finishComposingText(): jboolean; overload;
    function commitText(para1: JLCharSequence; para2: jint): jboolean; overload;
    function commitCompletion(para1: AVICompletionInfo): jboolean; overload;
    function commitCorrection(para1: AVICorrectionInfo): jboolean; overload;
    function setSelection(para1: jint; para2: jint): jboolean; overload;
    function performEditorAction(para1: jint): jboolean; overload;
    function performContextMenuAction(para1: jint): jboolean; overload;
    function beginBatchEdit(): jboolean; overload;
    function endBatchEdit(): jboolean; overload;
    function sendKeyEvent(para1: AVKeyEvent): jboolean; overload;
    function clearMetaKeyStates(para1: jint): jboolean; overload;
    function reportFullscreenMode(para1: jboolean): jboolean; overload;
    function performPrivateCommand(para1: JLString; para2: AOBundle): jboolean; overload;
  end;

  AVIInputMethod = interface external 'android.view.inputmethod' name 'InputMethod' 
    type
      InnerSessionCallback = interface;
      Arr1InnerSessionCallback = array of InnerSessionCallback;
      Arr2InnerSessionCallback = array of Arr1InnerSessionCallback;
      Arr3InnerSessionCallback = array of Arr2InnerSessionCallback;
      InnerSessionCallback = interface external 'android.view.inputmethod' name 'SessionCallback' 
        procedure sessionCreated(para1: AVIInputMethodSession); overload;
      end;

    const
      SERVICE_INTERFACE = 'android.view.InputMethod';
      SERVICE_META_DATA = 'android.view.im';
      SHOW_EXPLICIT = 1;
      SHOW_FORCED = 2;
    procedure attachToken(para1: AOIBinder); overload;
    procedure bindInput(para1: AVIInputBinding); overload;
    procedure unbindInput(); overload;
    procedure startInput(para1: AVIInputConnection; para2: AVIEditorInfo); overload;
    procedure restartInput(para1: AVIInputConnection; para2: AVIEditorInfo); overload;
    procedure createSession(para1: AVIInputMethod.InnerSessionCallback); overload;
    procedure setSessionEnabled(para1: AVIInputMethodSession; para2: jboolean); overload;
    procedure revokeSession(para1: AVIInputMethodSession); overload;
    procedure showSoftInput(para1: jint; para2: AOResultReceiver); overload;
    procedure hideSoftInput(para1: jint; para2: AOResultReceiver); overload;
    procedure changeInputMethodSubtype(para1: AVIInputMethodSubtype); overload;
  end;

  AVIInputMethodManager = class sealed external 'android.view.inputmethod' name 'InputMethodManager' (JLObject)
  public
    const
      SHOW_IMPLICIT = 1;
      SHOW_FORCED = 2;
      RESULT_UNCHANGED_SHOWN = 0;
      RESULT_UNCHANGED_HIDDEN = 1;
      RESULT_SHOWN = 2;
      RESULT_HIDDEN = 3;
      HIDE_IMPLICIT_ONLY = 1;
      HIDE_NOT_ALWAYS = 2;
  public
    function getInputMethodList(): JUList; overload; virtual;
    function getEnabledInputMethodList(): JUList; overload; virtual;
    function getEnabledInputMethodSubtypeList(para1: AVIInputMethodInfo; para2: jboolean): JUList; overload; virtual;
    procedure showStatusIcon(para1: AOIBinder; para2: JLString; para3: jint); overload; virtual;
    procedure hideStatusIcon(para1: AOIBinder); overload; virtual;
    function isFullscreenMode(): jboolean; overload; virtual;
    function isActive(para1: AVView): jboolean; overload; virtual;
    function isActive(): jboolean; overload; virtual;
    function isAcceptingText(): jboolean; overload; virtual;
    procedure displayCompletions(para1: AVView; para2: Arr1AVICompletionInfo); overload; virtual;
    procedure displayCompletions(para1: AVView; var para2: array of AVICompletionInfo); overload; virtual;
    procedure updateExtractedText(para1: AVView; para2: jint; para3: AVIExtractedText); overload; virtual;
    function showSoftInput(para1: AVView; para2: jint): jboolean; overload; virtual;
    function showSoftInput(para1: AVView; para2: jint; para3: AOResultReceiver): jboolean; overload; virtual;
    function hideSoftInputFromWindow(para1: AOIBinder; para2: jint): jboolean; overload; virtual;
    function hideSoftInputFromWindow(para1: AOIBinder; para2: jint; para3: AOResultReceiver): jboolean; overload; virtual;
    procedure toggleSoftInputFromWindow(para1: AOIBinder; para2: jint; para3: jint); overload; virtual;
    procedure toggleSoftInput(para1: jint; para2: jint); overload; virtual;
    procedure restartInput(para1: AVView); overload; virtual;
    procedure updateSelection(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure viewClicked(para1: AVView); overload; virtual;
    function isWatchingCursor(para1: AVView): jboolean; overload; virtual;
    procedure updateCursor(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure sendAppPrivateCommand(para1: AVView; para2: JLString; para3: AOBundle); overload; virtual;
    procedure setInputMethod(para1: AOIBinder; para2: JLString); overload; virtual;
    procedure setInputMethodAndSubtype(para1: AOIBinder; para2: JLString; para3: AVIInputMethodSubtype); overload; virtual;
    procedure hideSoftInputFromInputMethod(para1: AOIBinder; para2: jint); overload; virtual;
    procedure showSoftInputFromInputMethod(para1: AOIBinder; para2: jint); overload; virtual;
    procedure showInputMethodPicker(); overload; virtual;
    procedure showInputMethodAndSubtypeEnabler(para1: JLString); overload; virtual;
    function getCurrentInputMethodSubtype(): AVIInputMethodSubtype; overload; virtual;
    function setCurrentInputMethodSubtype(para1: AVIInputMethodSubtype): jboolean; overload; virtual;
    function getShortcutInputMethodsAndSubtypes(): JUMap; overload; virtual;
    function switchToLastInputMethod(para1: AOIBinder): jboolean; overload; virtual;
    procedure setAdditionalInputMethodSubtypes(para1: JLString; para2: Arr1AVIInputMethodSubtype); overload; virtual;
    procedure setAdditionalInputMethodSubtypes(para1: JLString; var para2: array of AVIInputMethodSubtype); overload; virtual;
    function getLastInputMethodSubtype(): AVIInputMethodSubtype; overload; virtual;
  end;

  AVIInputMethodSession = interface external 'android.view.inputmethod' name 'InputMethodSession' 
    type
      InnerEventCallback = interface;
      Arr1InnerEventCallback = array of InnerEventCallback;
      Arr2InnerEventCallback = array of Arr1InnerEventCallback;
      Arr3InnerEventCallback = array of Arr2InnerEventCallback;
      InnerEventCallback = interface external 'android.view.inputmethod' name 'EventCallback' 
        procedure finishedEvent(para1: jint; para2: jboolean); overload;
      end;

    procedure finishInput(); overload;
    procedure updateSelection(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    procedure viewClicked(para1: jboolean); overload;
    procedure updateCursor(para1: AGRect); overload;
    procedure displayCompletions(para1: Arr1AVICompletionInfo); overload;
    procedure displayCompletions(var para1: array of AVICompletionInfo); overload;
    procedure updateExtractedText(para1: jint; para2: AVIExtractedText); overload;
    procedure dispatchKeyEvent(para1: jint; para2: AVKeyEvent; para3: AVIInputMethodSession.InnerEventCallback); overload;
    procedure dispatchTrackballEvent(para1: jint; para2: AVMotionEvent; para3: AVIInputMethodSession.InnerEventCallback); overload;
    procedure appPrivateCommand(para1: JLString; para2: AOBundle); overload;
    procedure toggleSoftInput(para1: jint; para2: jint); overload;
  end;

  AVTSpellCheckerSession = class external 'android.view.textservice' name 'SpellCheckerSession' (JLObject)
  public
    type
      InnerSpellCheckerSessionListener = interface;
      Arr1InnerSpellCheckerSessionListener = array of InnerSpellCheckerSessionListener;
      Arr2InnerSpellCheckerSessionListener = array of Arr1InnerSpellCheckerSessionListener;
      Arr3InnerSpellCheckerSessionListener = array of Arr2InnerSpellCheckerSessionListener;
      InnerSpellCheckerSessionListener = interface external 'android.view.textservice' name 'SpellCheckerSessionListener' 
        procedure onGetSuggestions(para1: Arr1AVTSuggestionsInfo); overload;
        procedure onGetSuggestions(var para1: array of AVTSuggestionsInfo); overload;
      end;

  public
    const
      SERVICE_META_DATA = 'android.view.textservice.scs';
  public
    function isSessionDisconnected(): jboolean; overload; virtual;
    function getSpellChecker(): AVTSpellCheckerInfo; overload; virtual;
    procedure close(); overload; virtual;
    procedure getSuggestions(para1: AVTTextInfo; para2: jint); overload; virtual;
    procedure getSuggestions(para1: Arr1AVTTextInfo; para2: jint; para3: jboolean); overload; virtual;
    procedure getSuggestions(var para1: array of AVTTextInfo; para2: jint; para3: jboolean); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AWCacheManager = class sealed external 'android.webkit' name 'CacheManager' (JLObject)
  public
    type
      InnerCacheResult = class;
      Arr1InnerCacheResult = array of InnerCacheResult;
      Arr2InnerCacheResult = array of Arr1InnerCacheResult;
      Arr3InnerCacheResult = array of Arr2InnerCacheResult;
      InnerCacheResult = class external 'android.webkit' name 'CacheResult' (JLObject)
      public
        constructor create(); overload;
        function getHttpStatusCode(): jint; overload; virtual;
        function getContentLength(): jlong; overload; virtual;
        function getLocalPath(): JLString; overload; virtual;
        function getExpires(): jlong; overload; virtual;
        function getExpiresString(): JLString; overload; virtual;
        function getLastModified(): JLString; overload; virtual;
        function getETag(): JLString; overload; virtual;
        function getMimeType(): JLString; overload; virtual;
        function getLocation(): JLString; overload; virtual;
        function getEncoding(): JLString; overload; virtual;
        function getContentDisposition(): JLString; overload; virtual;
        function getInputStream(): JIInputStream; overload; virtual;
        function getOutputStream(): JIOutputStream; overload; virtual;
        procedure setInputStream(para1: JIInputStream); overload; virtual;
        procedure setEncoding(para1: JLString); overload; virtual;
      end;

  public
    constructor create(); overload;
    class function getCacheFileBaseDir(): JIFile; static; overload;
    class function cacheDisabled(): jboolean; static; overload;
    class function startCacheTransaction(): jboolean; static; overload;
    class function endCacheTransaction(): jboolean; static; overload;
    class function getCacheFile(para1: JLString; para2: JUMap): AWCacheManager.InnerCacheResult; static; overload;
    class procedure saveCacheFile(para1: JLString; para2: AWCacheManager.InnerCacheResult); static; overload;
  end;

  AWCookieManager = class sealed external 'android.webkit' name 'CookieManager' (JLObject)
  strict protected
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  public
    class function getInstance(): AWCookieManager; static; overload;
    procedure setAcceptCookie(para1: jboolean); overload; virtual;
    function acceptCookie(): jboolean; overload; virtual;
    procedure setCookie(para1: JLString; para2: JLString); overload; virtual;
    function getCookie(para1: JLString): JLString; overload; virtual;
    procedure removeSessionCookie(); overload; virtual;
    procedure removeAllCookie(); overload; virtual;
    function hasCookies(): jboolean; overload; virtual;
    procedure removeExpiredCookie(); overload; virtual;
    class function allowFileSchemeCookies(): jboolean; static; overload;
    class procedure setAcceptFileSchemeCookies(para1: jboolean); static; overload;
  end;

  AWDateSorter = class external 'android.webkit' name 'DateSorter' (JLObject)
  public
    const
      DAY_COUNT = 5;
  public
    constructor create(para1: ACContext); overload;
    function getIndex(para1: jlong): jint; overload; virtual;
    function getLabel(para1: jint): JLString; overload; virtual;
    function getBoundary(para1: jint): jlong; overload; virtual;
  end;

  AWDownloadListener = interface external 'android.webkit' name 'DownloadListener' 
    procedure onDownloadStart(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: jlong); overload;
  end;

  AWGeolocationPermissions = class sealed external 'android.webkit' name 'GeolocationPermissions' (JLObject)
  public
    type
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerCallback = interface external 'android.webkit' name 'Callback' 
        procedure invoke(para1: JLString; para2: jboolean; para3: jboolean); overload;
      end;

  public
    constructor create(); overload;
    class function getInstance(): AWGeolocationPermissions; static; overload;
    procedure getOrigins(para1: AWValueCallback); overload; virtual;
    procedure getAllowed(para1: JLString; para2: AWValueCallback); overload; virtual;
    procedure clear(para1: JLString); overload; virtual;
    procedure allow(para1: JLString); overload; virtual;
    procedure clearAll(); overload; virtual;
  end;

  AWJsResult = class external 'android.webkit' name 'JsResult' (JLObject)
  strict protected
    var
      fmResult: jboolean; external name 'mResult';
  public
    procedure cancel(); overload; virtual; final;
    procedure confirm(); overload; virtual; final;
  strict protected
    procedure wakeUp(); overload; virtual; final;
  end;

  AWMimeTypeMap = class external 'android.webkit' name 'MimeTypeMap' (JLObject)
  public
    class function getFileExtensionFromUrl(para1: JLString): JLString; static; overload;
    function hasMimeType(para1: JLString): jboolean; overload; virtual;
    function getMimeTypeFromExtension(para1: JLString): JLString; overload; virtual;
    function hasExtension(para1: JLString): jboolean; overload; virtual;
    function getExtensionFromMimeType(para1: JLString): JLString; overload; virtual;
    class function getSingleton(): AWMimeTypeMap; static; overload;
  end;

  AWPluginStub = interface external 'android.webkit' name 'PluginStub' 
    function getEmbeddedView(para1: jint; para2: ACContext): AVView; overload;
    function getFullScreenView(para1: jint; para2: ACContext): AVView; overload;
  end;

  AWURLUtil = class sealed external 'android.webkit' name 'URLUtil' (JLObject)
  public
    constructor create(); overload;
    class function guessUrl(para1: JLString): JLString; static; overload;
    class function composeSearchUrl(para1: JLString; para2: JLString; para3: JLString): JLString; static; overload;
    class function decode(para1: Arr1jbyte): Arr1jbyte; static; overload;  // throws java.lang.IllegalArgumentException
    class function decode(var para1: array of jbyte): Arr1jbyte; static; overload;  // throws java.lang.IllegalArgumentException
    class function isAssetUrl(para1: JLString): jboolean; static; overload;
    class function isCookielessProxyUrl(para1: JLString): jboolean; static; overload;
    class function isFileUrl(para1: JLString): jboolean; static; overload;
    class function isAboutUrl(para1: JLString): jboolean; static; overload;
    class function isDataUrl(para1: JLString): jboolean; static; overload;
    class function isJavaScriptUrl(para1: JLString): jboolean; static; overload;
    class function isHttpUrl(para1: JLString): jboolean; static; overload;
    class function isHttpsUrl(para1: JLString): jboolean; static; overload;
    class function isNetworkUrl(para1: JLString): jboolean; static; overload;
    class function isContentUrl(para1: JLString): jboolean; static; overload;
    class function isValidUrl(para1: JLString): jboolean; static; overload;
    class function stripAnchor(para1: JLString): JLString; static; overload;
    class function guessFileName(para1: JLString; para2: JLString; para3: JLString): JLString; static; overload; final;
  end;

  AWValueCallback = interface external 'android.webkit' name 'ValueCallback' 
    procedure onReceiveValue(para1: JLObject); overload;
  end;

  AWWebIconDatabase = class sealed external 'android.webkit' name 'WebIconDatabase' (JLObject)
  public
    type
      InnerIconListener = interface;
      Arr1InnerIconListener = array of InnerIconListener;
      Arr2InnerIconListener = array of Arr1InnerIconListener;
      Arr3InnerIconListener = array of Arr2InnerIconListener;
      InnerIconListener = interface external 'android.webkit' name 'IconListener' 
        procedure onReceivedIcon(para1: JLString; para2: AGBitmap); overload;
      end;

  public
    procedure open(para1: JLString); overload; virtual;
    procedure close(); overload; virtual;
    procedure removeAllIcons(); overload; virtual;
    procedure requestIconForPageUrl(para1: JLString; para2: AWWebIconDatabase.InnerIconListener); overload; virtual;
    procedure retainIconForPageUrl(para1: JLString); overload; virtual;
    procedure releaseIconForPageUrl(para1: JLString); overload; virtual;
    class function getInstance(): AWWebIconDatabase; static; overload;
  end;

  AWWebResourceResponse = class external 'android.webkit' name 'WebResourceResponse' (JLObject)
  public
    constructor create(para1: JLString; para2: JLString; para3: JIInputStream); overload;
    procedure setMimeType(para1: JLString); overload; virtual;
    function getMimeType(): JLString; overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    procedure setData(para1: JIInputStream); overload; virtual;
    function getData(): JIInputStream; overload; virtual;
  end;

  AWWebStorage = class sealed external 'android.webkit' name 'WebStorage' (JLObject)
  public
    type
      InnerOrigin = class;
      Arr1InnerOrigin = array of InnerOrigin;
      Arr2InnerOrigin = array of Arr1InnerOrigin;
      Arr3InnerOrigin = array of Arr2InnerOrigin;
      InnerQuotaUpdater = interface;
      Arr1InnerQuotaUpdater = array of InnerQuotaUpdater;
      Arr2InnerQuotaUpdater = array of Arr1InnerQuotaUpdater;
      Arr3InnerQuotaUpdater = array of Arr2InnerQuotaUpdater;
      InnerOrigin = class external 'android.webkit' name 'Origin' (JLObject)
      public
        function getOrigin(): JLString; overload; virtual;
        function getQuota(): jlong; overload; virtual;
        function getUsage(): jlong; overload; virtual;
      end;

      InnerQuotaUpdater = interface external 'android.webkit' name 'QuotaUpdater' 
        procedure updateQuota(para1: jlong); overload;
      end;

  public
    constructor create(); overload;
    procedure getOrigins(para1: AWValueCallback); overload; virtual;
    procedure getUsageForOrigin(para1: JLString; para2: AWValueCallback); overload; virtual;
    procedure getQuotaForOrigin(para1: JLString; para2: AWValueCallback); overload; virtual;
    procedure setQuotaForOrigin(para1: JLString; para2: jlong); overload; virtual;
    procedure deleteOrigin(para1: JLString); overload; virtual;
    procedure deleteAllData(); overload; virtual;
    class function getInstance(): AWWebStorage; static; overload;
  end;

  AWWebViewClient = class external 'android.webkit' name 'WebViewClient' (JLObject)
  public
    const
      ERROR_UNKNOWN = -1;
      ERROR_HOST_LOOKUP = -2;
      ERROR_UNSUPPORTED_AUTH_SCHEME = -3;
      ERROR_AUTHENTICATION = -4;
      ERROR_PROXY_AUTHENTICATION = -5;
      ERROR_CONNECT = -6;
      ERROR_IO = -7;
      ERROR_TIMEOUT = -8;
      ERROR_REDIRECT_LOOP = -9;
      ERROR_UNSUPPORTED_SCHEME = -10;
      ERROR_FAILED_SSL_HANDSHAKE = -11;
      ERROR_BAD_URL = -12;
      ERROR_FILE = -13;
      ERROR_FILE_NOT_FOUND = -14;
      ERROR_TOO_MANY_REQUESTS = -15;
  public
    constructor create(); overload;
    function shouldOverrideUrlLoading(para1: AWWebView; para2: JLString): jboolean; overload; virtual;
    procedure onPageStarted(para1: AWWebView; para2: JLString; para3: AGBitmap); overload; virtual;
    procedure onPageFinished(para1: AWWebView; para2: JLString); overload; virtual;
    procedure onLoadResource(para1: AWWebView; para2: JLString); overload; virtual;
    function shouldInterceptRequest(para1: AWWebView; para2: JLString): AWWebResourceResponse; overload; virtual;
    procedure onTooManyRedirects(para1: AWWebView; para2: AOMessage; para3: AOMessage); overload; virtual;
    procedure onReceivedError(para1: AWWebView; para2: jint; para3: JLString; para4: JLString); overload; virtual;
    procedure onFormResubmission(para1: AWWebView; para2: AOMessage; para3: AOMessage); overload; virtual;
    procedure doUpdateVisitedHistory(para1: AWWebView; para2: JLString; para3: jboolean); overload; virtual;
    procedure onReceivedSslError(para1: AWWebView; para2: AWSslErrorHandler; para3: ANHSslError); overload; virtual;
    procedure onReceivedHttpAuthRequest(para1: AWWebView; para2: AWHttpAuthHandler; para3: JLString; para4: JLString); overload; virtual;
    function shouldOverrideKeyEvent(para1: AWWebView; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure onUnhandledKeyEvent(para1: AWWebView; para2: AVKeyEvent); overload; virtual;
    procedure onScaleChanged(para1: AWWebView; para2: jfloat; para3: jfloat); overload; virtual;
    procedure onReceivedLoginRequest(para1: AWWebView; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
  end;

  AWWebViewDatabase = class external 'android.webkit' name 'WebViewDatabase' (JLObject)
  strict protected
    const
      LOGTAG = 'webviewdatabase';
  public
    class function getInstance(para1: ACContext): AWWebViewDatabase; static; overload;
    function hasUsernamePassword(): jboolean; overload; virtual;
    procedure clearUsernamePassword(); overload; virtual;
    function hasHttpAuthUsernamePassword(): jboolean; overload; virtual;
    procedure clearHttpAuthUsernamePassword(); overload; virtual;
    function hasFormData(): jboolean; overload; virtual;
    procedure clearFormData(); overload; virtual;
  end;

  AWAdapter = interface external 'android.widget' name 'Adapter' 
    const
      IGNORE_ITEM_VIEW_TYPE = -1;
      NO_SELECTION = -2147483648;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload;
    function getCount(): jint; overload;
    function getItem(para1: jint): JLObject; overload;
    function getItemId(para1: jint): jlong; overload;
    function hasStableIds(): jboolean; overload;
    function getView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload;
    function getItemViewType(para1: jint): jint; overload;
    function getViewTypeCount(): jint; overload;
    function isEmpty(): jboolean; overload;
  end;

  AWCheckable = interface external 'android.widget' name 'Checkable' 
    procedure setChecked(para1: jboolean); overload;
    function isChecked(): jboolean; overload;
    procedure toggle(); overload;
  end;

  AWEdgeEffect = class external 'android.widget' name 'EdgeEffect' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    function isFinished(): jboolean; overload; virtual;
    procedure finish(); overload; virtual;
    procedure onPull(para1: jfloat); overload; virtual;
    procedure onRelease(); overload; virtual;
    procedure onAbsorb(para1: jint); overload; virtual;
    function draw(para1: AGCanvas): jboolean; overload; virtual;
  end;

  AWExpandableListAdapter = interface external 'android.widget' name 'ExpandableListAdapter' 
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload;
    function getGroupCount(): jint; overload;
    function getChildrenCount(para1: jint): jint; overload;
    function getGroup(para1: jint): JLObject; overload;
    function getChild(para1: jint; para2: jint): JLObject; overload;
    function getGroupId(para1: jint): jlong; overload;
    function getChildId(para1: jint; para2: jint): jlong; overload;
    function hasStableIds(): jboolean; overload;
    function getGroupView(para1: jint; para2: jboolean; para3: AVView; para4: AVViewGroup): AVView; overload;
    function getChildView(para1: jint; para2: jint; para3: jboolean; para4: AVView; para5: AVViewGroup): AVView; overload;
    function isChildSelectable(para1: jint; para2: jint): jboolean; overload;
    function areAllItemsEnabled(): jboolean; overload;
    function isEmpty(): jboolean; overload;
    procedure onGroupExpanded(para1: jint); overload;
    procedure onGroupCollapsed(para1: jint); overload;
    function getCombinedChildId(para1: jlong; para2: jlong): jlong; overload;
    function getCombinedGroupId(para1: jlong): jlong; overload;
  end;

  AWFilter = class abstract external 'android.widget' name 'Filter' (JLObject)
  public
    type
      InnerFilterListener = interface;
      Arr1InnerFilterListener = array of InnerFilterListener;
      Arr2InnerFilterListener = array of Arr1InnerFilterListener;
      Arr3InnerFilterListener = array of Arr2InnerFilterListener;
      InnerFilterResults = class;
      Arr1InnerFilterResults = array of InnerFilterResults;
      Arr2InnerFilterResults = array of Arr1InnerFilterResults;
      Arr3InnerFilterResults = array of Arr2InnerFilterResults;
      InnerFilterListener = interface external 'android.widget' name 'FilterListener' 
        procedure onFilterComplete(para1: jint); overload;
      end;

      InnerFilterResults = class external 'android.widget' name 'FilterResults' (JLObject)
      public
        var
          fvalues: JLObject; external name 'values';
          fcount: jint; external name 'count';
      public
        constructor create(); overload;
      end;

  public
    constructor create(); overload;
    procedure filter(para1: JLCharSequence); overload; virtual; final;
    procedure filter(para1: JLCharSequence; para2: AWFilter.InnerFilterListener); overload; virtual; final;
  strict protected
    function performFiltering(para1: JLCharSequence): AWFilter.InnerFilterResults; overload; virtual; abstract;
    procedure publishResults(para1: JLCharSequence; para2: AWFilter.InnerFilterResults); overload; virtual; abstract;
  public
    function convertResultToString(para1: JLObject): JLCharSequence; overload; virtual;
  end;

  AWFilterQueryProvider = interface external 'android.widget' name 'FilterQueryProvider' 
    function runQuery(para1: JLCharSequence): ADCursor; overload;
  end;

  AWFilterable = interface external 'android.widget' name 'Filterable' 
    function getFilter(): AWFilter; overload;
  end;

  AWHeterogeneousExpandableList = interface external 'android.widget' name 'HeterogeneousExpandableList' 
    function getGroupType(para1: jint): jint; overload;
    function getChildType(para1: jint; para2: jint): jint; overload;
    function getGroupTypeCount(): jint; overload;
    function getChildTypeCount(): jint; overload;
  end;

  AWOverScroller = class external 'android.widget' name 'OverScroller' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AVAInterpolator); overload;
    constructor create(para1: ACContext; para2: AVAInterpolator; para3: jfloat; para4: jfloat); overload;
    constructor create(para1: ACContext; para2: AVAInterpolator; para3: jfloat; para4: jfloat; para5: jboolean); overload;
    procedure setFriction(para1: jfloat); overload; virtual; final;
    function isFinished(): jboolean; overload; virtual; final;
    procedure forceFinished(para1: jboolean); overload; virtual; final;
    function getCurrX(): jint; overload; virtual; final;
    function getCurrY(): jint; overload; virtual; final;
    function getCurrVelocity(): jfloat; overload; virtual;
    function getStartX(): jint; overload; virtual; final;
    function getStartY(): jint; overload; virtual; final;
    function getFinalX(): jint; overload; virtual; final;
    function getFinalY(): jint; overload; virtual; final;
    function computeScrollOffset(): jboolean; overload; virtual;
    procedure startScroll(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure startScroll(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    function springBack(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload; virtual;
    procedure fling(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload; virtual;
    procedure fling(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint); overload; virtual;
    procedure notifyHorizontalEdgeReached(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure notifyVerticalEdgeReached(para1: jint; para2: jint; para3: jint); overload; virtual;
    function isOverScrolled(): jboolean; overload; virtual;
    procedure abortAnimation(); overload; virtual;
  end;

  AWPopupMenu = class external 'android.widget' name 'PopupMenu' (JLObject)
  public
    type
      InnerOnMenuItemClickListener = interface;
      Arr1InnerOnMenuItemClickListener = array of InnerOnMenuItemClickListener;
      Arr2InnerOnMenuItemClickListener = array of Arr1InnerOnMenuItemClickListener;
      Arr3InnerOnMenuItemClickListener = array of Arr2InnerOnMenuItemClickListener;
      InnerOnDismissListener = interface;
      Arr1InnerOnDismissListener = array of InnerOnDismissListener;
      Arr2InnerOnDismissListener = array of Arr1InnerOnDismissListener;
      Arr3InnerOnDismissListener = array of Arr2InnerOnDismissListener;
      InnerOnMenuItemClickListener = interface external 'android.widget' name 'OnMenuItemClickListener' 
        function onMenuItemClick(para1: AVMenuItem): jboolean; overload;
      end;

      InnerOnDismissListener = interface external 'android.widget' name 'OnDismissListener' 
        procedure onDismiss(para1: AWPopupMenu); overload;
      end;

  public
    constructor create(para1: ACContext; para2: AVView); overload;
    function getMenu(): AVMenu; overload; virtual;
    function getMenuInflater(): AVMenuInflater; overload; virtual;
    procedure inflate(para1: jint); overload; virtual;
    procedure show(); overload; virtual;
    procedure dismiss(); overload; virtual;
    procedure setOnMenuItemClickListener(para1: AWPopupMenu.InnerOnMenuItemClickListener); overload; virtual;
    procedure setOnDismissListener(para1: AWPopupMenu.InnerOnDismissListener); overload; virtual;
  end;

  AWScroller = class external 'android.widget' name 'Scroller' (JLObject)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AVAInterpolator); overload;
    constructor create(para1: ACContext; para2: AVAInterpolator; para3: jboolean); overload;
    procedure setFriction(para1: jfloat); overload; virtual; final;
    function isFinished(): jboolean; overload; virtual; final;
    procedure forceFinished(para1: jboolean); overload; virtual; final;
    function getDuration(): jint; overload; virtual; final;
    function getCurrX(): jint; overload; virtual; final;
    function getCurrY(): jint; overload; virtual; final;
    function getCurrVelocity(): jfloat; overload; virtual;
    function getStartX(): jint; overload; virtual; final;
    function getStartY(): jint; overload; virtual; final;
    function getFinalX(): jint; overload; virtual; final;
    function getFinalY(): jint; overload; virtual; final;
    function computeScrollOffset(): jboolean; overload; virtual;
    procedure startScroll(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure startScroll(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure fling(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload; virtual;
    procedure abortAnimation(); overload; virtual;
    procedure extendDuration(para1: jint); overload; virtual;
    function timePassed(): jint; overload; virtual;
    procedure setFinalX(para1: jint); overload; virtual;
    procedure setFinalY(para1: jint); overload; virtual;
  end;

  AWSectionIndexer = interface external 'android.widget' name 'SectionIndexer' 
    function getSections(): Arr1JLObject; overload;
    function getPositionForSection(para1: jint): jint; overload;
    function getSectionForPosition(para1: jint): jint; overload;
  end;

  AWToast = class external 'android.widget' name 'Toast' (JLObject)
  public
    const
      LENGTH_SHORT = 0;
      LENGTH_LONG = 1;
  public
    constructor create(para1: ACContext); overload;
    procedure show(); overload; virtual;
    procedure cancel(); overload; virtual;
    procedure setView(para1: AVView); overload; virtual;
    function getView(): AVView; overload; virtual;
    procedure setDuration(para1: jint); overload; virtual;
    function getDuration(): jint; overload; virtual;
    procedure setMargin(para1: jfloat; para2: jfloat); overload; virtual;
    function getHorizontalMargin(): jfloat; overload; virtual;
    function getVerticalMargin(): jfloat; overload; virtual;
    procedure setGravity(para1: jint; para2: jint; para3: jint); overload; virtual;
    function getGravity(): jint; overload; virtual;
    function getXOffset(): jint; overload; virtual;
    function getYOffset(): jint; overload; virtual;
    class function makeText(para1: ACContext; para2: JLCharSequence; para3: jint): AWToast; static; overload;
    class function makeText(para1: ACContext; para2: jint; para3: jint): AWToast; static; overload;  // throws android.content.res.Resources$NotFoundException
    procedure setText(para1: jint); overload; virtual;
    procedure setText(para1: JLCharSequence); overload; virtual;
  end;

  JICloseable = interface external 'java.io' name 'Closeable' 
    procedure close(); overload;  // throws java.io.IOException
  end;

  JIDataInput = interface external 'java.io' name 'DataInput' 
    function readBoolean(): jboolean; overload;  // throws java.io.IOException
    function readByte(): jbyte; overload;  // throws java.io.IOException
    function readChar(): jchar; overload;  // throws java.io.IOException
    function readDouble(): jdouble; overload;  // throws java.io.IOException
    function readFloat(): jfloat; overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    function readInt(): jint; overload;  // throws java.io.IOException
    function readLine(): JLString; overload;  // throws java.io.IOException
    function readLong(): jlong; overload;  // throws java.io.IOException
    function readShort(): jshort; overload;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload;  // throws java.io.IOException
    function readUTF(): JLString; overload;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload;  // throws java.io.IOException
  end;

  JIDataOutput = interface external 'java.io' name 'DataOutput' 
    procedure write(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(para1: jint); overload;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload;  // throws java.io.IOException
  end;

  JIFileDescriptor = class sealed external 'java.io' name 'FileDescriptor' (JLObject)
  public
    final class var
      fin: JIFileDescriptor; external name 'in';
      fout: JIFileDescriptor; external name 'out';
      ferr: JIFileDescriptor; external name 'err';
  public
    constructor create(); overload;
    procedure sync(); overload; virtual;  // throws java.io.SyncFailedException
    function valid(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JIFileFilter = interface external 'java.io' name 'FileFilter' 
    function accept(para1: JIFile): jboolean; overload;
  end;

  JIFilenameFilter = interface external 'java.io' name 'FilenameFilter' 
    function accept(para1: JIFile; para2: JLString): jboolean; overload;
  end;

  JIFlushable = interface external 'java.io' name 'Flushable' 
    procedure flush(); overload;  // throws java.io.IOException
  end;

  JIObjectInputValidation = interface external 'java.io' name 'ObjectInputValidation' 
    procedure validateObject(); overload;  // throws java.io.InvalidObjectException
  end;

  JIObjectStreamConstants = interface external 'java.io' name 'ObjectStreamConstants' 
    const
      STREAM_MAGIC = -21267;
      STREAM_VERSION = 5;
      TC_BASE = 112;
      TC_NULL = 112;
      TC_REFERENCE = 113;
      TC_CLASSDESC = 114;
      TC_OBJECT = 115;
      TC_STRING = 116;
      TC_ARRAY = 117;
      TC_CLASS = 118;
      TC_BLOCKDATA = 119;
      TC_ENDBLOCKDATA = 120;
      TC_RESET = 121;
      TC_BLOCKDATALONG = 122;
      TC_EXCEPTION = 123;
      TC_LONGSTRING = 124;
      TC_PROXYCLASSDESC = 125;
      TC_MAX = 126;
      baseWireHandle = 8257536;
      PROTOCOL_VERSION_1 = 1;
      PROTOCOL_VERSION_2 = 2;
    final class var
      fSUBCLASS_IMPLEMENTATION_PERMISSION: JISerializablePermission; external name 'SUBCLASS_IMPLEMENTATION_PERMISSION';
      fSUBSTITUTION_PERMISSION: JISerializablePermission; external name 'SUBSTITUTION_PERMISSION';
    const
      SC_WRITE_METHOD = 1;
      SC_SERIALIZABLE = 2;
      SC_EXTERNALIZABLE = 4;
      SC_BLOCK_DATA = 8;
      TC_ENUM = 126;
      SC_ENUM = 16;
  end;

  JIStreamTokenizer = class external 'java.io' name 'StreamTokenizer' (JLObject)
  public
    var
      fnval: jdouble; external name 'nval';
      fsval: JLString; external name 'sval';
  public
    const
      TT_EOF = -1;
      TT_EOL = 10;
      TT_NUMBER = -2;
      TT_WORD = -3;
  public
    var
      fttype: jint; external name 'ttype';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIReader); overload;
    procedure commentChar(para1: jint); overload; virtual;
    procedure eolIsSignificant(para1: jboolean); overload; virtual;
    function lineno(): jint; overload; virtual;
    procedure lowerCaseMode(para1: jboolean); overload; virtual;
    function nextToken(): jint; overload; virtual;  // throws java.io.IOException
    procedure ordinaryChar(para1: jint); overload; virtual;
    procedure ordinaryChars(para1: jint; para2: jint); overload; virtual;
    procedure parseNumbers(); overload; virtual;
    procedure pushBack(); overload; virtual;
    procedure quoteChar(para1: jint); overload; virtual;
    procedure resetSyntax(); overload; virtual;
    procedure slashSlashComments(para1: jboolean); overload; virtual;
    procedure slashStarComments(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure whitespaceChars(para1: jint; para2: jint); overload; virtual;
    procedure wordChars(para1: jint; para2: jint); overload; virtual;
  end;

  JLClassLoader = class abstract external 'java.lang' name 'ClassLoader' (JLObject)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLClassLoader); overload;
  public
    class function getSystemClassLoader(): JLClassLoader; static; overload;
    class function getSystemResource(para1: JLString): JNURL; static; overload;
    class function getSystemResources(para1: JLString): JUEnumeration; static; overload;  // throws java.io.IOException
    class function getSystemResourceAsStream(para1: JLString): JIInputStream; static; overload;
  strict protected
    function defineClass(para1: Arr1jbyte; para2: jint; para3: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(var para1: array of jbyte; para2: jint; para3: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint; para5: JSProtectionDomain): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint; para5: JSProtectionDomain): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; para2: JNByteBuffer; para3: JSProtectionDomain): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function findClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    function findLoadedClass(para1: JLString): JLClass; overload; virtual; final;
    function findSystemClass(para1: JLString): JLClass; overload; virtual; final;  // throws java.lang.ClassNotFoundException
  public
    function getParent(): JLClassLoader; overload; virtual; final;
    function getResource(para1: JLString): JNURL; overload; virtual;
    function getResources(para1: JLString): JUEnumeration; overload; virtual;  // throws java.io.IOException
    function getResourceAsStream(para1: JLString): JIInputStream; overload; virtual;
    function loadClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
  strict protected
    function loadClass(para1: JLString; para2: jboolean): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    procedure resolveClass(para1: JLClass); overload; virtual; final;
    function findResource(para1: JLString): JNURL; overload; virtual;
    function findResources(para1: JLString): JUEnumeration; overload; virtual;  // throws java.io.IOException
    function findLibrary(para1: JLString): JLString; overload; virtual;
    function getPackage(para1: JLString): JLPackage; overload; virtual;
    function getPackages(): Arr1JLPackage; overload; virtual;
    function definePackage(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString; para7: JLString; para8: JNURL): JLPackage; overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setSigners(para1: JLClass; para2: Arr1JLObject); overload; virtual; final;
    procedure setSigners(para1: JLClass; var para2: array of JLObject); overload; virtual; final;
  public
    procedure setClassAssertionStatus(para1: JLString; para2: jboolean); overload; virtual;
    procedure setPackageAssertionStatus(para1: JLString; para2: jboolean); overload; virtual;
    procedure setDefaultAssertionStatus(para1: jboolean); overload; virtual;
    procedure clearAssertionStatus(); overload; virtual;
  end;

  JLCompiler = class sealed external 'java.lang' name 'Compiler' (JLObject)
  public
    class function command(para1: JLObject): JLObject; static; overload;
    class function compileClass(para1: JLClass): jboolean; static; overload;
    class function compileClasses(para1: JLString): jboolean; static; overload;
    class procedure disable(); static; overload;
    class procedure enable(); static; overload;
  end;

  JLProcess = class abstract external 'java.lang' name 'Process' (JLObject)
  public
    constructor create(); overload;
    procedure destroy(); overload; virtual; abstract;
    function exitValue(): jint; overload; virtual; abstract;
    function getErrorStream(): JIInputStream; overload; virtual; abstract;
    function getInputStream(): JIInputStream; overload; virtual; abstract;
    function getOutputStream(): JIOutputStream; overload; virtual; abstract;
    function waitFor(): jint; overload; virtual; abstract;  // throws java.lang.InterruptedException
  end;

  JLProcessBuilder = class sealed external 'java.lang' name 'ProcessBuilder' (JLObject)
  public
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    constructor create(para1: JUList); overload;
    function command(): JUList; overload; virtual;
    function command(para1: Arr1JLString): JLProcessBuilder; overload; virtual;
    function command(const para1: array of JLString): JLProcessBuilder; overload; virtual;
    function command(para1: JUList): JLProcessBuilder; overload; virtual;
    function directory(): JIFile; overload; virtual;
    function directory(para1: JIFile): JLProcessBuilder; overload; virtual;
    function environment(): JUMap; overload; virtual;
    function redirectErrorStream(): jboolean; overload; virtual;
    function redirectErrorStream(para1: jboolean): JLProcessBuilder; overload; virtual;
    function start(): JLProcess; overload; virtual;  // throws java.io.IOException
  end;

  JLRunnable = interface external 'java.lang' name 'Runnable' 
    procedure run(); overload;
  end;

  JLSecurityManager = class external 'java.lang' name 'SecurityManager' (JLObject)
  strict protected
    var
      finCheck: jboolean; external name 'inCheck';
  public
    constructor create(); overload;
    procedure checkAccept(para1: JLString; para2: jint); overload; virtual;
    procedure checkAccess(para1: JLThread); overload; virtual;
    procedure checkAccess(para1: JLThreadGroup); overload; virtual;
    procedure checkConnect(para1: JLString; para2: jint); overload; virtual;
    procedure checkConnect(para1: JLString; para2: jint; para3: JLObject); overload; virtual;
    procedure checkCreateClassLoader(); overload; virtual;
    procedure checkDelete(para1: JLString); overload; virtual;
    procedure checkExec(para1: JLString); overload; virtual;
    procedure checkExit(para1: jint); overload; virtual;
    procedure checkLink(para1: JLString); overload; virtual;
    procedure checkListen(para1: jint); overload; virtual;
    procedure checkMemberAccess(para1: JLClass; para2: jint); overload; virtual;
    procedure checkMulticast(para1: JNInetAddress); overload; virtual;
    procedure checkMulticast(para1: JNInetAddress; para2: jbyte); overload; virtual;
    procedure checkPackageAccess(para1: JLString); overload; virtual;
    procedure checkPackageDefinition(para1: JLString); overload; virtual;
    procedure checkPropertiesAccess(); overload; virtual;
    procedure checkPropertyAccess(para1: JLString); overload; virtual;
    procedure checkRead(para1: JIFileDescriptor); overload; virtual;
    procedure checkRead(para1: JLString); overload; virtual;
    procedure checkRead(para1: JLString; para2: JLObject); overload; virtual;
    procedure checkSecurityAccess(para1: JLString); overload; virtual;
    procedure checkSetFactory(); overload; virtual;
    function checkTopLevelWindow(para1: JLObject): jboolean; overload; virtual;
    procedure checkSystemClipboardAccess(); overload; virtual;
    procedure checkAwtEventQueueAccess(); overload; virtual;
    procedure checkPrintJobAccess(); overload; virtual;
    procedure checkWrite(para1: JIFileDescriptor); overload; virtual;
    procedure checkWrite(para1: JLString); overload; virtual;
    function getInCheck(): jboolean; overload; virtual;
  strict protected
    function getClassContext(): Arr1JLClass; overload; virtual;
    function currentClassLoader(): JLClassLoader; overload; virtual;
    function classLoaderDepth(): jint; overload; virtual;
    function currentLoadedClass(): JLClass; overload; virtual;
    function classDepth(para1: JLString): jint; overload; virtual;
    function inClass(para1: JLString): jboolean; overload; virtual;
    function inClassLoader(): jboolean; overload; virtual;
  public
    function getThreadGroup(): JLThreadGroup; overload; virtual;
    function getSecurityContext(): JLObject; overload; virtual;
    procedure checkPermission(para1: JSPermission); overload; virtual;
    procedure checkPermission(para1: JSPermission; para2: JLObject); overload; virtual;
  end;

  JLStrictMath = class sealed external 'java.lang' name 'StrictMath' (JLObject)
  public
    const
      E = jdouble(2.718281828459045);
      PI = jdouble(3.141592653589793);
  public
    class function abs(para1: jdouble): jdouble; static; overload;
    class function abs(para1: jfloat): jfloat; static; overload;
    class function abs(para1: jint): jint; static; overload;
    class function abs(para1: jlong): jlong; static; overload;
    class function acos(para1: jdouble): jdouble; static; overload;
    class function asin(para1: jdouble): jdouble; static; overload;
    class function atan(para1: jdouble): jdouble; static; overload;
    class function atan2(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function cbrt(para1: jdouble): jdouble; static; overload;
    class function ceil(para1: jdouble): jdouble; static; overload;
    class function cosh(para1: jdouble): jdouble; static; overload;
    class function cos(para1: jdouble): jdouble; static; overload;
    class function exp(para1: jdouble): jdouble; static; overload;
    class function expm1(para1: jdouble): jdouble; static; overload;
    class function floor(para1: jdouble): jdouble; static; overload;
    class function hypot(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function IEEEremainder(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function log(para1: jdouble): jdouble; static; overload;
    class function log10(para1: jdouble): jdouble; static; overload;
    class function log1p(para1: jdouble): jdouble; static; overload;
    class function max(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function max(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class function max(para1: jint; para2: jint): jint; static; overload;
    class function max(para1: jlong; para2: jlong): jlong; static; overload;
    class function min(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function min(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class function min(para1: jint; para2: jint): jint; static; overload;
    class function min(para1: jlong; para2: jlong): jlong; static; overload;
    class function pow(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function random(): jdouble; static; overload;
    class function rint(para1: jdouble): jdouble; static; overload;
    class function round(para1: jdouble): jlong; static; overload;
    class function round(para1: jfloat): jint; static; overload;
    class function signum(para1: jdouble): jdouble; static; overload;
    class function signum(para1: jfloat): jfloat; static; overload;
    class function sinh(para1: jdouble): jdouble; static; overload;
    class function sin(para1: jdouble): jdouble; static; overload;
    class function sqrt(para1: jdouble): jdouble; static; overload;
    class function tan(para1: jdouble): jdouble; static; overload;
    class function tanh(para1: jdouble): jdouble; static; overload;
    class function toDegrees(para1: jdouble): jdouble; static; overload;
    class function toRadians(para1: jdouble): jdouble; static; overload;
    class function ulp(para1: jdouble): jdouble; static; overload;
    class function ulp(para1: jfloat): jfloat; static; overload;
    class function copySign(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function copySign(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class function getExponent(para1: jfloat): jint; static; overload;
    class function getExponent(para1: jdouble): jint; static; overload;
    class function nextAfter(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function nextAfter(para1: jfloat; para2: jdouble): jfloat; static; overload;
    class function nextUp(para1: jdouble): jdouble; static; overload;
    class function nextUp(para1: jfloat): jfloat; static; overload;
    class function scalb(para1: jdouble; para2: jint): jdouble; static; overload;
    class function scalb(para1: jfloat; para2: jint): jfloat; static; overload;
  end;

  JLVoid = class sealed external 'java.lang' name 'Void' (JLObject)
  public
    final class var
      fTYPE: JLClass; external name 'TYPE';
  end;

  JLAAnnotation = interface external 'java.lang.annotation' name 'Annotation' 
    function annotationType(): JLClass; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JLRReference = class abstract external 'java.lang.ref' name 'Reference' (JLObject)
  public
    procedure clear(); overload; virtual;
    function enqueue(): jboolean; overload; virtual;
    function get(): JLObject; overload; virtual;
    function isEnqueued(): jboolean; overload; virtual;
  end;

  JLRReferenceQueue = class external 'java.lang.ref' name 'ReferenceQueue' (JLObject)
  public
    constructor create(); overload;
    function poll(): JLRReference; overload; virtual;
    function remove(): JLRReference; overload; virtual;  // throws java.lang.InterruptedException
    function remove(para1: jlong): JLRReference; overload; virtual;  // throws java.lang.InterruptedException
  end;

  JLRInvocationHandler = interface external 'java.lang.reflect' name 'InvocationHandler' 
    function invoke(para1: JLObject; para2: JLRMethod; para3: Arr1JLObject): JLObject; overload;  // throws java.lang.Throwable
    function invoke(para1: JLObject; para2: JLRMethod; var para3: array of JLObject): JLObject; overload;  // throws java.lang.Throwable
  end;

  JLRModifier = class external 'java.lang.reflect' name 'Modifier' (JLObject)
  public
    const
      &PUBLIC = 1;
      &PRIVATE = 2;
      &PROTECTED = 4;
      STATIC = 8;
      &FINAL = 16;
      SYNCHRONIZED = 32;
      VOLATILE = 64;
      TRANSIENT = 128;
      NATIVE = 256;
      &INTERFACE = 512;
      &ABSTRACT = 1024;
      &STRICT = 2048;
  public
    constructor create(); overload;
    class function isAbstract(para1: jint): jboolean; static; overload;
    class function isFinal(para1: jint): jboolean; static; overload;
    class function isInterface(para1: jint): jboolean; static; overload;
    class function isNative(para1: jint): jboolean; static; overload;
    class function isPrivate(para1: jint): jboolean; static; overload;
    class function isProtected(para1: jint): jboolean; static; overload;
    class function isPublic(para1: jint): jboolean; static; overload;
    class function isStatic(para1: jint): jboolean; static; overload;
    class function isStrict(para1: jint): jboolean; static; overload;
    class function isSynchronized(para1: jint): jboolean; static; overload;
    class function isTransient(para1: jint): jboolean; static; overload;
    class function isVolatile(para1: jint): jboolean; static; overload;
    class function toString(para1: jint): JLString; static; overload;
  end;

  JNCacheRequest = class abstract external 'java.net' name 'CacheRequest' (JLObject)
  public
    constructor create(); overload;
    procedure abort(); overload; virtual; abstract;
    function getBody(): JIOutputStream; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCacheResponse = class abstract external 'java.net' name 'CacheResponse' (JLObject)
  public
    constructor create(); overload;
    function getBody(): JIInputStream; overload; virtual; abstract;  // throws java.io.IOException
    function getHeaders(): JUMap; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNContentHandler = class abstract external 'java.net' name 'ContentHandler' (JLObject)
  public
    constructor create(); overload;
    function getContent(para1: JNURLConnection): JLObject; overload; virtual; abstract;  // throws java.io.IOException
    function getContent(para1: JNURLConnection; para2: Arr1JLClass): JLObject; overload; virtual;  // throws java.io.IOException
    function getContent(para1: JNURLConnection; var para2: array of JLClass): JLObject; overload; virtual;  // throws java.io.IOException
  end;

  JNContentHandlerFactory = interface external 'java.net' name 'ContentHandlerFactory' 
    function createContentHandler(para1: JLString): JNContentHandler; overload;
  end;

  JNCookieHandler = class abstract external 'java.net' name 'CookieHandler' (JLObject)
  public
    constructor create(); overload;
    class function getDefault(): JNCookieHandler; static; overload;
    class procedure setDefault(para1: JNCookieHandler); static; overload;
    function get(para1: JNURI; para2: JUMap): JUMap; overload; virtual; abstract;  // throws java.io.IOException
    procedure put(para1: JNURI; para2: JUMap); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCookiePolicy = interface external 'java.net' name 'CookiePolicy' 
    final class var
      fACCEPT_ALL: JNCookiePolicy; external name 'ACCEPT_ALL';
      fACCEPT_NONE: JNCookiePolicy; external name 'ACCEPT_NONE';
      fACCEPT_ORIGINAL_SERVER: JNCookiePolicy; external name 'ACCEPT_ORIGINAL_SERVER';
    function shouldAccept(para1: JNURI; para2: JNHttpCookie): jboolean; overload;
  end;

  JNCookieStore = interface external 'java.net' name 'CookieStore' 
    procedure add(para1: JNURI; para2: JNHttpCookie); overload;
    function get(para1: JNURI): JUList; overload;
    function getCookies(): JUList; overload;
    function getURIs(): JUList; overload;
    function remove(para1: JNURI; para2: JNHttpCookie): jboolean; overload;
    function removeAll(): jboolean; overload;
  end;

  JNDatagramPacket = class sealed external 'java.net' name 'DatagramPacket' (JLObject)
  public
    constructor create(para1: Arr1jbyte; para2: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: JNInetAddress; para5: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: JNInetAddress; para5: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: JNInetAddress; para4: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: JNInetAddress; para4: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(const para1: array of jbyte; para2: jint; para3: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: JNSocketAddress); overload;  // throws java.net.SocketException
    function getAddress(): JNInetAddress; overload; virtual;
    function getData(): Arr1jbyte; overload; virtual;
    function getLength(): jint; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function getPort(): jint; overload; virtual;
    procedure setAddress(para1: JNInetAddress); overload; virtual;
    procedure setData(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setData(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setData(para1: Arr1jbyte); overload; virtual;
    procedure setData(var para1: array of jbyte); overload; virtual;
    procedure setLength(para1: jint); overload; virtual;
    procedure setPort(para1: jint); overload; virtual;
    function getSocketAddress(): JNSocketAddress; overload; virtual;
    procedure setSocketAddress(para1: JNSocketAddress); overload; virtual;
  end;

  JNDatagramSocket = class external 'java.net' name 'DatagramSocket' (JLObject)
  public
    constructor create(); overload;  // throws java.net.SocketException
    constructor create(para1: jint); overload;  // throws java.net.SocketException
    constructor create(para1: jint; para2: JNInetAddress); overload;  // throws java.net.SocketException
  strict protected
    constructor create(para1: JNDatagramSocketImpl); overload;
  public
    constructor create(para1: JNSocketAddress); overload;  // throws java.net.SocketException
    procedure close(); overload; virtual;
    procedure disconnect(); overload; virtual;
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    function getSendBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    function getSoTimeout(): jint; overload; virtual;  // throws java.net.SocketException
    procedure receive(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    procedure send(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    procedure setSendBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.net.SocketException
    class procedure setDatagramSocketImplFactory(para1: JNDatagramSocketImplFactory); static; overload;  // throws java.io.IOException
    procedure bind(para1: JNSocketAddress); overload; virtual;  // throws java.net.SocketException
    procedure connect(para1: JNSocketAddress); overload; virtual;  // throws java.net.SocketException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    function getRemoteSocketAddress(): JNSocketAddress; overload; virtual;
    function getLocalSocketAddress(): JNSocketAddress; overload; virtual;
    procedure setReuseAddress(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getReuseAddress(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setBroadcast(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getBroadcast(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setTrafficClass(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getTrafficClass(): jint; overload; virtual;  // throws java.net.SocketException
    function isClosed(): jboolean; overload; virtual;
    function getChannel(): JNCDatagramChannel; overload; virtual;
  end;

  JNDatagramSocketImplFactory = interface external 'java.net' name 'DatagramSocketImplFactory' 
    function createDatagramSocketImpl(): JNDatagramSocketImpl; overload;
  end;

  JNFileNameMap = interface external 'java.net' name 'FileNameMap' 
    function getContentTypeFor(para1: JLString): JLString; overload;
  end;

  JNIDN = class sealed external 'java.net' name 'IDN' (JLObject)
  public
    const
      ALLOW_UNASSIGNED = 1;
      USE_STD3_ASCII_RULES = 2;
  public
    class function toASCII(para1: JLString; para2: jint): JLString; static; overload;
    class function toASCII(para1: JLString): JLString; static; overload;
    class function toUnicode(para1: JLString; para2: jint): JLString; static; overload;
    class function toUnicode(para1: JLString): JLString; static; overload;
  end;

  JNInterfaceAddress = class external 'java.net' name 'InterfaceAddress' (JLObject)
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getAddress(): JNInetAddress; overload; virtual;
    function getBroadcast(): JNInetAddress; overload; virtual;
    function getNetworkPrefixLength(): jshort; overload; virtual;
  end;

  JNNetworkInterface = class sealed external 'java.net' name 'NetworkInterface' (JLObject)
  public
    function getName(): JLString; overload; virtual;
    function getInetAddresses(): JUEnumeration; overload; virtual;
    function getDisplayName(): JLString; overload; virtual;
    class function getByName(para1: JLString): JNNetworkInterface; static; overload;  // throws java.net.SocketException
    class function getByInetAddress(para1: JNInetAddress): JNNetworkInterface; static; overload;  // throws java.net.SocketException
    class function getNetworkInterfaces(): JUEnumeration; static; overload;  // throws java.net.SocketException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getInterfaceAddresses(): JUList; overload; virtual;
    function getSubInterfaces(): JUEnumeration; overload; virtual;
    function getParent(): JNNetworkInterface; overload; virtual;
    function isUp(): jboolean; overload; virtual;  // throws java.net.SocketException
    function isLoopback(): jboolean; overload; virtual;  // throws java.net.SocketException
    function isPointToPoint(): jboolean; overload; virtual;  // throws java.net.SocketException
    function supportsMulticast(): jboolean; overload; virtual;  // throws java.net.SocketException
    function getHardwareAddress(): Arr1jbyte; overload; virtual;  // throws java.net.SocketException
    function getMTU(): jint; overload; virtual;  // throws java.net.SocketException
    function isVirtual(): jboolean; overload; virtual;
  end;

  JNPasswordAuthentication = class sealed external 'java.net' name 'PasswordAuthentication' (JLObject)
  public
    constructor create(para1: JLString; para2: Arr1jchar); overload;
    constructor create(para1: JLString; const para2: array of jchar); overload;
    function getPassword(): Arr1jchar; overload; virtual;
    function getUserName(): JLString; overload; virtual;
  end;

  JNProxySelector = class abstract external 'java.net' name 'ProxySelector' (JLObject)
  public
    constructor create(); overload;
    class function getDefault(): JNProxySelector; static; overload;
    class procedure setDefault(para1: JNProxySelector); static; overload;
    function select(para1: JNURI): JUList; overload; virtual; abstract;
    procedure connectFailed(para1: JNURI; para2: JNSocketAddress; para3: JIIOException); overload; virtual; abstract;
  end;

  JNResponseCache = class abstract external 'java.net' name 'ResponseCache' (JLObject)
  public
    constructor create(); overload;
    class function getDefault(): JNResponseCache; static; overload;
    class procedure setDefault(para1: JNResponseCache); static; overload;
    function get(para1: JNURI; para2: JLString; para3: JUMap): JNCacheResponse; overload; virtual; abstract;  // throws java.io.IOException
    function put(para1: JNURI; para2: JNURLConnection): JNCacheRequest; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNServerSocket = class external 'java.net' name 'ServerSocket' (JLObject)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint; para3: JNInetAddress); overload;  // throws java.io.IOException
    function accept(): JNSocket; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getSoTimeout(): jint; overload; virtual;  // throws java.io.IOException
  strict protected
    procedure implAccept(para1: JNSocket); overload; virtual; final;  // throws java.io.IOException
  public
    class procedure setSocketFactory(para1: JNSocketImplFactory); static; overload;  // throws java.io.IOException
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.net.SocketException
    function toString(): JLString; overload; virtual;
    procedure bind(para1: JNSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure bind(para1: JNSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    function getLocalSocketAddress(): JNSocketAddress; overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    procedure setReuseAddress(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getReuseAddress(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    function getChannel(): JNCServerSocketChannel; overload; virtual;
    procedure setPerformancePreferences(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JNSocket = class external 'java.net' name 'Socket' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JNProxy); overload;
    constructor create(para1: JLString; para2: jint); overload;  // throws java.net.UnknownHostException, java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JNInetAddress; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException
    constructor create(para1: JNInetAddress; para2: jint; para3: jboolean); overload;  // throws java.io.IOException
  strict protected
    constructor create(para1: JNSocketImpl); overload;  // throws java.net.SocketException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getKeepAlive(): jboolean; overload; virtual;  // throws java.net.SocketException
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function getPort(): jint; overload; virtual;
    function getSoLinger(): jint; overload; virtual;  // throws java.net.SocketException
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    function getSendBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    function getSoTimeout(): jint; overload; virtual;  // throws java.net.SocketException
    function getTcpNoDelay(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setKeepAlive(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    class procedure setSocketImplFactory(para1: JNSocketImplFactory); static; overload;  // throws java.io.IOException
    procedure setSendBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    procedure setSoLinger(para1: jboolean; para2: jint); overload; virtual;  // throws java.net.SocketException
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.net.SocketException
    procedure setTcpNoDelay(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function toString(): JLString; overload; virtual;
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    function getLocalSocketAddress(): JNSocketAddress; overload; virtual;
    function getRemoteSocketAddress(): JNSocketAddress; overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    procedure bind(para1: JNSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    function isInputShutdown(): jboolean; overload; virtual;
    function isOutputShutdown(): jboolean; overload; virtual;
    procedure setReuseAddress(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getReuseAddress(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setOOBInline(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getOOBInline(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setTrafficClass(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getTrafficClass(): jint; overload; virtual;  // throws java.net.SocketException
    procedure sendUrgentData(para1: jint); overload; virtual;  // throws java.io.IOException
    function getChannel(): JNCSocketChannel; overload; virtual;
    procedure setPerformancePreferences(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JNSocketImplFactory = interface external 'java.net' name 'SocketImplFactory' 
    function createSocketImpl(): JNSocketImpl; overload;
  end;

  JNSocketOptions = interface external 'java.net' name 'SocketOptions' 
    const
      SO_LINGER = 128;
      SO_TIMEOUT = 4102;
      TCP_NODELAY = 1;
      IP_MULTICAST_IF = 16;
      SO_BINDADDR = 15;
      SO_REUSEADDR = 4;
      SO_SNDBUF = 4097;
      SO_RCVBUF = 4098;
      SO_KEEPALIVE = 8;
      IP_TOS = 3;
      IP_MULTICAST_LOOP = 18;
      SO_BROADCAST = 32;
      SO_OOBINLINE = 4099;
      IP_MULTICAST_IF2 = 31;
    function getOption(para1: jint): JLObject; overload;  // throws java.net.SocketException
    procedure setOption(para1: jint; para2: JLObject); overload;  // throws java.net.SocketException
  end;

  JNURLConnection = class abstract external 'java.net' name 'URLConnection' (JLObject)
  strict protected
    var
      furl: JNURL; external name 'url';
      fifModifiedSince: jlong; external name 'ifModifiedSince';
      fuseCaches: jboolean; external name 'useCaches';
      fconnected: jboolean; external name 'connected';
      fdoOutput: jboolean; external name 'doOutput';
      fdoInput: jboolean; external name 'doInput';
      fallowUserInteraction: jboolean; external name 'allowUserInteraction';
  strict protected
    constructor create(para1: JNURL); overload;
  public
    procedure connect(); overload; virtual; abstract;  // throws java.io.IOException
    function getAllowUserInteraction(): jboolean; overload; virtual;
    function getContent(): JLObject; overload; virtual;  // throws java.io.IOException
    function getContent(para1: Arr1JLClass): JLObject; overload; virtual;  // throws java.io.IOException
    function getContent(var para1: array of JLClass): JLObject; overload; virtual;  // throws java.io.IOException
    function getContentEncoding(): JLString; overload; virtual;
    function getContentLength(): jint; overload; virtual;
    function getContentType(): JLString; overload; virtual;
    function getDate(): jlong; overload; virtual;
    class function getDefaultAllowUserInteraction(): jboolean; static; overload;
    class function getDefaultRequestProperty(para1: JLString): JLString; static; overload;
    function getDefaultUseCaches(): jboolean; overload; virtual;
    function getDoInput(): jboolean; overload; virtual;
    function getDoOutput(): jboolean; overload; virtual;
    function getExpiration(): jlong; overload; virtual;
    class function getFileNameMap(): JNFileNameMap; static; overload;
    function getHeaderField(para1: jint): JLString; overload; virtual;
    function getHeaderFields(): JUMap; overload; virtual;
    function getRequestProperties(): JUMap; overload; virtual;
    procedure addRequestProperty(para1: JLString; para2: JLString); overload; virtual;
    function getHeaderField(para1: JLString): JLString; overload; virtual;
    function getHeaderFieldDate(para1: JLString; para2: jlong): jlong; overload; virtual;
    function getHeaderFieldInt(para1: JLString; para2: jint): jint; overload; virtual;
    function getHeaderFieldKey(para1: jint): JLString; overload; virtual;
    function getIfModifiedSince(): jlong; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getLastModified(): jlong; overload; virtual;
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function getPermission(): JSPermission; overload; virtual;  // throws java.io.IOException
    function getRequestProperty(para1: JLString): JLString; overload; virtual;
    function getURL(): JNURL; overload; virtual;
    function getUseCaches(): jboolean; overload; virtual;
    class function guessContentTypeFromName(para1: JLString): JLString; static; overload;
    class function guessContentTypeFromStream(para1: JIInputStream): JLString; static; overload;  // throws java.io.IOException
    procedure setAllowUserInteraction(para1: jboolean); overload; virtual;
    class procedure setContentHandlerFactory(para1: JNContentHandlerFactory); static; overload;
    class procedure setDefaultAllowUserInteraction(para1: jboolean); static; overload;
    class procedure setDefaultRequestProperty(para1: JLString; para2: JLString); static; overload;
    procedure setDefaultUseCaches(para1: jboolean); overload; virtual;
    procedure setDoInput(para1: jboolean); overload; virtual;
    procedure setDoOutput(para1: jboolean); overload; virtual;
    class procedure setFileNameMap(para1: JNFileNameMap); static; overload;
    procedure setIfModifiedSince(para1: jlong); overload; virtual;
    procedure setRequestProperty(para1: JLString; para2: JLString); overload; virtual;
    procedure setUseCaches(para1: jboolean); overload; virtual;
    procedure setConnectTimeout(para1: jint); overload; virtual;
    function getConnectTimeout(): jint; overload; virtual;
    procedure setReadTimeout(para1: jint); overload; virtual;
    function getReadTimeout(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNURLDecoder = class external 'java.net' name 'URLDecoder' (JLObject)
  public
    constructor create(); overload;
    class function decode(para1: JLString): JLString; static; overload;
    class function decode(para1: JLString; para2: JLString): JLString; static; overload;  // throws java.io.UnsupportedEncodingException
  end;

  JNURLEncoder = class external 'java.net' name 'URLEncoder' (JLObject)
  public
    class function encode(para1: JLString): JLString; static; overload;
    class function encode(para1: JLString; para2: JLString): JLString; static; overload;  // throws java.io.UnsupportedEncodingException
  end;

  JNURLStreamHandler = class abstract external 'java.net' name 'URLStreamHandler' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function openConnection(para1: JNURL): JNURLConnection; overload; virtual; abstract;  // throws java.io.IOException
    function openConnection(para1: JNURL; para2: JNProxy): JNURLConnection; overload; virtual;  // throws java.io.IOException
    procedure parseURL(para1: JNURL; para2: JLString; para3: jint; para4: jint); overload; virtual;
    procedure setURL(para1: JNURL; para2: JLString; para3: JLString; para4: jint; para5: JLString; para6: JLString); overload; virtual;
    procedure setURL(para1: JNURL; para2: JLString; para3: JLString; para4: jint; para5: JLString; para6: JLString; para7: JLString; para8: JLString; para9: JLString); overload; virtual;
    function toExternalForm(para1: JNURL): JLString; overload; virtual;
    function equals(para1: JNURL; para2: JNURL): jboolean; overload; virtual;
    function getDefaultPort(): jint; overload; virtual;
    function getHostAddress(para1: JNURL): JNInetAddress; overload; virtual;
    function hashCode(para1: JNURL): jint; overload; virtual;
    function hostsEqual(para1: JNURL; para2: JNURL): jboolean; overload; virtual;
    function sameFile(para1: JNURL; para2: JNURL): jboolean; overload; virtual;
  end;

  JNURLStreamHandlerFactory = interface external 'java.net' name 'URLStreamHandlerFactory' 
    function createURLStreamHandler(para1: JLString): JNURLStreamHandler; overload;
  end;

  JNByteOrder = class sealed external 'java.nio' name 'ByteOrder' (JLObject)
  public
    final class var
      fBIG_ENDIAN: JNByteOrder; external name 'BIG_ENDIAN';
      fLITTLE_ENDIAN: JNByteOrder; external name 'LITTLE_ENDIAN';
  public
    class function nativeOrder(): JNByteOrder; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JNCChannels = class sealed external 'java.nio.channels' name 'Channels' (JLObject)
  public
    class function newInputStream(para1: JNCReadableByteChannel): JIInputStream; static; overload;
    class function newOutputStream(para1: JNCWritableByteChannel): JIOutputStream; static; overload;
    class function newChannel(para1: JIInputStream): JNCReadableByteChannel; static; overload;
    class function newChannel(para1: JIOutputStream): JNCWritableByteChannel; static; overload;
    class function newReader(para1: JNCReadableByteChannel; para2: JNCCharsetDecoder; para3: jint): JIReader; static; overload;
    class function newReader(para1: JNCReadableByteChannel; para2: JLString): JIReader; static; overload;
    class function newWriter(para1: JNCWritableByteChannel; para2: JNCCharsetEncoder; para3: jint): JIWriter; static; overload;
    class function newWriter(para1: JNCWritableByteChannel; para2: JLString): JIWriter; static; overload;
  end;

  JNCFileLock = class abstract external 'java.nio.channels' name 'FileLock' (JLObject)
  strict protected
    constructor create(para1: JNCFileChannel; para2: jlong; para3: jlong; para4: jboolean); overload;
  public
    function channel(): JNCFileChannel; overload; virtual; final;
    function position(): jlong; overload; virtual; final;
    function size(): jlong; overload; virtual; final;
    function isShared(): jboolean; overload; virtual; final;
    function overlaps(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function isValid(): jboolean; overload; virtual; abstract;
    procedure release(); overload; virtual; abstract;  // throws java.io.IOException
    function toString(): JLString; overload; virtual; final;
  end;

  JNCSelectionKey = class abstract external 'java.nio.channels' name 'SelectionKey' (JLObject)
  public
    const
      OP_ACCEPT = 16;
      OP_CONNECT = 8;
      OP_READ = 1;
      OP_WRITE = 4;
  strict protected
    constructor create(); overload;
  public
    function attach(para1: JLObject): JLObject; overload; virtual; final;
    function attachment(): JLObject; overload; virtual; final;
    procedure cancel(); overload; virtual; abstract;
    function channel(): JNCSelectableChannel; overload; virtual; abstract;
    function interestOps(): jint; overload; virtual; abstract;
    function interestOps(para1: jint): JNCSelectionKey; overload; virtual; abstract;
    function isAcceptable(): jboolean; overload; virtual; final;
    function isConnectable(): jboolean; overload; virtual; final;
    function isReadable(): jboolean; overload; virtual; final;
    function isValid(): jboolean; overload; virtual; abstract;
    function isWritable(): jboolean; overload; virtual; final;
    function readyOps(): jint; overload; virtual; abstract;
    function selector(): JNCSelector; overload; virtual; abstract;
  end;

  JNCSelector = class abstract external 'java.nio.channels' name 'Selector' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function open(): JNCSelector; static; overload;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
    function isOpen(): jboolean; overload; virtual; abstract;
    function keys(): JUSet; overload; virtual; abstract;
    function provider(): JNCSSelectorProvider; overload; virtual; abstract;
    function select(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function select(para1: jlong): jint; overload; virtual; abstract;  // throws java.io.IOException
    function selectedKeys(): JUSet; overload; virtual; abstract;
    function selectNow(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function wakeup(): JNCSelector; overload; virtual; abstract;
  end;

  JNCSSelectorProvider = class abstract external 'java.nio.channels.spi' name 'SelectorProvider' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function provider(): JNCSSelectorProvider; static; overload;
    function openDatagramChannel(): JNCDatagramChannel; overload; virtual; abstract;  // throws java.io.IOException
    function openPipe(): JNCPipe; overload; virtual; abstract;  // throws java.io.IOException
    function openSelector(): JNCSAbstractSelector; overload; virtual; abstract;  // throws java.io.IOException
    function openServerSocketChannel(): JNCServerSocketChannel; overload; virtual; abstract;  // throws java.io.IOException
    function openSocketChannel(): JNCSocketChannel; overload; virtual; abstract;  // throws java.io.IOException
    function inheritedChannel(): JNCChannel; overload; virtual;  // throws java.io.IOException
  end;

  JSAccessControlContext = class sealed external 'java.security' name 'AccessControlContext' (JLObject)
  public
    constructor create(para1: JSAccessControlContext; para2: JSDomainCombiner); overload;
    constructor create(para1: Arr1JSProtectionDomain); overload;
    constructor create(const para1: array of JSProtectionDomain); overload;
    procedure checkPermission(para1: JSPermission); overload; virtual;  // throws java.security.AccessControlException
    function getDomainCombiner(): JSDomainCombiner; overload; virtual;
  end;

  JSAccessController = class sealed external 'java.security' name 'AccessController' (JLObject)
  public
    class function doPrivileged(para1: JSPrivilegedAction): JLObject; static; overload;
    class function doPrivileged(para1: JSPrivilegedAction; para2: JSAccessControlContext): JLObject; static; overload;
    class function doPrivileged(para1: JSPrivilegedExceptionAction): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function doPrivileged(para1: JSPrivilegedExceptionAction; para2: JSAccessControlContext): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function doPrivilegedWithCombiner(para1: JSPrivilegedAction): JLObject; static; overload;
    class function doPrivilegedWithCombiner(para1: JSPrivilegedExceptionAction): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class procedure checkPermission(para1: JSPermission); static; overload;  // throws java.security.AccessControlException
    class function getContext(): JSAccessControlContext; static; overload;
  end;

  JSAlgorithmParameterGenerator = class external 'java.security' name 'AlgorithmParameterGenerator' (JLObject)
  strict protected
    constructor create(para1: JSAlgorithmParameterGeneratorSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JSAlgorithmParameterGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSAlgorithmParameterGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSAlgorithmParameterGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: jint); overload; virtual; final;
    procedure init(para1: jint; para2: JSSecureRandom); overload; virtual; final;
    procedure init(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function generateParameters(): JSAlgorithmParameters; overload; virtual; final;
  end;

  JSAlgorithmParameterGeneratorSpi = class abstract external 'java.security' name 'AlgorithmParameterGeneratorSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: jint; para2: JSSecureRandom); overload; virtual; abstract;
    procedure engineInit(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    function engineGenerateParameters(): JSAlgorithmParameters; overload; virtual; abstract;
  end;

  JSAlgorithmParameters = class external 'java.security' name 'AlgorithmParameters' (JLObject)
  strict protected
    constructor create(para1: JSAlgorithmParametersSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSAlgorithmParameters; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSAlgorithmParameters; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSAlgorithmParameters; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    procedure init(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.spec.InvalidParameterSpecException
    procedure init(para1: Arr1jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure init(var para1: array of jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure init(para1: Arr1jbyte; para2: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure init(var para1: array of jbyte; para2: JLString); overload; virtual; final;  // throws java.io.IOException
    function getParameterSpec(para1: JLClass): JSSAlgorithmParameterSpec; overload; virtual; final;  // throws java.security.spec.InvalidParameterSpecException
    function getEncoded(): Arr1jbyte; overload; virtual; final;  // throws java.io.IOException
    function getEncoded(para1: JLString): Arr1jbyte; overload; virtual; final;  // throws java.io.IOException
    function toString(): JLString; overload; virtual; final;
  end;

  JSAlgorithmParametersSpi = class abstract external 'java.security' name 'AlgorithmParametersSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSSAlgorithmParameterSpec); overload; virtual; abstract;  // throws java.security.spec.InvalidParameterSpecException
    procedure engineInit(para1: Arr1jbyte); overload; virtual; abstract;  // throws java.io.IOException
    procedure engineInit(var para1: array of jbyte); overload; virtual; abstract;  // throws java.io.IOException
    procedure engineInit(para1: Arr1jbyte; para2: JLString); overload; virtual; abstract;  // throws java.io.IOException
    procedure engineInit(var para1: array of jbyte; para2: JLString); overload; virtual; abstract;  // throws java.io.IOException
    function engineGetParameterSpec(para1: JLClass): JSSAlgorithmParameterSpec; overload; virtual; abstract;  // throws java.security.spec.InvalidParameterSpecException
    function engineGetEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.io.IOException
    function engineGetEncoded(para1: JLString): Arr1jbyte; overload; virtual; abstract;  // throws java.io.IOException
    function engineToString(): JLString; overload; virtual; abstract;
  end;

  JSCertificate = interface external 'java.security' name 'Certificate' 
    procedure decode(para1: JIInputStream); overload;  // throws java.security.KeyException, java.io.IOException
    procedure encode(para1: JIOutputStream); overload;  // throws java.security.KeyException, java.io.IOException
    function getFormat(): JLString; overload;
    function getGuarantor(): JSPrincipal; overload;
    function getPrincipal(): JSPrincipal; overload;
    function getPublicKey(): JSPublicKey; overload;
    function toString(para1: jboolean): JLString; overload;
  end;

  JSDomainCombiner = interface external 'java.security' name 'DomainCombiner' 
    function combine(para1: Arr1JSProtectionDomain; para2: Arr1JSProtectionDomain): Arr1JSProtectionDomain; overload;
    function combine(var para1: array of JSProtectionDomain; var para2: array of JSProtectionDomain): Arr1JSProtectionDomain; overload;
  end;

  JSGuard = interface external 'java.security' name 'Guard' 
    procedure checkGuard(para1: JLObject); overload;  // throws java.lang.SecurityException
  end;

  JSKeyFactory = class external 'java.security' name 'KeyFactory' (JLObject)
  strict protected
    constructor create(para1: JSKeyFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSKeyFactory; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSKeyFactory; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSKeyFactory; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function generatePublic(para1: JSSKeySpec): JSPublicKey; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function generatePrivate(para1: JSSKeySpec): JSPrivateKey; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function getKeySpec(para1: JSKey; para2: JLClass): JSSKeySpec; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function translateKey(para1: JSKey): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException
  end;

  JSKeyFactorySpi = class abstract external 'java.security' name 'KeyFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGeneratePublic(para1: JSSKeySpec): JSPublicKey; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineGeneratePrivate(para1: JSSKeySpec): JSPrivateKey; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineGetKeySpec(para1: JSKey; para2: JLClass): JSSKeySpec; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineTranslateKey(para1: JSKey): JSKey; overload; virtual; abstract;  // throws java.security.InvalidKeyException
  end;

  JSKeyPairGeneratorSpi = class abstract external 'java.security' name 'KeyPairGeneratorSpi' (JLObject)
  public
    constructor create(); overload;
    function generateKeyPair(): JSKeyPair; overload; virtual; abstract;
    procedure initialize(para1: jint; para2: JSSecureRandom); overload; virtual; abstract;
    procedure initialize(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
  end;

  JSMessageDigestSpi = class abstract external 'java.security' name 'MessageDigestSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGetDigestLength(): jint; overload; virtual;
    procedure engineUpdate(para1: jbyte); overload; virtual; abstract;
    procedure engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(para1: JNByteBuffer); overload; virtual;
    function engineDigest(): Arr1jbyte; overload; virtual; abstract;
    function engineDigest(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    function engineDigest(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    procedure engineReset(); overload; virtual; abstract;
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSPolicy = class abstract external 'java.security' name 'Policy' (JLObject)
  public
    type
      InnerParameters = interface;
      Arr1InnerParameters = array of InnerParameters;
      Arr2InnerParameters = array of Arr1InnerParameters;
      Arr3InnerParameters = array of Arr2InnerParameters;
      InnerParameters = interface external 'java.security' name 'Parameters' 
      end;

  public
    final class var
      fUNSUPPORTED_EMPTY_COLLECTION: JSPermissionCollection; external name 'UNSUPPORTED_EMPTY_COLLECTION';
  public
    constructor create(); overload;
    class function getInstance(para1: JLString; para2: JSPolicy.InnerParameters): JSPolicy; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSPolicy.InnerParameters; para3: JLString): JSPolicy; static; overload;  // throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSPolicy.InnerParameters; para3: JSProvider): JSPolicy; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getParameters(): JSPolicy.InnerParameters; overload; virtual;
    function getProvider(): JSProvider; overload; virtual;
    function getType(): JLString; overload; virtual;
    function getPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
    procedure refresh(); overload; virtual;
    function getPermissions(para1: JSProtectionDomain): JSPermissionCollection; overload; virtual;
    function implies(para1: JSProtectionDomain; para2: JSPermission): jboolean; overload; virtual;
    class function getPolicy(): JSPolicy; static; overload;
    class procedure setPolicy(para1: JSPolicy); static; overload;
  end;

  JSPolicySpi = class abstract external 'java.security' name 'PolicySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineImplies(para1: JSProtectionDomain; para2: JSPermission): jboolean; overload; virtual; abstract;
    procedure engineRefresh(); overload; virtual;
    function engineGetPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
    function engineGetPermissions(para1: JSProtectionDomain): JSPermissionCollection; overload; virtual;
  end;

  JSPrincipal = interface external 'java.security' name 'Principal' 
    function equals(para1: JLObject): jboolean; overload;
    function getName(): JLString; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JSPrivilegedAction = interface external 'java.security' name 'PrivilegedAction' 
    function run(): JLObject; overload;
  end;

  JSPrivilegedExceptionAction = interface external 'java.security' name 'PrivilegedExceptionAction' 
    function run(): JLObject; overload;  // throws java.lang.Exception
  end;

  JSProtectionDomain = class external 'java.security' name 'ProtectionDomain' (JLObject)
  public
    constructor create(para1: JSCodeSource; para2: JSPermissionCollection); overload;
    constructor create(para1: JSCodeSource; para2: JSPermissionCollection; para3: JLClassLoader; para4: Arr1JSPrincipal); overload;
    constructor create(para1: JSCodeSource; para2: JSPermissionCollection; para3: JLClassLoader; const para4: array of JSPrincipal); overload;
    function getClassLoader(): JLClassLoader; overload; virtual; final;
    function getCodeSource(): JSCodeSource; overload; virtual; final;
    function getPermissions(): JSPermissionCollection; overload; virtual; final;
    function getPrincipals(): Arr1JSPrincipal; overload; virtual; final;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSSecurity = class sealed external 'java.security' name 'Security' (JLObject)
  public
    class function getAlgorithmProperty(para1: JLString; para2: JLString): JLString; static; overload;
    class function insertProviderAt(para1: JSProvider; para2: jint): jint; static; overload;
    class function addProvider(para1: JSProvider): jint; static; overload;
    class procedure removeProvider(para1: JLString); static; overload;
    class function getProviders(): Arr1JSProvider; static; overload;
    class function getProvider(para1: JLString): JSProvider; static; overload;
    class function getProviders(para1: JLString): Arr1JSProvider; static; overload;
    class function getProviders(para1: JUMap): Arr1JSProvider; static; overload;
    class function getProperty(para1: JLString): JLString; static; overload;
    class procedure setProperty(para1: JLString; para2: JLString); static; overload;
    class function getAlgorithms(para1: JLString): JUSet; static; overload;
  end;

  JSSignatureSpi = class abstract external 'java.security' name 'SignatureSpi' (JLObject)
  strict protected
    var
      fappRandom: JSSecureRandom; external name 'appRandom';
  public
    constructor create(); overload;
  strict protected
    procedure engineInitVerify(para1: JSPublicKey); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInitSign(para1: JSPrivateKey); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInitSign(para1: JSPrivateKey; para2: JSSecureRandom); overload; virtual;  // throws java.security.InvalidKeyException
    procedure engineUpdate(para1: jbyte); overload; virtual; abstract;  // throws java.security.SignatureException
    procedure engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.security.SignatureException
    procedure engineUpdate(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.security.SignatureException
    procedure engineUpdate(para1: JNByteBuffer); overload; virtual;
    function engineSign(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.SignatureException
    function engineSign(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.SignatureException
    function engineSign(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.SignatureException
    function engineVerify(para1: Arr1jbyte): jboolean; overload; virtual; abstract;  // throws java.security.SignatureException
    function engineVerify(var para1: array of jbyte): jboolean; overload; virtual; abstract;  // throws java.security.SignatureException
    function engineVerify(para1: Arr1jbyte; para2: jint; para3: jint): jboolean; overload; virtual;  // throws java.security.SignatureException
    function engineVerify(var para1: array of jbyte; para2: jint; para3: jint): jboolean; overload; virtual;  // throws java.security.SignatureException
    procedure engineSetParameter(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws java.security.InvalidParameterException
    procedure engineSetParameter(para1: JSSAlgorithmParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetParameters(): JSAlgorithmParameters; overload; virtual;
    function engineGetParameter(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.security.InvalidParameterException
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSAOwner = interface external 'java.security.acl' name 'Owner' 
    function addOwner(para1: JSPrincipal; para2: JSPrincipal): jboolean; overload;  // throws java.security.acl.NotOwnerException
    function deleteOwner(para1: JSPrincipal; para2: JSPrincipal): jboolean; overload;  // throws java.security.acl.NotOwnerException, java.security.acl.LastOwnerException
    function isOwner(para1: JSPrincipal): jboolean; overload;
  end;

  JSAPermission = interface external 'java.security.acl' name 'Permission' 
    function equals(para1: JLObject): jboolean; overload;
    function toString(): JLString; overload;
  end;

  JSCCRL = class abstract external 'java.security.cert' name 'CRL' (JLObject)
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual; final;
    function isRevoked(para1: JSCCertificate): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual; abstract;
  end;

  JSCCertPathBuilder = class external 'java.security.cert' name 'CertPathBuilder' (JLObject)
  strict protected
    constructor create(para1: JSCCertPathBuilderSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getInstance(para1: JLString): JSCCertPathBuilder; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSCCertPathBuilder; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSCCertPathBuilder; static; overload;  // throws java.security.NoSuchAlgorithmException
    function build(para1: JSCCertPathParameters): JSCCertPathBuilderResult; overload; virtual; final;  // throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
    class function getDefaultType(): JLString; static; overload; final;
  end;

  JSCCertPathBuilderSpi = class abstract external 'java.security.cert' name 'CertPathBuilderSpi' (JLObject)
  public
    constructor create(); overload;
    function engineBuild(para1: JSCCertPathParameters): JSCCertPathBuilderResult; overload; virtual; abstract;  // throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
  end;

  JSCCertPathValidator = class external 'java.security.cert' name 'CertPathValidator' (JLObject)
  strict protected
    constructor create(para1: JSCCertPathValidatorSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getInstance(para1: JLString): JSCCertPathValidator; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSCCertPathValidator; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSCCertPathValidator; static; overload;  // throws java.security.NoSuchAlgorithmException
    function validate(para1: JSCCertPath; para2: JSCCertPathParameters): JSCCertPathValidatorResult; overload; virtual; final;  // throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException
    class function getDefaultType(): JLString; static; overload; final;
  end;

  JSCCertPathValidatorSpi = class abstract external 'java.security.cert' name 'CertPathValidatorSpi' (JLObject)
  public
    constructor create(); overload;
    function engineValidate(para1: JSCCertPath; para2: JSCCertPathParameters): JSCCertPathValidatorResult; overload; virtual; abstract;  // throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException
  end;

  JSCCertStore = class external 'java.security.cert' name 'CertStore' (JLObject)
  strict protected
    constructor create(para1: JSCCertStoreSpi; para2: JSProvider; para3: JLString; para4: JSCCertStoreParameters); overload;
  public
    class function getInstance(para1: JLString; para2: JSCCertStoreParameters): JSCCertStore; static; overload;  // throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSCCertStoreParameters; para3: JLString): JSCCertStore; static; overload;  // throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSCCertStoreParameters; para3: JSProvider): JSCCertStore; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function getType(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    function getCertStoreParameters(): JSCCertStoreParameters; overload; virtual; final;
    function getCertificates(para1: JSCCertSelector): JUCollection; overload; virtual; final;  // throws java.security.cert.CertStoreException
    function getCRLs(para1: JSCCRLSelector): JUCollection; overload; virtual; final;  // throws java.security.cert.CertStoreException
    class function getDefaultType(): JLString; static; overload; final;
  end;

  JSCCertStoreSpi = class abstract external 'java.security.cert' name 'CertStoreSpi' (JLObject)
  public
    constructor create(para1: JSCCertStoreParameters); overload;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetCertificates(para1: JSCCertSelector): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CertStoreException
    function engineGetCRLs(para1: JSCCRLSelector): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CertStoreException
  end;

  JSCCertificateFactory = class external 'java.security.cert' name 'CertificateFactory' (JLObject)
  strict protected
    constructor create(para1: JSCCertificateFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSCCertificateFactory; static; overload; final;  // throws java.security.cert.CertificateException
    class function getInstance(para1: JLString; para2: JLString): JSCCertificateFactory; static; overload; final;  // throws java.security.cert.CertificateException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSCCertificateFactory; static; overload; final;  // throws java.security.cert.CertificateException
    function getProvider(): JSProvider; overload; virtual; final;
    function getType(): JLString; overload; virtual; final;
    function generateCertificate(para1: JIInputStream): JSCCertificate; overload; virtual; final;  // throws java.security.cert.CertificateException
    function getCertPathEncodings(): JUIterator; overload; virtual; final;
    function generateCertPath(para1: JIInputStream): JSCCertPath; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCertPath(para1: JIInputStream; para2: JLString): JSCCertPath; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCertPath(para1: JUList): JSCCertPath; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCertificates(para1: JIInputStream): JUCollection; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCRL(para1: JIInputStream): JSCCRL; overload; virtual; final;  // throws java.security.cert.CRLException
    function generateCRLs(para1: JIInputStream): JUCollection; overload; virtual; final;  // throws java.security.cert.CRLException
  end;

  JSCCertificateFactorySpi = class abstract external 'java.security.cert' name 'CertificateFactorySpi' (JLObject)
  public
    constructor create(); overload;
    function engineGenerateCertificate(para1: JIInputStream): JSCCertificate; overload; virtual; abstract;  // throws java.security.cert.CertificateException
    function engineGenerateCertificates(para1: JIInputStream): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CertificateException
    function engineGenerateCRL(para1: JIInputStream): JSCCRL; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function engineGenerateCRLs(para1: JIInputStream): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function engineGenerateCertPath(para1: JIInputStream): JSCCertPath; overload; virtual;  // throws java.security.cert.CertificateException
    function engineGenerateCertPath(para1: JIInputStream; para2: JLString): JSCCertPath; overload; virtual;  // throws java.security.cert.CertificateException
    function engineGenerateCertPath(para1: JUList): JSCCertPath; overload; virtual;  // throws java.security.cert.CertificateException
    function engineGetCertPathEncodings(): JUIterator; overload; virtual;
  end;

  JSCPolicyNode = interface external 'java.security.cert' name 'PolicyNode' 
    function getChildren(): JUIterator; overload;
    function getDepth(): jint; overload;
    function getExpectedPolicies(): JUSet; overload;
    function getParent(): JSCPolicyNode; overload;
    function getPolicyQualifiers(): JUSet; overload;
    function getValidPolicy(): JLString; overload;
    function isCritical(): jboolean; overload;
  end;

  JSCPolicyQualifierInfo = class external 'java.security.cert' name 'PolicyQualifierInfo' (JLObject)
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.io.IOException
    constructor create(const para1: array of jbyte); overload;  // throws java.io.IOException
    function getEncoded(): Arr1jbyte; overload; virtual; final;
    function getPolicyQualifierId(): JLString; overload; virtual; final;
    function getPolicyQualifier(): Arr1jbyte; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSCTrustAnchor = class external 'java.security.cert' name 'TrustAnchor' (JLObject)
  public
    constructor create(para1: JSCX509Certificate; para2: Arr1jbyte); overload;
    constructor create(para1: JSCX509Certificate; const para2: array of jbyte); overload;
    constructor create(para1: JLString; para2: JSPublicKey; para3: Arr1jbyte); overload;
    constructor create(para1: JLString; para2: JSPublicKey; const para3: array of jbyte); overload;
    constructor create(para1: JSAXX500Principal; para2: JSPublicKey; para3: Arr1jbyte); overload;
    constructor create(para1: JSAXX500Principal; para2: JSPublicKey; const para3: array of jbyte); overload;
    function getNameConstraints(): Arr1jbyte; overload; virtual; final;
    function getTrustedCert(): JSCX509Certificate; overload; virtual; final;
    function getCA(): JSAXX500Principal; overload; virtual; final;
    function getCAName(): JLString; overload; virtual; final;
    function getCAPublicKey(): JSPublicKey; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSCX509Extension = interface external 'java.security.cert' name 'X509Extension' 
    function getCriticalExtensionOIDs(): JUSet; overload;
    function getExtensionValue(para1: JLString): Arr1jbyte; overload;
    function getNonCriticalExtensionOIDs(): JUSet; overload;
    function hasUnsupportedCriticalExtension(): jboolean; overload;
  end;

  JSIDSAKey = interface external 'java.security.interfaces' name 'DSAKey' 
    function getParams(): JSIDSAParams; overload;
  end;

  JSIDSAKeyPairGenerator = interface external 'java.security.interfaces' name 'DSAKeyPairGenerator' 
    procedure initialize(para1: JSIDSAParams; para2: JSSecureRandom); overload;  // throws java.security.InvalidParameterException
    procedure initialize(para1: jint; para2: jboolean; para3: JSSecureRandom); overload;  // throws java.security.InvalidParameterException
  end;

  JSIDSAParams = interface external 'java.security.interfaces' name 'DSAParams' 
    function getG(): JMBigInteger; overload;
    function getP(): JMBigInteger; overload;
    function getQ(): JMBigInteger; overload;
  end;

  JSIECKey = interface external 'java.security.interfaces' name 'ECKey' 
    function getParams(): JSSECParameterSpec; overload;
  end;

  JSIRSAKey = interface external 'java.security.interfaces' name 'RSAKey' 
    function getModulus(): JMBigInteger; overload;
  end;

  JSSAlgorithmParameterSpec = interface external 'java.security.spec' name 'AlgorithmParameterSpec' 
  end;

  JSSECField = interface external 'java.security.spec' name 'ECField' 
    function getFieldSize(): jint; overload;
  end;

  JSSECPoint = class external 'java.security.spec' name 'ECPoint' (JLObject)
  public
    final class var
      fPOINT_INFINITY: JSSECPoint; external name 'POINT_INFINITY';
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    function getAffineX(): JMBigInteger; overload; virtual;
    function getAffineY(): JMBigInteger; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSEllipticCurve = class external 'java.security.spec' name 'EllipticCurve' (JLObject)
  public
    constructor create(para1: JSSECField; para2: JMBigInteger; para3: JMBigInteger; para4: Arr1jbyte); overload;
    constructor create(para1: JSSECField; para2: JMBigInteger; para3: JMBigInteger; const para4: array of jbyte); overload;
    constructor create(para1: JSSECField; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getA(): JMBigInteger; overload; virtual;
    function getB(): JMBigInteger; overload; virtual;
    function getField(): JSSECField; overload; virtual;
    function getSeed(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSKeySpec = interface external 'java.security.spec' name 'KeySpec' 
  end;

  JSSRSAOtherPrimeInfo = class external 'java.security.spec' name 'RSAOtherPrimeInfo' (JLObject)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getCrtCoefficient(): JMBigInteger; overload; virtual; final;
    function getPrime(): JMBigInteger; overload; virtual; final;
    function getExponent(): JMBigInteger; overload; virtual; final;
  end;

  JSArray = interface external 'java.sql' name 'Array' 
    function getArray(): JLObject; overload;  // throws java.sql.SQLException
    function getArray(para1: jlong; para2: jint): JLObject; overload;  // throws java.sql.SQLException
    function getArray(para1: jlong; para2: jint; para3: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getArray(para1: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getBaseType(): jint; overload;  // throws java.sql.SQLException
    function getBaseTypeName(): JLString; overload;  // throws java.sql.SQLException
    function getResultSet(): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSet(para1: jlong; para2: jint): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSet(para1: jlong; para2: jint; para3: JUMap): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSet(para1: JUMap): JSResultSet; overload;  // throws java.sql.SQLException
    procedure free(); overload;  // throws java.sql.SQLException
  end;

  JSBlob = interface external 'java.sql' name 'Blob' 
    function getBinaryStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function getBinaryStream(para1: jlong; para2: jlong): JIInputStream; overload;  // throws java.sql.SQLException
    function getBytes(para1: jlong; para2: jint): Arr1jbyte; overload;  // throws java.sql.SQLException
    function length(): jlong; overload;  // throws java.sql.SQLException
    function position(para1: JSBlob; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function position(para1: Arr1jbyte; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function position(var para1: array of jbyte; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function setBinaryStream(para1: jlong): JIOutputStream; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; para2: Arr1jbyte): jint; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; var para2: array of jbyte): jint; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; para2: Arr1jbyte; para3: jint; para4: jint): jint; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; var para2: array of jbyte; para3: jint; para4: jint): jint; overload;  // throws java.sql.SQLException
    procedure truncate(para1: jlong); overload;  // throws java.sql.SQLException
    procedure free(); overload;  // throws java.sql.SQLException
  end;

  JSClob = interface external 'java.sql' name 'Clob' 
    function getAsciiStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function getCharacterStream(): JIReader; overload;  // throws java.sql.SQLException
    function getSubString(para1: jlong; para2: jint): JLString; overload;  // throws java.sql.SQLException
    function length(): jlong; overload;  // throws java.sql.SQLException
    function position(para1: JSClob; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function position(para1: JLString; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function setAsciiStream(para1: jlong): JIOutputStream; overload;  // throws java.sql.SQLException
    function setCharacterStream(para1: jlong): JIWriter; overload;  // throws java.sql.SQLException
    function setString(para1: jlong; para2: JLString): jint; overload;  // throws java.sql.SQLException
    function setString(para1: jlong; para2: JLString; para3: jint; para4: jint): jint; overload;  // throws java.sql.SQLException
    procedure truncate(para1: jlong); overload;  // throws java.sql.SQLException
    procedure free(); overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: jlong; para2: jlong): JIReader; overload;  // throws java.sql.SQLException
  end;

  JSDriver = interface external 'java.sql' name 'Driver' 
    function acceptsURL(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function connect(para1: JLString; para2: JUProperties): JSConnection; overload;  // throws java.sql.SQLException
    function getMajorVersion(): jint; overload;
    function getMinorVersion(): jint; overload;
    function getPropertyInfo(para1: JLString; para2: JUProperties): Arr1JSDriverPropertyInfo; overload;  // throws java.sql.SQLException
    function jdbcCompliant(): jboolean; overload;
  end;

  JSDriverManager = class external 'java.sql' name 'DriverManager' (JLObject)
  public
    class procedure deregisterDriver(para1: JSDriver); static; overload;  // throws java.sql.SQLException
    class function getConnection(para1: JLString): JSConnection; static; overload;  // throws java.sql.SQLException
    class function getConnection(para1: JLString; para2: JUProperties): JSConnection; static; overload;  // throws java.sql.SQLException
    class function getConnection(para1: JLString; para2: JLString; para3: JLString): JSConnection; static; overload;  // throws java.sql.SQLException
    class function getDriver(para1: JLString): JSDriver; static; overload;  // throws java.sql.SQLException
    class function getDrivers(): JUEnumeration; static; overload;
    class function getLoginTimeout(): jint; static; overload;
    class function getLogStream(): JIPrintStream; static; overload;
    class function getLogWriter(): JIPrintWriter; static; overload;
    class procedure println(para1: JLString); static; overload;
    class procedure registerDriver(para1: JSDriver); static; overload;  // throws java.sql.SQLException
    class procedure setLoginTimeout(para1: jint); static; overload;
    class procedure setLogStream(para1: JIPrintStream); static; overload;
    class procedure setLogWriter(para1: JIPrintWriter); static; overload;
  end;

  JSDriverPropertyInfo = class external 'java.sql' name 'DriverPropertyInfo' (JLObject)
  public
    var
      fchoices: Arr1JLString; external name 'choices';
      fdescription: JLString; external name 'description';
      fname: JLString; external name 'name';
      frequired: jboolean; external name 'required';
      fvalue: JLString; external name 'value';
  public
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSRef = interface external 'java.sql' name 'Ref' 
    function getBaseTypeName(): JLString; overload;  // throws java.sql.SQLException
    function getObject(): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: JUMap): JLObject; overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLObject); overload;  // throws java.sql.SQLException
  end;

  JSRowId = interface external 'java.sql' name 'RowId' 
    function equals(para1: JLObject): jboolean; overload;
    function getBytes(): Arr1jbyte; overload;
    function toString(): JLString; overload;
    function hashCode(): jint; overload;
  end;

  JSSQLData = interface external 'java.sql' name 'SQLData' 
    function getSQLTypeName(): JLString; overload;  // throws java.sql.SQLException
    procedure readSQL(para1: JSSQLInput; para2: JLString); overload;  // throws java.sql.SQLException
    procedure writeSQL(para1: JSSQLOutput); overload;  // throws java.sql.SQLException
  end;

  JSSQLInput = interface external 'java.sql' name 'SQLInput' 
    function readString(): JLString; overload;  // throws java.sql.SQLException
    function readBoolean(): jboolean; overload;  // throws java.sql.SQLException
    function readByte(): jbyte; overload;  // throws java.sql.SQLException
    function readShort(): jshort; overload;  // throws java.sql.SQLException
    function readInt(): jint; overload;  // throws java.sql.SQLException
    function readLong(): jlong; overload;  // throws java.sql.SQLException
    function readFloat(): jfloat; overload;  // throws java.sql.SQLException
    function readDouble(): jdouble; overload;  // throws java.sql.SQLException
    function readBigDecimal(): JMBigDecimal; overload;  // throws java.sql.SQLException
    function readBytes(): Arr1jbyte; overload;  // throws java.sql.SQLException
    function readDate(): JSDate; overload;  // throws java.sql.SQLException
    function readTime(): JSTime; overload;  // throws java.sql.SQLException
    function readTimestamp(): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function readCharacterStream(): JIReader; overload;  // throws java.sql.SQLException
    function readAsciiStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function readBinaryStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function readObject(): JLObject; overload;  // throws java.sql.SQLException
    function readRef(): JSRef; overload;  // throws java.sql.SQLException
    function readBlob(): JSBlob; overload;  // throws java.sql.SQLException
    function readClob(): JSClob; overload;  // throws java.sql.SQLException
    function readArray(): JSArray; overload;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload;  // throws java.sql.SQLException
    function readURL(): JNURL; overload;  // throws java.sql.SQLException
    function readNClob(): JSNClob; overload;  // throws java.sql.SQLException
    function readNString(): JLString; overload;  // throws java.sql.SQLException
    function readSQLXML(): JSSQLXML; overload;  // throws java.sql.SQLException
    function readRowId(): JSRowId; overload;  // throws java.sql.SQLException
  end;

  JSSQLOutput = interface external 'java.sql' name 'SQLOutput' 
    procedure writeString(para1: JLString); overload;  // throws java.sql.SQLException
    procedure writeBoolean(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure writeByte(para1: jbyte); overload;  // throws java.sql.SQLException
    procedure writeShort(para1: jshort); overload;  // throws java.sql.SQLException
    procedure writeInt(para1: jint); overload;  // throws java.sql.SQLException
    procedure writeLong(para1: jlong); overload;  // throws java.sql.SQLException
    procedure writeFloat(para1: jfloat); overload;  // throws java.sql.SQLException
    procedure writeDouble(para1: jdouble); overload;  // throws java.sql.SQLException
    procedure writeBigDecimal(para1: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure writeBytes(para1: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure writeBytes(var para1: array of jbyte); overload;  // throws java.sql.SQLException
    procedure writeDate(para1: JSDate); overload;  // throws java.sql.SQLException
    procedure writeTime(para1: JSTime); overload;  // throws java.sql.SQLException
    procedure writeTimestamp(para1: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure writeCharacterStream(para1: JIReader); overload;  // throws java.sql.SQLException
    procedure writeAsciiStream(para1: JIInputStream); overload;  // throws java.sql.SQLException
    procedure writeBinaryStream(para1: JIInputStream); overload;  // throws java.sql.SQLException
    procedure writeObject(para1: JSSQLData); overload;  // throws java.sql.SQLException
    procedure writeRef(para1: JSRef); overload;  // throws java.sql.SQLException
    procedure writeBlob(para1: JSBlob); overload;  // throws java.sql.SQLException
    procedure writeClob(para1: JSClob); overload;  // throws java.sql.SQLException
    procedure writeStruct(para1: JSStruct); overload;  // throws java.sql.SQLException
    procedure writeArray(para1: JSArray); overload;  // throws java.sql.SQLException
    procedure writeURL(para1: JNURL); overload;  // throws java.sql.SQLException
    procedure writeNString(para1: JLString); overload;  // throws java.sql.SQLException
    procedure writeNClob(para1: JSNClob); overload;  // throws java.sql.SQLException
    procedure writeRowId(para1: JSRowId); overload;  // throws java.sql.SQLException
    procedure writeSQLXML(para1: JSSQLXML); overload;  // throws java.sql.SQLException
  end;

  JSSQLXML = interface external 'java.sql' name 'SQLXML' 
    procedure free(); overload;  // throws java.sql.SQLException
    function getBinaryStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function setBinaryStream(): JIOutputStream; overload;  // throws java.sql.SQLException
    function getCharacterStream(): JIReader; overload;  // throws java.sql.SQLException
    function setCharacterStream(): JIWriter; overload;  // throws java.sql.SQLException
    function getString(): JLString; overload;  // throws java.sql.SQLException
    procedure setString(para1: JLString); overload;  // throws java.sql.SQLException
    function getSource(para1: JLClass): JXTSource; overload;  // throws java.sql.SQLException
    function setResult(para1: JLClass): JXTResult; overload;  // throws java.sql.SQLException
  end;

  JSSavepoint = interface external 'java.sql' name 'Savepoint' 
    function getSavepointId(): jint; overload;  // throws java.sql.SQLException
    function getSavepointName(): JLString; overload;  // throws java.sql.SQLException
  end;

  JSStruct = interface external 'java.sql' name 'Struct' 
    function getSQLTypeName(): JLString; overload;  // throws java.sql.SQLException
    function getAttributes(): Arr1JLObject; overload;  // throws java.sql.SQLException
    function getAttributes(para1: JUMap): Arr1JLObject; overload;  // throws java.sql.SQLException
  end;

  JSTypes = class external 'java.sql' name 'Types' (JLObject)
  public
    const
      &ARRAY = 2003;
      BIGINT = -5;
      BINARY = -2;
      BIT = -7;
      BLOB = 2004;
      BOOLEAN = 16;
      CHAR = 1;
      CLOB = 2005;
      DATALINK = 70;
      DATE = 91;
      DECIMAL = 3;
      DISTINCT = 2001;
      DOUBLE = 8;
      FLOAT = 6;
      INTEGER = 4;
      JAVA_OBJECT = 2000;
      LONGVARBINARY = -4;
      LONGVARCHAR = -1;
      NULL = 0;
      NUMERIC = 2;
      OTHER = 1111;
      REAL = 7;
      REF = 2006;
      SMALLINT = 5;
      STRUCT = 2002;
      TIME = 92;
      TIMESTAMP = 93;
      TINYINT = -6;
      VARBINARY = -3;
      VARCHAR = 12;
      ROWID = -8;
      NCHAR = -15;
      NVARCHAR = -9;
      LONGNVARCHAR = -16;
      NCLOB = 2011;
      SQLXML = 2009;
  end;

  JSWrapper = interface external 'java.sql' name 'Wrapper' 
    function unwrap(para1: JLClass): JLObject; overload;  // throws java.sql.SQLException
    function isWrapperFor(para1: JLClass): jboolean; overload;  // throws java.sql.SQLException
  end;

  JTAnnotation = class external 'java.text' name 'Annotation' (JLObject)
  public
    constructor create(para1: JLObject); overload;
    function getValue(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTBidi = class sealed external 'java.text' name 'Bidi' (JLObject)
  public
    const
      DIRECTION_DEFAULT_LEFT_TO_RIGHT = -2;
      DIRECTION_DEFAULT_RIGHT_TO_LEFT = -1;
      DIRECTION_LEFT_TO_RIGHT = 0;
      DIRECTION_RIGHT_TO_LEFT = 1;
  public
    constructor create(para1: JTAttributedCharacterIterator); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: Arr1jbyte; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; const para3: array of jbyte; para4: jint; para5: jint; para6: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    function baseIsLeftToRight(): jboolean; overload; virtual;
    function createLineBidi(para1: jint; para2: jint): JTBidi; overload; virtual;
    function getBaseLevel(): jint; overload; virtual;
    function getLength(): jint; overload; virtual;
    function getLevelAt(para1: jint): jint; overload; virtual;
    function getRunCount(): jint; overload; virtual;
    function getRunLevel(para1: jint): jint; overload; virtual;
    function getRunLimit(para1: jint): jint; overload; virtual;
    function getRunStart(para1: jint): jint; overload; virtual;
    function isLeftToRight(): jboolean; overload; virtual;
    function isMixed(): jboolean; overload; virtual;
    function isRightToLeft(): jboolean; overload; virtual;
    class procedure reorderVisually(para1: Arr1jbyte; para2: jint; para3: Arr1JLObject; para4: jint; para5: jint); static; overload;
    class procedure reorderVisually(var para1: array of jbyte; para2: jint; var para3: array of JLObject; para4: jint; para5: jint); static; overload;
    class function requiresBidi(para1: Arr1jchar; para2: jint; para3: jint): jboolean; static; overload;
    class function requiresBidi(var para1: array of jchar; para2: jint; para3: jint): jboolean; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JTCollationElementIterator = class sealed external 'java.text' name 'CollationElementIterator' (JLObject)
  public
    const
      NULLORDER = -1;
  public
    function getMaxExpansion(para1: jint): jint; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function next(): jint; overload; virtual;
    function previous(): jint; overload; virtual;
    class function primaryOrder(para1: jint): jint; static; overload; final;
    procedure reset(); overload; virtual;
    class function secondaryOrder(para1: jint): jshort; static; overload; final;
    procedure setOffset(para1: jint); overload; virtual;
    procedure setText(para1: JTCharacterIterator); overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    class function tertiaryOrder(para1: jint): jshort; static; overload; final;
  end;

  JTParsePosition = class external 'java.text' name 'ParsePosition' (JLObject)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getErrorIndex(): jint; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure setErrorIndex(para1: jint); overload; virtual;
    procedure setIndex(para1: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUCollections = class external 'java.util' name 'Collections' (JLObject)
  public
    final class var
      fEMPTY_LIST: JUList; external name 'EMPTY_LIST';
      fEMPTY_SET: JUSet; external name 'EMPTY_SET';
      fEMPTY_MAP: JUMap; external name 'EMPTY_MAP';
  public
    class function binarySearch(para1: JUList; para2: JLObject): jint; static; overload;
    class function binarySearch(para1: JUList; para2: JLObject; para3: JUComparator): jint; static; overload;
    class procedure copy(para1: JUList; para2: JUList); static; overload;
    class function enumeration(para1: JUCollection): JUEnumeration; static; overload;
    class procedure fill(para1: JUList; para2: JLObject); static; overload;
    class function max(para1: JUCollection): JLObject; static; overload;
    class function max(para1: JUCollection; para2: JUComparator): JLObject; static; overload;
    class function min(para1: JUCollection): JLObject; static; overload;
    class function min(para1: JUCollection; para2: JUComparator): JLObject; static; overload;
    class function nCopies(para1: jint; para2: JLObject): JUList; static; overload;
    class procedure reverse(para1: JUList); static; overload;
    class function reverseOrder(): JUComparator; static; overload;
    class function reverseOrder(para1: JUComparator): JUComparator; static; overload;
    class procedure shuffle(para1: JUList); static; overload;
    class procedure shuffle(para1: JUList; para2: JURandom); static; overload;
    class function singleton(para1: JLObject): JUSet; static; overload;
    class function singletonList(para1: JLObject): JUList; static; overload;
    class function singletonMap(para1: JLObject; para2: JLObject): JUMap; static; overload;
    class procedure sort(para1: JUList); static; overload;
    class procedure sort(para1: JUList; para2: JUComparator); static; overload;
    class procedure swap(para1: JUList; para2: jint; para3: jint); static; overload;
    class function replaceAll(para1: JUList; para2: JLObject; para3: JLObject): jboolean; static; overload;
    class procedure rotate(para1: JUList; para2: jint); static; overload;
    class function indexOfSubList(para1: JUList; para2: JUList): jint; static; overload;
    class function lastIndexOfSubList(para1: JUList; para2: JUList): jint; static; overload;
    class function list(para1: JUEnumeration): JUArrayList; static; overload;
    class function synchronizedCollection(para1: JUCollection): JUCollection; static; overload;
    class function synchronizedList(para1: JUList): JUList; static; overload;
    class function synchronizedMap(para1: JUMap): JUMap; static; overload;
    class function synchronizedSet(para1: JUSet): JUSet; static; overload;
    class function synchronizedSortedMap(para1: JUSortedMap): JUSortedMap; static; overload;
    class function synchronizedSortedSet(para1: JUSortedSet): JUSortedSet; static; overload;
    class function unmodifiableCollection(para1: JUCollection): JUCollection; static; overload;
    class function unmodifiableList(para1: JUList): JUList; static; overload;
    class function unmodifiableMap(para1: JUMap): JUMap; static; overload;
    class function unmodifiableSet(para1: JUSet): JUSet; static; overload;
    class function unmodifiableSortedMap(para1: JUSortedMap): JUSortedMap; static; overload;
    class function unmodifiableSortedSet(para1: JUSortedSet): JUSortedSet; static; overload;
    class function frequency(para1: JUCollection; para2: JLObject): jint; static; overload;
    class function emptyList(): JUList; static; overload; final;
    class function emptySet(): JUSet; static; overload; final;
    class function emptyMap(): JUMap; static; overload; final;
    class function checkedCollection(para1: JUCollection; para2: JLClass): JUCollection; static; overload;
    class function checkedMap(para1: JUMap; para2: JLClass; para3: JLClass): JUMap; static; overload;
    class function checkedList(para1: JUList; para2: JLClass): JUList; static; overload;
    class function checkedSet(para1: JUSet; para2: JLClass): JUSet; static; overload;
    class function checkedSortedMap(para1: JUSortedMap; para2: JLClass; para3: JLClass): JUSortedMap; static; overload;
    class function checkedSortedSet(para1: JUSortedSet; para2: JLClass): JUSortedSet; static; overload;
    class function addAll(para1: JUCollection; para2: Arr1JLObject): jboolean; static; overload;
    class function addAll(para1: JUCollection; const para2: array of JLObject): jboolean; static; overload;
    class function disjoint(para1: JUCollection; para2: JUCollection): jboolean; static; overload;
    class function newSetFromMap(para1: JUMap): JUSet; static; overload;
    class function asLifoQueue(para1: JUDeque): JUQueue; static; overload;
  end;

  JUDictionary = class abstract external 'java.util' name 'Dictionary' (JLObject)
  public
    constructor create(); overload;
    function elements(): JUEnumeration; overload; virtual; abstract;
    function get(para1: JLObject): JLObject; overload; virtual; abstract;
    function isEmpty(): jboolean; overload; virtual; abstract;
    function keys(): JUEnumeration; overload; virtual; abstract;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual; abstract;
    function remove(para1: JLObject): JLObject; overload; virtual; abstract;
    function size(): jint; overload; virtual; abstract;
  end;

  JUEnumeration = interface external 'java.util' name 'Enumeration' 
    function hasMoreElements(): jboolean; overload;
    function nextElement(): JLObject; overload;
  end;

  JUEventListener = interface external 'java.util' name 'EventListener' 
  end;

  JUFormattable = interface external 'java.util' name 'Formattable' 
    procedure formatTo(para1: JUFormatter; para2: jint; para3: jint; para4: jint); overload;  // throws java.util.IllegalFormatException
  end;

  JUFormattableFlags = class external 'java.util' name 'FormattableFlags' (JLObject)
  public
    const
      LEFT_JUSTIFY = 1;
      UPPERCASE = 2;
      ALTERNATE = 4;
  end;

  JUObservable = class external 'java.util' name 'Observable' (JLObject)
  public
    constructor create(); overload;
    procedure addObserver(para1: JUObserver); overload; virtual;
  strict protected
    procedure clearChanged(); overload; virtual;
  public
    function countObservers(): jint; overload; virtual;
    procedure deleteObserver(para1: JUObserver); overload; virtual;
    procedure deleteObservers(); overload; virtual;
    function hasChanged(): jboolean; overload; virtual;
    procedure notifyObservers(); overload; virtual;
    procedure notifyObservers(para1: JLObject); overload; virtual;
  strict protected
    procedure setChanged(); overload; virtual;
  end;

  JUObserver = interface external 'java.util' name 'Observer' 
    procedure update(para1: JUObservable; para2: JLObject); overload;
  end;

  JURandomAccess = interface external 'java.util' name 'RandomAccess' 
  end;

  JUResourceBundle = class abstract external 'java.util' name 'ResourceBundle' (JLObject)
  public
    type
      InnerControl = class;
      Arr1InnerControl = array of InnerControl;
      Arr2InnerControl = array of Arr1InnerControl;
      Arr3InnerControl = array of Arr2InnerControl;
      InnerControl = class external 'java.util' name 'Control' (JLObject)
      public
        final class var
          fFORMAT_DEFAULT: JUList; external name 'FORMAT_DEFAULT';
          fFORMAT_CLASS: JUList; external name 'FORMAT_CLASS';
          fFORMAT_PROPERTIES: JUList; external name 'FORMAT_PROPERTIES';
      public
        const
          TTL_DONT_CACHE = jlong(-1);
          TTL_NO_EXPIRATION_CONTROL = jlong(-2);
      strict protected
        constructor create(); overload;
      public
        class function getControl(para1: JUList): JUResourceBundle.InnerControl; static; overload;
        class function getNoFallbackControl(para1: JUList): JUResourceBundle.InnerControl; static; overload;
        function getCandidateLocales(para1: JLString; para2: JULocale): JUList; overload; virtual;
        function getFormats(para1: JLString): JUList; overload; virtual;
        function getFallbackLocale(para1: JLString; para2: JULocale): JULocale; overload; virtual;
        function newBundle(para1: JLString; para2: JULocale; para3: JLString; para4: JLClassLoader; para5: jboolean): JUResourceBundle; overload; virtual;  // throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.io.IOException
        function getTimeToLive(para1: JLString; para2: JULocale): jlong; overload; virtual;
        function needsReload(para1: JLString; para2: JULocale; para3: JLString; para4: JLClassLoader; para5: JUResourceBundle; para6: jlong): jboolean; overload; virtual;
        function toBundleName(para1: JLString; para2: JULocale): JLString; overload; virtual;
        function toResourceName(para1: JLString; para2: JLString): JLString; overload; virtual; final;
      end;

  strict protected
    var
      fparent: JUResourceBundle; external name 'parent';
  public
    constructor create(); overload;
    class function getBundle(para1: JLString): JUResourceBundle; static; overload;  // throws java.util.MissingResourceException
    class function getBundle(para1: JLString; para2: JULocale): JUResourceBundle; static; overload;
    class function getBundle(para1: JLString; para2: JULocale; para3: JLClassLoader): JUResourceBundle; static; overload;  // throws java.util.MissingResourceException
    class function getBundle(para1: JLString; para2: JUResourceBundle.InnerControl): JUResourceBundle; static; overload;
    class function getBundle(para1: JLString; para2: JULocale; para3: JUResourceBundle.InnerControl): JUResourceBundle; static; overload;
    class function getBundle(para1: JLString; para2: JULocale; para3: JLClassLoader; para4: JUResourceBundle.InnerControl): JUResourceBundle; static; overload;
    function getKeys(): JUEnumeration; overload; virtual; abstract;
    function getLocale(): JULocale; overload; virtual;
    function getObject(para1: JLString): JLObject; overload; virtual; final;
    function getString(para1: JLString): JLString; overload; virtual; final;
    function getStringArray(para1: JLString): Arr1JLString; overload; virtual; final;
  strict protected
    function handleGetObject(para1: JLString): JLObject; overload; virtual; abstract;
    procedure setParent(para1: JUResourceBundle); overload; virtual;
  public
    class procedure clearCache(); static; overload;
    class procedure clearCache(para1: JLClassLoader); static; overload;
    function containsKey(para1: JLString): jboolean; overload; virtual;
    function keySet(): JUSet; overload; virtual;
  strict protected
    function handleKeySet(): JUSet; overload; virtual;
  end;

  JUTimer = class external 'java.util' name 'Timer' (JLObject)
  public
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jboolean); overload;
    constructor create(); overload;
    procedure cancel(); overload; virtual;
    function purge(): jint; overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: JUDate); overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: jlong); overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: jlong; para3: jlong); overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: JUDate; para3: jlong); overload; virtual;
    procedure scheduleAtFixedRate(para1: JUTimerTask; para2: jlong; para3: jlong); overload; virtual;
    procedure scheduleAtFixedRate(para1: JUTimerTask; para2: JUDate; para3: jlong); overload; virtual;
  end;

  JUCCallable = interface external 'java.util.concurrent' name 'Callable' 
    function call(): JLObject; overload;  // throws java.lang.Exception
  end;

  JUCCompletionService = interface external 'java.util.concurrent' name 'CompletionService' 
    function submit(para1: JUCCallable): JUCFuture; overload;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload;
    function take(): JUCFuture; overload;  // throws java.lang.InterruptedException
    function poll(): JUCFuture; overload;
    function poll(para1: jlong; para2: JUCTimeUnit): JUCFuture; overload;  // throws java.lang.InterruptedException
  end;

  JUCCountDownLatch = class external 'java.util.concurrent' name 'CountDownLatch' (JLObject)
  public
    constructor create(para1: jint); overload;
    procedure await(); overload; virtual;  // throws java.lang.InterruptedException
    function await(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure countDown(); overload; virtual;
    function getCount(): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUCCyclicBarrier = class external 'java.util.concurrent' name 'CyclicBarrier' (JLObject)
  public
    constructor create(para1: jint; para2: JLRunnable); overload;
    constructor create(para1: jint); overload;
    function getParties(): jint; overload; virtual;
    function await(): jint; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.BrokenBarrierException
    function await(para1: jlong; para2: JUCTimeUnit): jint; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.BrokenBarrierException, java.util.concurrent.TimeoutException
    function isBroken(): jboolean; overload; virtual;
    procedure reset(); overload; virtual;
    function getNumberWaiting(): jint; overload; virtual;
  end;

  JUCExchanger = class external 'java.util.concurrent' name 'Exchanger' (JLObject)
  public
    constructor create(); overload;
    function exchange(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function exchange(para1: JLObject; para2: jlong; para3: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
  end;

  JUCExecutor = interface external 'java.util.concurrent' name 'Executor' 
    procedure execute(para1: JLRunnable); overload;
  end;

  JUCExecutors = class external 'java.util.concurrent' name 'Executors' (JLObject)
  public
    class function newFixedThreadPool(para1: jint): JUCExecutorService; static; overload;
    class function newFixedThreadPool(para1: jint; para2: JUCThreadFactory): JUCExecutorService; static; overload;
    class function newSingleThreadExecutor(): JUCExecutorService; static; overload;
    class function newSingleThreadExecutor(para1: JUCThreadFactory): JUCExecutorService; static; overload;
    class function newCachedThreadPool(): JUCExecutorService; static; overload;
    class function newCachedThreadPool(para1: JUCThreadFactory): JUCExecutorService; static; overload;
    class function newSingleThreadScheduledExecutor(): JUCScheduledExecutorService; static; overload;
    class function newSingleThreadScheduledExecutor(para1: JUCThreadFactory): JUCScheduledExecutorService; static; overload;
    class function newScheduledThreadPool(para1: jint): JUCScheduledExecutorService; static; overload;
    class function newScheduledThreadPool(para1: jint; para2: JUCThreadFactory): JUCScheduledExecutorService; static; overload;
    class function unconfigurableExecutorService(para1: JUCExecutorService): JUCExecutorService; static; overload;
    class function unconfigurableScheduledExecutorService(para1: JUCScheduledExecutorService): JUCScheduledExecutorService; static; overload;
    class function defaultThreadFactory(): JUCThreadFactory; static; overload;
    class function privilegedThreadFactory(): JUCThreadFactory; static; overload;
    class function callable(para1: JLRunnable; para2: JLObject): JUCCallable; static; overload;
    class function callable(para1: JLRunnable): JUCCallable; static; overload;
    class function callable(para1: JSPrivilegedAction): JUCCallable; static; overload;
    class function callable(para1: JSPrivilegedExceptionAction): JUCCallable; static; overload;
    class function privilegedCallable(para1: JUCCallable): JUCCallable; static; overload;
    class function privilegedCallableUsingCurrentClassLoader(para1: JUCCallable): JUCCallable; static; overload;
  end;

  JUCFuture = interface external 'java.util.concurrent' name 'Future' 
    function cancel(para1: jboolean): jboolean; overload;
    function isCancelled(): jboolean; overload;
    function isDone(): jboolean; overload;
    function get(): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function get(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
  end;

  JUCRejectedExecutionHandler = interface external 'java.util.concurrent' name 'RejectedExecutionHandler' 
    procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload;
  end;

  JUCThreadFactory = interface external 'java.util.concurrent' name 'ThreadFactory' 
    function newThread(para1: JLRunnable): JLThread; overload;
  end;

  JUCAAtomicIntegerFieldUpdater = class abstract external 'java.util.concurrent.atomic' name 'AtomicIntegerFieldUpdater' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newUpdater(para1: JLClass; para2: JLString): JUCAAtomicIntegerFieldUpdater; static; overload;
    function compareAndSet(para1: JLObject; para2: jint; para3: jint): jboolean; overload; virtual; abstract;
    function weakCompareAndSet(para1: JLObject; para2: jint; para3: jint): jboolean; overload; virtual; abstract;
    procedure &set(para1: JLObject; para2: jint); overload; virtual; abstract;
    procedure lazySet(para1: JLObject; para2: jint); overload; virtual; abstract;
    function get(para1: JLObject): jint; overload; virtual; abstract;
    function getAndSet(para1: JLObject; para2: jint): jint; overload; virtual;
    function getAndIncrement(para1: JLObject): jint; overload; virtual;
    function getAndDecrement(para1: JLObject): jint; overload; virtual;
    function getAndAdd(para1: JLObject; para2: jint): jint; overload; virtual;
    function incrementAndGet(para1: JLObject): jint; overload; virtual;
    function decrementAndGet(para1: JLObject): jint; overload; virtual;
    function addAndGet(para1: JLObject; para2: jint): jint; overload; virtual;
  end;

  JUCAAtomicLongFieldUpdater = class abstract external 'java.util.concurrent.atomic' name 'AtomicLongFieldUpdater' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newUpdater(para1: JLClass; para2: JLString): JUCAAtomicLongFieldUpdater; static; overload;
    function compareAndSet(para1: JLObject; para2: jlong; para3: jlong): jboolean; overload; virtual; abstract;
    function weakCompareAndSet(para1: JLObject; para2: jlong; para3: jlong): jboolean; overload; virtual; abstract;
    procedure &set(para1: JLObject; para2: jlong); overload; virtual; abstract;
    procedure lazySet(para1: JLObject; para2: jlong); overload; virtual; abstract;
    function get(para1: JLObject): jlong; overload; virtual; abstract;
    function getAndSet(para1: JLObject; para2: jlong): jlong; overload; virtual;
    function getAndIncrement(para1: JLObject): jlong; overload; virtual;
    function getAndDecrement(para1: JLObject): jlong; overload; virtual;
    function getAndAdd(para1: JLObject; para2: jlong): jlong; overload; virtual;
    function incrementAndGet(para1: JLObject): jlong; overload; virtual;
    function decrementAndGet(para1: JLObject): jlong; overload; virtual;
    function addAndGet(para1: JLObject; para2: jlong): jlong; overload; virtual;
  end;

  JUCAAtomicMarkableReference = class external 'java.util.concurrent.atomic' name 'AtomicMarkableReference' (JLObject)
  public
    constructor create(para1: JLObject; para2: jboolean); overload;
    function getReference(): JLObject; overload; virtual;
    function isMarked(): jboolean; overload; virtual;
    function get(para1: Arr1jboolean): JLObject; overload; virtual;
    function get(var para1: array of jboolean): JLObject; overload; virtual;
    function weakCompareAndSet(para1: JLObject; para2: JLObject; para3: jboolean; para4: jboolean): jboolean; overload; virtual;
    function compareAndSet(para1: JLObject; para2: JLObject; para3: jboolean; para4: jboolean): jboolean; overload; virtual;
    procedure &set(para1: JLObject; para2: jboolean); overload; virtual;
    function attemptMark(para1: JLObject; para2: jboolean): jboolean; overload; virtual;
  end;

  JUCAAtomicReferenceFieldUpdater = class abstract external 'java.util.concurrent.atomic' name 'AtomicReferenceFieldUpdater' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newUpdater(para1: JLClass; para2: JLClass; para3: JLString): JUCAAtomicReferenceFieldUpdater; static; overload;
    function compareAndSet(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual; abstract;
    function weakCompareAndSet(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual; abstract;
    procedure &set(para1: JLObject; para2: JLObject); overload; virtual; abstract;
    procedure lazySet(para1: JLObject; para2: JLObject); overload; virtual; abstract;
    function get(para1: JLObject): JLObject; overload; virtual; abstract;
    function getAndSet(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JUCAAtomicStampedReference = class external 'java.util.concurrent.atomic' name 'AtomicStampedReference' (JLObject)
  public
    constructor create(para1: JLObject; para2: jint); overload;
    function getReference(): JLObject; overload; virtual;
    function getStamp(): jint; overload; virtual;
    function get(para1: Arr1jint): JLObject; overload; virtual;
    function get(var para1: array of jint): JLObject; overload; virtual;
    function weakCompareAndSet(para1: JLObject; para2: JLObject; para3: jint; para4: jint): jboolean; overload; virtual;
    function compareAndSet(para1: JLObject; para2: JLObject; para3: jint; para4: jint): jboolean; overload; virtual;
    procedure &set(para1: JLObject; para2: jint); overload; virtual;
    function attemptStamp(para1: JLObject; para2: jint): jboolean; overload; virtual;
  end;

  JUCLCondition = interface external 'java.util.concurrent.locks' name 'Condition' 
    procedure await(); overload;  // throws java.lang.InterruptedException
    procedure awaitUninterruptibly(); overload;
    function awaitNanos(para1: jlong): jlong; overload;  // throws java.lang.InterruptedException
    function await(para1: jlong; para2: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function awaitUntil(para1: JUDate): jboolean; overload;  // throws java.lang.InterruptedException
    procedure signal(); overload;
    procedure signalAll(); overload;
  end;

  JUCLLock = interface external 'java.util.concurrent.locks' name 'Lock' 
    procedure lock(); overload;
    procedure lockInterruptibly(); overload;  // throws java.lang.InterruptedException
    function tryLock(): jboolean; overload;
    function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    procedure unlock(); overload;
    function newCondition(): JUCLCondition; overload;
  end;

  JUCLLockSupport = class external 'java.util.concurrent.locks' name 'LockSupport' (JLObject)
  public
    class procedure unpark(para1: JLThread); static; overload;
    class procedure park(para1: JLObject); static; overload;
    class procedure parkNanos(para1: JLObject; para2: jlong); static; overload;
    class procedure parkUntil(para1: JLObject; para2: jlong); static; overload;
    class function getBlocker(para1: JLThread): JLObject; static; overload;
    class procedure park(); static; overload;
    class procedure parkNanos(para1: jlong); static; overload;
    class procedure parkUntil(para1: jlong); static; overload;
  end;

  JUCLReadWriteLock = interface external 'java.util.concurrent.locks' name 'ReadWriteLock' 
    function readLock(): JUCLLock; overload;
    function writeLock(): JUCLLock; overload;
  end;

  JUJPack200 = class abstract external 'java.util.jar' name 'Pack200' (JLObject)
  public
    type
      InnerUnpacker = interface;
      Arr1InnerUnpacker = array of InnerUnpacker;
      Arr2InnerUnpacker = array of Arr1InnerUnpacker;
      Arr3InnerUnpacker = array of Arr2InnerUnpacker;
      InnerPacker = interface;
      Arr1InnerPacker = array of InnerPacker;
      Arr2InnerPacker = array of Arr1InnerPacker;
      Arr3InnerPacker = array of Arr2InnerPacker;
      InnerUnpacker = interface external 'java.util.jar' name 'Unpacker' 
        const
          DEFLATE_HINT = 'unpack.deflate.hint';
          &FALSE = 'false';
          KEEP = 'keep';
          PROGRESS = 'unpack.progress';
          &TRUE = 'true';
        function properties(): JUSortedMap; overload;
        procedure unpack(para1: JIInputStream; para2: JUJJarOutputStream); overload;  // throws java.io.IOException
        procedure unpack(para1: JIFile; para2: JUJJarOutputStream); overload;  // throws java.io.IOException
        procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
        procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
      end;

      InnerPacker = interface external 'java.util.jar' name 'Packer' 
        const
          CLASS_ATTRIBUTE_PFX = 'pack.class.attribute.';
          CODE_ATTRIBUTE_PFX = 'pack.code.attribute.';
          DEFLATE_HINT = 'pack.deflate.hint';
          EFFORT = 'pack.effort';
          ERROR = 'error';
          &FALSE = 'false';
          FIELD_ATTRIBUTE_PFX = 'pack.field.attribute.';
          KEEP = 'keep';
          KEEP_FILE_ORDER = 'pack.keep.file.order';
          LATEST = 'latest';
          METHOD_ATTRIBUTE_PFX = 'pack.method.attribute.';
          MODIFICATION_TIME = 'pack.modification.time';
          PASS = 'pass';
          PASS_FILE_PFX = 'pack.pass.file.';
          PROGRESS = 'pack.progress';
          SEGMENT_LIMIT = 'pack.segment.limit';
          STRIP = 'strip';
          &TRUE = 'true';
          UNKNOWN_ATTRIBUTE = 'pack.unknown.attribute';
        function properties(): JUSortedMap; overload;
        procedure pack(para1: JUJJarFile; para2: JIOutputStream); overload;  // throws java.io.IOException
        procedure pack(para1: JUJJarInputStream; para2: JIOutputStream); overload;  // throws java.io.IOException
        procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
        procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
      end;

  public
    class function newPacker(): JUJPack200.InnerPacker; static; overload;
    class function newUnpacker(): JUJPack200.InnerUnpacker; static; overload;
  end;

  JULErrorManager = class external 'java.util.logging' name 'ErrorManager' (JLObject)
  public
    const
      GENERIC_FAILURE = 0;
      WRITE_FAILURE = 1;
      FLUSH_FAILURE = 2;
      CLOSE_FAILURE = 3;
      OPEN_FAILURE = 4;
      FORMAT_FAILURE = 5;
  public
    constructor create(); overload;
    procedure error(para1: JLString; para2: JLException; para3: jint); overload; virtual;
  end;

  JULFilter = interface external 'java.util.logging' name 'Filter' 
    function isLoggable(para1: JULLogRecord): jboolean; overload;
  end;

  JULFormatter = class abstract external 'java.util.logging' name 'Formatter' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function format(para1: JULLogRecord): JLString; overload; virtual; abstract;
    function formatMessage(para1: JULLogRecord): JLString; overload; virtual;
    function getHead(para1: JULHandler): JLString; overload; virtual;
    function getTail(para1: JULHandler): JLString; overload; virtual;
  end;

  JULHandler = class abstract external 'java.util.logging' name 'Handler' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure close(); overload; virtual; abstract;
    procedure flush(); overload; virtual; abstract;
    procedure publish(para1: JULLogRecord); overload; virtual; abstract;
    function getEncoding(): JLString; overload; virtual;
    function getErrorManager(): JULErrorManager; overload; virtual;
    function getFilter(): JULFilter; overload; virtual;
    function getFormatter(): JULFormatter; overload; virtual;
    function getLevel(): JULLevel; overload; virtual;
    function isLoggable(para1: JULLogRecord): jboolean; overload; virtual;
  strict protected
    procedure reportError(para1: JLString; para2: JLException; para3: jint); overload; virtual;
  public
    procedure setEncoding(para1: JLString); overload; virtual;  // throws java.io.UnsupportedEncodingException
    procedure setErrorManager(para1: JULErrorManager); overload; virtual;
    procedure setFilter(para1: JULFilter); overload; virtual;
    procedure setFormatter(para1: JULFormatter); overload; virtual;
    procedure setLevel(para1: JULLevel); overload; virtual;
  end;

  JULLogManager = class external 'java.util.logging' name 'LogManager' (JLObject)
  public
    const
      LOGGING_MXBEAN_NAME = 'java.util.logging:type=Logging';
  strict protected
    constructor create(); overload;
  public
    class function getLoggingMXBean(): JULLoggingMXBean; static; overload;
    procedure checkAccess(); overload; virtual;
    function addLogger(para1: JULLogger): jboolean; overload; virtual;
    function getLogger(para1: JLString): JULLogger; overload; virtual;
    function getLoggerNames(): JUEnumeration; overload; virtual;
    class function getLogManager(): JULLogManager; static; overload;
    function getProperty(para1: JLString): JLString; overload; virtual;
    procedure readConfiguration(); overload; virtual;  // throws java.io.IOException
    procedure readConfiguration(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
  end;

  JULLogger = class external 'java.util.logging' name 'Logger' (JLObject)
  public
    const
      GLOBAL_LOGGER_NAME = 'global';
  public
    final class var
      fglobal: JULLogger; external name 'global';
  strict protected
    constructor create(para1: JLString; para2: JLString); overload;
  public
    class function getAnonymousLogger(): JULLogger; static; overload;
    class function getAnonymousLogger(para1: JLString): JULLogger; static; overload;
    class function getLogger(para1: JLString): JULLogger; static; overload;
    class function getLogger(para1: JLString; para2: JLString): JULLogger; static; overload;
    procedure addHandler(para1: JULHandler); overload; virtual;
    function getHandlers(): Arr1JULHandler; overload; virtual;
    procedure removeHandler(para1: JULHandler); overload; virtual;
    function getFilter(): JULFilter; overload; virtual;
    procedure setFilter(para1: JULFilter); overload; virtual;
    function getLevel(): JULLevel; overload; virtual;
    procedure setLevel(para1: JULLevel); overload; virtual;
    function getUseParentHandlers(): jboolean; overload; virtual;
    procedure setUseParentHandlers(para1: jboolean); overload; virtual;
    function getParent(): JULLogger; overload; virtual;
    procedure setParent(para1: JULLogger); overload; virtual;
    function getName(): JLString; overload; virtual;
    function getResourceBundle(): JUResourceBundle; overload; virtual;
    function getResourceBundleName(): JLString; overload; virtual;
    function isLoggable(para1: JULLevel): jboolean; overload; virtual;
    procedure entering(para1: JLString; para2: JLString); overload; virtual;
    procedure entering(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure entering(para1: JLString; para2: JLString; para3: Arr1JLObject); overload; virtual;
    procedure entering(para1: JLString; para2: JLString; var para3: array of JLObject); overload; virtual;
    procedure exiting(para1: JLString; para2: JLString); overload; virtual;
    procedure exiting(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure throwing(para1: JLString; para2: JLString; para3: JLThrowable); overload; virtual;
    procedure severe(para1: JLString); overload; virtual;
    procedure warning(para1: JLString); overload; virtual;
    procedure info(para1: JLString); overload; virtual;
    procedure config(para1: JLString); overload; virtual;
    procedure fine(para1: JLString); overload; virtual;
    procedure finer(para1: JLString); overload; virtual;
    procedure finest(para1: JLString); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; para3: JLObject); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; para3: Arr1JLObject); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; var para3: array of JLObject); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; para3: JLThrowable); overload; virtual;
    procedure log(para1: JULLogRecord); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLObject); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: Arr1JLObject); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; var para5: array of JLObject); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLThrowable); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLObject); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: Arr1JLObject); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; var para6: array of JLObject); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLThrowable); overload; virtual;
  end;

  JULLoggingMXBean = interface external 'java.util.logging' name 'LoggingMXBean' 
    function getLoggerLevel(para1: JLString): JLString; overload;
    function getLoggerNames(): JUList; overload;
    function getParentLoggerName(para1: JLString): JLString; overload;
    procedure setLoggerLevel(para1: JLString; para2: JLString); overload;
  end;

  JUPPreferences = class abstract external 'java.util.prefs' name 'Preferences' (JLObject)
  public
    const
      MAX_KEY_LENGTH = 80;
      MAX_NAME_LENGTH = 80;
      MAX_VALUE_LENGTH = 8192;
  strict protected
    constructor create(); overload;
  public
    function absolutePath(): JLString; overload; virtual; abstract;
    function childrenNames(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure clear(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure exportNode(para1: JIOutputStream); overload; virtual; abstract;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    procedure exportSubtree(para1: JIOutputStream); overload; virtual; abstract;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    procedure flush(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function get(para1: JLString; para2: JLString): JLString; overload; virtual; abstract;
    function getBoolean(para1: JLString; para2: jboolean): jboolean; overload; virtual; abstract;
    function getByteArray(para1: JLString; para2: Arr1jbyte): Arr1jbyte; overload; virtual; abstract;
    function getByteArray(para1: JLString; var para2: array of jbyte): Arr1jbyte; overload; virtual; abstract;
    function getDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual; abstract;
    function getFloat(para1: JLString; para2: jfloat): jfloat; overload; virtual; abstract;
    function getInt(para1: JLString; para2: jint): jint; overload; virtual; abstract;
    function getLong(para1: JLString; para2: jlong): jlong; overload; virtual; abstract;
    class procedure importPreferences(para1: JIInputStream); static; overload;  // throws java.util.prefs.InvalidPreferencesFormatException, java.io.IOException
    function isUserNode(): jboolean; overload; virtual; abstract;
    function keys(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function name(): JLString; overload; virtual; abstract;
    function node(para1: JLString): JUPPreferences; overload; virtual; abstract;
    function nodeExists(para1: JLString): jboolean; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function parent(): JUPPreferences; overload; virtual; abstract;
    procedure put(para1: JLString; para2: JLString); overload; virtual; abstract;
    procedure putBoolean(para1: JLString; para2: jboolean); overload; virtual; abstract;
    procedure putByteArray(para1: JLString; para2: Arr1jbyte); overload; virtual; abstract;
    procedure putByteArray(para1: JLString; var para2: array of jbyte); overload; virtual; abstract;
    procedure putDouble(para1: JLString; para2: jdouble); overload; virtual; abstract;
    procedure putFloat(para1: JLString; para2: jfloat); overload; virtual; abstract;
    procedure putInt(para1: JLString; para2: jint); overload; virtual; abstract;
    procedure putLong(para1: JLString; para2: jlong); overload; virtual; abstract;
    procedure remove(para1: JLString); overload; virtual; abstract;
    procedure removeNode(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure addNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual; abstract;
    procedure addPreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual; abstract;
    procedure removeNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual; abstract;
    procedure removePreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual; abstract;
    procedure sync(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    class function systemNodeForPackage(para1: JLClass): JUPPreferences; static; overload;
    class function systemRoot(): JUPPreferences; static; overload;
    class function userNodeForPackage(para1: JLClass): JUPPreferences; static; overload;
    class function userRoot(): JUPPreferences; static; overload;
    function toString(): JLString; overload; virtual; abstract;
  end;

  JUPPreferencesFactory = interface external 'java.util.prefs' name 'PreferencesFactory' 
    function userRoot(): JUPPreferences; overload;
    function systemRoot(): JUPPreferences; overload;
  end;

  JURMatchResult = interface external 'java.util.regex' name 'MatchResult' 
    function &end(): jint; overload;
    function &end(para1: jint): jint; overload;
    function group(): JLString; overload;
    function group(para1: jint): JLString; overload;
    function groupCount(): jint; overload;
    function start(): jint; overload;
    function start(para1: jint): jint; overload;
  end;

  JUZChecksum = interface external 'java.util.zip' name 'Checksum' 
    function getValue(): jlong; overload;
    procedure reset(); overload;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload;
    procedure update(para1: jint); overload;
  end;

  JUZDeflater = class external 'java.util.zip' name 'Deflater' (JLObject)
  public
    const
      BEST_COMPRESSION = 9;
      BEST_SPEED = 1;
      DEFAULT_COMPRESSION = -1;
      DEFAULT_STRATEGY = 0;
      DEFLATED = 8;
      FILTERED = 1;
      HUFFMAN_ONLY = 2;
      NO_COMPRESSION = 0;
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    function deflate(para1: Arr1jbyte): jint; overload; virtual;
    function deflate(var para1: array of jbyte): jint; overload; virtual;
    function deflate(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function deflate(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    procedure &end(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure finish(); overload; virtual;
    function finished(): jboolean; overload; virtual;
    function getAdler(): jint; overload; virtual;
    function getTotalIn(): jint; overload; virtual;
    function getTotalOut(): jint; overload; virtual;
    function needsInput(): jboolean; overload; virtual;
    procedure reset(); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte); overload; virtual;
    procedure setDictionary(var para1: array of jbyte); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setDictionary(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(para1: Arr1jbyte); overload; virtual;
    procedure setInput(var para1: array of jbyte); overload; virtual;
    procedure setInput(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setLevel(para1: jint); overload; virtual;
    procedure setStrategy(para1: jint); overload; virtual;
    function getBytesRead(): jlong; overload; virtual;
    function getBytesWritten(): jlong; overload; virtual;
  end;

  JUZInflater = class external 'java.util.zip' name 'Inflater' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure &end(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  public
    function finished(): jboolean; overload; virtual;
    function getAdler(): jint; overload; virtual;
    function getBytesRead(): jlong; overload; virtual;
    function getBytesWritten(): jlong; overload; virtual;
    function getRemaining(): jint; overload; virtual;
    function getTotalIn(): jint; overload; virtual;
    function getTotalOut(): jint; overload; virtual;
    function inflate(para1: Arr1jbyte): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function inflate(var para1: array of jbyte): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function inflate(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function inflate(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function needsDictionary(): jboolean; overload; virtual;
    function needsInput(): jboolean; overload; virtual;
    procedure reset(); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte); overload; virtual;
    procedure setDictionary(var para1: array of jbyte); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setDictionary(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(para1: Arr1jbyte); overload; virtual;
    procedure setInput(var para1: array of jbyte); overload; virtual;
    procedure setInput(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
  end;

  JUZZipFile = class external 'java.util.zip' name 'ZipFile' (JLObject)
  public
    const
      OPEN_READ = 1;
      OPEN_DELETE = 4;
  public
    constructor create(para1: JIFile); overload;  // throws java.util.zip.ZipException, java.io.IOException
    constructor create(para1: JIFile; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString); overload;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    function entries(): JUEnumeration; overload; virtual;
    function getEntry(para1: JLString): JUZZipEntry; overload; virtual;
    function getInputStream(para1: JUZZipEntry): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getName(): JLString; overload; virtual;
    function size(): jint; overload; virtual;
  end;

  JCCipher = class external 'javax.crypto' name 'Cipher' (JLObject)
  public
    const
      DECRYPT_MODE = 2;
      ENCRYPT_MODE = 1;
      PRIVATE_KEY = 2;
      PUBLIC_KEY = 1;
      SECRET_KEY = 3;
      UNWRAP_MODE = 4;
      WRAP_MODE = 3;
  strict protected
    constructor create(para1: JCCipherSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JCCipher; static; overload; final;  // throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException
    class function getInstance(para1: JLString; para2: JLString): JCCipher; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, javax.crypto.NoSuchPaddingException
    class function getInstance(para1: JLString; para2: JSProvider): JCCipher; static; overload; final;  // throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getBlockSize(): jint; overload; virtual; final;
    function getOutputSize(para1: jint): jint; overload; virtual; final;
    function getIV(): Arr1jbyte; overload; virtual; final;
    function getParameters(): JSAlgorithmParameters; overload; virtual; final;
    function getExemptionMechanism(): JCExemptionMechanism; overload; virtual; final;
    procedure init(para1: jint; para2: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: jint; para2: JSKey; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec; para4: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSKey; para3: JSAlgorithmParameters); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSKey; para3: JSAlgorithmParameters; para4: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSCCertificate); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: jint; para2: JSCCertificate; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    function update(para1: Arr1jbyte): Arr1jbyte; overload; virtual; final;
    function update(var para1: array of jbyte): Arr1jbyte; overload; virtual; final;
    function update(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;
    function update(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;
    function update(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function doFinal(): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint): jint; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint): jint; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function wrap(para1: JSKey): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    function unwrap(para1: Arr1jbyte; para2: JLString; para3: jint): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    function unwrap(var para1: array of jbyte; para2: JLString; para3: jint): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    class function getMaxAllowedKeyLength(para1: JLString): jint; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getMaxAllowedParameterSpec(para1: JLString): JSSAlgorithmParameterSpec; static; overload; final;  // throws java.security.NoSuchAlgorithmException
  end;

  JCCipherSpi = class abstract external 'javax.crypto' name 'CipherSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineSetMode(para1: JLString); overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException
    procedure engineSetPadding(para1: JLString); overload; virtual; abstract;  // throws javax.crypto.NoSuchPaddingException
    function engineGetBlockSize(): jint; overload; virtual; abstract;
    function engineGetOutputSize(para1: jint): jint; overload; virtual; abstract;
    function engineGetIV(): Arr1jbyte; overload; virtual; abstract;
    function engineGetParameters(): JSAlgorithmParameters; overload; virtual; abstract;
    procedure engineInit(para1: jint; para2: JSKey; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInit(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec; para4: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure engineInit(para1: jint; para2: JSKey; para3: JSAlgorithmParameters; para4: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    function engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;
    function engineUpdate(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;
    function engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException
    function engineUpdate(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException
    function engineUpdate(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual;  // throws javax.crypto.ShortBufferException
    function engineDoFinal(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineWrap(para1: JSKey): Arr1jbyte; overload; virtual;  // throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    function engineUnwrap(para1: Arr1jbyte; para2: JLString; para3: jint): JSKey; overload; virtual;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    function engineUnwrap(var para1: array of jbyte; para2: JLString; para3: jint): JSKey; overload; virtual;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    function engineGetKeySize(para1: JSKey): jint; overload; virtual;  // throws java.security.InvalidKeyException
  end;

  JCEncryptedPrivateKeyInfo = class external 'javax.crypto' name 'EncryptedPrivateKeyInfo' (JLObject)
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.io.IOException
    constructor create(const para1: array of jbyte); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: Arr1jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    constructor create(para1: JLString; const para2: array of jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    constructor create(para1: JSAlgorithmParameters; para2: Arr1jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    constructor create(para1: JSAlgorithmParameters; const para2: array of jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    function getAlgName(): JLString; overload; virtual;
    function getAlgParameters(): JSAlgorithmParameters; overload; virtual;
    function getEncryptedData(): Arr1jbyte; overload; virtual;
    function getKeySpec(para1: JCCipher): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.spec.InvalidKeySpecException
    function getKeySpec(para1: JSKey): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getKeySpec(para1: JSKey; para2: JLString): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getKeySpec(para1: JSKey; para2: JSProvider): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getEncoded(): Arr1jbyte; overload; virtual;  // throws java.io.IOException
  end;

  JCExemptionMechanism = class external 'javax.crypto' name 'ExemptionMechanism' (JLObject)
  strict protected
    constructor create(para1: JCExemptionMechanismSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getName(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JCExemptionMechanism; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCExemptionMechanism; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCExemptionMechanism; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function isCryptoAllowed(para1: JSKey): jboolean; overload; virtual; final;  // throws javax.crypto.ExemptionMechanismException
    function getOutputSize(para1: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure init(para1: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException, javax.crypto.ExemptionMechanismException
    procedure init(para1: JSKey; para2: JSAlgorithmParameters); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(para1: Arr1jbyte): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(var para1: array of jbyte): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(para1: Arr1jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(var para1: array of jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
  strict protected
    procedure finalize(); overload; virtual;
  end;

  JCExemptionMechanismSpi = class abstract external 'javax.crypto' name 'ExemptionMechanismSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGenExemptionBlob(): Arr1jbyte; overload; virtual; abstract;  // throws javax.crypto.ExemptionMechanismException
    function engineGenExemptionBlob(para1: Arr1jbyte; para2: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function engineGenExemptionBlob(var para1: array of jbyte; para2: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function engineGetOutputSize(para1: jint): jint; overload; virtual; abstract;
    procedure engineInit(para1: JSKey); overload; virtual; abstract;  // throws java.security.InvalidKeyException, javax.crypto.ExemptionMechanismException
    procedure engineInit(para1: JSKey; para2: JSAlgorithmParameters); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    procedure engineInit(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
  end;

  JCKeyAgreement = class external 'javax.crypto' name 'KeyAgreement' (JLObject)
  strict protected
    constructor create(para1: JCKeyAgreementSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getInstance(para1: JLString): JCKeyAgreement; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCKeyAgreement; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCKeyAgreement; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    procedure init(para1: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: JSKey; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    function doPhase(para1: JSKey; para2: jboolean): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException, java.lang.IllegalStateException
    function generateSecret(): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    function generateSecret(para1: Arr1jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function generateSecret(var para1: array of jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function generateSecret(para1: JLString): JCSecretKey; overload; virtual; final;  // throws java.lang.IllegalStateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
  end;

  JCKeyAgreementSpi = class abstract external 'javax.crypto' name 'KeyAgreementSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineDoPhase(para1: JSKey; para2: jboolean): JSKey; overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.lang.IllegalStateException
    function engineGenerateSecret(): Arr1jbyte; overload; virtual; abstract;  // throws java.lang.IllegalStateException
    function engineGenerateSecret(para1: Arr1jbyte; para2: jint): jint; overload; virtual; abstract;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function engineGenerateSecret(var para1: array of jbyte; para2: jint): jint; overload; virtual; abstract;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function engineGenerateSecret(para1: JLString): JCSecretKey; overload; virtual; abstract;  // throws java.lang.IllegalStateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    procedure engineInit(para1: JSKey; para2: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInit(para1: JSKey; para2: JSSAlgorithmParameterSpec; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
  end;

  JCKeyGenerator = class external 'javax.crypto' name 'KeyGenerator' (JLObject)
  strict protected
    constructor create(para1: JCKeyGeneratorSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getInstance(para1: JLString): JCKeyGenerator; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCKeyGenerator; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCKeyGenerator; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function generateKey(): JCSecretKey; overload; virtual; final;
    procedure init(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint); overload; virtual; final;
    procedure init(para1: jint; para2: JSSecureRandom); overload; virtual; final;
    procedure init(para1: JSSecureRandom); overload; virtual; final;
  end;

  JCKeyGeneratorSpi = class abstract external 'javax.crypto' name 'KeyGeneratorSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGenerateKey(): JCSecretKey; overload; virtual; abstract;
    procedure engineInit(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    procedure engineInit(para1: jint; para2: JSSecureRandom); overload; virtual; abstract;
    procedure engineInit(para1: JSSecureRandom); overload; virtual; abstract;
  end;

  JCMacSpi = class abstract external 'javax.crypto' name 'MacSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGetMacLength(): jint; overload; virtual; abstract;
    procedure engineInit(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure engineUpdate(para1: jbyte); overload; virtual; abstract;
    procedure engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(para1: JNByteBuffer); overload; virtual;
    function engineDoFinal(): Arr1jbyte; overload; virtual; abstract;
    procedure engineReset(); overload; virtual; abstract;
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JCSecretKeyFactory = class external 'javax.crypto' name 'SecretKeyFactory' (JLObject)
  strict protected
    constructor create(para1: JCSecretKeyFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getInstance(para1: JLString): JCSecretKeyFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCSecretKeyFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCSecretKeyFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function generateSecret(para1: JSSKeySpec): JCSecretKey; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function getKeySpec(para1: JCSecretKey; para2: JLClass): JSSKeySpec; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function translateKey(para1: JCSecretKey): JCSecretKey; overload; virtual; final;  // throws java.security.InvalidKeyException
  end;

  JCSecretKeyFactorySpi = class abstract external 'javax.crypto' name 'SecretKeyFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGenerateSecret(para1: JSSKeySpec): JCSecretKey; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineGetKeySpec(para1: JCSecretKey; para2: JLClass): JSSKeySpec; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineTranslateKey(para1: JCSecretKey): JCSecretKey; overload; virtual; abstract;  // throws java.security.InvalidKeyException
  end;

  JCIDHKey = interface external 'javax.crypto.interfaces' name 'DHKey' 
    function getParams(): JCSDHParameterSpec; overload;
  end;

  JCSPSource = class external 'javax.crypto.spec' name 'PSource' (JLObject)
  public
    type
      InnerPSpecified = class;
      Arr1InnerPSpecified = array of InnerPSpecified;
      Arr2InnerPSpecified = array of Arr1InnerPSpecified;
      Arr3InnerPSpecified = array of Arr2InnerPSpecified;
      InnerPSpecified = class sealed external 'javax.crypto.spec' name 'PSpecified' (JCSPSource)
      public
        final class var
          fDEFAULT: JCSPSource.InnerPSpecified; external name 'DEFAULT';
      public
        constructor create(para1: Arr1jbyte); overload;
        constructor create(const para1: array of jbyte); overload;
        function getValue(): Arr1jbyte; overload; virtual;
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual;
  end;

  JMKEEGL = interface external 'javax.microedition.khronos.egl' name 'EGL' 
  end;

  JMKEEGLConfig = class abstract external 'javax.microedition.khronos.egl' name 'EGLConfig' (JLObject)
  public
    constructor create(); overload;
  end;

  JMKEEGLContext = class abstract external 'javax.microedition.khronos.egl' name 'EGLContext' (JLObject)
  public
    constructor create(); overload;
    class function getEGL(): JMKEEGL; static; overload;
    function getGL(): JMKOGL; overload; virtual; abstract;
  end;

  JMKEEGLDisplay = class abstract external 'javax.microedition.khronos.egl' name 'EGLDisplay' (JLObject)
  public
    constructor create(); overload;
  end;

  JMKEEGLSurface = class abstract external 'javax.microedition.khronos.egl' name 'EGLSurface' (JLObject)
  public
    constructor create(); overload;
  end;

  JMKOGL = interface external 'javax.microedition.khronos.opengles' name 'GL' 
  end;

  JNServerSocketFactory = class abstract external 'javax.net' name 'ServerSocketFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getDefault(): JNServerSocketFactory; static; overload;
    function createServerSocket(): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint; para3: JNInetAddress): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNSocketFactory = class abstract external 'javax.net' name 'SocketFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getDefault(): JNSocketFactory; static; overload;
    function createSocket(): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException, java.net.UnknownHostException
    function createSocket(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException, java.net.UnknownHostException
    function createSocket(para1: JNInetAddress; para2: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createSocket(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNSHostnameVerifier = interface external 'javax.net.ssl' name 'HostnameVerifier' 
    function verify(para1: JLString; para2: JNSSSLSession): jboolean; overload;
  end;

  JNSKeyManager = interface external 'javax.net.ssl' name 'KeyManager' 
  end;

  JNSKeyManagerFactory = class external 'javax.net.ssl' name 'KeyManagerFactory' (JLObject)
  strict protected
    constructor create(para1: JNSKeyManagerFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getDefaultAlgorithm(): JLString; static; overload; final;
    class function getInstance(para1: JLString): JNSKeyManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JNSKeyManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JNSKeyManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSKeyStore; para2: Arr1jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure init(para1: JSKeyStore; var para2: array of jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure init(para1: JNSManagerFactoryParameters); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function getKeyManagers(): Arr1JNSKeyManager; overload; virtual; final;
  end;

  JNSKeyManagerFactorySpi = class abstract external 'javax.net.ssl' name 'KeyManagerFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSKeyStore; para2: Arr1jchar); overload; virtual; abstract;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure engineInit(para1: JSKeyStore; var para2: array of jchar); overload; virtual; abstract;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure engineInit(para1: JNSManagerFactoryParameters); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetKeyManagers(): Arr1JNSKeyManager; overload; virtual; abstract;
  end;

  JNSManagerFactoryParameters = interface external 'javax.net.ssl' name 'ManagerFactoryParameters' 
  end;

  JNSSSLContext = class external 'javax.net.ssl' name 'SSLContext' (JLObject)
  strict protected
    constructor create(para1: JNSSSLContextSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getDefault(): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException
    class procedure setDefault(para1: JNSSSLContext); static; overload;
    class function getInstance(para1: JLString): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProtocol(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: Arr1JNSKeyManager; para2: Arr1JNSTrustManager; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.KeyManagementException
    procedure init(var para1: array of JNSKeyManager; var para2: array of JNSTrustManager; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.KeyManagementException
    function getSocketFactory(): JNSSSLSocketFactory; overload; virtual; final;
    function getServerSocketFactory(): JNSSSLServerSocketFactory; overload; virtual; final;
    function createSSLEngine(): JNSSSLEngine; overload; virtual; final;
    function createSSLEngine(para1: JLString; para2: jint): JNSSSLEngine; overload; virtual; final;
    function getServerSessionContext(): JNSSSLSessionContext; overload; virtual; final;
    function getClientSessionContext(): JNSSSLSessionContext; overload; virtual; final;
    function getDefaultSSLParameters(): JNSSSLParameters; overload; virtual; final;
    function getSupportedSSLParameters(): JNSSSLParameters; overload; virtual; final;
  end;

  JNSSSLContextSpi = class abstract external 'javax.net.ssl' name 'SSLContextSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: Arr1JNSKeyManager; para2: Arr1JNSTrustManager; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.KeyManagementException
    procedure engineInit(var para1: array of JNSKeyManager; var para2: array of JNSTrustManager; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.KeyManagementException
    function engineGetSocketFactory(): JNSSSLSocketFactory; overload; virtual; abstract;
    function engineGetServerSocketFactory(): JNSSSLServerSocketFactory; overload; virtual; abstract;
    function engineCreateSSLEngine(para1: JLString; para2: jint): JNSSSLEngine; overload; virtual; abstract;
    function engineCreateSSLEngine(): JNSSSLEngine; overload; virtual; abstract;
    function engineGetServerSessionContext(): JNSSSLSessionContext; overload; virtual; abstract;
    function engineGetClientSessionContext(): JNSSSLSessionContext; overload; virtual; abstract;
    function engineGetDefaultSSLParameters(): JNSSSLParameters; overload; virtual;
    function engineGetSupportedSSLParameters(): JNSSSLParameters; overload; virtual;
  end;

  JNSSSLParameters = class external 'javax.net.ssl' name 'SSLParameters' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    constructor create(para1: Arr1JLString; para2: Arr1JLString); overload;
    constructor create(const para1: array of JLString; const para2: array of JLString); overload;
    function getCipherSuites(): Arr1JLString; overload; virtual;
    procedure setCipherSuites(para1: Arr1JLString); overload; virtual;
    procedure setCipherSuites(var para1: array of JLString); overload; virtual;
    function getProtocols(): Arr1JLString; overload; virtual;
    procedure setProtocols(para1: Arr1JLString); overload; virtual;
    procedure setProtocols(var para1: array of JLString); overload; virtual;
    function getNeedClientAuth(): jboolean; overload; virtual;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual;
    function getWantClientAuth(): jboolean; overload; virtual;
    procedure setWantClientAuth(para1: jboolean); overload; virtual;
  end;

  JNSSSLSession = interface external 'javax.net.ssl' name 'SSLSession' 
    function getApplicationBufferSize(): jint; overload;
    function getCipherSuite(): JLString; overload;
    function getCreationTime(): jlong; overload;
    function getId(): Arr1jbyte; overload;
    function getLastAccessedTime(): jlong; overload;
    function getLocalCertificates(): Arr1JSCCertificate; overload;
    function getLocalPrincipal(): JSPrincipal; overload;
    function getPacketBufferSize(): jint; overload;
    function getPeerCertificateChain(): Arr1JxSCX509Certificate; overload;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerCertificates(): Arr1JSCCertificate; overload;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerHost(): JLString; overload;
    function getPeerPort(): jint; overload;
    function getPeerPrincipal(): JSPrincipal; overload;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getProtocol(): JLString; overload;
    function getSessionContext(): JNSSSLSessionContext; overload;
    function getValue(para1: JLString): JLObject; overload;
    function getValueNames(): Arr1JLString; overload;
    procedure invalidate(); overload;
    function isValid(): jboolean; overload;
    procedure putValue(para1: JLString; para2: JLObject); overload;
    procedure removeValue(para1: JLString); overload;
  end;

  JNSSSLSessionContext = interface external 'javax.net.ssl' name 'SSLSessionContext' 
    function getIds(): JUEnumeration; overload;
    function getSession(para1: Arr1jbyte): JNSSSLSession; overload;
    function getSession(var para1: array of jbyte): JNSSSLSession; overload;
    function getSessionCacheSize(): jint; overload;
    function getSessionTimeout(): jint; overload;
    procedure setSessionCacheSize(para1: jint); overload;  // throws java.lang.IllegalArgumentException
    procedure setSessionTimeout(para1: jint); overload;  // throws java.lang.IllegalArgumentException
  end;

  JNSTrustManager = interface external 'javax.net.ssl' name 'TrustManager' 
  end;

  JNSTrustManagerFactory = class external 'javax.net.ssl' name 'TrustManagerFactory' (JLObject)
  strict protected
    constructor create(para1: JNSTrustManagerFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getDefaultAlgorithm(): JLString; static; overload; final;
    class function getInstance(para1: JLString): JNSTrustManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JNSTrustManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JNSTrustManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSKeyStore); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure init(para1: JNSManagerFactoryParameters); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function getTrustManagers(): Arr1JNSTrustManager; overload; virtual; final;
  end;

  JNSTrustManagerFactorySpi = class abstract external 'javax.net.ssl' name 'TrustManagerFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSKeyStore); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineInit(para1: JNSManagerFactoryParameters); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetTrustManagers(): Arr1JNSTrustManager; overload; virtual; abstract;
  end;

  JSADestroyable = interface external 'javax.security.auth' name 'Destroyable' 
    procedure destroy(); overload;  // throws javax.security.auth.DestroyFailedException
    function isDestroyed(): jboolean; overload;
  end;

  JSACCallback = interface external 'javax.security.auth.callback' name 'Callback' 
  end;

  JSACCallbackHandler = interface external 'javax.security.auth.callback' name 'CallbackHandler' 
    procedure handle(para1: Arr1JSACCallback); overload;  // throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException
    procedure handle(var para1: array of JSACCallback); overload;  // throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException
  end;

  JxSCCertificate = class abstract external 'javax.security.cert' name 'Certificate' (JLObject)
  public
    constructor create(); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws javax.security.cert.CertificateEncodingException
    procedure verify(para1: JSPublicKey); overload; virtual; abstract;  // throws javax.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    procedure verify(para1: JSPublicKey; para2: JLString); overload; virtual; abstract;  // throws javax.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    function toString(): JLString; overload; virtual; abstract;
    function getPublicKey(): JSPublicKey; overload; virtual; abstract;
  end;

  JSCommonDataSource = interface external 'javax.sql' name 'CommonDataSource' 
    function getLoginTimeout(): jint; overload;  // throws java.sql.SQLException
    function getLogWriter(): JIPrintWriter; overload;  // throws java.sql.SQLException
    procedure setLoginTimeout(para1: jint); overload;  // throws java.sql.SQLException
    procedure setLogWriter(para1: JIPrintWriter); overload;  // throws java.sql.SQLException
  end;

  JSPooledConnection = interface external 'javax.sql' name 'PooledConnection' 
    procedure addConnectionEventListener(para1: JSConnectionEventListener); overload;
    procedure close(); overload;  // throws java.sql.SQLException
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    procedure removeConnectionEventListener(para1: JSConnectionEventListener); overload;
    procedure addStatementEventListener(para1: JSStatementEventListener); overload;
    procedure removeStatementEventListener(para1: JSStatementEventListener); overload;
  end;

  JSRowSetInternal = interface external 'javax.sql' name 'RowSetInternal' 
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function getOriginal(): JSResultSet; overload;  // throws java.sql.SQLException
    function getOriginalRow(): JSResultSet; overload;  // throws java.sql.SQLException
    function getParams(): Arr1JLObject; overload;  // throws java.sql.SQLException
    procedure setMetaData(para1: JSRowSetMetaData); overload;  // throws java.sql.SQLException
  end;

  JSRowSetReader = interface external 'javax.sql' name 'RowSetReader' 
    procedure readData(para1: JSRowSetInternal); overload;  // throws java.sql.SQLException
  end;

  JSRowSetWriter = interface external 'javax.sql' name 'RowSetWriter' 
    function writeData(para1: JSRowSetInternal): jboolean; overload;  // throws java.sql.SQLException
  end;

  JXXMLConstants = class sealed external 'javax.xml' name 'XMLConstants' (JLObject)
  public
    const
      NULL_NS_URI = '';
      DEFAULT_NS_PREFIX = '';
      XML_NS_URI = 'http://www.w3.org/XML/1998/namespace';
      XML_NS_PREFIX = 'xml';
      XMLNS_ATTRIBUTE_NS_URI = 'http://www.w3.org/2000/xmlns/';
      XMLNS_ATTRIBUTE = 'xmlns';
      W3C_XML_SCHEMA_NS_URI = 'http://www.w3.org/2001/XMLSchema';
      W3C_XML_SCHEMA_INSTANCE_NS_URI = 'http://www.w3.org/2001/XMLSchema-instance';
      W3C_XPATH_DATATYPE_NS_URI = 'http://www.w3.org/2003/11/xpath-datatypes';
      XML_DTD_NS_URI = 'http://www.w3.org/TR/REC-xml';
      RELAXNG_NS_URI = 'http://relaxng.org/ns/structure/1.0';
      FEATURE_SECURE_PROCESSING = 'http://javax.xml.XMLConstants/feature/secure-processing';
  end;

  JXDDatatypeConstants = class sealed external 'javax.xml.datatype' name 'DatatypeConstants' (JLObject)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class sealed external 'javax.xml.datatype' name 'Field' (JLObject)
      public
        function toString(): JLString; overload; virtual;
        function getId(): jint; overload; virtual;
      end;

  public
    const
      JANUARY = 1;
      FEBRUARY = 2;
      MARCH = 3;
      APRIL = 4;
      MAY = 5;
      JUNE = 6;
      JULY = 7;
      AUGUST = 8;
      SEPTEMBER = 9;
      OCTOBER = 10;
      NOVEMBER = 11;
      DECEMBER = 12;
      LESSER = -1;
      EQUAL = 0;
      GREATER = 1;
      INDETERMINATE = 2;
      FIELD_UNDEFINED = -2147483648;
  public
    final class var
      fYEARS: JXDDatatypeConstants.InnerField; external name 'YEARS';
      fMONTHS: JXDDatatypeConstants.InnerField; external name 'MONTHS';
      fDAYS: JXDDatatypeConstants.InnerField; external name 'DAYS';
      fHOURS: JXDDatatypeConstants.InnerField; external name 'HOURS';
      fMINUTES: JXDDatatypeConstants.InnerField; external name 'MINUTES';
      fSECONDS: JXDDatatypeConstants.InnerField; external name 'SECONDS';
      fDATETIME: JXNQName; external name 'DATETIME';
      fTIME: JXNQName; external name 'TIME';
      fDATE: JXNQName; external name 'DATE';
      fGYEARMONTH: JXNQName; external name 'GYEARMONTH';
      fGMONTHDAY: JXNQName; external name 'GMONTHDAY';
      fGYEAR: JXNQName; external name 'GYEAR';
      fGMONTH: JXNQName; external name 'GMONTH';
      fGDAY: JXNQName; external name 'GDAY';
      fDURATION: JXNQName; external name 'DURATION';
      fDURATION_DAYTIME: JXNQName; external name 'DURATION_DAYTIME';
      fDURATION_YEARMONTH: JXNQName; external name 'DURATION_YEARMONTH';
  public
    const
      MAX_TIMEZONE_OFFSET = -840;
      MIN_TIMEZONE_OFFSET = 840;
  end;

  JXDDatatypeFactory = class abstract external 'javax.xml.datatype' name 'DatatypeFactory' (JLObject)
  public
    const
      DATATYPEFACTORY_PROPERTY = 'javax.xml.datatype.DatatypeFactory';
  public
    final class var
      fDATATYPEFACTORY_IMPLEMENTATION_CLASS: JLString; external name 'DATATYPEFACTORY_IMPLEMENTATION_CLASS';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXDDatatypeFactory; static; overload;  // throws javax.xml.datatype.DatatypeConfigurationException
    class function newInstance(para1: JLString; para2: JLClassLoader): JXDDatatypeFactory; static; overload;  // throws javax.xml.datatype.DatatypeConfigurationException
    function newDuration(para1: JLString): JXDDuration; overload; virtual; abstract;
    function newDuration(para1: jlong): JXDDuration; overload; virtual; abstract;
    function newDuration(para1: jboolean; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigDecimal): JXDDuration; overload; virtual; abstract;
    function newDuration(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: JLString): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: jlong): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: jboolean; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: JLString): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: jlong): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: jboolean; para2: JMBigInteger; para3: JMBigInteger): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: jboolean; para2: jint; para3: jint): JXDDuration; overload; virtual;
    function newXMLGregorianCalendar(): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: JLString): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: JUGregorianCalendar): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: JMBigInteger; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: JMBigDecimal; para8: jint): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarDate(para1: jint; para2: jint; para3: jint; para4: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarTime(para1: jint; para2: jint; para3: jint; para4: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarTime(para1: jint; para2: jint; para3: jint; para4: JMBigDecimal; para5: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarTime(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint): JXDXMLGregorianCalendar; overload; virtual;
  end;

  JXNNamespaceContext = interface external 'javax.xml.namespace' name 'NamespaceContext' 
    function getNamespaceURI(para1: JLString): JLString; overload;
    function getPrefix(para1: JLString): JLString; overload;
    function getPrefixes(para1: JLString): JUIterator; overload;
  end;

  JXPDocumentBuilder = class abstract external 'javax.xml.parsers' name 'DocumentBuilder' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual;
    function parse(para1: JIInputStream): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: JIInputStream; para2: JLString): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: JLString): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: JIFile): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: OXSInputSource): OWDDocument; overload; virtual; abstract;  // throws org.xml.sax.SAXException, java.io.IOException
    function isNamespaceAware(): jboolean; overload; virtual; abstract;
    function isValidating(): jboolean; overload; virtual; abstract;
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual; abstract;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function newDocument(): OWDDocument; overload; virtual; abstract;
    function getDOMImplementation(): OWDDOMImplementation; overload; virtual; abstract;
    function getSchema(): JXVSchema; overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPDocumentBuilderFactory = class abstract external 'javax.xml.parsers' name 'DocumentBuilderFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXPDocumentBuilderFactory; static; overload;
    class function newInstance(para1: JLString; para2: JLClassLoader): JXPDocumentBuilderFactory; static; overload;
    function newDocumentBuilder(): JXPDocumentBuilder; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException
    procedure setNamespaceAware(para1: jboolean); overload; virtual;
    procedure setValidating(para1: jboolean); overload; virtual;
    procedure setIgnoringElementContentWhitespace(para1: jboolean); overload; virtual;
    procedure setExpandEntityReferences(para1: jboolean); overload; virtual;
    procedure setIgnoringComments(para1: jboolean); overload; virtual;
    procedure setCoalescing(para1: jboolean); overload; virtual;
    function isNamespaceAware(): jboolean; overload; virtual;
    function isValidating(): jboolean; overload; virtual;
    function isIgnoringElementContentWhitespace(): jboolean; overload; virtual;
    function isExpandEntityReferences(): jboolean; overload; virtual;
    function isIgnoringComments(): jboolean; overload; virtual;
    function isCoalescing(): jboolean; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getAttribute(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException
    function getSchema(): JXVSchema; overload; virtual;
    procedure setSchema(para1: JXVSchema); overload; virtual;
    procedure setXIncludeAware(para1: jboolean); overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPSAXParser = class abstract external 'javax.xml.parsers' name 'SAXParser' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual;
    procedure parse(para1: JIInputStream; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIInputStream; para2: OXSHandlerBase; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIInputStream; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIInputStream; para2: OXSHDefaultHandler; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIFile; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIFile; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: OXSInputSource; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: OXSInputSource; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function getParser(): OXSParser; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function getXMLReader(): OXSXMLReader; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function isNamespaceAware(): jboolean; overload; virtual; abstract;
    function isValidating(): jboolean; overload; virtual; abstract;
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual; abstract;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getSchema(): JXVSchema; overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPSAXParserFactory = class abstract external 'javax.xml.parsers' name 'SAXParserFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXPSAXParserFactory; static; overload;
    class function newInstance(para1: JLString; para2: JLClassLoader): JXPSAXParserFactory; static; overload;
    function newSAXParser(): JXPSAXParser; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
    procedure setNamespaceAware(para1: jboolean); overload; virtual;
    procedure setValidating(para1: jboolean); overload; virtual;
    function isNamespaceAware(): jboolean; overload; virtual;
    function isValidating(): jboolean; overload; virtual;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getSchema(): JXVSchema; overload; virtual;
    procedure setSchema(para1: JXVSchema); overload; virtual;
    procedure setXIncludeAware(para1: jboolean); overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXTErrorListener = interface external 'javax.xml.transform' name 'ErrorListener' 
    procedure warning(para1: JXTTransformerException); overload;  // throws javax.xml.transform.TransformerException
    procedure error(para1: JXTTransformerException); overload;  // throws javax.xml.transform.TransformerException
    procedure fatalError(para1: JXTTransformerException); overload;  // throws javax.xml.transform.TransformerException
  end;

  JXTOutputKeys = class external 'javax.xml.transform' name 'OutputKeys' (JLObject)
  public
    const
      METHOD = 'method';
      VERSION = 'version';
      ENCODING = 'encoding';
      OMIT_XML_DECLARATION = 'omit-xml-declaration';
      STANDALONE = 'standalone';
      DOCTYPE_PUBLIC = 'doctype-public';
      DOCTYPE_SYSTEM = 'doctype-system';
      CDATA_SECTION_ELEMENTS = 'cdata-section-elements';
      INDENT = 'indent';
      MEDIA_TYPE = 'media-type';
  end;

  JXTResult = interface external 'javax.xml.transform' name 'Result' 
    const
      PI_DISABLE_OUTPUT_ESCAPING = 'javax.xml.transform.disable-output-escaping';
      PI_ENABLE_OUTPUT_ESCAPING = 'javax.xml.transform.enable-output-escaping';
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
  end;

  JXTSource = interface external 'javax.xml.transform' name 'Source' 
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
  end;

  JXTSourceLocator = interface external 'javax.xml.transform' name 'SourceLocator' 
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
  end;

  JXTTemplates = interface external 'javax.xml.transform' name 'Templates' 
    function newTransformer(): JXTTransformer; overload;  // throws javax.xml.transform.TransformerConfigurationException
    function getOutputProperties(): JUProperties; overload;
  end;

  JXTTransformer = class abstract external 'javax.xml.transform' name 'Transformer' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual;
    procedure transform(para1: JXTSource; para2: JXTResult); overload; virtual; abstract;  // throws javax.xml.transform.TransformerException
    procedure setParameter(para1: JLString; para2: JLObject); overload; virtual; abstract;
    function getParameter(para1: JLString): JLObject; overload; virtual; abstract;
    procedure clearParameters(); overload; virtual; abstract;
    procedure setURIResolver(para1: JXTURIResolver); overload; virtual; abstract;
    function getURIResolver(): JXTURIResolver; overload; virtual; abstract;
    procedure setOutputProperties(para1: JUProperties); overload; virtual; abstract;
    function getOutputProperties(): JUProperties; overload; virtual; abstract;
    procedure setOutputProperty(para1: JLString; para2: JLString); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getOutputProperty(para1: JLString): JLString; overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    procedure setErrorListener(para1: JXTErrorListener); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getErrorListener(): JXTErrorListener; overload; virtual; abstract;
  end;

  JXTTransformerFactory = class abstract external 'javax.xml.transform' name 'TransformerFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXTTransformerFactory; static; overload;  // throws javax.xml.transform.TransformerFactoryConfigurationError
    class function newInstance(para1: JLString; para2: JLClassLoader): JXTTransformerFactory; static; overload;  // throws javax.xml.transform.TransformerFactoryConfigurationError
    function newTransformer(para1: JXTSource): JXTTransformer; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTransformer(): JXTTransformer; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTemplates(para1: JXTSource): JXTTemplates; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function getAssociatedStylesheet(para1: JXTSource; para2: JLString; para3: JLString; para4: JLString): JXTSource; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    procedure setURIResolver(para1: JXTURIResolver); overload; virtual; abstract;
    function getURIResolver(): JXTURIResolver; overload; virtual; abstract;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual; abstract;
    function getAttribute(para1: JLString): JLObject; overload; virtual; abstract;
    procedure setErrorListener(para1: JXTErrorListener); overload; virtual; abstract;
    function getErrorListener(): JXTErrorListener; overload; virtual; abstract;
  end;

  JXTURIResolver = interface external 'javax.xml.transform' name 'URIResolver' 
    function resolve(para1: JLString; para2: JLString): JXTSource; overload;  // throws javax.xml.transform.TransformerException
  end;

  JXVSchema = class abstract external 'javax.xml.validation' name 'Schema' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function newValidator(): JXVValidator; overload; virtual; abstract;
    function newValidatorHandler(): JXVValidatorHandler; overload; virtual; abstract;
  end;

  JXVSchemaFactory = class abstract external 'javax.xml.validation' name 'SchemaFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(para1: JLString): JXVSchemaFactory; static; overload;
    class function newInstance(para1: JLString; para2: JLString; para3: JLClassLoader): JXVSchemaFactory; static; overload;
    function isSchemaLanguageSupported(para1: JLString): jboolean; overload; virtual; abstract;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function getErrorHandler(): OXSErrorHandler; overload; virtual; abstract;
    procedure setResourceResolver(para1: OWDLLSResourceResolver); overload; virtual; abstract;
    function getResourceResolver(): OWDLLSResourceResolver; overload; virtual; abstract;
    function newSchema(para1: JXTSource): JXVSchema; overload; virtual;  // throws org.xml.sax.SAXException
    function newSchema(para1: JIFile): JXVSchema; overload; virtual;  // throws org.xml.sax.SAXException
    function newSchema(para1: JNURL): JXVSchema; overload; virtual;  // throws org.xml.sax.SAXException
    function newSchema(para1: Arr1JXTSource): JXVSchema; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function newSchema(var para1: array of JXTSource): JXVSchema; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function newSchema(): JXVSchema; overload; virtual; abstract;  // throws org.xml.sax.SAXException
  end;

  JXVSchemaFactoryLoader = class abstract external 'javax.xml.validation' name 'SchemaFactoryLoader' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function newFactory(para1: JLString): JXVSchemaFactory; overload; virtual; abstract;
  end;

  JXVTypeInfoProvider = class abstract external 'javax.xml.validation' name 'TypeInfoProvider' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getElementTypeInfo(): OWDTypeInfo; overload; virtual; abstract;
    function getAttributeTypeInfo(para1: jint): OWDTypeInfo; overload; virtual; abstract;
    function isIdAttribute(para1: jint): jboolean; overload; virtual; abstract;
    function isSpecified(para1: jint): jboolean; overload; virtual; abstract;
  end;

  JXVValidator = class abstract external 'javax.xml.validation' name 'Validator' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual; abstract;
    procedure validate(para1: JXTSource); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure validate(para1: JXTSource; para2: JXTResult); overload; virtual; abstract;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function getErrorHandler(): OXSErrorHandler; overload; virtual; abstract;
    procedure setResourceResolver(para1: OWDLLSResourceResolver); overload; virtual; abstract;
    function getResourceResolver(): OWDLLSResourceResolver; overload; virtual; abstract;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
  end;

  JXXXPath = interface external 'javax.xml.xpath' name 'XPath' 
    procedure reset(); overload;
    procedure setXPathVariableResolver(para1: JXXXPathVariableResolver); overload;
    function getXPathVariableResolver(): JXXXPathVariableResolver; overload;
    procedure setXPathFunctionResolver(para1: JXXXPathFunctionResolver); overload;
    function getXPathFunctionResolver(): JXXXPathFunctionResolver; overload;
    procedure setNamespaceContext(para1: JXNNamespaceContext); overload;
    function getNamespaceContext(): JXNNamespaceContext; overload;
    function compile(para1: JLString): JXXXPathExpression; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: JLObject; para3: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: JLObject): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: OXSInputSource; para3: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: OXSInputSource): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
  end;

  JXXXPathConstants = class external 'javax.xml.xpath' name 'XPathConstants' (JLObject)
  public
    final class var
      fNUMBER: JXNQName; external name 'NUMBER';
      fSTRING: JXNQName; external name 'STRING';
      fBOOLEAN: JXNQName; external name 'BOOLEAN';
      fNODESET: JXNQName; external name 'NODESET';
      fNODE: JXNQName; external name 'NODE';
  public
    const
      DOM_OBJECT_MODEL = 'http://java.sun.com/jaxp/xpath/dom';
  end;

  JXXXPathExpression = interface external 'javax.xml.xpath' name 'XPathExpression' 
    function evaluate(para1: JLObject; para2: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLObject): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: OXSInputSource; para2: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: OXSInputSource): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
  end;

  JXXXPathFactory = class abstract external 'javax.xml.xpath' name 'XPathFactory' (JLObject)
  public
    const
      DEFAULT_PROPERTY_NAME = 'javax.xml.xpath.XPathFactory';
      DEFAULT_OBJECT_MODEL_URI = 'http://java.sun.com/jaxp/xpath/dom';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXXXPathFactory; static; overload; final;
    class function newInstance(para1: JLString): JXXXPathFactory; static; overload; final;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    class function newInstance(para1: JLString; para2: JLString; para3: JLClassLoader): JXXXPathFactory; static; overload;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    function isObjectModelSupported(para1: JLString): jboolean; overload; virtual; abstract;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    procedure setXPathVariableResolver(para1: JXXXPathVariableResolver); overload; virtual; abstract;
    procedure setXPathFunctionResolver(para1: JXXXPathFunctionResolver); overload; virtual; abstract;
    function newXPath(): JXXXPath; overload; virtual; abstract;
  end;

  JXXXPathFunction = interface external 'javax.xml.xpath' name 'XPathFunction' 
    function evaluate(para1: JUList): JLObject; overload;  // throws javax.xml.xpath.XPathFunctionException
  end;

  JXXXPathFunctionResolver = interface external 'javax.xml.xpath' name 'XPathFunctionResolver' 
    function resolveFunction(para1: JXNQName; para2: jint): JXXXPathFunction; overload;
  end;

  JXXXPathVariableResolver = interface external 'javax.xml.xpath' name 'XPathVariableResolver' 
    function resolveVariable(para1: JXNQName): JLObject; overload;
  end;

  JFAssert = class external 'junit.framework' name 'Assert' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class procedure assertTrue(para1: JLString; para2: jboolean); static; overload;
    class procedure assertTrue(para1: jboolean); static; overload;
    class procedure assertFalse(para1: JLString; para2: jboolean); static; overload;
    class procedure assertFalse(para1: jboolean); static; overload;
    class procedure fail(para1: JLString); static; overload;
    class procedure fail(); static; overload;
    class procedure assertEquals(para1: JLString; para2: JLObject; para3: JLObject); static; overload;
    class procedure assertEquals(para1: JLObject; para2: JLObject); static; overload;
    class procedure assertEquals(para1: JLString; para2: JLString; para3: JLString); static; overload;
    class procedure assertEquals(para1: JLString; para2: JLString); static; overload;
    class procedure assertEquals(para1: JLString; para2: jdouble; para3: jdouble; para4: jdouble); static; overload;
    class procedure assertEquals(para1: jdouble; para2: jdouble; para3: jdouble); static; overload;
    class procedure assertEquals(para1: JLString; para2: jfloat; para3: jfloat; para4: jfloat); static; overload;
    class procedure assertEquals(para1: jfloat; para2: jfloat; para3: jfloat); static; overload;
    class procedure assertEquals(para1: JLString; para2: jlong; para3: jlong); static; overload;
    class procedure assertEquals(para1: jlong; para2: jlong); static; overload;
    class procedure assertEquals(para1: JLString; para2: jboolean; para3: jboolean); static; overload;
    class procedure assertEquals(para1: jboolean; para2: jboolean); static; overload;
    class procedure assertEquals(para1: JLString; para2: jbyte; para3: jbyte); static; overload;
    class procedure assertEquals(para1: jbyte; para2: jbyte); static; overload;
    class procedure assertEquals(para1: JLString; para2: jchar; para3: jchar); static; overload;
    class procedure assertEquals(para1: jchar; para2: jchar); static; overload;
    class procedure assertEquals(para1: JLString; para2: jshort; para3: jshort); static; overload;
    class procedure assertEquals(para1: jshort; para2: jshort); static; overload;
    class procedure assertEquals(para1: JLString; para2: jint; para3: jint); static; overload;
    class procedure assertEquals(para1: jint; para2: jint); static; overload;
    class procedure assertNotNull(para1: JLObject); static; overload;
    class procedure assertNotNull(para1: JLString; para2: JLObject); static; overload;
    class procedure assertNull(para1: JLObject); static; overload;
    class procedure assertNull(para1: JLString; para2: JLObject); static; overload;
    class procedure assertSame(para1: JLString; para2: JLObject; para3: JLObject); static; overload;
    class procedure assertSame(para1: JLObject; para2: JLObject); static; overload;
    class procedure assertNotSame(para1: JLString; para2: JLObject; para3: JLObject); static; overload;
    class procedure assertNotSame(para1: JLObject; para2: JLObject); static; overload;
  end;

  JFProtectable = interface external 'junit.framework' name 'Protectable' 
    procedure protect(); overload;  // throws java.lang.Throwable
  end;

  JFTest = interface external 'junit.framework' name 'Test' 
    function countTestCases(): jint; overload;
    procedure run(para1: JFTestResult); overload;
  end;

  JFTestFailure = class external 'junit.framework' name 'TestFailure' (JLObject)
  strict protected
    var
      ffFailedTest: JFTest; external name 'fFailedTest';
      ffThrownException: JLThrowable; external name 'fThrownException';
  public
    constructor create(para1: JFTest; para2: JLThrowable); overload;
    function failedTest(): JFTest; overload; virtual;
    function thrownException(): JLThrowable; overload; virtual;
    function toString(): JLString; overload; virtual;
    function trace(): JLString; overload; virtual;
    function exceptionMessage(): JLString; overload; virtual;
    function isFailure(): jboolean; overload; virtual;
  end;

  JFTestListener = interface external 'junit.framework' name 'TestListener' 
    procedure addError(para1: JFTest; para2: JLThrowable); overload;
    procedure addFailure(para1: JFTest; para2: JFAssertionFailedError); overload;
    procedure endTest(para1: JFTest); overload;
    procedure startTest(para1: JFTest); overload;
  end;

  JFTestResult = class external 'junit.framework' name 'TestResult' (JLObject)
  strict protected
    var
      ffFailures: JUVector; external name 'fFailures';
      ffErrors: JUVector; external name 'fErrors';
      ffListeners: JUVector; external name 'fListeners';
      ffRunTests: jint; external name 'fRunTests';
  public
    constructor create(); overload;
    procedure addError(para1: JFTest; para2: JLThrowable); overload; virtual;
    procedure addFailure(para1: JFTest; para2: JFAssertionFailedError); overload; virtual;
    procedure addListener(para1: JFTestListener); overload; virtual;
    procedure removeListener(para1: JFTestListener); overload; virtual;
    procedure endTest(para1: JFTest); overload; virtual;
    function errorCount(): jint; overload; virtual;
    function errors(): JUEnumeration; overload; virtual;
    function failureCount(): jint; overload; virtual;
    function failures(): JUEnumeration; overload; virtual;
  strict protected
    procedure run(para1: JFTestCase); overload; virtual;
  public
    function runCount(): jint; overload; virtual;
    procedure runProtected(para1: JFTest; para2: JFProtectable); overload; virtual;
    function shouldStop(): jboolean; overload; virtual;
    procedure startTest(para1: JFTest); overload; virtual;
    procedure stop(); overload; virtual;
    function wasSuccessful(): jboolean; overload; virtual;
  end;

  JRTestSuiteLoader = interface external 'junit.runner' name 'TestSuiteLoader' 
    function load(para1: JLString): JLClass; overload;  // throws java.lang.ClassNotFoundException
    function reload(para1: JLClass): JLClass; overload;  // throws java.lang.ClassNotFoundException
  end;

  JRVersion = class external 'junit.runner' name 'Version' (JLObject)
  public
    class function id(): JLString; static; overload;
  end;

  OACLLog = interface external 'org.apache.commons.logging' name 'Log' 
    function isDebugEnabled(): jboolean; overload;
    function isErrorEnabled(): jboolean; overload;
    function isFatalEnabled(): jboolean; overload;
    function isInfoEnabled(): jboolean; overload;
    function isTraceEnabled(): jboolean; overload;
    function isWarnEnabled(): jboolean; overload;
    procedure trace(para1: JLObject); overload;
    procedure trace(para1: JLObject; para2: JLThrowable); overload;
    procedure debug(para1: JLObject); overload;
    procedure debug(para1: JLObject; para2: JLThrowable); overload;
    procedure info(para1: JLObject); overload;
    procedure info(para1: JLObject; para2: JLThrowable); overload;
    procedure warn(para1: JLObject); overload;
    procedure warn(para1: JLObject; para2: JLThrowable); overload;
    procedure error(para1: JLObject); overload;
    procedure error(para1: JLObject; para2: JLThrowable); overload;
    procedure fatal(para1: JLObject); overload;
    procedure fatal(para1: JLObject; para2: JLThrowable); overload;
  end;

  OAHConnectionReuseStrategy = interface external 'org.apache.http' name 'ConnectionReuseStrategy' 
    function keepAlive(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload;
  end;

  OAHHeader = interface external 'org.apache.http' name 'Header' 
    function getName(): JLString; overload;
    function getValue(): JLString; overload;
    function getElements(): Arr1OAHHeaderElement; overload;  // throws org.apache.http.ParseException
  end;

  OAHHeaderElement = interface external 'org.apache.http' name 'HeaderElement' 
    function getName(): JLString; overload;
    function getValue(): JLString; overload;
    function getParameters(): Arr1OAHNameValuePair; overload;
    function getParameterByName(para1: JLString): OAHNameValuePair; overload;
    function getParameterCount(): jint; overload;
    function getParameter(para1: jint): OAHNameValuePair; overload;
  end;

  OAHHttpConnection = interface external 'org.apache.http' name 'HttpConnection' 
    procedure close(); overload;  // throws java.io.IOException
    function isOpen(): jboolean; overload;
    function isStale(): jboolean; overload;
    procedure setSocketTimeout(para1: jint); overload;
    function getSocketTimeout(): jint; overload;
    procedure shutdown(); overload;  // throws java.io.IOException
    function getMetrics(): OAHHttpConnectionMetrics; overload;
  end;

  OAHHttpConnectionMetrics = interface external 'org.apache.http' name 'HttpConnectionMetrics' 
    function getRequestCount(): jlong; overload;
    function getResponseCount(): jlong; overload;
    function getSentBytesCount(): jlong; overload;
    function getReceivedBytesCount(): jlong; overload;
    function getMetric(para1: JLString): JLObject; overload;
    procedure reset(); overload;
  end;

  OAHHttpEntity = interface external 'org.apache.http' name 'HttpEntity' 
    function isRepeatable(): jboolean; overload;
    function isChunked(): jboolean; overload;
    function getContentLength(): jlong; overload;
    function getContentType(): OAHHeader; overload;
    function getContentEncoding(): OAHHeader; overload;
    function getContent(): JIInputStream; overload;  // throws java.io.IOException, java.lang.IllegalStateException
    procedure writeTo(para1: JIOutputStream); overload;  // throws java.io.IOException
    function isStreaming(): jboolean; overload;
    procedure consumeContent(); overload;  // throws java.io.IOException
  end;

  OAHHttpMessage = interface external 'org.apache.http' name 'HttpMessage' 
    function getProtocolVersion(): OAHProtocolVersion; overload;
    function containsHeader(para1: JLString): jboolean; overload;
    function getHeaders(para1: JLString): Arr1OAHHeader; overload;
    function getFirstHeader(para1: JLString): OAHHeader; overload;
    function getLastHeader(para1: JLString): OAHHeader; overload;
    function getAllHeaders(): Arr1OAHHeader; overload;
    procedure addHeader(para1: OAHHeader); overload;
    procedure addHeader(para1: JLString; para2: JLString); overload;
    procedure setHeader(para1: OAHHeader); overload;
    procedure setHeader(para1: JLString; para2: JLString); overload;
    procedure setHeaders(para1: Arr1OAHHeader); overload;
    procedure setHeaders(var para1: array of OAHHeader); overload;
    procedure removeHeader(para1: OAHHeader); overload;
    procedure removeHeaders(para1: JLString); overload;
    function headerIterator(): OAHHeaderIterator; overload;
    function headerIterator(para1: JLString): OAHHeaderIterator; overload;
    function getParams(): OAHPHttpParams; overload;
    procedure setParams(para1: OAHPHttpParams); overload;
  end;

  OAHHttpRequestFactory = interface external 'org.apache.http' name 'HttpRequestFactory' 
    function newHttpRequest(para1: OAHRequestLine): OAHHttpRequest; overload;  // throws org.apache.http.MethodNotSupportedException
    function newHttpRequest(para1: JLString; para2: JLString): OAHHttpRequest; overload;  // throws org.apache.http.MethodNotSupportedException
  end;

  OAHHttpRequestInterceptor = interface external 'org.apache.http' name 'HttpRequestInterceptor' 
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHHttpResponseFactory = interface external 'org.apache.http' name 'HttpResponseFactory' 
    function newHttpResponse(para1: OAHProtocolVersion; para2: jint; para3: OAHPHttpContext): OAHHttpResponse; overload;
    function newHttpResponse(para1: OAHStatusLine; para2: OAHPHttpContext): OAHHttpResponse; overload;
  end;

  OAHHttpResponseInterceptor = interface external 'org.apache.http' name 'HttpResponseInterceptor' 
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHHttpStatus = interface external 'org.apache.http' name 'HttpStatus' 
    const
      SC_CONTINUE = 100;
      SC_SWITCHING_PROTOCOLS = 101;
      SC_PROCESSING = 102;
      SC_OK = 200;
      SC_CREATED = 201;
      SC_ACCEPTED = 202;
      SC_NON_AUTHORITATIVE_INFORMATION = 203;
      SC_NO_CONTENT = 204;
      SC_RESET_CONTENT = 205;
      SC_PARTIAL_CONTENT = 206;
      SC_MULTI_STATUS = 207;
      SC_MULTIPLE_CHOICES = 300;
      SC_MOVED_PERMANENTLY = 301;
      SC_MOVED_TEMPORARILY = 302;
      SC_SEE_OTHER = 303;
      SC_NOT_MODIFIED = 304;
      SC_USE_PROXY = 305;
      SC_TEMPORARY_REDIRECT = 307;
      SC_BAD_REQUEST = 400;
      SC_UNAUTHORIZED = 401;
      SC_PAYMENT_REQUIRED = 402;
      SC_FORBIDDEN = 403;
      SC_NOT_FOUND = 404;
      SC_METHOD_NOT_ALLOWED = 405;
      SC_NOT_ACCEPTABLE = 406;
      SC_PROXY_AUTHENTICATION_REQUIRED = 407;
      SC_REQUEST_TIMEOUT = 408;
      SC_CONFLICT = 409;
      SC_GONE = 410;
      SC_LENGTH_REQUIRED = 411;
      SC_PRECONDITION_FAILED = 412;
      SC_REQUEST_TOO_LONG = 413;
      SC_REQUEST_URI_TOO_LONG = 414;
      SC_UNSUPPORTED_MEDIA_TYPE = 415;
      SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
      SC_EXPECTATION_FAILED = 417;
      SC_INSUFFICIENT_SPACE_ON_RESOURCE = 419;
      SC_METHOD_FAILURE = 420;
      SC_UNPROCESSABLE_ENTITY = 422;
      SC_LOCKED = 423;
      SC_FAILED_DEPENDENCY = 424;
      SC_INTERNAL_SERVER_ERROR = 500;
      SC_NOT_IMPLEMENTED = 501;
      SC_BAD_GATEWAY = 502;
      SC_SERVICE_UNAVAILABLE = 503;
      SC_GATEWAY_TIMEOUT = 504;
      SC_HTTP_VERSION_NOT_SUPPORTED = 505;
      SC_INSUFFICIENT_STORAGE = 507;
  end;

  OAHNameValuePair = interface external 'org.apache.http' name 'NameValuePair' 
    function getName(): JLString; overload;
    function getValue(): JLString; overload;
  end;

  OAHReasonPhraseCatalog = interface external 'org.apache.http' name 'ReasonPhraseCatalog' 
    function getReason(para1: jint; para2: JULocale): JLString; overload;
  end;

  OAHRequestLine = interface external 'org.apache.http' name 'RequestLine' 
    function getMethod(): JLString; overload;
    function getProtocolVersion(): OAHProtocolVersion; overload;
    function getUri(): JLString; overload;
  end;

  OAHStatusLine = interface external 'org.apache.http' name 'StatusLine' 
    function getProtocolVersion(): OAHProtocolVersion; overload;
    function getStatusCode(): jint; overload;
    function getReasonPhrase(): JLString; overload;
  end;

  OAHAAUTH = class sealed external 'org.apache.http.auth' name 'AUTH' (JLObject)
  public
    const
      WWW_AUTH = 'WWW-Authenticate';
      WWW_AUTH_RESP = 'Authorization';
      PROXY_AUTH = 'Proxy-Authenticate';
      PROXY_AUTH_RESP = 'Proxy-Authorization';
  end;

  OAHAAuthScheme = interface external 'org.apache.http.auth' name 'AuthScheme' 
    procedure processChallenge(para1: OAHHeader); overload;  // throws org.apache.http.auth.MalformedChallengeException
    function getSchemeName(): JLString; overload;
    function getParameter(para1: JLString): JLString; overload;
    function getRealm(): JLString; overload;
    function isConnectionBased(): jboolean; overload;
    function isComplete(): jboolean; overload;
    function authenticate(para1: OAHACredentials; para2: OAHHttpRequest): OAHHeader; overload;  // throws org.apache.http.auth.AuthenticationException
  end;

  OAHAAuthSchemeFactory = interface external 'org.apache.http.auth' name 'AuthSchemeFactory' 
    function newInstance(para1: OAHPHttpParams): OAHAAuthScheme; overload;
  end;

  OAHAAuthSchemeRegistry = class sealed external 'org.apache.http.auth' name 'AuthSchemeRegistry' (JLObject)
  public
    constructor create(); overload;
    procedure register(para1: JLString; para2: OAHAAuthSchemeFactory); overload; virtual;
    procedure unregister(para1: JLString); overload; virtual;
    function getAuthScheme(para1: JLString; para2: OAHPHttpParams): OAHAAuthScheme; overload; virtual;  // throws java.lang.IllegalStateException
    function getSchemeNames(): JUList; overload; virtual;
    procedure setItems(para1: JUMap); overload; virtual;
  end;

  OAHAAuthScope = class external 'org.apache.http.auth' name 'AuthScope' (JLObject)
  public
    final class var
      fANY_HOST: JLString; external name 'ANY_HOST';
  public
    const
      ANY_PORT = -1;
  public
    final class var
      fANY_REALM: JLString; external name 'ANY_REALM';
      fANY_SCHEME: JLString; external name 'ANY_SCHEME';
      fANY: OAHAAuthScope; external name 'ANY';
  public
    constructor create(para1: JLString; para2: jint; para3: JLString; para4: JLString); overload;
    constructor create(para1: JLString; para2: jint; para3: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: OAHAAuthScope); overload;
    function getHost(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getRealm(): JLString; overload; virtual;
    function getScheme(): JLString; overload; virtual;
    function match(para1: OAHAAuthScope): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  OAHAAuthState = class external 'org.apache.http.auth' name 'AuthState' (JLObject)
  public
    constructor create(); overload;
    procedure invalidate(); overload; virtual;
    function isValid(): jboolean; overload; virtual;
    procedure setAuthScheme(para1: OAHAAuthScheme); overload; virtual;
    function getAuthScheme(): OAHAAuthScheme; overload; virtual;
    function getCredentials(): OAHACredentials; overload; virtual;
    procedure setCredentials(para1: OAHACredentials); overload; virtual;
    function getAuthScope(): OAHAAuthScope; overload; virtual;
    procedure setAuthScope(para1: OAHAAuthScope); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHACredentials = interface external 'org.apache.http.auth' name 'Credentials' 
    function getUserPrincipal(): JSPrincipal; overload;
    function getPassword(): JLString; overload;
  end;

  OAHAPAuthPNames = interface external 'org.apache.http.auth.params' name 'AuthPNames' 
    const
      CREDENTIAL_CHARSET = 'http.auth.credential-charset';
  end;

  OAHAPAuthParams = class sealed external 'org.apache.http.auth.params' name 'AuthParams' (JLObject)
  public
    class function getCredentialCharset(para1: OAHPHttpParams): JLString; static; overload;
    class procedure setCredentialCharset(para1: OAHPHttpParams; para2: JLString); static; overload;
  end;

  OAHCAuthenticationHandler = interface external 'org.apache.http.client' name 'AuthenticationHandler' 
    function isAuthenticationRequested(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload;
    function getChallenges(para1: OAHHttpResponse; para2: OAHPHttpContext): JUMap; overload;  // throws org.apache.http.auth.MalformedChallengeException
    function selectScheme(para1: JUMap; para2: OAHHttpResponse; para3: OAHPHttpContext): OAHAAuthScheme; overload;  // throws org.apache.http.auth.AuthenticationException
  end;

  OAHCCookieStore = interface external 'org.apache.http.client' name 'CookieStore' 
    procedure addCookie(para1: OAHCCookie); overload;
    function getCookies(): JUList; overload;
    function clearExpired(para1: JUDate): jboolean; overload;
    procedure clear(); overload;
  end;

  OAHCCredentialsProvider = interface external 'org.apache.http.client' name 'CredentialsProvider' 
    procedure setCredentials(para1: OAHAAuthScope; para2: OAHACredentials); overload;
    function getCredentials(para1: OAHAAuthScope): OAHACredentials; overload;
    procedure clear(); overload;
  end;

  OAHCHttpClient = interface external 'org.apache.http.client' name 'HttpClient' 
    function getParams(): OAHPHttpParams; overload;
    function getConnectionManager(): OAHCClientConnectionManager; overload;
    function execute(para1: OAHCMHttpUriRequest): OAHHttpResponse; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHPHttpContext): OAHHttpResponse; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest): OAHHttpResponse; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHHttpResponse; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHCResponseHandler): JLObject; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHCResponseHandler; para3: OAHPHttpContext): JLObject; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHCResponseHandler): JLObject; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHCResponseHandler; para4: OAHPHttpContext): JLObject; overload;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
  end;

  OAHCHttpRequestRetryHandler = interface external 'org.apache.http.client' name 'HttpRequestRetryHandler' 
    function retryRequest(para1: JIIOException; para2: jint; para3: OAHPHttpContext): jboolean; overload;
  end;

  OAHCRedirectHandler = interface external 'org.apache.http.client' name 'RedirectHandler' 
    function isRedirectRequested(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload;
    function getLocationURI(para1: OAHHttpResponse; para2: OAHPHttpContext): JNURI; overload;  // throws org.apache.http.ProtocolException
  end;

  OAHCRequestDirector = interface external 'org.apache.http.client' name 'RequestDirector' 
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHHttpResponse; overload;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHCResponseHandler = interface external 'org.apache.http.client' name 'ResponseHandler' 
    function handleResponse(para1: OAHHttpResponse): JLObject; overload;  // throws org.apache.http.client.ClientProtocolException, java.io.IOException
  end;

  OAHCUserTokenHandler = interface external 'org.apache.http.client' name 'UserTokenHandler' 
    function getUserToken(para1: OAHPHttpContext): JLObject; overload;
  end;

  OAHCMAbortableHttpRequest = interface external 'org.apache.http.client.methods' name 'AbortableHttpRequest' 
    procedure setConnectionRequest(para1: OAHCClientConnectionRequest); overload;  // throws java.io.IOException
    procedure setReleaseTrigger(para1: OAHCConnectionReleaseTrigger); overload;  // throws java.io.IOException
    procedure abort(); overload;
  end;

  OAHCPAuthPolicy = class sealed external 'org.apache.http.client.params' name 'AuthPolicy' (JLObject)
  public
    const
      NTLM = 'NTLM';
      DIGEST = 'Digest';
      BASIC = 'Basic';
  end;

  OAHCPClientPNames = interface external 'org.apache.http.client.params' name 'ClientPNames' 
    const
      CONNECTION_MANAGER_FACTORY_CLASS_NAME = 'http.connection-manager.factory-class-name';
      CONNECTION_MANAGER_FACTORY = 'http.connection-manager.factory-object';
      HANDLE_REDIRECTS = 'http.protocol.handle-redirects';
      REJECT_RELATIVE_REDIRECT = 'http.protocol.reject-relative-redirect';
      MAX_REDIRECTS = 'http.protocol.max-redirects';
      ALLOW_CIRCULAR_REDIRECTS = 'http.protocol.allow-circular-redirects';
      HANDLE_AUTHENTICATION = 'http.protocol.handle-authentication';
      COOKIE_POLICY = 'http.protocol.cookie-policy';
      VIRTUAL_HOST = 'http.virtual-host';
      DEFAULT_HEADERS = 'http.default-headers';
      DEFAULT_HOST = 'http.default-host';
  end;

  OAHCPCookiePolicy = class sealed external 'org.apache.http.client.params' name 'CookiePolicy' (JLObject)
  public
    const
      BROWSER_COMPATIBILITY = 'compatibility';
      NETSCAPE = 'netscape';
      RFC_2109 = 'rfc2109';
      RFC_2965 = 'rfc2965';
      BEST_MATCH = 'best-match';
  end;

  OAHCPHttpClientParams = class external 'org.apache.http.client.params' name 'HttpClientParams' (JLObject)
  public
    class function isRedirecting(para1: OAHPHttpParams): jboolean; static; overload;
    class procedure setRedirecting(para1: OAHPHttpParams; para2: jboolean); static; overload;
    class function isAuthenticating(para1: OAHPHttpParams): jboolean; static; overload;
    class procedure setAuthenticating(para1: OAHPHttpParams; para2: jboolean); static; overload;
    class function getCookiePolicy(para1: OAHPHttpParams): JLString; static; overload;
    class procedure setCookiePolicy(para1: OAHPHttpParams; para2: JLString); static; overload;
  end;

  OAHCPClientContext = interface external 'org.apache.http.client.protocol' name 'ClientContext' 
    const
      COOKIESPEC_REGISTRY = 'http.cookiespec-registry';
      AUTHSCHEME_REGISTRY = 'http.authscheme-registry';
      COOKIE_STORE = 'http.cookie-store';
      COOKIE_SPEC = 'http.cookie-spec';
      COOKIE_ORIGIN = 'http.cookie-origin';
      CREDS_PROVIDER = 'http.auth.credentials-provider';
      TARGET_AUTH_STATE = 'http.auth.target-scope';
      PROXY_AUTH_STATE = 'http.auth.proxy-scope';
      AUTH_SCHEME_PREF = 'http.auth.scheme-pref';
      USER_TOKEN = 'http.user-token';
  end;

  OAHCUCloneUtils = class external 'org.apache.http.client.utils' name 'CloneUtils' (JLObject)
  public
    class function clone(para1: JLObject): JLObject; static; overload;  // throws java.lang.CloneNotSupportedException
  end;

  OAHCUURIUtils = class external 'org.apache.http.client.utils' name 'URIUtils' (JLObject)
  public
    class function createURI(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JLString; para6: JLString): JNURI; static; overload;  // throws java.net.URISyntaxException
    class function rewriteURI(para1: JNURI; para2: OAHHttpHost; para3: jboolean): JNURI; static; overload;  // throws java.net.URISyntaxException
    class function rewriteURI(para1: JNURI; para2: OAHHttpHost): JNURI; static; overload;  // throws java.net.URISyntaxException
    class function resolve(para1: JNURI; para2: JLString): JNURI; static; overload;
    class function resolve(para1: JNURI; para2: JNURI): JNURI; static; overload;
  end;

  OAHCUURLEncodedUtils = class external 'org.apache.http.client.utils' name 'URLEncodedUtils' (JLObject)
  public
    const
      CONTENT_TYPE = 'application/x-www-form-urlencoded';
  public
    constructor create(); overload;
    class function parse(para1: JNURI; para2: JLString): JUList; static; overload;
    class function parse(para1: OAHHttpEntity): JUList; static; overload;  // throws java.io.IOException
    class function isEncoded(para1: OAHHttpEntity): jboolean; static; overload;
    class procedure parse(para1: JUList; para2: JUScanner; para3: JLString); static; overload;
    class function format(para1: JUList; para2: JLString): JLString; static; overload;
  end;

  OAHCClientConnectionManager = interface external 'org.apache.http.conn' name 'ClientConnectionManager' 
    function getSchemeRegistry(): OAHCSSchemeRegistry; overload;
    function requestConnection(para1: OAHCRHttpRoute; para2: JLObject): OAHCClientConnectionRequest; overload;
    procedure releaseConnection(para1: OAHCManagedClientConnection; para2: jlong; para3: JUCTimeUnit); overload;
    procedure closeIdleConnections(para1: jlong; para2: JUCTimeUnit); overload;
    procedure closeExpiredConnections(); overload;
    procedure shutdown(); overload;
  end;

  OAHCClientConnectionManagerFactory = interface external 'org.apache.http.conn' name 'ClientConnectionManagerFactory' 
    function newInstance(para1: OAHPHttpParams; para2: OAHCSSchemeRegistry): OAHCClientConnectionManager; overload;
  end;

  OAHCClientConnectionOperator = interface external 'org.apache.http.conn' name 'ClientConnectionOperator' 
    function createConnection(): OAHCOperatedClientConnection; overload;
    procedure openConnection(para1: OAHCOperatedClientConnection; para2: OAHHttpHost; para3: JNInetAddress; para4: OAHPHttpContext; para5: OAHPHttpParams); overload;  // throws java.io.IOException
    procedure updateSecureConnection(para1: OAHCOperatedClientConnection; para2: OAHHttpHost; para3: OAHPHttpContext; para4: OAHPHttpParams); overload;  // throws java.io.IOException
  end;

  OAHCClientConnectionRequest = interface external 'org.apache.http.conn' name 'ClientConnectionRequest' 
    function getConnection(para1: jlong; para2: JUCTimeUnit): OAHCManagedClientConnection; overload;  // throws java.lang.InterruptedException, org.apache.http.conn.ConnectionPoolTimeoutException
    procedure abortRequest(); overload;
  end;

  OAHCConnectionKeepAliveStrategy = interface external 'org.apache.http.conn' name 'ConnectionKeepAliveStrategy' 
    function getKeepAliveDuration(para1: OAHHttpResponse; para2: OAHPHttpContext): jlong; overload;
  end;

  OAHCConnectionReleaseTrigger = interface external 'org.apache.http.conn' name 'ConnectionReleaseTrigger' 
    procedure releaseConnection(); overload;  // throws java.io.IOException
    procedure abortConnection(); overload;  // throws java.io.IOException
  end;

  OAHCEofSensorWatcher = interface external 'org.apache.http.conn' name 'EofSensorWatcher' 
    function eofDetected(para1: JIInputStream): jboolean; overload;  // throws java.io.IOException
    function streamClosed(para1: JIInputStream): jboolean; overload;  // throws java.io.IOException
    function streamAbort(para1: JIInputStream): jboolean; overload;  // throws java.io.IOException
  end;

  OAHCPConnConnectionPNames = interface external 'org.apache.http.conn.params' name 'ConnConnectionPNames' 
    const
      MAX_STATUS_LINE_GARBAGE = 'http.connection.max-status-line-garbage';
  end;

  OAHCPConnManagerPNames = interface external 'org.apache.http.conn.params' name 'ConnManagerPNames' 
    const
      TIMEOUT = 'http.conn-manager.timeout';
      MAX_CONNECTIONS_PER_ROUTE = 'http.conn-manager.max-per-route';
      MAX_TOTAL_CONNECTIONS = 'http.conn-manager.max-total';
  end;

  OAHCPConnPerRoute = interface external 'org.apache.http.conn.params' name 'ConnPerRoute' 
    function getMaxForRoute(para1: OAHCRHttpRoute): jint; overload;
  end;

  OAHCPConnRoutePNames = interface external 'org.apache.http.conn.params' name 'ConnRoutePNames' 
    const
      DEFAULT_PROXY = 'http.route.default-proxy';
      LOCAL_ADDRESS = 'http.route.local-address';
      FORCED_ROUTE = 'http.route.forced-route';
  end;

  OAHCRHttpRouteDirector = interface external 'org.apache.http.conn.routing' name 'HttpRouteDirector' 
    const
      UNREACHABLE = -1;
      COMPLETE = 0;
      CONNECT_TARGET = 1;
      CONNECT_PROXY = 2;
      TUNNEL_TARGET = 3;
      TUNNEL_PROXY = 4;
      LAYER_PROTOCOL = 5;
    function nextStep(para1: OAHCRRouteInfo; para2: OAHCRRouteInfo): jint; overload;
  end;

  OAHCRHttpRoutePlanner = interface external 'org.apache.http.conn.routing' name 'HttpRoutePlanner' 
    function determineRoute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHCRHttpRoute; overload;  // throws org.apache.http.HttpException
  end;

  OAHCSHostNameResolver = interface external 'org.apache.http.conn.scheme' name 'HostNameResolver' 
    function resolve(para1: JLString): JNInetAddress; overload;  // throws java.io.IOException
  end;

  OAHCSScheme = class sealed external 'org.apache.http.conn.scheme' name 'Scheme' (JLObject)
  public
    constructor create(para1: JLString; para2: OAHCSSocketFactory; para3: jint); overload;
    function getDefaultPort(): jint; overload; virtual; final;
    function getSocketFactory(): OAHCSSocketFactory; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function isLayered(): jboolean; overload; virtual; final;
    function resolvePort(para1: jint): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
  end;

  OAHCSSchemeRegistry = class sealed external 'org.apache.http.conn.scheme' name 'SchemeRegistry' (JLObject)
  public
    constructor create(); overload;
    function getScheme(para1: JLString): OAHCSScheme; overload; virtual; final;
    function getScheme(para1: OAHHttpHost): OAHCSScheme; overload; virtual; final;
    function get(para1: JLString): OAHCSScheme; overload; virtual; final;
    function register(para1: OAHCSScheme): OAHCSScheme; overload; virtual; final;
    function unregister(para1: JLString): OAHCSScheme; overload; virtual; final;
    function getSchemeNames(): JUList; overload; virtual; final;
    procedure setItems(para1: JUMap); overload; virtual;
  end;

  OAHCSSocketFactory = interface external 'org.apache.http.conn.scheme' name 'SocketFactory' 
    function createSocket(): JNSocket; overload;  // throws java.io.IOException
    function connectSocket(para1: JNSocket; para2: JLString; para3: jint; para4: JNInetAddress; para5: jint; para6: OAHPHttpParams): JNSocket; overload;  // throws java.io.IOException, java.net.UnknownHostException, org.apache.http.conn.ConnectTimeoutException
    function isSecure(para1: JNSocket): jboolean; overload;  // throws java.lang.IllegalArgumentException
  end;

  OAHCUInetAddressUtils = class external 'org.apache.http.conn.util' name 'InetAddressUtils' (JLObject)
  public
    class function isIPv4Address(para1: JLString): jboolean; static; overload;
    class function isIPv6StdAddress(para1: JLString): jboolean; static; overload;
    class function isIPv6HexCompressedAddress(para1: JLString): jboolean; static; overload;
    class function isIPv6Address(para1: JLString): jboolean; static; overload;
  end;

  OAHCCookie = interface external 'org.apache.http.cookie' name 'Cookie' 
    function getName(): JLString; overload;
    function getValue(): JLString; overload;
    function getComment(): JLString; overload;
    function getCommentURL(): JLString; overload;
    function getExpiryDate(): JUDate; overload;
    function isPersistent(): jboolean; overload;
    function getDomain(): JLString; overload;
    function getPath(): JLString; overload;
    function getPorts(): Arr1jint; overload;
    function isSecure(): jboolean; overload;
    function getVersion(): jint; overload;
    function isExpired(para1: JUDate): jboolean; overload;
  end;

  OAHCCookieAttributeHandler = interface external 'org.apache.http.cookie' name 'CookieAttributeHandler' 
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload;
  end;

  OAHCCookieOrigin = class sealed external 'org.apache.http.cookie' name 'CookieOrigin' (JLObject)
  public
    constructor create(para1: JLString; para2: jint; para3: JLString; para4: jboolean); overload;
    function getHost(): JLString; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function isSecure(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHCCookieSpec = interface external 'org.apache.http.cookie' name 'CookieSpec' 
    function getVersion(): jint; overload;
    function parse(para1: OAHHeader; para2: OAHCCookieOrigin): JUList; overload;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload;
    function formatCookies(para1: JUList): JUList; overload;
    function getVersionHeader(): OAHHeader; overload;
  end;

  OAHCCookieSpecFactory = interface external 'org.apache.http.cookie' name 'CookieSpecFactory' 
    function newInstance(para1: OAHPHttpParams): OAHCCookieSpec; overload;
  end;

  OAHCCookieSpecRegistry = class sealed external 'org.apache.http.cookie' name 'CookieSpecRegistry' (JLObject)
  public
    constructor create(); overload;
    procedure register(para1: JLString; para2: OAHCCookieSpecFactory); overload; virtual;
    procedure unregister(para1: JLString); overload; virtual;
    function getCookieSpec(para1: JLString; para2: OAHPHttpParams): OAHCCookieSpec; overload; virtual;  // throws java.lang.IllegalStateException
    function getCookieSpec(para1: JLString): OAHCCookieSpec; overload; virtual;  // throws java.lang.IllegalStateException
    function getSpecNames(): JUList; overload; virtual;
    procedure setItems(para1: JUMap); overload; virtual;
  end;

  OAHCSM = interface external 'org.apache.http.cookie' name 'SM' 
    const
      COOKIE = 'Cookie';
      COOKIE2 = 'Cookie2';
      SET_COOKIE = 'Set-Cookie';
      SET_COOKIE2 = 'Set-Cookie2';
  end;

  OAHCPCookieSpecPNames = interface external 'org.apache.http.cookie.params' name 'CookieSpecPNames' 
    const
      DATE_PATTERNS = 'http.protocol.cookie-datepatterns';
      SINGLE_COOKIE_HEADER = 'http.protocol.single-cookie-header';
  end;

  OAHEContentLengthStrategy = interface external 'org.apache.http.entity' name 'ContentLengthStrategy' 
    const
      IDENTITY = -1;
      CHUNKED = -2;
    function determineLength(para1: OAHHttpMessage): jlong; overload;  // throws org.apache.http.HttpException
  end;

  OAHEContentProducer = interface external 'org.apache.http.entity' name 'ContentProducer' 
    procedure writeTo(para1: JIOutputStream); overload;  // throws java.io.IOException
  end;

  OAHIANTLMEngine = interface external 'org.apache.http.impl.auth' name 'NTLMEngine' 
    function generateType1Msg(para1: JLString; para2: JLString): JLString; overload;  // throws org.apache.http.impl.auth.NTLMEngineException
    function generateType3Msg(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString): JLString; overload;  // throws org.apache.http.impl.auth.NTLMEngineException
  end;

  OAHICRedirectLocations = class external 'org.apache.http.impl.client' name 'RedirectLocations' (JLObject)
  public
    constructor create(); overload;
    function contains(para1: JNURI): jboolean; overload; virtual;
    procedure add(para1: JNURI); overload; virtual;
    function remove(para1: JNURI): jboolean; overload; virtual;
  end;

  OAHICRoutedRequest = class external 'org.apache.http.impl.client' name 'RoutedRequest' (JLObject)
  strict protected
    final var
      frequest: OAHICRequestWrapper; external name 'request';
      froute: OAHCRHttpRoute; external name 'route';
  public
    constructor create(para1: OAHICRequestWrapper; para2: OAHCRHttpRoute); overload;
    function getRequest(): OAHICRequestWrapper; overload; virtual; final;
    function getRoute(): OAHCRHttpRoute; overload; virtual; final;
  end;

  OAHICAbstractPoolEntry = class abstract external 'org.apache.http.impl.conn' name 'AbstractPoolEntry' (JLObject)
  strict protected
    final var
      fconnOperator: OAHCClientConnectionOperator; external name 'connOperator';
      fconnection: OAHCOperatedClientConnection; external name 'connection';
  strict protected
    var
      froute: OAHCRHttpRoute; external name 'route';
      fstate: JLObject; external name 'state';
      ftracker: OAHCRRouteTracker; external name 'tracker';
  strict protected
    constructor create(para1: OAHCClientConnectionOperator; para2: OAHCRHttpRoute); overload;
  public
    function getState(): JLObject; overload; virtual;
    procedure setState(para1: JLObject); overload; virtual;
    procedure open(para1: OAHCRHttpRoute; para2: OAHPHttpContext; para3: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure tunnelTarget(para1: jboolean; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure tunnelProxy(para1: OAHHttpHost; para2: jboolean; para3: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure layerProtocol(para1: OAHPHttpContext; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure shutdownEntry(); overload; virtual;
  end;

  OAHICIdleConnectionHandler = class external 'org.apache.http.impl.conn' name 'IdleConnectionHandler' (JLObject)
  public
    constructor create(); overload;
    procedure add(para1: OAHHttpConnection; para2: jlong; para3: JUCTimeUnit); overload; virtual;
    function remove(para1: OAHHttpConnection): jboolean; overload; virtual;
    procedure removeAll(); overload; virtual;
    procedure closeIdleConnections(para1: jlong); overload; virtual;
    procedure closeExpiredConnections(); overload; virtual;
  end;

  OAHICWire = class external 'org.apache.http.impl.conn' name 'Wire' (JLObject)
  public
    constructor create(para1: OACLLog); overload;
    function enabled(): jboolean; overload; virtual;
    procedure output(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure input(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure output(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure output(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure input(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure input(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure output(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure output(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure input(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure input(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure output(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure input(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure output(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure input(para1: JLString); overload; virtual;  // throws java.io.IOException
  end;

  OAHICTPoolEntryRequest = interface external 'org.apache.http.impl.conn.tsccm' name 'PoolEntryRequest' 
    function getPoolEntry(para1: jlong; para2: JUCTimeUnit): OAHICTBasicPoolEntry; overload;  // throws java.lang.InterruptedException, org.apache.http.conn.ConnectionPoolTimeoutException
    procedure abortRequest(); overload;
  end;

  OAHICTRefQueueHandler = interface external 'org.apache.http.impl.conn.tsccm' name 'RefQueueHandler' 
    procedure handleReference(para1: JLRReference); overload;
  end;

  OAHICTRouteSpecificPool = class external 'org.apache.http.impl.conn.tsccm' name 'RouteSpecificPool' (JLObject)
  strict protected
    final var
      froute: OAHCRHttpRoute; external name 'route';
      fmaxEntries: jint; external name 'maxEntries';
      ffreeEntries: JULinkedList; external name 'freeEntries';
      fwaitingThreads: JUQueue; external name 'waitingThreads';
  strict protected
    var
      fnumEntries: jint; external name 'numEntries';
  public
    constructor create(para1: OAHCRHttpRoute; para2: jint); overload;
    function getRoute(): OAHCRHttpRoute; overload; virtual; final;
    function getMaxEntries(): jint; overload; virtual; final;
    function isUnused(): jboolean; overload; virtual;
    function getCapacity(): jint; overload; virtual;
    function getEntryCount(): jint; overload; virtual; final;
    function allocEntry(para1: JLObject): OAHICTBasicPoolEntry; overload; virtual;
    procedure freeEntry(para1: OAHICTBasicPoolEntry); overload; virtual;
    procedure createdEntry(para1: OAHICTBasicPoolEntry); overload; virtual;
    function deleteEntry(para1: OAHICTBasicPoolEntry): jboolean; overload; virtual;
    procedure dropEntry(); overload; virtual;
    procedure queueThread(para1: OAHICTWaitingThread); overload; virtual;
    function hasThread(): jboolean; overload; virtual;
    function nextThread(): OAHICTWaitingThread; overload; virtual;
    procedure removeThread(para1: OAHICTWaitingThread); overload; virtual;
  end;

  OAHICTWaitingThread = class external 'org.apache.http.impl.conn.tsccm' name 'WaitingThread' (JLObject)
  public
    constructor create(para1: JUCLCondition; para2: OAHICTRouteSpecificPool); overload;
    function getCondition(): JUCLCondition; overload; virtual; final;
    function getPool(): OAHICTRouteSpecificPool; overload; virtual; final;
    function getThread(): JLThread; overload; virtual; final;
    function await(para1: JUDate): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure wakeup(); overload; virtual;
    procedure interrupt(); overload; virtual;
  end;

  OAHICTWaitingThreadAborter = class external 'org.apache.http.impl.conn.tsccm' name 'WaitingThreadAborter' (JLObject)
  public
    constructor create(); overload;
    procedure abort(); overload; virtual;
    procedure setWaitingThread(para1: OAHICTWaitingThread); overload; virtual;
  end;

  OAHICDateUtils = class sealed external 'org.apache.http.impl.cookie' name 'DateUtils' (JLObject)
  public
    const
      PATTERN_RFC1123 = 'EEE, dd MMM yyyy HH:mm:ss zzz';
      PATTERN_RFC1036 = 'EEEE, dd-MMM-yy HH:mm:ss zzz';
      PATTERN_ASCTIME = 'EEE MMM d HH:mm:ss yyyy';
  public
    final class var
      fGMT: JUTimeZone; external name 'GMT';
  public
    class function parseDate(para1: JLString): JUDate; static; overload;  // throws org.apache.http.impl.cookie.DateParseException
    class function parseDate(para1: JLString; para2: Arr1JLString): JUDate; static; overload;  // throws org.apache.http.impl.cookie.DateParseException
    class function parseDate(para1: JLString; var para2: array of JLString): JUDate; static; overload;  // throws org.apache.http.impl.cookie.DateParseException
    class function parseDate(para1: JLString; para2: Arr1JLString; para3: JUDate): JUDate; static; overload;  // throws org.apache.http.impl.cookie.DateParseException
    class function parseDate(para1: JLString; var para2: array of JLString; para3: JUDate): JUDate; static; overload;  // throws org.apache.http.impl.cookie.DateParseException
    class function formatDate(para1: JUDate): JLString; static; overload;
    class function formatDate(para1: JUDate; para2: JLString): JLString; static; overload;
  end;

  OAHICNetscapeDraftHeaderParser = class external 'org.apache.http.impl.cookie' name 'NetscapeDraftHeaderParser' (JLObject)
  public
    final class var
      fDEFAULT: OAHICNetscapeDraftHeaderParser; external name 'DEFAULT';
  public
    constructor create(); overload;
    function parseHeader(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHHeaderElement; overload; virtual;  // throws org.apache.http.ParseException
  end;

  OAHIEEntityDeserializer = class external 'org.apache.http.impl.entity' name 'EntityDeserializer' (JLObject)
  public
    constructor create(para1: OAHEContentLengthStrategy); overload;
  strict protected
    function doDeserialize(para1: OAHISessionInputBuffer; para2: OAHHttpMessage): OAHEBasicHttpEntity; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  public
    function deserialize(para1: OAHISessionInputBuffer; para2: OAHHttpMessage): OAHHttpEntity; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHIEEntitySerializer = class external 'org.apache.http.impl.entity' name 'EntitySerializer' (JLObject)
  public
    constructor create(para1: OAHEContentLengthStrategy); overload;
  strict protected
    function doSerialize(para1: OAHISessionOutputBuffer; para2: OAHHttpMessage): JIOutputStream; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  public
    procedure serialize(para1: OAHISessionOutputBuffer; para2: OAHHttpMessage; para3: OAHHttpEntity); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHIHttpMessageParser = interface external 'org.apache.http.io' name 'HttpMessageParser' 
    function parse(): OAHHttpMessage; overload;  // throws java.io.IOException, org.apache.http.HttpException
  end;

  OAHIHttpMessageWriter = interface external 'org.apache.http.io' name 'HttpMessageWriter' 
    procedure write(para1: OAHHttpMessage); overload;  // throws java.io.IOException, org.apache.http.HttpException
  end;

  OAHIHttpTransportMetrics = interface external 'org.apache.http.io' name 'HttpTransportMetrics' 
    function getBytesTransferred(): jlong; overload;
    procedure reset(); overload;
  end;

  OAHISessionInputBuffer = interface external 'org.apache.http.io' name 'SessionInputBuffer' 
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload;  // throws java.io.IOException
    function read(): jint; overload;  // throws java.io.IOException
    function readLine(para1: OAHUCharArrayBuffer): jint; overload;  // throws java.io.IOException
    function readLine(): JLString; overload;  // throws java.io.IOException
    function isDataAvailable(para1: jint): jboolean; overload;  // throws java.io.IOException
    function getMetrics(): OAHIHttpTransportMetrics; overload;
  end;

  OAHISessionOutputBuffer = interface external 'org.apache.http.io' name 'SessionOutputBuffer' 
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure write(para1: jint); overload;  // throws java.io.IOException
    procedure writeLine(para1: JLString); overload;  // throws java.io.IOException
    procedure writeLine(para1: OAHUCharArrayBuffer); overload;  // throws java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
    function getMetrics(): OAHIHttpTransportMetrics; overload;
  end;

  OAHMHeaderValueFormatter = interface external 'org.apache.http.message' name 'HeaderValueFormatter' 
    function formatElements(para1: OAHUCharArrayBuffer; para2: Arr1OAHHeaderElement; para3: jboolean): OAHUCharArrayBuffer; overload;
    function formatElements(para1: OAHUCharArrayBuffer; var para2: array of OAHHeaderElement; para3: jboolean): OAHUCharArrayBuffer; overload;
    function formatHeaderElement(para1: OAHUCharArrayBuffer; para2: OAHHeaderElement; para3: jboolean): OAHUCharArrayBuffer; overload;
    function formatParameters(para1: OAHUCharArrayBuffer; para2: Arr1OAHNameValuePair; para3: jboolean): OAHUCharArrayBuffer; overload;
    function formatParameters(para1: OAHUCharArrayBuffer; var para2: array of OAHNameValuePair; para3: jboolean): OAHUCharArrayBuffer; overload;
    function formatNameValuePair(para1: OAHUCharArrayBuffer; para2: OAHNameValuePair; para3: jboolean): OAHUCharArrayBuffer; overload;
  end;

  OAHMHeaderValueParser = interface external 'org.apache.http.message' name 'HeaderValueParser' 
    function parseElements(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): Arr1OAHHeaderElement; overload;  // throws org.apache.http.ParseException
    function parseHeaderElement(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHHeaderElement; overload;  // throws org.apache.http.ParseException
    function parseParameters(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): Arr1OAHNameValuePair; overload;  // throws org.apache.http.ParseException
    function parseNameValuePair(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHNameValuePair; overload;  // throws org.apache.http.ParseException
  end;

  OAHMLineFormatter = interface external 'org.apache.http.message' name 'LineFormatter' 
    function appendProtocolVersion(para1: OAHUCharArrayBuffer; para2: OAHProtocolVersion): OAHUCharArrayBuffer; overload;
    function formatRequestLine(para1: OAHUCharArrayBuffer; para2: OAHRequestLine): OAHUCharArrayBuffer; overload;
    function formatStatusLine(para1: OAHUCharArrayBuffer; para2: OAHStatusLine): OAHUCharArrayBuffer; overload;
    function formatHeader(para1: OAHUCharArrayBuffer; para2: OAHHeader): OAHUCharArrayBuffer; overload;
  end;

  OAHMLineParser = interface external 'org.apache.http.message' name 'LineParser' 
    function parseProtocolVersion(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHProtocolVersion; overload;  // throws org.apache.http.ParseException
    function hasProtocolVersion(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): jboolean; overload;
    function parseRequestLine(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHRequestLine; overload;  // throws org.apache.http.ParseException
    function parseStatusLine(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHStatusLine; overload;  // throws org.apache.http.ParseException
    function parseHeader(para1: OAHUCharArrayBuffer): OAHHeader; overload;  // throws org.apache.http.ParseException
  end;

  OAHMParserCursor = class external 'org.apache.http.message' name 'ParserCursor' (JLObject)
  public
    constructor create(para1: jint; para2: jint); overload;
    function getLowerBound(): jint; overload; virtual;
    function getUpperBound(): jint; overload; virtual;
    function getPos(): jint; overload; virtual;
    procedure updatePos(para1: jint); overload; virtual;
    function atEnd(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHPCoreConnectionPNames = interface external 'org.apache.http.params' name 'CoreConnectionPNames' 
    const
      SO_TIMEOUT = 'http.socket.timeout';
      TCP_NODELAY = 'http.tcp.nodelay';
      SOCKET_BUFFER_SIZE = 'http.socket.buffer-size';
      SO_LINGER = 'http.socket.linger';
      CONNECTION_TIMEOUT = 'http.connection.timeout';
      STALE_CONNECTION_CHECK = 'http.connection.stalecheck';
      MAX_LINE_LENGTH = 'http.connection.max-line-length';
      MAX_HEADER_COUNT = 'http.connection.max-header-count';
  end;

  OAHPCoreProtocolPNames = interface external 'org.apache.http.params' name 'CoreProtocolPNames' 
    const
      PROTOCOL_VERSION = 'http.protocol.version';
      HTTP_ELEMENT_CHARSET = 'http.protocol.element-charset';
      HTTP_CONTENT_CHARSET = 'http.protocol.content-charset';
      USER_AGENT = 'http.useragent';
      ORIGIN_SERVER = 'http.origin-server';
      STRICT_TRANSFER_ENCODING = 'http.protocol.strict-transfer-encoding';
      USE_EXPECT_CONTINUE = 'http.protocol.expect-continue';
      WAIT_FOR_CONTINUE = 'http.protocol.wait-for-continue';
  end;

  OAHPHttpAbstractParamBean = class abstract external 'org.apache.http.params' name 'HttpAbstractParamBean' (JLObject)
  strict protected
    final var
      fparams: OAHPHttpParams; external name 'params';
  public
    constructor create(para1: OAHPHttpParams); overload;
  end;

  OAHPHttpParams = interface external 'org.apache.http.params' name 'HttpParams' 
    function getParameter(para1: JLString): JLObject; overload;
    function setParameter(para1: JLString; para2: JLObject): OAHPHttpParams; overload;
    function copy(): OAHPHttpParams; overload;
    function removeParameter(para1: JLString): jboolean; overload;
    function getLongParameter(para1: JLString; para2: jlong): jlong; overload;
    function setLongParameter(para1: JLString; para2: jlong): OAHPHttpParams; overload;
    function getIntParameter(para1: JLString; para2: jint): jint; overload;
    function setIntParameter(para1: JLString; para2: jint): OAHPHttpParams; overload;
    function getDoubleParameter(para1: JLString; para2: jdouble): jdouble; overload;
    function setDoubleParameter(para1: JLString; para2: jdouble): OAHPHttpParams; overload;
    function getBooleanParameter(para1: JLString; para2: jboolean): jboolean; overload;
    function setBooleanParameter(para1: JLString; para2: jboolean): OAHPHttpParams; overload;
    function isParameterTrue(para1: JLString): jboolean; overload;
    function isParameterFalse(para1: JLString): jboolean; overload;
  end;

  OAHPExecutionContext = interface external 'org.apache.http.protocol' name 'ExecutionContext' 
    const
      HTTP_CONNECTION = 'http.connection';
      HTTP_REQUEST = 'http.request';
      HTTP_RESPONSE = 'http.response';
      HTTP_TARGET_HOST = 'http.target_host';
      HTTP_PROXY_HOST = 'http.proxy_host';
      HTTP_REQ_SENT = 'http.request_sent';
  end;

  OAHPHTTP = class sealed external 'org.apache.http.protocol' name 'HTTP' (JLObject)
  public
    const
      CR = 13;
      LF = 10;
      SP = 32;
      HT = 9;
      TRANSFER_ENCODING = 'Transfer-Encoding';
      CONTENT_LEN = 'Content-Length';
      CONTENT_TYPE = 'Content-Type';
      CONTENT_ENCODING = 'Content-Encoding';
      EXPECT_DIRECTIVE = 'Expect';
      CONN_DIRECTIVE = 'Connection';
      TARGET_HOST = 'Host';
      USER_AGENT = 'User-Agent';
      DATE_HEADER = 'Date';
      SERVER_HEADER = 'Server';
      EXPECT_CONTINUE = '100-continue';
      CONN_CLOSE = 'Close';
      CONN_KEEP_ALIVE = 'Keep-Alive';
      CHUNK_CODING = 'chunked';
      IDENTITY_CODING = 'identity';
      UTF_8 = 'UTF-8';
      UTF_16 = 'UTF-16';
      US_ASCII = 'US-ASCII';
      ASCII = 'ASCII';
      ISO_8859_1 = 'ISO-8859-1';
      DEFAULT_CONTENT_CHARSET = 'ISO-8859-1';
      DEFAULT_PROTOCOL_CHARSET = 'US-ASCII';
      OCTET_STREAM_TYPE = 'application/octet-stream';
      PLAIN_TEXT_TYPE = 'text/plain';
      CHARSET_PARAM = '; charset=';
      DEFAULT_CONTENT_TYPE = 'application/octet-stream';
  public
    class function isWhitespace(para1: jchar): jboolean; static; overload;
  end;

  OAHPHttpContext = interface external 'org.apache.http.protocol' name 'HttpContext' 
    const
      RESERVED_PREFIX = 'http.';
    function getAttribute(para1: JLString): JLObject; overload;
    procedure setAttribute(para1: JLString; para2: JLObject); overload;
    function removeAttribute(para1: JLString): JLObject; overload;
  end;

  OAHPHttpDateGenerator = class external 'org.apache.http.protocol' name 'HttpDateGenerator' (JLObject)
  public
    const
      PATTERN_RFC1123 = 'EEE, dd MMM yyyy HH:mm:ss zzz';
  public
    final class var
      fGMT: JUTimeZone; external name 'GMT';
  public
    constructor create(); overload;
    function getCurrentDate(): JLString; overload; virtual;
  end;

  OAHPHttpExpectationVerifier = interface external 'org.apache.http.protocol' name 'HttpExpectationVerifier' 
    procedure verify(para1: OAHHttpRequest; para2: OAHHttpResponse; para3: OAHPHttpContext); overload;  // throws org.apache.http.HttpException
  end;

  OAHPHttpRequestExecutor = class external 'org.apache.http.protocol' name 'HttpRequestExecutor' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function canResponseHaveBody(para1: OAHHttpRequest; para2: OAHHttpResponse): jboolean; overload; virtual;
  public
    function execute(para1: OAHHttpRequest; para2: OAHHttpClientConnection; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
    procedure preProcess(para1: OAHHttpRequest; para2: OAHPHttpProcessor; para3: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  strict protected
    function doSendRequest(para1: OAHHttpRequest; para2: OAHHttpClientConnection; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
    function doReceiveResponse(para1: OAHHttpRequest; para2: OAHHttpClientConnection; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  public
    procedure postProcess(para1: OAHHttpResponse; para2: OAHPHttpProcessor; para3: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPHttpRequestHandler = interface external 'org.apache.http.protocol' name 'HttpRequestHandler' 
    procedure handle(para1: OAHHttpRequest; para2: OAHHttpResponse; para3: OAHPHttpContext); overload;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPHttpRequestHandlerResolver = interface external 'org.apache.http.protocol' name 'HttpRequestHandlerResolver' 
    function lookup(para1: JLString): OAHPHttpRequestHandler; overload;
  end;

  OAHPHttpRequestInterceptorList = interface external 'org.apache.http.protocol' name 'HttpRequestInterceptorList' 
    procedure addRequestInterceptor(para1: OAHHttpRequestInterceptor); overload;
    procedure addRequestInterceptor(para1: OAHHttpRequestInterceptor; para2: jint); overload;
    function getRequestInterceptorCount(): jint; overload;
    function getRequestInterceptor(para1: jint): OAHHttpRequestInterceptor; overload;
    procedure clearRequestInterceptors(); overload;
    procedure removeRequestInterceptorByClass(para1: JLClass); overload;
    procedure setInterceptors(para1: JUList); overload;
  end;

  OAHPHttpResponseInterceptorList = interface external 'org.apache.http.protocol' name 'HttpResponseInterceptorList' 
    procedure addResponseInterceptor(para1: OAHHttpResponseInterceptor); overload;
    procedure addResponseInterceptor(para1: OAHHttpResponseInterceptor; para2: jint); overload;
    function getResponseInterceptorCount(): jint; overload;
    function getResponseInterceptor(para1: jint): OAHHttpResponseInterceptor; overload;
    procedure clearResponseInterceptors(); overload;
    procedure removeResponseInterceptorByClass(para1: JLClass); overload;
    procedure setInterceptors(para1: JUList); overload;
  end;

  OAHPHttpService = class external 'org.apache.http.protocol' name 'HttpService' (JLObject)
  public
    constructor create(para1: OAHPHttpProcessor; para2: OAHConnectionReuseStrategy; para3: OAHHttpResponseFactory); overload;
    procedure setHttpProcessor(para1: OAHPHttpProcessor); overload; virtual;
    procedure setConnReuseStrategy(para1: OAHConnectionReuseStrategy); overload; virtual;
    procedure setResponseFactory(para1: OAHHttpResponseFactory); overload; virtual;
    procedure setHandlerResolver(para1: OAHPHttpRequestHandlerResolver); overload; virtual;
    procedure setExpectationVerifier(para1: OAHPHttpExpectationVerifier); overload; virtual;
    function getParams(): OAHPHttpParams; overload; virtual;
    procedure setParams(para1: OAHPHttpParams); overload; virtual;
    procedure handleRequest(para1: OAHHttpServerConnection; para2: OAHPHttpContext); overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
  strict protected
    procedure handleException(para1: OAHHttpException; para2: OAHHttpResponse); overload; virtual;
    procedure doService(para1: OAHHttpRequest; para2: OAHHttpResponse; para3: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPUriPatternMatcher = class external 'org.apache.http.protocol' name 'UriPatternMatcher' (JLObject)
  public
    constructor create(); overload;
    procedure register(para1: JLString; para2: JLObject); overload; virtual;
    procedure unregister(para1: JLString); overload; virtual;
    procedure setHandlers(para1: JUMap); overload; virtual;
    function lookup(para1: JLString): JLObject; overload; virtual;
  strict protected
    function matchUriRequestPattern(para1: JLString; para2: JLString): jboolean; overload; virtual;
  end;

  OAHUByteArrayBuffer = class sealed external 'org.apache.http.util' name 'ByteArrayBuffer' (JLObject)
  public
    constructor create(para1: jint); overload;
    procedure append(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure append(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure append(para1: jint); overload; virtual;
    procedure append(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure append(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure append(para1: OAHUCharArrayBuffer; para2: jint; para3: jint); overload; virtual;
    procedure clear(); overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function byteAt(para1: jint): jint; overload; virtual;
    function capacity(): jint; overload; virtual;
    function length(): jint; overload; virtual;
    function buffer(): Arr1jbyte; overload; virtual;
    procedure setLength(para1: jint); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function isFull(): jboolean; overload; virtual;
  end;

  OAHUCharArrayBuffer = class sealed external 'org.apache.http.util' name 'CharArrayBuffer' (JLObject)
  public
    constructor create(para1: jint); overload;
    procedure append(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure append(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure append(para1: JLString); overload; virtual;
    procedure append(para1: OAHUCharArrayBuffer; para2: jint; para3: jint); overload; virtual;
    procedure append(para1: OAHUCharArrayBuffer); overload; virtual;
    procedure append(para1: jchar); overload; virtual;
    procedure append(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure append(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure append(para1: OAHUByteArrayBuffer; para2: jint; para3: jint); overload; virtual;
    procedure append(para1: JLObject); overload; virtual;
    procedure clear(); overload; virtual;
    function toCharArray(): Arr1jchar; overload; virtual;
    function charAt(para1: jint): jchar; overload; virtual;
    function buffer(): Arr1jchar; overload; virtual;
    function capacity(): jint; overload; virtual;
    function length(): jint; overload; virtual;
    procedure ensureCapacity(para1: jint); overload; virtual;
    procedure setLength(para1: jint); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function isFull(): jboolean; overload; virtual;
    function indexOf(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
    function indexOf(para1: jint): jint; overload; virtual;
    function substring(para1: jint; para2: jint): JLString; overload; virtual;
    function substringTrimmed(para1: jint; para2: jint): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHUEncodingUtils = class sealed external 'org.apache.http.util' name 'EncodingUtils' (JLObject)
  public
    class function getString(para1: Arr1jbyte; para2: jint; para3: jint; para4: JLString): JLString; static; overload;
    class function getString(var para1: array of jbyte; para2: jint; para3: jint; para4: JLString): JLString; static; overload;
    class function getString(para1: Arr1jbyte; para2: JLString): JLString; static; overload;
    class function getString(var para1: array of jbyte; para2: JLString): JLString; static; overload;
    class function getBytes(para1: JLString; para2: JLString): Arr1jbyte; static; overload;
    class function getAsciiBytes(para1: JLString): Arr1jbyte; static; overload;
    class function getAsciiString(para1: Arr1jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function getAsciiString(var para1: array of jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function getAsciiString(para1: Arr1jbyte): JLString; static; overload;
    class function getAsciiString(var para1: array of jbyte): JLString; static; overload;
  end;

  OAHUEntityUtils = class sealed external 'org.apache.http.util' name 'EntityUtils' (JLObject)
  public
    class function toByteArray(para1: OAHHttpEntity): Arr1jbyte; static; overload;  // throws java.io.IOException
    class function getContentCharSet(para1: OAHHttpEntity): JLString; static; overload;  // throws org.apache.http.ParseException
    class function toString(para1: OAHHttpEntity; para2: JLString): JLString; static; overload;  // throws java.io.IOException, org.apache.http.ParseException
    class function toString(para1: OAHHttpEntity): JLString; static; overload;  // throws java.io.IOException, org.apache.http.ParseException
  end;

  OAHUExceptionUtils = class sealed external 'org.apache.http.util' name 'ExceptionUtils' (JLObject)
  public
    class procedure initCause(para1: JLThrowable; para2: JLThrowable); static; overload;
  end;

  OAHULangUtils = class sealed external 'org.apache.http.util' name 'LangUtils' (JLObject)
  public
    const
      HASH_SEED = 17;
      HASH_OFFSET = 37;
  public
    class function hashCode(para1: jint; para2: jint): jint; static; overload;
    class function hashCode(para1: jint; para2: jboolean): jint; static; overload;
    class function hashCode(para1: jint; para2: JLObject): jint; static; overload;
    class function equals(para1: JLObject; para2: JLObject): jboolean; static; overload;
    class function equals(para1: Arr1JLObject; para2: Arr1JLObject): jboolean; static; overload;
    class function equals(var para1: array of JLObject; var para2: array of JLObject): jboolean; static; overload;
  end;

  OAHUVersionInfo = class external 'org.apache.http.util' name 'VersionInfo' (JLObject)
  public
    const
      UNAVAILABLE = 'UNAVAILABLE';
      VERSION_PROPERTY_FILE = 'version.properties';
      PROPERTY_MODULE = 'info.module';
      PROPERTY_RELEASE = 'info.release';
      PROPERTY_TIMESTAMP = 'info.timestamp';
  strict protected
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload;
  public
    function getPackage(): JLString; overload; virtual; final;
    function getModule(): JLString; overload; virtual; final;
    function getRelease(): JLString; overload; virtual; final;
    function getTimestamp(): JLString; overload; virtual; final;
    function getClassloader(): JLString; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    class function loadVersionInfo(para1: Arr1JLString; para2: JLClassLoader): Arr1OAHUVersionInfo; static; overload; final;
    class function loadVersionInfo(var para1: array of JLString; para2: JLClassLoader): Arr1OAHUVersionInfo; static; overload; final;
    class function loadVersionInfo(para1: JLString; para2: JLClassLoader): OAHUVersionInfo; static; overload; final;
  strict protected
    class function fromMap(para1: JLString; para2: JUMap; para3: JLClassLoader): OAHUVersionInfo; static; overload; final;
  end;

  OJJSONArray = class external 'org.json' name 'JSONArray' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: OJJSONTokener); overload;  // throws org.json.JSONException
    constructor create(para1: JLString); overload;  // throws org.json.JSONException
    function length(): jint; overload; virtual;
    function put(para1: jboolean): OJJSONArray; overload; virtual;
    function put(para1: jdouble): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function put(para1: jint): OJJSONArray; overload; virtual;
    function put(para1: jlong): OJJSONArray; overload; virtual;
    function put(para1: JLObject): OJJSONArray; overload; virtual;
    function put(para1: jint; para2: jboolean): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function put(para1: jint; para2: jdouble): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function put(para1: jint; para2: jint): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function put(para1: jint; para2: jlong): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function put(para1: jint; para2: JLObject): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function isNull(para1: jint): jboolean; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;  // throws org.json.JSONException
    function opt(para1: jint): JLObject; overload; virtual;
    function getBoolean(para1: jint): jboolean; overload; virtual;  // throws org.json.JSONException
    function optBoolean(para1: jint): jboolean; overload; virtual;
    function optBoolean(para1: jint; para2: jboolean): jboolean; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;  // throws org.json.JSONException
    function optDouble(para1: jint): jdouble; overload; virtual;
    function optDouble(para1: jint; para2: jdouble): jdouble; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;  // throws org.json.JSONException
    function optInt(para1: jint): jint; overload; virtual;
    function optInt(para1: jint; para2: jint): jint; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;  // throws org.json.JSONException
    function optLong(para1: jint): jlong; overload; virtual;
    function optLong(para1: jint; para2: jlong): jlong; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;  // throws org.json.JSONException
    function optString(para1: jint): JLString; overload; virtual;
    function optString(para1: jint; para2: JLString): JLString; overload; virtual;
    function getJSONArray(para1: jint): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function optJSONArray(para1: jint): OJJSONArray; overload; virtual;
    function getJSONObject(para1: jint): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function optJSONObject(para1: jint): OJJSONObject; overload; virtual;
    function toJSONObject(para1: OJJSONArray): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function join(para1: JLString): JLString; overload; virtual;  // throws org.json.JSONException
    function toString(): JLString; overload; virtual;
    function toString(para1: jint): JLString; overload; virtual;  // throws org.json.JSONException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  OJJSONObject = class external 'org.json' name 'JSONObject' (JLObject)
  public
    final class var
      fNULL: JLObject; external name 'NULL';
  public
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: OJJSONTokener); overload;  // throws org.json.JSONException
    constructor create(para1: JLString); overload;  // throws org.json.JSONException
    constructor create(para1: OJJSONObject; para2: Arr1JLString); overload;  // throws org.json.JSONException
    constructor create(para1: OJJSONObject; const para2: array of JLString); overload;  // throws org.json.JSONException
    function length(): jint; overload; virtual;
    function put(para1: JLString; para2: jboolean): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function put(para1: JLString; para2: jdouble): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function put(para1: JLString; para2: jint): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function put(para1: JLString; para2: jlong): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function put(para1: JLString; para2: JLObject): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function putOpt(para1: JLString; para2: JLObject): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function accumulate(para1: JLString; para2: JLObject): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function remove(para1: JLString): JLObject; overload; virtual;
    function isNull(para1: JLString): jboolean; overload; virtual;
    function has(para1: JLString): jboolean; overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;  // throws org.json.JSONException
    function opt(para1: JLString): JLObject; overload; virtual;
    function getBoolean(para1: JLString): jboolean; overload; virtual;  // throws org.json.JSONException
    function optBoolean(para1: JLString): jboolean; overload; virtual;
    function optBoolean(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    function getDouble(para1: JLString): jdouble; overload; virtual;  // throws org.json.JSONException
    function optDouble(para1: JLString): jdouble; overload; virtual;
    function optDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    function getInt(para1: JLString): jint; overload; virtual;  // throws org.json.JSONException
    function optInt(para1: JLString): jint; overload; virtual;
    function optInt(para1: JLString; para2: jint): jint; overload; virtual;
    function getLong(para1: JLString): jlong; overload; virtual;  // throws org.json.JSONException
    function optLong(para1: JLString): jlong; overload; virtual;
    function optLong(para1: JLString; para2: jlong): jlong; overload; virtual;
    function getString(para1: JLString): JLString; overload; virtual;  // throws org.json.JSONException
    function optString(para1: JLString): JLString; overload; virtual;
    function optString(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getJSONArray(para1: JLString): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function optJSONArray(para1: JLString): OJJSONArray; overload; virtual;
    function getJSONObject(para1: JLString): OJJSONObject; overload; virtual;  // throws org.json.JSONException
    function optJSONObject(para1: JLString): OJJSONObject; overload; virtual;
    function toJSONArray(para1: OJJSONArray): OJJSONArray; overload; virtual;  // throws org.json.JSONException
    function keys(): JUIterator; overload; virtual;
    function names(): OJJSONArray; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toString(para1: jint): JLString; overload; virtual;  // throws org.json.JSONException
    class function numberToString(para1: JLNumber): JLString; static; overload;  // throws org.json.JSONException
    class function quote(para1: JLString): JLString; static; overload;
  end;

  OJJSONStringer = class external 'org.json' name 'JSONStringer' (JLObject)
  public
    constructor create(); overload;
    function &array(): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function endArray(): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function &object(): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function endObject(): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function value(para1: JLObject): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function value(para1: jboolean): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function value(para1: jdouble): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function value(para1: jlong): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function key(para1: JLString): OJJSONStringer; overload; virtual;  // throws org.json.JSONException
    function toString(): JLString; overload; virtual;
  end;

  OJJSONTokener = class external 'org.json' name 'JSONTokener' (JLObject)
  public
    constructor create(para1: JLString); overload;
    function nextValue(): JLObject; overload; virtual;  // throws org.json.JSONException
    function nextString(para1: jchar): JLString; overload; virtual;  // throws org.json.JSONException
    function syntaxError(para1: JLString): OJJSONException; overload; virtual;
    function toString(): JLString; overload; virtual;
    function more(): jboolean; overload; virtual;
    function next(): jchar; overload; virtual;
    function next(para1: jchar): jchar; overload; virtual;  // throws org.json.JSONException
    function nextClean(): jchar; overload; virtual;  // throws org.json.JSONException
    function next(para1: jint): JLString; overload; virtual;  // throws org.json.JSONException
    function nextTo(para1: JLString): JLString; overload; virtual;
    function nextTo(para1: jchar): JLString; overload; virtual;
    procedure skipPast(para1: JLString); overload; virtual;
    function skipTo(para1: jchar): jchar; overload; virtual;
    procedure back(); overload; virtual;
    class function dehexchar(para1: jchar): jint; static; overload;
  end;

  OWDDOMConfiguration = interface external 'org.w3c.dom' name 'DOMConfiguration' 
    procedure setParameter(para1: JLString; para2: JLObject); overload;  // throws org.w3c.dom.DOMException
    function getParameter(para1: JLString): JLObject; overload;  // throws org.w3c.dom.DOMException
    function canSetParameter(para1: JLString; para2: JLObject): jboolean; overload;
    function getParameterNames(): OWDDOMStringList; overload;
  end;

  OWDDOMError = interface external 'org.w3c.dom' name 'DOMError' 
    const
      SEVERITY_WARNING = 1;
      SEVERITY_ERROR = 2;
      SEVERITY_FATAL_ERROR = 3;
    function getSeverity(): jshort; overload;
    function getMessage(): JLString; overload;
    function getType(): JLString; overload;
    function getRelatedException(): JLObject; overload;
    function getRelatedData(): JLObject; overload;
    function getLocation(): OWDDOMLocator; overload;
  end;

  OWDDOMErrorHandler = interface external 'org.w3c.dom' name 'DOMErrorHandler' 
    function handleError(para1: OWDDOMError): jboolean; overload;
  end;

  OWDDOMImplementation = interface external 'org.w3c.dom' name 'DOMImplementation' 
    function hasFeature(para1: JLString; para2: JLString): jboolean; overload;
    function createDocumentType(para1: JLString; para2: JLString; para3: JLString): OWDDocumentType; overload;  // throws org.w3c.dom.DOMException
    function createDocument(para1: JLString; para2: JLString; para3: OWDDocumentType): OWDDocument; overload;  // throws org.w3c.dom.DOMException
    function getFeature(para1: JLString; para2: JLString): JLObject; overload;
  end;

  OWDDOMImplementationList = interface external 'org.w3c.dom' name 'DOMImplementationList' 
    function item(para1: jint): OWDDOMImplementation; overload;
    function getLength(): jint; overload;
  end;

  OWDDOMImplementationSource = interface external 'org.w3c.dom' name 'DOMImplementationSource' 
    function getDOMImplementation(para1: JLString): OWDDOMImplementation; overload;
    function getDOMImplementationList(para1: JLString): OWDDOMImplementationList; overload;
  end;

  OWDDOMLocator = interface external 'org.w3c.dom' name 'DOMLocator' 
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
    function getByteOffset(): jint; overload;
    function getUtf16Offset(): jint; overload;
    function getRelatedNode(): OWDNode; overload;
    function getUri(): JLString; overload;
  end;

  OWDDOMStringList = interface external 'org.w3c.dom' name 'DOMStringList' 
    function item(para1: jint): JLString; overload;
    function getLength(): jint; overload;
    function contains(para1: JLString): jboolean; overload;
  end;

  OWDNameList = interface external 'org.w3c.dom' name 'NameList' 
    function getName(para1: jint): JLString; overload;
    function getNamespaceURI(para1: jint): JLString; overload;
    function getLength(): jint; overload;
    function contains(para1: JLString): jboolean; overload;
    function containsNS(para1: JLString; para2: JLString): jboolean; overload;
  end;

  OWDNamedNodeMap = interface external 'org.w3c.dom' name 'NamedNodeMap' 
    function getNamedItem(para1: JLString): OWDNode; overload;
    function setNamedItem(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function removeNamedItem(para1: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function item(para1: jint): OWDNode; overload;
    function getLength(): jint; overload;
    function getNamedItemNS(para1: JLString; para2: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function setNamedItemNS(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function removeNamedItemNS(para1: JLString; para2: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDNode = interface external 'org.w3c.dom' name 'Node' 
    const
      ELEMENT_NODE = 1;
      ATTRIBUTE_NODE = 2;
      TEXT_NODE = 3;
      CDATA_SECTION_NODE = 4;
      ENTITY_REFERENCE_NODE = 5;
      ENTITY_NODE = 6;
      PROCESSING_INSTRUCTION_NODE = 7;
      COMMENT_NODE = 8;
      DOCUMENT_NODE = 9;
      DOCUMENT_TYPE_NODE = 10;
      DOCUMENT_FRAGMENT_NODE = 11;
      NOTATION_NODE = 12;
      DOCUMENT_POSITION_DISCONNECTED = 1;
      DOCUMENT_POSITION_PRECEDING = 2;
      DOCUMENT_POSITION_FOLLOWING = 4;
      DOCUMENT_POSITION_CONTAINS = 8;
      DOCUMENT_POSITION_CONTAINED_BY = 16;
      DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;
    function getNodeName(): JLString; overload;
    function getNodeValue(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setNodeValue(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getNodeType(): jshort; overload;
    function getParentNode(): OWDNode; overload;
    function getChildNodes(): OWDNodeList; overload;
    function getFirstChild(): OWDNode; overload;
    function getLastChild(): OWDNode; overload;
    function getPreviousSibling(): OWDNode; overload;
    function getNextSibling(): OWDNode; overload;
    function getAttributes(): OWDNamedNodeMap; overload;
    function getOwnerDocument(): OWDDocument; overload;
    function insertBefore(para1: OWDNode; para2: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function replaceChild(para1: OWDNode; para2: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function removeChild(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function appendChild(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function hasChildNodes(): jboolean; overload;
    function cloneNode(para1: jboolean): OWDNode; overload;
    procedure normalize(); overload;
    function isSupported(para1: JLString; para2: JLString): jboolean; overload;
    function getNamespaceURI(): JLString; overload;
    function getPrefix(): JLString; overload;
    procedure setPrefix(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLocalName(): JLString; overload;
    function hasAttributes(): jboolean; overload;
    function getBaseURI(): JLString; overload;
    function compareDocumentPosition(para1: OWDNode): jshort; overload;  // throws org.w3c.dom.DOMException
    function getTextContent(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setTextContent(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function isSameNode(para1: OWDNode): jboolean; overload;
    function lookupPrefix(para1: JLString): JLString; overload;
    function isDefaultNamespace(para1: JLString): jboolean; overload;
    function lookupNamespaceURI(para1: JLString): JLString; overload;
    function isEqualNode(para1: OWDNode): jboolean; overload;
    function getFeature(para1: JLString; para2: JLString): JLObject; overload;
    function setUserData(para1: JLString; para2: JLObject; para3: OWDUserDataHandler): JLObject; overload;
    function getUserData(para1: JLString): JLObject; overload;
  end;

  OWDNodeList = interface external 'org.w3c.dom' name 'NodeList' 
    function item(para1: jint): OWDNode; overload;
    function getLength(): jint; overload;
  end;

  OWDTypeInfo = interface external 'org.w3c.dom' name 'TypeInfo' 
    const
      DERIVATION_RESTRICTION = 1;
      DERIVATION_EXTENSION = 2;
      DERIVATION_UNION = 4;
      DERIVATION_LIST = 8;
    function getTypeName(): JLString; overload;
    function getTypeNamespace(): JLString; overload;
    function isDerivedFrom(para1: JLString; para2: JLString; para3: jint): jboolean; overload;
  end;

  OWDUserDataHandler = interface external 'org.w3c.dom' name 'UserDataHandler' 
    const
      NODE_CLONED = 1;
      NODE_IMPORTED = 2;
      NODE_DELETED = 3;
      NODE_RENAMED = 4;
      NODE_ADOPTED = 5;
    procedure handle(para1: jshort; para2: JLString; para3: JLObject; para4: OWDNode; para5: OWDNode); overload;
  end;

  OWDLDOMImplementationLS = interface external 'org.w3c.dom.ls' name 'DOMImplementationLS' 
    const
      MODE_SYNCHRONOUS = 1;
      MODE_ASYNCHRONOUS = 2;
    function createLSParser(para1: jshort; para2: JLString): OWDLLSParser; overload;  // throws org.w3c.dom.DOMException
    function createLSSerializer(): OWDLLSSerializer; overload;
    function createLSInput(): OWDLLSInput; overload;
    function createLSOutput(): OWDLLSOutput; overload;
  end;

  OWDLLSInput = interface external 'org.w3c.dom.ls' name 'LSInput' 
    function getCharacterStream(): JIReader; overload;
    procedure setCharacterStream(para1: JIReader); overload;
    function getByteStream(): JIInputStream; overload;
    procedure setByteStream(para1: JIInputStream); overload;
    function getStringData(): JLString; overload;
    procedure setStringData(para1: JLString); overload;
    function getSystemId(): JLString; overload;
    procedure setSystemId(para1: JLString); overload;
    function getPublicId(): JLString; overload;
    procedure setPublicId(para1: JLString); overload;
    function getBaseURI(): JLString; overload;
    procedure setBaseURI(para1: JLString); overload;
    function getEncoding(): JLString; overload;
    procedure setEncoding(para1: JLString); overload;
    function getCertifiedText(): jboolean; overload;
    procedure setCertifiedText(para1: jboolean); overload;
  end;

  OWDLLSOutput = interface external 'org.w3c.dom.ls' name 'LSOutput' 
    function getCharacterStream(): JIWriter; overload;
    procedure setCharacterStream(para1: JIWriter); overload;
    function getByteStream(): JIOutputStream; overload;
    procedure setByteStream(para1: JIOutputStream); overload;
    function getSystemId(): JLString; overload;
    procedure setSystemId(para1: JLString); overload;
    function getEncoding(): JLString; overload;
    procedure setEncoding(para1: JLString); overload;
  end;

  OWDLLSParser = interface external 'org.w3c.dom.ls' name 'LSParser' 
    const
      ACTION_APPEND_AS_CHILDREN = 1;
      ACTION_REPLACE_CHILDREN = 2;
      ACTION_INSERT_BEFORE = 3;
      ACTION_INSERT_AFTER = 4;
      ACTION_REPLACE = 5;
    function getDomConfig(): OWDDOMConfiguration; overload;
    function getFilter(): OWDLLSParserFilter; overload;
    procedure setFilter(para1: OWDLLSParserFilter); overload;
    function getAsync(): jboolean; overload;
    function getBusy(): jboolean; overload;
    function parse(para1: OWDLLSInput): OWDDocument; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
    function parseURI(para1: JLString): OWDDocument; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
    function parseWithContext(para1: OWDLLSInput; para2: OWDNode; para3: jshort): OWDNode; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
    procedure abort(); overload;
  end;

  OWDLLSParserFilter = interface external 'org.w3c.dom.ls' name 'LSParserFilter' 
    const
      FILTER_ACCEPT = 1;
      FILTER_REJECT = 2;
      FILTER_SKIP = 3;
      FILTER_INTERRUPT = 4;
    function startElement(para1: OWDElement): jshort; overload;
    function acceptNode(para1: OWDNode): jshort; overload;
    function getWhatToShow(): jint; overload;
  end;

  OWDLLSResourceResolver = interface external 'org.w3c.dom.ls' name 'LSResourceResolver' 
    function resolveResource(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString): OWDLLSInput; overload;
  end;

  OWDLLSSerializer = interface external 'org.w3c.dom.ls' name 'LSSerializer' 
    function getDomConfig(): OWDDOMConfiguration; overload;
    function getNewLine(): JLString; overload;
    procedure setNewLine(para1: JLString); overload;
    function write(para1: OWDNode; para2: OWDLLSOutput): jboolean; overload;  // throws org.w3c.dom.ls.LSException
    function writeToURI(para1: OWDNode; para2: JLString): jboolean; overload;  // throws org.w3c.dom.ls.LSException
    function writeToString(para1: OWDNode): JLString; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
  end;

  OXSAttributeList = interface external 'org.xml.sax' name 'AttributeList' 
    function getLength(): jint; overload;
    function getName(para1: jint): JLString; overload;
    function getType(para1: jint): JLString; overload;
    function getValue(para1: jint): JLString; overload;
    function getType(para1: JLString): JLString; overload;
    function getValue(para1: JLString): JLString; overload;
  end;

  OXSAttributes = interface external 'org.xml.sax' name 'Attributes' 
    function getLength(): jint; overload;
    function getURI(para1: jint): JLString; overload;
    function getLocalName(para1: jint): JLString; overload;
    function getQName(para1: jint): JLString; overload;
    function getType(para1: jint): JLString; overload;
    function getValue(para1: jint): JLString; overload;
    function getIndex(para1: JLString; para2: JLString): jint; overload;
    function getIndex(para1: JLString): jint; overload;
    function getType(para1: JLString; para2: JLString): JLString; overload;
    function getType(para1: JLString): JLString; overload;
    function getValue(para1: JLString; para2: JLString): JLString; overload;
    function getValue(para1: JLString): JLString; overload;
  end;

  OXSContentHandler = interface external 'org.xml.sax' name 'ContentHandler' 
    procedure setDocumentLocator(para1: OXSLocator); overload;
    procedure startDocument(); overload;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure endPrefixMapping(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSDTDHandler = interface external 'org.xml.sax' name 'DTDHandler' 
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSDocumentHandler = interface external 'org.xml.sax' name 'DocumentHandler' 
    procedure setDocumentLocator(para1: OXSLocator); overload;
    procedure startDocument(); overload;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSEntityResolver = interface external 'org.xml.sax' name 'EntityResolver' 
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSErrorHandler = interface external 'org.xml.sax' name 'ErrorHandler' 
    procedure warning(para1: OXSSAXParseException); overload;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload;  // throws org.xml.sax.SAXException
  end;

  OXSInputSource = class external 'org.xml.sax' name 'InputSource' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIReader); overload;
    procedure setPublicId(para1: JLString); overload; virtual;
    function getPublicId(): JLString; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    procedure setByteStream(para1: JIInputStream); overload; virtual;
    function getByteStream(): JIInputStream; overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    procedure setCharacterStream(para1: JIReader); overload; virtual;
    function getCharacterStream(): JIReader; overload; virtual;
  end;

  OXSLocator = interface external 'org.xml.sax' name 'Locator' 
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
  end;

  OXSParser = interface external 'org.xml.sax' name 'Parser' 
    procedure setLocale(para1: JULocale); overload;  // throws org.xml.sax.SAXException
    procedure setEntityResolver(para1: OXSEntityResolver); overload;
    procedure setDTDHandler(para1: OXSDTDHandler); overload;
    procedure setDocumentHandler(para1: OXSDocumentHandler); overload;
    procedure setErrorHandler(para1: OXSErrorHandler); overload;
    procedure parse(para1: OXSInputSource); overload;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString); overload;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSXMLReader = interface external 'org.xml.sax' name 'XMLReader' 
    function getFeature(para1: JLString): jboolean; overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload;
    function getEntityResolver(): OXSEntityResolver; overload;
    procedure setDTDHandler(para1: OXSDTDHandler); overload;
    function getDTDHandler(): OXSDTDHandler; overload;
    procedure setContentHandler(para1: OXSContentHandler); overload;
    function getContentHandler(): OXSContentHandler; overload;
    procedure setErrorHandler(para1: OXSErrorHandler); overload;
    function getErrorHandler(): OXSErrorHandler; overload;
    procedure parse(para1: OXSInputSource); overload;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure parse(para1: JLString); overload;  // throws java.io.IOException, org.xml.sax.SAXException
  end;

  OXSEDeclHandler = interface external 'org.xml.sax.ext' name 'DeclHandler' 
    procedure elementDecl(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure attributeDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload;  // throws org.xml.sax.SAXException
    procedure internalEntityDecl(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure externalEntityDecl(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSELexicalHandler = interface external 'org.xml.sax.ext' name 'LexicalHandler' 
    procedure startDTD(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
    procedure endDTD(); overload;  // throws org.xml.sax.SAXException
    procedure startEntity(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure endEntity(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure startCDATA(); overload;  // throws org.xml.sax.SAXException
    procedure endCDATA(); overload;  // throws org.xml.sax.SAXException
    procedure comment(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure comment(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
  end;

  OXSHNamespaceSupport = class external 'org.xml.sax.helpers' name 'NamespaceSupport' (JLObject)
  public
    const
      XMLNS = 'http://www.w3.org/XML/1998/namespace';
      NSDECL = 'http://www.w3.org/xmlns/2000/';
  public
    constructor create(); overload;
    procedure reset(); overload; virtual;
    procedure pushContext(); overload; virtual;
    procedure popContext(); overload; virtual;
    function declarePrefix(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function processName(para1: JLString; para2: Arr1JLString; para3: jboolean): Arr1JLString; overload; virtual;
    function processName(para1: JLString; var para2: array of JLString; para3: jboolean): Arr1JLString; overload; virtual;
    function getURI(para1: JLString): JLString; overload; virtual;
    function getPrefixes(): JUEnumeration; overload; virtual;
    function getPrefix(para1: JLString): JLString; overload; virtual;
    function getPrefixes(para1: JLString): JUEnumeration; overload; virtual;
    function getDeclaredPrefixes(): JUEnumeration; overload; virtual;
    procedure setNamespaceDeclUris(para1: jboolean); overload; virtual;
    function isNamespaceDeclUris(): jboolean; overload; virtual;
  end;

  OXSHParserFactory = class external 'org.xml.sax.helpers' name 'ParserFactory' (JLObject)
  public
    class function makeParser(): OXSParser; static; overload;  // throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NullPointerException, java.lang.ClassCastException
    class function makeParser(para1: JLString): OXSParser; static; overload;  // throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.ClassCastException
  end;

  OXSHXMLReaderFactory = class sealed external 'org.xml.sax.helpers' name 'XMLReaderFactory' (JLObject)
  public
    class function createXMLReader(): OXSXMLReader; static; overload;  // throws org.xml.sax.SAXException
    class function createXMLReader(para1: JLString): OXSXMLReader; static; overload;  // throws org.xml.sax.SAXException
  end;

  OXVXmlPullParser = interface external 'org.xmlpull.v1' name 'XmlPullParser' 
    const
      NO_NAMESPACE = '';
      START_DOCUMENT = 0;
      END_DOCUMENT = 1;
      START_TAG = 2;
      END_TAG = 3;
      TEXT = 4;
      CDSECT = 5;
      ENTITY_REF = 6;
      IGNORABLE_WHITESPACE = 7;
      PROCESSING_INSTRUCTION = 8;
      COMMENT = 9;
      DOCDECL = 10;
    final class var
      fTYPES: Arr1JLString; external name 'TYPES';
    const
      FEATURE_PROCESS_NAMESPACES = 'http://xmlpull.org/v1/doc/features.html#process-namespaces';
      FEATURE_REPORT_NAMESPACE_ATTRIBUTES = 'http://xmlpull.org/v1/doc/features.html#report-namespace-prefixes';
      FEATURE_PROCESS_DOCDECL = 'http://xmlpull.org/v1/doc/features.html#process-docdecl';
      FEATURE_VALIDATION = 'http://xmlpull.org/v1/doc/features.html#validation';
    procedure setFeature(para1: JLString; para2: jboolean); overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getFeature(para1: JLString): jboolean; overload;
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getProperty(para1: JLString): JLObject; overload;
    procedure setInput(para1: JIReader); overload;  // throws org.xmlpull.v1.XmlPullParserException
    procedure setInput(para1: JIInputStream; para2: JLString); overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getInputEncoding(): JLString; overload;
    procedure defineEntityReplacementText(para1: JLString; para2: JLString); overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getNamespaceCount(para1: jint): jint; overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getNamespacePrefix(para1: jint): JLString; overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getNamespaceUri(para1: jint): JLString; overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getNamespace(para1: JLString): JLString; overload;
    function getDepth(): jint; overload;
    function getPositionDescription(): JLString; overload;
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
    function isWhitespace(): jboolean; overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getText(): JLString; overload;
    function getTextCharacters(para1: Arr1jint): Arr1jchar; overload;
    function getTextCharacters(var para1: array of jint): Arr1jchar; overload;
    function getNamespace(): JLString; overload;
    function getName(): JLString; overload;
    function getPrefix(): JLString; overload;
    function isEmptyElementTag(): jboolean; overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getAttributeCount(): jint; overload;
    function getAttributeNamespace(para1: jint): JLString; overload;
    function getAttributeName(para1: jint): JLString; overload;
    function getAttributePrefix(para1: jint): JLString; overload;
    function getAttributeType(para1: jint): JLString; overload;
    function isAttributeDefault(para1: jint): jboolean; overload;
    function getAttributeValue(para1: jint): JLString; overload;
    function getAttributeValue(para1: JLString; para2: JLString): JLString; overload;
    function getEventType(): jint; overload;  // throws org.xmlpull.v1.XmlPullParserException
    function next(): jint; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function nextToken(): jint; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    procedure require(para1: jint; para2: JLString; para3: JLString); overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function nextText(): JLString; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function nextTag(): jint; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
  end;

  OXVXmlPullParserFactory = class external 'org.xmlpull.v1' name 'XmlPullParserFactory' (JLObject)
  public
    const
      PROPERTY_NAME = 'org.xmlpull.v1.XmlPullParserFactory';
  strict protected
    var
      fparserClasses: JUArrayList; external name 'parserClasses';
      fclassNamesLocation: JLString; external name 'classNamesLocation';
      fserializerClasses: JUArrayList; external name 'serializerClasses';
      ffeatures: JUHashMap; external name 'features';
  strict protected
    constructor create(); overload;
  public
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException
    function getFeature(para1: JLString): jboolean; overload; virtual;
    procedure setNamespaceAware(para1: jboolean); overload; virtual;
    function isNamespaceAware(): jboolean; overload; virtual;
    procedure setValidating(para1: jboolean); overload; virtual;
    function isValidating(): jboolean; overload; virtual;
    function newPullParser(): OXVXmlPullParser; overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException
    function newSerializer(): OXVXmlSerializer; overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException
    class function newInstance(): OXVXmlPullParserFactory; static; overload;  // throws org.xmlpull.v1.XmlPullParserException
    class function newInstance(para1: JLString; para2: JLClass): OXVXmlPullParserFactory; static; overload;  // throws org.xmlpull.v1.XmlPullParserException
  end;

  OXVXmlSerializer = interface external 'org.xmlpull.v1' name 'XmlSerializer' 
    procedure setFeature(para1: JLString; para2: jboolean); overload;  // throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function getFeature(para1: JLString): jboolean; overload;
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function getProperty(para1: JLString): JLObject; overload;
    procedure setOutput(para1: JIOutputStream; para2: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure setOutput(para1: JIWriter); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure startDocument(para1: JLString; para2: JLBoolean); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure endDocument(); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure setPrefix(para1: JLString; para2: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function getPrefix(para1: JLString; para2: jboolean): JLString; overload;  // throws java.lang.IllegalArgumentException
    function getDepth(): jint; overload;
    function getNamespace(): JLString; overload;
    function getName(): JLString; overload;
    function startTag(para1: JLString; para2: JLString): OXVXmlSerializer; overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function attribute(para1: JLString; para2: JLString; para3: JLString): OXVXmlSerializer; overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function endTag(para1: JLString; para2: JLString): OXVXmlSerializer; overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function text(para1: JLString): OXVXmlSerializer; overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function text(para1: Arr1jchar; para2: jint; para3: jint): OXVXmlSerializer; overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    function text(var para1: array of jchar; para2: jint; para3: jint): OXVXmlSerializer; overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure cdsect(para1: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure entityRef(para1: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure processingInstruction(para1: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure comment(para1: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure docdecl(para1: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure ignorableWhitespace(para1: JLString); overload;  // throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException
    procedure flush(); overload;  // throws java.io.IOException
  end;

  AAAccountsException = class external 'android.accounts' name 'AccountsException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  ACOperationApplicationException = class external 'android.content' name 'OperationApplicationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    function getNumSuccessfulYieldPoints(): jint; overload; virtual;
  end;

  AGSurfaceTexture = class external 'android.graphics' name 'SurfaceTexture' (JLObject)
  public
    type
      InnerOutOfResourcesException = class;
      Arr1InnerOutOfResourcesException = array of InnerOutOfResourcesException;
      Arr2InnerOutOfResourcesException = array of Arr1InnerOutOfResourcesException;
      Arr3InnerOutOfResourcesException = array of Arr2InnerOutOfResourcesException;
      InnerOnFrameAvailableListener = interface;
      Arr1InnerOnFrameAvailableListener = array of InnerOnFrameAvailableListener;
      Arr2InnerOnFrameAvailableListener = array of Arr1InnerOnFrameAvailableListener;
      Arr3InnerOnFrameAvailableListener = array of Arr2InnerOnFrameAvailableListener;
      InnerOutOfResourcesException = class external 'android.graphics' name 'OutOfResourcesException' (JLException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

      InnerOnFrameAvailableListener = interface external 'android.graphics' name 'OnFrameAvailableListener' 
        procedure onFrameAvailable(para1: AGSurfaceTexture); overload;
      end;

  public
    constructor create(para1: jint); overload;
    procedure setOnFrameAvailableListener(para1: AGSurfaceTexture.InnerOnFrameAvailableListener); overload; virtual;
    procedure updateTexImage(); overload; virtual;
    procedure getTransformMatrix(para1: Arr1jfloat); overload; virtual;
    procedure getTransformMatrix(var para1: array of jfloat); overload; virtual;
    function getTimestamp(): jlong; overload; virtual;
    procedure release(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  ANSSipException = class external 'android.net.sip' name 'SipException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  ANFormatException = class external 'android.nfc' name 'FormatException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ASKeyChainException = class external 'android.security' name 'KeyChainException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  AUAndroidException = class external 'android.util' name 'AndroidException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLException); overload;
  end;

  JLClassNotFoundException = class external 'java.lang' name 'ClassNotFoundException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function getException(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JLCloneNotSupportedException = class external 'java.lang' name 'CloneNotSupportedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIllegalAccessException = class external 'java.lang' name 'IllegalAccessException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInstantiationException = class external 'java.lang' name 'InstantiationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInterruptedException = class external 'java.lang' name 'InterruptedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchFieldException = class external 'java.lang' name 'NoSuchFieldException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchMethodException = class external 'java.lang' name 'NoSuchMethodException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNURISyntaxException = class external 'java.net' name 'URISyntaxException' (JLException)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getIndex(): jint; overload; virtual;
    function getReason(): JLString; overload; virtual;
    function getInput(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JSGeneralSecurityException = class external 'java.security' name 'GeneralSecurityException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSPrivilegedActionException = class external 'java.security' name 'PrivilegedActionException' (JLException)
  public
    constructor create(para1: JLException); overload;
    function getException(): JLException; overload; virtual;
  end;

  JSAAclNotFoundException = class external 'java.security.acl' name 'AclNotFoundException' (JLException)
  public
    constructor create(); overload;
  end;

  JSALastOwnerException = class external 'java.security.acl' name 'LastOwnerException' (JLException)
  public
    constructor create(); overload;
  end;

  JSANotOwnerException = class external 'java.security.acl' name 'NotOwnerException' (JLException)
  public
    constructor create(); overload;
  end;

  JTParseException = class external 'java.text' name 'ParseException' (JLException)
  public
    constructor create(para1: JLString; para2: jint); overload;
    function getErrorOffset(): jint; overload; virtual;
  end;

  JUTooManyListenersException = class external 'java.util' name 'TooManyListenersException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCBrokenBarrierException = class external 'java.util.concurrent' name 'BrokenBarrierException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCExecutionException = class external 'java.util.concurrent' name 'ExecutionException' (JLException)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUCTimeoutException = class external 'java.util.concurrent' name 'TimeoutException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUPBackingStoreException = class external 'java.util.prefs' name 'BackingStoreException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUPInvalidPreferencesFormatException = class external 'java.util.prefs' name 'InvalidPreferencesFormatException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUZDataFormatException = class external 'java.util.zip' name 'DataFormatException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSADestroyFailedException = class external 'javax.security.auth' name 'DestroyFailedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSACUnsupportedCallbackException = class external 'javax.security.auth.callback' name 'UnsupportedCallbackException' (JLException)
  public
    constructor create(para1: JSACCallback); overload;
    constructor create(para1: JSACCallback; para2: JLString); overload;
    function getCallback(): JSACCallback; overload; virtual;
  end;

  JxSCCertificateException = class external 'javax.security.cert' name 'CertificateException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JXDDatatypeConfigurationException = class external 'javax.xml.datatype' name 'DatatypeConfigurationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXPParserConfigurationException = class external 'javax.xml.parsers' name 'ParserConfigurationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JXTTransformerException = class external 'javax.xml.transform' name 'TransformerException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator; para3: JLThrowable); overload;
    function getLocator(): JXTSourceLocator; overload; virtual;
    procedure setLocator(para1: JXTSourceLocator); overload; virtual;
    function getException(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    function initCause(para1: JLThrowable): JLThrowable; overload; virtual;
    function getMessageAndLocation(): JLString; overload; virtual;
    function getLocationAsString(): JLString; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXXXPathException = class external 'javax.xml.xpath' name 'XPathException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  OAHHttpException = class external 'org.apache.http' name 'HttpException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHICDateParseException = class external 'org.apache.http.impl.cookie' name 'DateParseException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OJJSONException = class external 'org.json' name 'JSONException' (JLException)
  public
    constructor create(para1: JLString); overload;
  end;

  OXSSAXException = class external 'org.xml.sax' name 'SAXException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLString; para2: JLException); overload;
    function getMessage(): JLString; overload; virtual;
    function getException(): JLException; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OXVXmlPullParserException = class external 'org.xmlpull.v1' name 'XmlPullParserException' (JLException)
  strict protected
    var
      fdetail: JLThrowable; external name 'detail';
      frow: jint; external name 'row';
      fcolumn: jint; external name 'column';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: OXVXmlPullParser; para3: JLThrowable); overload;
    function getDetail(): JLThrowable; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
    procedure printStackTrace(); overload; virtual;
  end;

  AAAnimator = class abstract external 'android.animation' name 'Animator' (JLObject, JLCloneable)
  public
    type
      InnerAnimatorListener = interface;
      Arr1InnerAnimatorListener = array of InnerAnimatorListener;
      Arr2InnerAnimatorListener = array of Arr1InnerAnimatorListener;
      Arr3InnerAnimatorListener = array of Arr2InnerAnimatorListener;
      InnerAnimatorListener = interface external 'android.animation' name 'AnimatorListener' 
        procedure onAnimationStart(para1: AAAnimator); overload;
        procedure onAnimationEnd(para1: AAAnimator); overload;
        procedure onAnimationCancel(para1: AAAnimator); overload;
        procedure onAnimationRepeat(para1: AAAnimator); overload;
      end;

  public
    constructor create(); overload;
    procedure start(); overload; virtual;
    procedure cancel(); overload; virtual;
    procedure &end(); overload; virtual;
    function getStartDelay(): jlong; overload; virtual; abstract;
    procedure setStartDelay(para1: jlong); overload; virtual; abstract;
    function setDuration(para1: jlong): AAAnimator; overload; virtual; abstract;
    function getDuration(): jlong; overload; virtual; abstract;
    procedure setInterpolator(para1: AATimeInterpolator); overload; virtual; abstract;
    function isRunning(): jboolean; overload; virtual; abstract;
    function isStarted(): jboolean; overload; virtual;
    procedure addListener(para1: AAAnimator.InnerAnimatorListener); overload; virtual;
    procedure removeListener(para1: AAAnimator.InnerAnimatorListener); overload; virtual;
    function getListeners(): JUArrayList; overload; virtual;
    procedure removeAllListeners(); overload; virtual;
    function clone(): AAAnimator; overload; virtual;
    procedure setupStartValues(); overload; virtual;
    procedure setupEndValues(); overload; virtual;
    procedure setTarget(para1: JLObject); overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AAKeyframe = class abstract external 'android.animation' name 'Keyframe' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    class function ofInt(para1: jfloat; para2: jint): AAKeyframe; static; overload;
    class function ofInt(para1: jfloat): AAKeyframe; static; overload;
    class function ofFloat(para1: jfloat; para2: jfloat): AAKeyframe; static; overload;
    class function ofFloat(para1: jfloat): AAKeyframe; static; overload;
    class function ofObject(para1: jfloat; para2: JLObject): AAKeyframe; static; overload;
    class function ofObject(para1: jfloat): AAKeyframe; static; overload;
    function hasValue(): jboolean; overload; virtual;
    function getValue(): JLObject; overload; virtual; abstract;
    procedure setValue(para1: JLObject); overload; virtual; abstract;
    function getFraction(): jfloat; overload; virtual;
    procedure setFraction(para1: jfloat); overload; virtual;
    function getInterpolator(): AATimeInterpolator; overload; virtual;
    procedure setInterpolator(para1: AATimeInterpolator); overload; virtual;
    function getType(): JLClass; overload; virtual;
    function clone(): AAKeyframe; overload; virtual; abstract;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AAPropertyValuesHolder = class external 'android.animation' name 'PropertyValuesHolder' (JLObject, JLCloneable)
  public
    class function ofInt(para1: JLString; para2: Arr1jint): AAPropertyValuesHolder; static; overload;
    class function ofInt(para1: JLString; const para2: array of jint): AAPropertyValuesHolder; static; overload;
    class function ofInt(para1: AUProperty; para2: Arr1jint): AAPropertyValuesHolder; static; overload;
    class function ofInt(para1: AUProperty; const para2: array of jint): AAPropertyValuesHolder; static; overload;
    class function ofFloat(para1: JLString; para2: Arr1jfloat): AAPropertyValuesHolder; static; overload;
    class function ofFloat(para1: JLString; const para2: array of jfloat): AAPropertyValuesHolder; static; overload;
    class function ofFloat(para1: AUProperty; para2: Arr1jfloat): AAPropertyValuesHolder; static; overload;
    class function ofFloat(para1: AUProperty; const para2: array of jfloat): AAPropertyValuesHolder; static; overload;
    class function ofObject(para1: JLString; para2: AATypeEvaluator; para3: Arr1JLObject): AAPropertyValuesHolder; static; overload;
    class function ofObject(para1: JLString; para2: AATypeEvaluator; const para3: array of JLObject): AAPropertyValuesHolder; static; overload;
    class function ofObject(para1: AUProperty; para2: AATypeEvaluator; para3: Arr1JLObject): AAPropertyValuesHolder; static; overload;
    class function ofObject(para1: AUProperty; para2: AATypeEvaluator; const para3: array of JLObject): AAPropertyValuesHolder; static; overload;
    class function ofKeyframe(para1: JLString; para2: Arr1AAKeyframe): AAPropertyValuesHolder; static; overload;
    class function ofKeyframe(para1: JLString; const para2: array of AAKeyframe): AAPropertyValuesHolder; static; overload;
    class function ofKeyframe(para1: AUProperty; para2: Arr1AAKeyframe): AAPropertyValuesHolder; static; overload;
    class function ofKeyframe(para1: AUProperty; const para2: array of AAKeyframe): AAPropertyValuesHolder; static; overload;
    procedure setIntValues(para1: Arr1jint); overload; virtual;
    procedure setIntValues(const para1: array of jint); overload; virtual;
    procedure setFloatValues(para1: Arr1jfloat); overload; virtual;
    procedure setFloatValues(const para1: array of jfloat); overload; virtual;
    procedure setKeyframes(para1: Arr1AAKeyframe); overload; virtual;
    procedure setKeyframes(const para1: array of AAKeyframe); overload; virtual;
    procedure setObjectValues(para1: Arr1JLObject); overload; virtual;
    procedure setObjectValues(const para1: array of JLObject); overload; virtual;
    function clone(): AAPropertyValuesHolder; overload; virtual;
    procedure setEvaluator(para1: AATypeEvaluator); overload; virtual;
    procedure setPropertyName(para1: JLString); overload; virtual;
    procedure setProperty(para1: AUProperty); overload; virtual;
    function getPropertyName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AGDSShape = class abstract external 'android.graphics.drawable.shapes' name 'Shape' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    function getWidth(): jfloat; overload; virtual; final;
    function getHeight(): jfloat; overload; virtual; final;
    procedure draw(para1: AGCanvas; para2: AGPaint); overload; virtual; abstract;
    procedure resize(para1: jfloat; para2: jfloat); overload; virtual; final;
    function hasAlpha(): jboolean; overload; virtual;
  strict protected
    procedure onResize(para1: jfloat; para2: jfloat); overload; virtual;
  public
    function clone(): AGDSShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AUSparseArray = class external 'android.util' name 'SparseArray' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    function clone(): AUSparseArray; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function get(para1: jint; para2: JLObject): JLObject; overload; virtual;
    procedure delete(para1: jint); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure removeAt(para1: jint); overload; virtual;
    procedure put(para1: jint; para2: JLObject); overload; virtual;
    function size(): jint; overload; virtual;
    function keyAt(para1: jint): jint; overload; virtual;
    function valueAt(para1: jint): JLObject; overload; virtual;
    procedure setValueAt(para1: jint; para2: JLObject); overload; virtual;
    function indexOfKey(para1: jint): jint; overload; virtual;
    function indexOfValue(para1: JLObject): jint; overload; virtual;
    procedure clear(); overload; virtual;
    procedure append(para1: jint; para2: JLObject); overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AUSparseBooleanArray = class external 'android.util' name 'SparseBooleanArray' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    function clone(): AUSparseBooleanArray; overload; virtual;
    function get(para1: jint): jboolean; overload; virtual;
    function get(para1: jint; para2: jboolean): jboolean; overload; virtual;
    procedure delete(para1: jint); overload; virtual;
    procedure put(para1: jint; para2: jboolean); overload; virtual;
    function size(): jint; overload; virtual;
    function keyAt(para1: jint): jint; overload; virtual;
    function valueAt(para1: jint): jboolean; overload; virtual;
    function indexOfKey(para1: jint): jint; overload; virtual;
    function indexOfValue(para1: jboolean): jint; overload; virtual;
    procedure clear(); overload; virtual;
    procedure append(para1: jint; para2: jboolean); overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AUSparseIntArray = class external 'android.util' name 'SparseIntArray' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    function clone(): AUSparseIntArray; overload; virtual;
    function get(para1: jint): jint; overload; virtual;
    function get(para1: jint; para2: jint): jint; overload; virtual;
    procedure delete(para1: jint); overload; virtual;
    procedure removeAt(para1: jint); overload; virtual;
    procedure put(para1: jint; para2: jint); overload; virtual;
    function size(): jint; overload; virtual;
    function keyAt(para1: jint): jint; overload; virtual;
    function valueAt(para1: jint): jint; overload; virtual;
    function indexOfKey(para1: jint): jint; overload; virtual;
    function indexOfValue(para1: jint): jint; overload; virtual;
    procedure clear(); overload; virtual;
    procedure append(para1: jint; para2: jint); overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AVAAnimation = class abstract external 'android.view.animation' name 'Animation' (JLObject, JLCloneable)
  public
    type
      InnerAnimationListener = interface;
      Arr1InnerAnimationListener = array of InnerAnimationListener;
      Arr2InnerAnimationListener = array of Arr1InnerAnimationListener;
      Arr3InnerAnimationListener = array of Arr2InnerAnimationListener;
      InnerDescription = class;
      Arr1InnerDescription = array of InnerDescription;
      Arr2InnerDescription = array of Arr1InnerDescription;
      Arr3InnerDescription = array of Arr2InnerDescription;
      InnerAnimationListener = interface external 'android.view.animation' name 'AnimationListener' 
        procedure onAnimationStart(para1: AVAAnimation); overload;
        procedure onAnimationEnd(para1: AVAAnimation); overload;
        procedure onAnimationRepeat(para1: AVAAnimation); overload;
      end;

      InnerDescription = class external 'android.view.animation' name 'Description' (JLObject)
      public
        var
          ftype: jint; external name 'type';
          fvalue: jfloat; external name 'value';
      strict protected
        constructor create(); overload;
      end;

  public
    const
      INFINITE = -1;
      RESTART = 1;
      REVERSE = 2;
      START_ON_FIRST_FRAME = -1;
      ABSOLUTE = 0;
      RELATIVE_TO_SELF = 1;
      RELATIVE_TO_PARENT = 2;
      ZORDER_NORMAL = 0;
      ZORDER_TOP = 1;
      ZORDER_BOTTOM = -1;
  public
    constructor create(); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
  strict protected
    function clone(): AVAAnimation; overload; virtual;  // throws java.lang.CloneNotSupportedException
  public
    procedure reset(); overload; virtual;
    procedure cancel(); overload; virtual;
    function isInitialized(): jboolean; overload; virtual;
    procedure initialize(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setInterpolator(para1: ACContext; para2: jint); overload; virtual;
    procedure setInterpolator(para1: AVAInterpolator); overload; virtual;
    procedure setStartOffset(para1: jlong); overload; virtual;
    procedure setDuration(para1: jlong); overload; virtual;
    procedure restrictDuration(para1: jlong); overload; virtual;
    procedure scaleCurrentDuration(para1: jfloat); overload; virtual;
    procedure setStartTime(para1: jlong); overload; virtual;
    procedure start(); overload; virtual;
    procedure startNow(); overload; virtual;
    procedure setRepeatMode(para1: jint); overload; virtual;
    procedure setRepeatCount(para1: jint); overload; virtual;
    function isFillEnabled(): jboolean; overload; virtual;
    procedure setFillEnabled(para1: jboolean); overload; virtual;
    procedure setFillBefore(para1: jboolean); overload; virtual;
    procedure setFillAfter(para1: jboolean); overload; virtual;
    procedure setZAdjustment(para1: jint); overload; virtual;
    procedure setBackgroundColor(para1: jint); overload; virtual;
  strict protected
    function getScaleFactor(): jfloat; overload; virtual;
  public
    procedure setDetachWallpaper(para1: jboolean); overload; virtual;
    function getInterpolator(): AVAInterpolator; overload; virtual;
    function getStartTime(): jlong; overload; virtual;
    function getDuration(): jlong; overload; virtual;
    function getStartOffset(): jlong; overload; virtual;
    function getRepeatMode(): jint; overload; virtual;
    function getRepeatCount(): jint; overload; virtual;
    function getFillBefore(): jboolean; overload; virtual;
    function getFillAfter(): jboolean; overload; virtual;
    function getZAdjustment(): jint; overload; virtual;
    function getBackgroundColor(): jint; overload; virtual;
    function getDetachWallpaper(): jboolean; overload; virtual;
    function willChangeTransformationMatrix(): jboolean; overload; virtual;
    function willChangeBounds(): jboolean; overload; virtual;
    procedure setAnimationListener(para1: AVAAnimation.InnerAnimationListener); overload; virtual;
  strict protected
    procedure ensureInterpolator(); overload; virtual;
  public
    function computeDurationHint(): jlong; overload; virtual;
    function getTransformation(para1: jlong; para2: AVATransformation): jboolean; overload; virtual;
    function getTransformation(para1: jlong; para2: AVATransformation; para3: jfloat): jboolean; overload; virtual;
    function hasStarted(): jboolean; overload; virtual;
    function hasEnded(): jboolean; overload; virtual;
  strict protected
    procedure applyTransformation(para1: jfloat; para2: AVATransformation); overload; virtual;
    function resolveSize(para1: jint; para2: jfloat; para3: jint; para4: jint): jfloat; overload; virtual;
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AWWebHistoryItem = class external 'android.webkit' name 'WebHistoryItem' (JLObject, JLCloneable)
  public
    function getId(): jint; overload; virtual;
    function getUrl(): JLString; overload; virtual;
    function getOriginalUrl(): JLString; overload; virtual;
    function getTitle(): JLString; overload; virtual;
    function getFavicon(): AGBitmap; overload; virtual;
  strict protected
    function clone(): AWWebHistoryItem; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JNHttpCookie = class sealed external 'java.net' name 'HttpCookie' (JLObject, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    class function domainMatches(para1: JLString; para2: JLString): jboolean; static; overload;
    class function parse(para1: JLString): JUList; static; overload;
    function getComment(): JLString; overload; virtual;
    function getCommentURL(): JLString; overload; virtual;
    function getDiscard(): jboolean; overload; virtual;
    function getDomain(): JLString; overload; virtual;
    function getMaxAge(): jlong; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function getPortlist(): JLString; overload; virtual;
    function getSecure(): jboolean; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getVersion(): jint; overload; virtual;
    function hasExpired(): jboolean; overload; virtual;
    procedure setComment(para1: JLString); overload; virtual;
    procedure setCommentURL(para1: JLString); overload; virtual;
    procedure setDiscard(para1: jboolean); overload; virtual;
    procedure setDomain(para1: JLString); overload; virtual;
    procedure setMaxAge(para1: jlong); overload; virtual;
    procedure setPath(para1: JLString); overload; virtual;
    procedure setPortlist(para1: JLString); overload; virtual;
    procedure setSecure(para1: jboolean); overload; virtual;
    procedure setValue(para1: JLString); overload; virtual;
    procedure setVersion(para1: jint); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSAAclEntry = interface external 'java.security.acl' name 'AclEntry' (JLCloneable)
    function setPrincipal(para1: JSPrincipal): jboolean; overload;
    function getPrincipal(): JSPrincipal; overload;
    procedure setNegativePermissions(); overload;
    function isNegative(): jboolean; overload;
    function addPermission(para1: JSAPermission): jboolean; overload;
    function removePermission(para1: JSAPermission): jboolean; overload;
    function checkPermission(para1: JSAPermission): jboolean; overload;
    function permissions(): JUEnumeration; overload;
    function toString(): JLString; overload;
    function clone(): JLObject; overload;
  end;

  JSCCRLSelector = interface external 'java.security.cert' name 'CRLSelector' (JLCloneable)
    function clone(): JLObject; overload;
    function match(para1: JSCCRL): jboolean; overload;
  end;

  JSCCertPathBuilderResult = interface external 'java.security.cert' name 'CertPathBuilderResult' (JLCloneable)
    function clone(): JLObject; overload;
    function getCertPath(): JSCCertPath; overload;
  end;

  JSCCertPathParameters = interface external 'java.security.cert' name 'CertPathParameters' (JLCloneable)
    function clone(): JLObject; overload;
  end;

  JSCCertPathValidatorResult = interface external 'java.security.cert' name 'CertPathValidatorResult' (JLCloneable)
    function clone(): JLObject; overload;
  end;

  JSCCertSelector = interface external 'java.security.cert' name 'CertSelector' (JLCloneable)
    function clone(): JLObject; overload;
    function match(para1: JSCCertificate): jboolean; overload;
  end;

  JSCCertStoreParameters = interface external 'java.security.cert' name 'CertStoreParameters' (JLCloneable)
    function clone(): JLObject; overload;
  end;

  JSCPKIXCertPathChecker = class abstract external 'java.security.cert' name 'PKIXCertPathChecker' (JLObject, JLCloneable)
  strict protected
    constructor create(); overload;
  public
    function clone(): JLObject; overload; virtual;
    procedure init(para1: jboolean); overload; virtual; abstract;  // throws java.security.cert.CertPathValidatorException
    function isForwardCheckingSupported(): jboolean; overload; virtual; abstract;
    function getSupportedExtensions(): JUSet; overload; virtual; abstract;
    procedure check(para1: JSCCertificate; para2: JUCollection); overload; virtual; abstract;  // throws java.security.cert.CertPathValidatorException
  end;

  JTBreakIterator = class abstract external 'java.text' name 'BreakIterator' (JLObject, JLCloneable)
  public
    const
      DONE = -1;
  strict protected
    constructor create(); overload;
  public
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    class function getCharacterInstance(): JTBreakIterator; static; overload;
    class function getCharacterInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getLineInstance(): JTBreakIterator; static; overload;
    class function getLineInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getSentenceInstance(): JTBreakIterator; static; overload;
    class function getSentenceInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getWordInstance(): JTBreakIterator; static; overload;
    class function getWordInstance(para1: JULocale): JTBreakIterator; static; overload;
    function isBoundary(para1: jint): jboolean; overload; virtual;
    function preceding(para1: jint): jint; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function current(): jint; overload; virtual; abstract;
    function first(): jint; overload; virtual; abstract;
    function following(para1: jint): jint; overload; virtual; abstract;
    function getText(): JTCharacterIterator; overload; virtual; abstract;
    function last(): jint; overload; virtual; abstract;
    function next(): jint; overload; virtual; abstract;
    function next(para1: jint): jint; overload; virtual; abstract;
    function previous(): jint; overload; virtual; abstract;
    procedure setText(para1: JTCharacterIterator); overload; virtual; abstract;
    function clone(): JLObject; overload; virtual;
  end;

  JTCharacterIterator = interface external 'java.text' name 'CharacterIterator' (JLCloneable)
    const
      DONE = 65535;
    function clone(): JLObject; overload;
    function current(): jchar; overload;
    function first(): jchar; overload;
    function getBeginIndex(): jint; overload;
    function getEndIndex(): jint; overload;
    function getIndex(): jint; overload;
    function last(): jchar; overload;
    function next(): jchar; overload;
    function previous(): jchar; overload;
    function setIndex(para1: jint): jchar; overload;
  end;

  JUJManifest = class external 'java.util.jar' name 'Manifest' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    constructor create(para1: JUJManifest); overload;
    procedure clear(); overload; virtual;
    function getAttributes(para1: JLString): JUJAttributes; overload; virtual;
    function getEntries(): JUMap; overload; virtual;
    function getMainAttributes(): JUJAttributes; overload; virtual;
    function clone(): JLObject; overload; virtual;
    procedure write(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    procedure read(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JUZZipEntry = class external 'java.util.zip' name 'ZipEntry' (JLObject, JLCloneable)
  public
    const
      DEFLATED = 8;
      STORED = 0;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JUZZipEntry); overload;
    function getComment(): JLString; overload; virtual;
    function getCompressedSize(): jlong; overload; virtual;
    function getCrc(): jlong; overload; virtual;
    function getExtra(): Arr1jbyte; overload; virtual;
    function getMethod(): jint; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getSize(): jlong; overload; virtual;
    function getTime(): jlong; overload; virtual;
    function isDirectory(): jboolean; overload; virtual;
    procedure setComment(para1: JLString); overload; virtual;
    procedure setCompressedSize(para1: jlong); overload; virtual;
    procedure setCrc(para1: jlong); overload; virtual;
    procedure setExtra(para1: Arr1jbyte); overload; virtual;
    procedure setExtra(var para1: array of jbyte); overload; virtual;
    procedure setMethod(para1: jint); overload; virtual;
    procedure setSize(para1: jlong); overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JCMac = class external 'javax.crypto' name 'Mac' (JLObject, JLCloneable)
  strict protected
    constructor create(para1: JCMacSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getInstance(para1: JLString): JCMac; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCMac; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCMac; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getMacLength(): jint; overload; virtual; final;
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure update(para1: jbyte); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(para1: Arr1jbyte); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(var para1: array of jbyte); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(para1: JNByteBuffer); overload; virtual; final;
    function doFinal(): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure doFinal(para1: Arr1jbyte; para2: jint); overload; virtual; final;  // throws javax.crypto.ShortBufferException, java.lang.IllegalStateException
    procedure doFinal(var para1: array of jbyte; para2: jint); overload; virtual; final;  // throws javax.crypto.ShortBufferException, java.lang.IllegalStateException
    function doFinal(para1: Arr1jbyte): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    function doFinal(var para1: array of jbyte): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure reset(); overload; virtual; final;
    function clone(): JLObject; overload; virtual; final;  // throws java.lang.CloneNotSupportedException
  end;

  JXDXMLGregorianCalendar = class abstract external 'javax.xml.datatype' name 'XMLGregorianCalendar' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    procedure clear(); overload; virtual; abstract;
    procedure reset(); overload; virtual; abstract;
    procedure setYear(para1: JMBigInteger); overload; virtual; abstract;
    procedure setYear(para1: jint); overload; virtual; abstract;
    procedure setMonth(para1: jint); overload; virtual; abstract;
    procedure setDay(para1: jint); overload; virtual; abstract;
    procedure setTimezone(para1: jint); overload; virtual; abstract;
    procedure setTime(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setHour(para1: jint); overload; virtual; abstract;
    procedure setMinute(para1: jint); overload; virtual; abstract;
    procedure setSecond(para1: jint); overload; virtual; abstract;
    procedure setMillisecond(para1: jint); overload; virtual; abstract;
    procedure setFractionalSecond(para1: JMBigDecimal); overload; virtual; abstract;
    procedure setTime(para1: jint; para2: jint; para3: jint; para4: JMBigDecimal); overload; virtual;
    procedure setTime(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getEon(): JMBigInteger; overload; virtual; abstract;
    function getYear(): jint; overload; virtual; abstract;
    function getEonAndYear(): JMBigInteger; overload; virtual; abstract;
    function getMonth(): jint; overload; virtual; abstract;
    function getDay(): jint; overload; virtual; abstract;
    function getTimezone(): jint; overload; virtual; abstract;
    function getHour(): jint; overload; virtual; abstract;
    function getMinute(): jint; overload; virtual; abstract;
    function getSecond(): jint; overload; virtual; abstract;
    function getMillisecond(): jint; overload; virtual;
    function getFractionalSecond(): JMBigDecimal; overload; virtual; abstract;
    function compare(para1: JXDXMLGregorianCalendar): jint; overload; virtual; abstract;
    function normalize(): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toXMLFormat(): JLString; overload; virtual; abstract;
    function getXMLSchemaType(): JXNQName; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function isValid(): jboolean; overload; virtual; abstract;
    procedure add(para1: JXDDuration); overload; virtual; abstract;
    function toGregorianCalendar(): JUGregorianCalendar; overload; virtual; abstract;
    function toGregorianCalendar(para1: JUTimeZone; para2: JULocale; para3: JXDXMLGregorianCalendar): JUGregorianCalendar; overload; virtual; abstract;
    function getTimeZone_(para1: jint): JUTimeZone; external name 'getTimeZone'; overload; virtual; abstract;
    function clone(): JLObject; overload; virtual; abstract;
  end;

  OAHHttpHost = class sealed external 'org.apache.http' name 'HttpHost' (JLObject, JLCloneable)
  public
    const
      DEFAULT_SCHEME_NAME = 'http';
  strict protected
    final var
      fhostname: JLString; external name 'hostname';
      flcHostname: JLString; external name 'lcHostname';
      fport: jint; external name 'port';
      fschemeName: JLString; external name 'schemeName';
  public
    constructor create(para1: JLString; para2: jint; para3: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: OAHHttpHost); overload;
    function getHostName(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getSchemeName(): JLString; overload; virtual;
    function toURI(): JLString; overload; virtual;
    function toHostString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHMHeaderGroup = class external 'org.apache.http.message' name 'HeaderGroup' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    procedure clear(); overload; virtual;
    procedure addHeader(para1: OAHHeader); overload; virtual;
    procedure removeHeader(para1: OAHHeader); overload; virtual;
    procedure updateHeader(para1: OAHHeader); overload; virtual;
    procedure setHeaders(para1: Arr1OAHHeader); overload; virtual;
    procedure setHeaders(var para1: array of OAHHeader); overload; virtual;
    function getCondensedHeader(para1: JLString): OAHHeader; overload; virtual;
    function getHeaders(para1: JLString): Arr1OAHHeader; overload; virtual;
    function getFirstHeader(para1: JLString): OAHHeader; overload; virtual;
    function getLastHeader(para1: JLString): OAHHeader; overload; virtual;
    function getAllHeaders(): Arr1OAHHeader; overload; virtual;
    function containsHeader(para1: JLString): jboolean; overload; virtual;
    function iterator(): OAHHeaderIterator; overload; virtual;
    function iterator(para1: JLString): OAHHeaderIterator; overload; virtual;
    function copy(): OAHMHeaderGroup; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  ACActivityNotFoundException = class external 'android.content' name 'ActivityNotFoundException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ACRResources = class external 'android.content.res' name 'Resources' (JLObject)
  public
    type
      InnerTheme = class;
      Arr1InnerTheme = array of InnerTheme;
      Arr2InnerTheme = array of Arr1InnerTheme;
      Arr3InnerTheme = array of Arr2InnerTheme;
      InnerNotFoundException = class;
      Arr1InnerNotFoundException = array of InnerNotFoundException;
      Arr2InnerNotFoundException = array of Arr1InnerNotFoundException;
      Arr3InnerNotFoundException = array of Arr2InnerNotFoundException;
      InnerTheme = class sealed external 'android.content.res' name 'Theme' 
      end;

      InnerNotFoundException = class external 'android.content.res' name 'NotFoundException' (JLRuntimeException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

  public
    constructor create(para1: ACRAssetManager; para2: AUDisplayMetrics; para3: ACRConfiguration); overload;
    class function getSystem(): ACRResources; static; overload;
    function getText(para1: jint): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityText(para1: jint; para2: jint): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getString(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getString(para1: jint; para2: Arr1JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getString(para1: jint; const para2: array of JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityString(para1: jint; para2: jint; para3: Arr1JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityString(para1: jint; para2: jint; const para3: array of JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityString(para1: jint; para2: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getText(para1: jint; para2: JLCharSequence): JLCharSequence; overload; virtual;
    function getTextArray(para1: jint): Arr1JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getStringArray(para1: jint): Arr1JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getIntArray(para1: jint): Arr1jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function obtainTypedArray(para1: jint): ACRTypedArray; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDimension(para1: jint): jfloat; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDimensionPixelOffset(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDimensionPixelSize(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getFraction(para1: jint; para2: jint; para3: jint): jfloat; overload; virtual;
    function getDrawable(para1: jint): AGDDrawable; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getMovie(para1: jint): AGMovie; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getColor(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getColorStateList(para1: jint): ACRColorStateList; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getBoolean(para1: jint): jboolean; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getInteger(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getLayout(para1: jint): ACRXmlResourceParser; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getAnimation(para1: jint): ACRXmlResourceParser; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getXml(para1: jint): ACRXmlResourceParser; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function openRawResource(para1: jint): JIInputStream; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function openRawResource(para1: jint; para2: AUTypedValue): JIInputStream; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function openRawResourceFd(para1: jint): ACRAssetFileDescriptor; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    procedure getValue(para1: jint; para2: AUTypedValue; para3: jboolean); overload; virtual;  // throws android.content.res.Resources$NotFoundException
    procedure getValue(para1: JLString; para2: AUTypedValue; para3: jboolean); overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function newTheme(): ACRResources.InnerTheme; overload; virtual; final;
    function obtainAttributes(para1: AUAttributeSet; para2: Arr1jint): ACRTypedArray; overload; virtual;
    function obtainAttributes(para1: AUAttributeSet; var para2: array of jint): ACRTypedArray; overload; virtual;
    procedure updateConfiguration(para1: ACRConfiguration; para2: AUDisplayMetrics); overload; virtual;
    function getDisplayMetrics(): AUDisplayMetrics; overload; virtual;
    function getConfiguration(): ACRConfiguration; overload; virtual;
    function getIdentifier(para1: JLString; para2: JLString; para3: JLString): jint; overload; virtual;
    function getResourceName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getResourcePackageName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getResourceTypeName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getResourceEntryName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    procedure parseBundleExtras(para1: ACRXmlResourceParser; para2: AOBundle); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    procedure parseBundleExtra(para1: JLString; para2: AUAttributeSet; para3: AOBundle); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException
    function getAssets(): ACRAssetManager; overload; virtual; final;
    procedure flushLayoutCache(); overload; virtual; final;
    procedure finishPreloading(); overload; virtual; final;
  end;

  ADSQLException = class external 'android.database' name 'SQLException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADStaleDataException = class external 'android.database' name 'StaleDataException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ANParseException = class external 'android.net' name 'ParseException' (JLRuntimeException)
  public
    var
      fresponse: JLString; external name 'response';
  end;

  AOGLException = class external 'android.opengl' name 'GLException' (JLRuntimeException)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JLString); overload;
  end;

  AONetworkOnMainThreadException = class external 'android.os' name 'NetworkOnMainThreadException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  AOParcelFormatException = class external 'android.os' name 'ParcelFormatException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ARRSRuntimeException = class external 'android.renderscript' name 'RSRuntimeException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  AUAndroidRuntimeException = class external 'android.util' name 'AndroidRuntimeException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLException); overload;
  end;

  AUNoSuchPropertyException = class external 'android.util' name 'NoSuchPropertyException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  AUTimeFormatException = class external 'android.util' name 'TimeFormatException' (JLRuntimeException)
  end;

  AVInflateException = class external 'android.view' name 'InflateException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  AVSurfaceHolder = interface external 'android.view' name 'SurfaceHolder' 
    type
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerBadSurfaceTypeException = class;
      Arr1InnerBadSurfaceTypeException = array of InnerBadSurfaceTypeException;
      Arr2InnerBadSurfaceTypeException = array of Arr1InnerBadSurfaceTypeException;
      Arr3InnerBadSurfaceTypeException = array of Arr2InnerBadSurfaceTypeException;
      InnerCallback2 = interface;
      Arr1InnerCallback2 = array of InnerCallback2;
      Arr2InnerCallback2 = array of Arr1InnerCallback2;
      Arr3InnerCallback2 = array of Arr2InnerCallback2;
      InnerCallback = interface external 'android.view' name 'Callback' 
        procedure surfaceCreated(para1: AVSurfaceHolder); overload;
        procedure surfaceChanged(para1: AVSurfaceHolder; para2: jint; para3: jint; para4: jint); overload;
        procedure surfaceDestroyed(para1: AVSurfaceHolder); overload;
      end;

      InnerBadSurfaceTypeException = class external 'android.view' name 'BadSurfaceTypeException' (JLRuntimeException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

      InnerCallback2 = interface external 'android.view' name 'Callback2' (AVSurfaceHolder.InnerCallback)
        procedure surfaceRedrawNeeded(para1: AVSurfaceHolder); overload;
      end;

    const
      SURFACE_TYPE_NORMAL = 0;
      SURFACE_TYPE_HARDWARE = 1;
      SURFACE_TYPE_GPU = 2;
      SURFACE_TYPE_PUSH_BUFFERS = 3;
    procedure addCallback(para1: AVSurfaceHolder.InnerCallback); overload;
    procedure removeCallback(para1: AVSurfaceHolder.InnerCallback); overload;
    function isCreating(): jboolean; overload;
    procedure setType(para1: jint); overload;
    procedure setFixedSize(para1: jint; para2: jint); overload;
    procedure setSizeFromLayout(); overload;
    procedure setFormat(para1: jint); overload;
    procedure setKeepScreenOn(para1: jboolean); overload;
    function lockCanvas(): AGCanvas; overload;
    function lockCanvas(para1: AGRect): AGCanvas; overload;
    procedure unlockCanvasAndPost(para1: AGCanvas); overload;
    function getSurfaceFrame(): AGRect; overload;
    function getSurface(): AVSurface; overload;
  end;

  JLArithmeticException = class external 'java.lang' name 'ArithmeticException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLArrayStoreException = class external 'java.lang' name 'ArrayStoreException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLClassCastException = class external 'java.lang' name 'ClassCastException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLEnumConstantNotPresentException = class external 'java.lang' name 'EnumConstantNotPresentException' (JLRuntimeException)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    function enumType(): JLClass; overload; virtual;
    function constantName(): JLString; overload; virtual;
  end;

  JLIllegalMonitorStateException = class external 'java.lang' name 'IllegalMonitorStateException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNegativeArraySizeException = class external 'java.lang' name 'NegativeArraySizeException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNullPointerException = class external 'java.lang' name 'NullPointerException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLSecurityException = class external 'java.lang' name 'SecurityException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JLTypeNotPresentException = class external 'java.lang' name 'TypeNotPresentException' (JLRuntimeException)
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function typeName(): JLString; overload; virtual;
  end;

  JLAAnnotationTypeMismatchException = class external 'java.lang.annotation' name 'AnnotationTypeMismatchException' (JLRuntimeException)
  public
    constructor create(para1: JLRMethod; para2: JLString); overload;
    function element(): JLRMethod; overload; virtual;
    function foundType(): JLString; overload; virtual;
  end;

  JLAIncompleteAnnotationException = class external 'java.lang.annotation' name 'IncompleteAnnotationException' (JLRuntimeException)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    function annotationType(): JLClass; overload; virtual;
    function elementName(): JLString; overload; virtual;
  end;

  JLRMalformedParameterizedTypeException = class external 'java.lang.reflect' name 'MalformedParameterizedTypeException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JLRUndeclaredThrowableException = class external 'java.lang.reflect' name 'UndeclaredThrowableException' (JLRuntimeException)
  public
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLThrowable; para2: JLString); overload;
    function getUndeclaredThrowable(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JNBufferOverflowException = class external 'java.nio' name 'BufferOverflowException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JNBufferUnderflowException = class external 'java.nio' name 'BufferUnderflowException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JSProviderException = class external 'java.security' name 'ProviderException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUConcurrentModificationException = class external 'java.util' name 'ConcurrentModificationException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUEmptyStackException = class external 'java.util' name 'EmptyStackException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JUMissingResourceException = class external 'java.util' name 'MissingResourceException' (JLRuntimeException)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    function getClassName(): JLString; overload; virtual;
    function getKey(): JLString; overload; virtual;
  end;

  JUNoSuchElementException = class external 'java.util' name 'NoSuchElementException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCRejectedExecutionException = class external 'java.util.concurrent' name 'RejectedExecutionException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OAHParseException = class external 'org.apache.http' name 'ParseException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OAHIAUnsupportedDigestAlgorithmException = class external 'org.apache.http.impl.auth' name 'UnsupportedDigestAlgorithmException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OWDDOMException = class external 'org.w3c.dom' name 'DOMException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      INDEX_SIZE_ERR = 1;
      DOMSTRING_SIZE_ERR = 2;
      HIERARCHY_REQUEST_ERR = 3;
      WRONG_DOCUMENT_ERR = 4;
      INVALID_CHARACTER_ERR = 5;
      NO_DATA_ALLOWED_ERR = 6;
      NO_MODIFICATION_ALLOWED_ERR = 7;
      NOT_FOUND_ERR = 8;
      NOT_SUPPORTED_ERR = 9;
      INUSE_ATTRIBUTE_ERR = 10;
      INVALID_STATE_ERR = 11;
      SYNTAX_ERR = 12;
      INVALID_MODIFICATION_ERR = 13;
      NAMESPACE_ERR = 14;
      INVALID_ACCESS_ERR = 15;
      VALIDATION_ERR = 16;
      TYPE_MISMATCH_ERR = 17;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  OWDLLSException = class external 'org.w3c.dom.ls' name 'LSException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      PARSE_ERR = 81;
      SERIALIZE_ERR = 82;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  JIObjectStreamField = class external 'java.io' name 'ObjectStreamField' (JLObject, JLComparable)
  public
    constructor create(para1: JLString; para2: JLClass); overload;
    constructor create(para1: JLString; para2: JLClass; para3: jboolean); overload;
    function compareTo(para1: JLObject): jint; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function getType(): JLClass; overload; virtual;
    function getTypeCode(): jchar; overload; virtual;
    function getTypeString(): JLString; overload; virtual;
    function isPrimitive(): jboolean; overload; virtual;
  strict protected
    procedure setOffset(para1: jint); overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    function isUnshared(): jboolean; overload; virtual;
  end;

  JTCollationKey = class abstract external 'java.text' name 'CollationKey' (JLObject, JLComparable)
  strict protected
    constructor create(para1: JLString); overload;
  public
    function compareTo(para1: JTCollationKey): jint; overload; virtual; abstract;
    function getSourceString(): JLString; overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual; abstract;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUCDelayed = interface external 'java.util.concurrent' name 'Delayed' (JLComparable)
    function getDelay(para1: JUCTimeUnit): jlong; overload;
  end;

  ACEntityIterator = interface external 'android.content' name 'EntityIterator' (JUIterator)
    procedure reset(); overload;
    procedure close(); overload;
  end;

  JUListIterator = interface external 'java.util' name 'ListIterator' (JUIterator)
    procedure add(para1: JLObject); overload;
    function hasNext(): jboolean; overload;
    function hasPrevious(): jboolean; overload;
    function next(): JLObject; overload;
    function nextIndex(): jint; overload;
    function previous(): JLObject; overload;
    function previousIndex(): jint; overload;
    procedure remove(); overload;
    procedure &set(para1: JLObject); overload;
  end;

  JUScanner = class sealed external 'java.util' name 'Scanner' (JLObject, JUIterator)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString); overload;
    constructor create(para1: JLReadable); overload;
    constructor create(para1: JNCReadableByteChannel); overload;
    constructor create(para1: JNCReadableByteChannel; para2: JLString); overload;
    procedure close(); overload; virtual;
    function delimiter(): JURPattern; overload; virtual;
    function findInLine(para1: JURPattern): JLString; overload; virtual;
    function findInLine(para1: JLString): JLString; overload; virtual;
    function findWithinHorizon(para1: JURPattern; para2: jint): JLString; overload; virtual;
    function findWithinHorizon(para1: JLString; para2: jint): JLString; overload; virtual;
    function hasNext(): jboolean; overload; virtual;
    function hasNext(para1: JURPattern): jboolean; overload; virtual;
    function hasNext(para1: JLString): jboolean; overload; virtual;
    function hasNextBigDecimal(): jboolean; overload; virtual;
    function hasNextBigInteger(): jboolean; overload; virtual;
    function hasNextBigInteger(para1: jint): jboolean; overload; virtual;
    function hasNextBoolean(): jboolean; overload; virtual;
    function hasNextByte(): jboolean; overload; virtual;
    function hasNextByte(para1: jint): jboolean; overload; virtual;
    function hasNextDouble(): jboolean; overload; virtual;
    function hasNextFloat(): jboolean; overload; virtual;
    function hasNextInt(): jboolean; overload; virtual;
    function hasNextInt(para1: jint): jboolean; overload; virtual;
    function hasNextLine(): jboolean; overload; virtual;
    function hasNextLong(): jboolean; overload; virtual;
    function hasNextLong(para1: jint): jboolean; overload; virtual;
    function hasNextShort(): jboolean; overload; virtual;
    function hasNextShort(para1: jint): jboolean; overload; virtual;
    function ioException(): JIIOException; overload; virtual;
    function locale(): JULocale; overload; virtual;
    function match(): JURMatchResult; overload; virtual;
    function next(): JLString; overload; virtual;
    function next(para1: JURPattern): JLString; overload; virtual;
    function next(para1: JLString): JLString; overload; virtual;
    function nextBigDecimal(): JMBigDecimal; overload; virtual;
    function nextBigInteger(): JMBigInteger; overload; virtual;
    function nextBigInteger(para1: jint): JMBigInteger; overload; virtual;
    function nextBoolean(): jboolean; overload; virtual;
    function nextByte(): jbyte; overload; virtual;
    function nextByte(para1: jint): jbyte; overload; virtual;
    function nextDouble(): jdouble; overload; virtual;
    function nextFloat(): jfloat; overload; virtual;
    function nextInt(): jint; overload; virtual;
    function nextInt(para1: jint): jint; overload; virtual;
    function nextLine(): JLString; overload; virtual;
    function nextLong(): jlong; overload; virtual;
    function nextLong(para1: jint): jlong; overload; virtual;
    function nextShort(): jshort; overload; virtual;
    function nextShort(para1: jint): jshort; overload; virtual;
    function radix(): jint; overload; virtual;
    function skip(para1: JURPattern): JUScanner; overload; virtual;
    function skip(para1: JLString): JUScanner; overload; virtual;
    function toString(): JLString; overload; virtual;
    function useDelimiter(para1: JURPattern): JUScanner; overload; virtual;
    function useDelimiter(para1: JLString): JUScanner; overload; virtual;
    function useLocale(para1: JULocale): JUScanner; overload; virtual;
    function useRadix(para1: jint): JUScanner; overload; virtual;
    procedure remove(); overload; virtual;
    function reset(): JUScanner; overload; virtual;
    function next(): JLObject; overload; virtual;
  end;

  OAHHeaderElementIterator = interface external 'org.apache.http' name 'HeaderElementIterator' (JUIterator)
    function hasNext(): jboolean; overload;
    function nextElement(): OAHHeaderElement; overload;
  end;

  OAHHeaderIterator = interface external 'org.apache.http' name 'HeaderIterator' (JUIterator)
    function hasNext(): jboolean; overload;
    function nextHeader(): OAHHeader; overload;
  end;

  OAHTokenIterator = interface external 'org.apache.http' name 'TokenIterator' (JUIterator)
    function hasNext(): jboolean; overload;
    function nextToken(): JLString; overload;
  end;

  ACPPackageItemInfo = class external 'android.content.pm' name 'PackageItemInfo' (JLObject)
  public
    type
      InnerDisplayNameComparator = class;
      Arr1InnerDisplayNameComparator = array of InnerDisplayNameComparator;
      Arr2InnerDisplayNameComparator = array of Arr1InnerDisplayNameComparator;
      Arr3InnerDisplayNameComparator = array of Arr2InnerDisplayNameComparator;
      InnerDisplayNameComparator = class external 'android.content.pm' name 'DisplayNameComparator' (JLObject, JUComparator)
      public
        constructor create(para1: ACPPackageManager); overload;
        function compare(para1: ACPPackageItemInfo; para2: ACPPackageItemInfo): jint; overload; virtual; final;
        function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
      end;

  public
    var
      fname: JLString; external name 'name';
      fpackageName: JLString; external name 'packageName';
      flabelRes: jint; external name 'labelRes';
      fnonLocalizedLabel: JLCharSequence; external name 'nonLocalizedLabel';
      ficon: jint; external name 'icon';
      flogo: jint; external name 'logo';
      fmetaData: AOBundle; external name 'metaData';
  public
    constructor create(); overload;
    constructor create(para1: ACPPackageItemInfo); overload;
  strict protected
    constructor create(para1: AOParcel); overload;
  public
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function loadLogo(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function loadXmlMetaData(para1: ACPPackageManager; para2: JLString): ACRXmlResourceParser; overload; virtual;
  strict protected
    procedure dumpFront(para1: AUPrinter; para2: JLString); overload; virtual;
    procedure dumpBack(para1: AUPrinter; para2: JLString); overload; virtual;
  public
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ADCursorIndexOutOfBoundsException = class external 'android.database' name 'CursorIndexOutOfBoundsException' (JLIndexOutOfBoundsException)
  public
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JLString); overload;
  end;

  JLArrayIndexOutOfBoundsException = class external 'java.lang' name 'ArrayIndexOutOfBoundsException' (JLIndexOutOfBoundsException)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString); overload;
  end;

  JLStringIndexOutOfBoundsException = class external 'java.lang' name 'StringIndexOutOfBoundsException' (JLIndexOutOfBoundsException)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString); overload;
  end;

  JUServiceLoader = class sealed external 'java.util' name 'ServiceLoader' (JLObject, JLIterable)
  public
    procedure reload(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    class function load(para1: JLClass; para2: JLClassLoader): JUServiceLoader; static; overload;
    class function load(para1: JLClass): JUServiceLoader; static; overload;
    class function loadInstalled(para1: JLClass): JUServiceLoader; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  ADCursorJoiner = class sealed external 'android.database' name 'CursorJoiner' (JLObject, JUIterator, JLIterable)
  public
    type
      InnerResult = class;
      Arr1InnerResult = array of InnerResult;
      Arr2InnerResult = array of Arr1InnerResult;
      Arr3InnerResult = array of Arr2InnerResult;
      InnerResult = class sealed external 'android.database' name 'Result' (JLEnum)
      public
        final class var
          fBOTH: ADCursorJoiner.InnerResult; external name 'BOTH';
          fLEFT: ADCursorJoiner.InnerResult; external name 'LEFT';
          fRIGHT: ADCursorJoiner.InnerResult; external name 'RIGHT';
      public
        class function values(): ADCursorJoiner.Arr1InnerResult; static; overload;
        class function valueOf(para1: JLString): ADCursorJoiner.InnerResult; static; overload;
      end;

  public
    constructor create(para1: ADCursor; para2: Arr1JLString; para3: ADCursor; para4: Arr1JLString); overload;
    constructor create(para1: ADCursor; const para2: array of JLString; para3: ADCursor; const para4: array of JLString); overload;
    function iterator(): JUIterator; overload; virtual;
    function hasNext(): jboolean; overload; virtual;
    function next(): ADCursorJoiner.InnerResult; overload; virtual;
    procedure remove(); overload; virtual;
    function next(): JLObject; overload; virtual;
  end;

  AGInterpolator = class external 'android.graphics' name 'Interpolator' (JLObject)
  public
    type
      InnerResult = class;
      Arr1InnerResult = array of InnerResult;
      Arr2InnerResult = array of Arr1InnerResult;
      Arr3InnerResult = array of Arr2InnerResult;
      InnerResult = class sealed external 'android.graphics' name 'Result' (JLEnum)
      public
        final class var
          fFREEZE_END: AGInterpolator.InnerResult; external name 'FREEZE_END';
          fFREEZE_START: AGInterpolator.InnerResult; external name 'FREEZE_START';
          fNORMAL: AGInterpolator.InnerResult; external name 'NORMAL';
      public
        class function values(): AGInterpolator.Arr1InnerResult; static; overload;
        class function valueOf(para1: JLString): AGInterpolator.InnerResult; static; overload;
      end;

  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    procedure reset(para1: jint); overload; virtual;
    procedure reset(para1: jint; para2: jint); overload; virtual;
    function getKeyFrameCount(): jint; overload; virtual; final;
    function getValueCount(): jint; overload; virtual; final;
    procedure setKeyFrame(para1: jint; para2: jint; para3: Arr1jfloat); overload; virtual;
    procedure setKeyFrame(para1: jint; para2: jint; var para3: array of jfloat); overload; virtual;
    procedure setKeyFrame(para1: jint; para2: jint; para3: Arr1jfloat; para4: Arr1jfloat); overload; virtual;
    procedure setKeyFrame(para1: jint; para2: jint; var para3: array of jfloat; var para4: array of jfloat); overload; virtual;
    procedure setRepeatMirror(para1: jfloat; para2: jboolean); overload; virtual;
    function timeToValues(para1: Arr1jfloat): AGInterpolator.InnerResult; overload; virtual;
    function timeToValues(var para1: array of jfloat): AGInterpolator.InnerResult; overload; virtual;
    function timeToValues(para1: jint; para2: Arr1jfloat): AGInterpolator.InnerResult; overload; virtual;
    function timeToValues(para1: jint; var para2: array of jfloat): AGInterpolator.InnerResult; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGMatrix = class external 'android.graphics' name 'Matrix' (JLObject)
  public
    type
      InnerScaleToFit = class;
      Arr1InnerScaleToFit = array of InnerScaleToFit;
      Arr2InnerScaleToFit = array of Arr1InnerScaleToFit;
      Arr3InnerScaleToFit = array of Arr2InnerScaleToFit;
      InnerScaleToFit = class sealed external 'android.graphics' name 'ScaleToFit' (JLEnum)
      public
        final class var
          fCENTER: AGMatrix.InnerScaleToFit; external name 'CENTER';
          fEND: AGMatrix.InnerScaleToFit; external name 'END';
          fFILL: AGMatrix.InnerScaleToFit; external name 'FILL';
          fSTART: AGMatrix.InnerScaleToFit; external name 'START';
      public
        class function values(): AGMatrix.Arr1InnerScaleToFit; static; overload;
        class function valueOf(para1: JLString): AGMatrix.InnerScaleToFit; static; overload;
      end;

  public
    const
      MSCALE_X = 0;
      MSKEW_X = 1;
      MTRANS_X = 2;
      MSKEW_Y = 3;
      MSCALE_Y = 4;
      MTRANS_Y = 5;
      MPERSP_0 = 6;
      MPERSP_1 = 7;
      MPERSP_2 = 8;
  public
    constructor create(); overload;
    constructor create(para1: AGMatrix); overload;
    function isIdentity(): jboolean; overload; virtual;
    function rectStaysRect(): jboolean; overload; virtual;
    procedure &set(para1: AGMatrix); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    procedure reset(); overload; virtual;
    procedure setTranslate(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setScale(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure setScale(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setRotate(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual;
    procedure setRotate(para1: jfloat); overload; virtual;
    procedure setSinCos(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure setSinCos(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setSkew(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure setSkew(para1: jfloat; para2: jfloat); overload; virtual;
    function setConcat(para1: AGMatrix; para2: AGMatrix): jboolean; overload; virtual;
    function preTranslate(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function preScale(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function preScale(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function preRotate(para1: jfloat; para2: jfloat; para3: jfloat): jboolean; overload; virtual;
    function preRotate(para1: jfloat): jboolean; overload; virtual;
    function preSkew(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function preSkew(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function preConcat(para1: AGMatrix): jboolean; overload; virtual;
    function postTranslate(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function postScale(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function postScale(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function postRotate(para1: jfloat; para2: jfloat; para3: jfloat): jboolean; overload; virtual;
    function postRotate(para1: jfloat): jboolean; overload; virtual;
    function postSkew(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function postSkew(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function postConcat(para1: AGMatrix): jboolean; overload; virtual;
    function setRectToRect(para1: AGRectF; para2: AGRectF; para3: AGMatrix.InnerScaleToFit): jboolean; overload; virtual;
    function setPolyToPoly(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jint): jboolean; overload; virtual;
    function setPolyToPoly(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jint): jboolean; overload; virtual;
    function invert(para1: AGMatrix): jboolean; overload; virtual;
    procedure mapPoints(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jint); overload; virtual;
    procedure mapPoints(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jint); overload; virtual;
    procedure mapVectors(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jint); overload; virtual;
    procedure mapVectors(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jint); overload; virtual;
    procedure mapPoints(para1: Arr1jfloat; para2: Arr1jfloat); overload; virtual;
    procedure mapPoints(var para1: array of jfloat; var para2: array of jfloat); overload; virtual;
    procedure mapVectors(para1: Arr1jfloat; para2: Arr1jfloat); overload; virtual;
    procedure mapVectors(var para1: array of jfloat; var para2: array of jfloat); overload; virtual;
    procedure mapPoints(para1: Arr1jfloat); overload; virtual;
    procedure mapPoints(var para1: array of jfloat); overload; virtual;
    procedure mapVectors(para1: Arr1jfloat); overload; virtual;
    procedure mapVectors(var para1: array of jfloat); overload; virtual;
    function mapRect(para1: AGRectF; para2: AGRectF): jboolean; overload; virtual;
    function mapRect(para1: AGRectF): jboolean; overload; virtual;
    function mapRadius(para1: jfloat): jfloat; overload; virtual;
    procedure getValues(para1: Arr1jfloat); overload; virtual;
    procedure getValues(var para1: array of jfloat); overload; virtual;
    procedure setValues(para1: Arr1jfloat); overload; virtual;
    procedure setValues(var para1: array of jfloat); overload; virtual;
    function toString(): JLString; overload; virtual;
    function toShortString(): JLString; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGPaint = class external 'android.graphics' name 'Paint' (JLObject)
  public
    type
      InnerFontMetricsInt = class;
      Arr1InnerFontMetricsInt = array of InnerFontMetricsInt;
      Arr2InnerFontMetricsInt = array of Arr1InnerFontMetricsInt;
      Arr3InnerFontMetricsInt = array of Arr2InnerFontMetricsInt;
      InnerFontMetrics = class;
      Arr1InnerFontMetrics = array of InnerFontMetrics;
      Arr2InnerFontMetrics = array of Arr1InnerFontMetrics;
      Arr3InnerFontMetrics = array of Arr2InnerFontMetrics;
      InnerAlign = class;
      Arr1InnerAlign = array of InnerAlign;
      Arr2InnerAlign = array of Arr1InnerAlign;
      Arr3InnerAlign = array of Arr2InnerAlign;
      InnerJoin = class;
      Arr1InnerJoin = array of InnerJoin;
      Arr2InnerJoin = array of Arr1InnerJoin;
      Arr3InnerJoin = array of Arr2InnerJoin;
      InnerCap = class;
      Arr1InnerCap = array of InnerCap;
      Arr2InnerCap = array of Arr1InnerCap;
      Arr3InnerCap = array of Arr2InnerCap;
      InnerStyle = class;
      Arr1InnerStyle = array of InnerStyle;
      Arr2InnerStyle = array of Arr1InnerStyle;
      Arr3InnerStyle = array of Arr2InnerStyle;
      InnerFontMetricsInt = class external 'android.graphics' name 'FontMetricsInt' (JLObject)
      public
        var
          ftop: jint; external name 'top';
          fascent: jint; external name 'ascent';
          fdescent: jint; external name 'descent';
          fbottom: jint; external name 'bottom';
          fleading: jint; external name 'leading';
      public
        constructor create(); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerFontMetrics = class external 'android.graphics' name 'FontMetrics' (JLObject)
      public
        var
          ftop: jfloat; external name 'top';
          fascent: jfloat; external name 'ascent';
          fdescent: jfloat; external name 'descent';
          fbottom: jfloat; external name 'bottom';
          fleading: jfloat; external name 'leading';
      public
        constructor create(); overload;
      end;

      InnerAlign = class sealed external 'android.graphics' name 'Align' (JLEnum)
      public
        final class var
          fCENTER: AGPaint.InnerAlign; external name 'CENTER';
          fLEFT: AGPaint.InnerAlign; external name 'LEFT';
          fRIGHT: AGPaint.InnerAlign; external name 'RIGHT';
      public
        class function values(): AGPaint.Arr1InnerAlign; static; overload;
        class function valueOf(para1: JLString): AGPaint.InnerAlign; static; overload;
      end;

      InnerJoin = class sealed external 'android.graphics' name 'Join' (JLEnum)
      public
        final class var
          fBEVEL: AGPaint.InnerJoin; external name 'BEVEL';
          fMITER: AGPaint.InnerJoin; external name 'MITER';
          fROUND: AGPaint.InnerJoin; external name 'ROUND';
      public
        class function values(): AGPaint.Arr1InnerJoin; static; overload;
        class function valueOf(para1: JLString): AGPaint.InnerJoin; static; overload;
      end;

      InnerCap = class sealed external 'android.graphics' name 'Cap' (JLEnum)
      public
        final class var
          fBUTT: AGPaint.InnerCap; external name 'BUTT';
          fROUND: AGPaint.InnerCap; external name 'ROUND';
          fSQUARE: AGPaint.InnerCap; external name 'SQUARE';
      public
        class function values(): AGPaint.Arr1InnerCap; static; overload;
        class function valueOf(para1: JLString): AGPaint.InnerCap; static; overload;
      end;

      InnerStyle = class sealed external 'android.graphics' name 'Style' (JLEnum)
      public
        final class var
          fFILL: AGPaint.InnerStyle; external name 'FILL';
          fFILL_AND_STROKE: AGPaint.InnerStyle; external name 'FILL_AND_STROKE';
          fSTROKE: AGPaint.InnerStyle; external name 'STROKE';
      public
        class function values(): AGPaint.Arr1InnerStyle; static; overload;
        class function valueOf(para1: JLString): AGPaint.InnerStyle; static; overload;
      end;

  public
    const
      ANTI_ALIAS_FLAG = 1;
      FILTER_BITMAP_FLAG = 2;
      DITHER_FLAG = 4;
      UNDERLINE_TEXT_FLAG = 8;
      STRIKE_THRU_TEXT_FLAG = 16;
      FAKE_BOLD_TEXT_FLAG = 32;
      LINEAR_TEXT_FLAG = 64;
      SUBPIXEL_TEXT_FLAG = 128;
      DEV_KERN_TEXT_FLAG = 256;
      HINTING_OFF = 0;
      HINTING_ON = 1;
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: AGPaint); overload;
    procedure reset(); overload; virtual;
    procedure &set(para1: AGPaint); overload; virtual;
    function getFlags(): jint; overload; virtual;
    procedure setFlags(para1: jint); overload; virtual;
    function getHinting(): jint; overload; virtual;
    procedure setHinting(para1: jint); overload; virtual;
    function isAntiAlias(): jboolean; overload; virtual; final;
    procedure setAntiAlias(para1: jboolean); overload; virtual;
    function isDither(): jboolean; overload; virtual; final;
    procedure setDither(para1: jboolean); overload; virtual;
    function isLinearText(): jboolean; overload; virtual; final;
    procedure setLinearText(para1: jboolean); overload; virtual;
    function isSubpixelText(): jboolean; overload; virtual; final;
    procedure setSubpixelText(para1: jboolean); overload; virtual;
    function isUnderlineText(): jboolean; overload; virtual; final;
    procedure setUnderlineText(para1: jboolean); overload; virtual;
    function isStrikeThruText(): jboolean; overload; virtual; final;
    procedure setStrikeThruText(para1: jboolean); overload; virtual;
    function isFakeBoldText(): jboolean; overload; virtual; final;
    procedure setFakeBoldText(para1: jboolean); overload; virtual;
    function isFilterBitmap(): jboolean; overload; virtual; final;
    procedure setFilterBitmap(para1: jboolean); overload; virtual;
    function getStyle(): AGPaint.InnerStyle; overload; virtual;
    procedure setStyle(para1: AGPaint.InnerStyle); overload; virtual;
    function getColor(): jint; overload; virtual;
    procedure setColor(para1: jint); overload; virtual;
    function getAlpha(): jint; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setARGB(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getStrokeWidth(): jfloat; overload; virtual;
    procedure setStrokeWidth(para1: jfloat); overload; virtual;
    function getStrokeMiter(): jfloat; overload; virtual;
    procedure setStrokeMiter(para1: jfloat); overload; virtual;
    function getStrokeCap(): AGPaint.InnerCap; overload; virtual;
    procedure setStrokeCap(para1: AGPaint.InnerCap); overload; virtual;
    function getStrokeJoin(): AGPaint.InnerJoin; overload; virtual;
    procedure setStrokeJoin(para1: AGPaint.InnerJoin); overload; virtual;
    function getFillPath(para1: AGPath; para2: AGPath): jboolean; overload; virtual;
    function getShader(): AGShader; overload; virtual;
    function setShader(para1: AGShader): AGShader; overload; virtual;
    function getColorFilter(): AGColorFilter; overload; virtual;
    function setColorFilter(para1: AGColorFilter): AGColorFilter; overload; virtual;
    function getXfermode(): AGXfermode; overload; virtual;
    function setXfermode(para1: AGXfermode): AGXfermode; overload; virtual;
    function getPathEffect(): AGPathEffect; overload; virtual;
    function setPathEffect(para1: AGPathEffect): AGPathEffect; overload; virtual;
    function getMaskFilter(): AGMaskFilter; overload; virtual;
    function setMaskFilter(para1: AGMaskFilter): AGMaskFilter; overload; virtual;
    function getTypeface(): AGTypeface; overload; virtual;
    function setTypeface(para1: AGTypeface): AGTypeface; overload; virtual;
    function getRasterizer(): AGRasterizer; overload; virtual;
    function setRasterizer(para1: AGRasterizer): AGRasterizer; overload; virtual;
    procedure setShadowLayer(para1: jfloat; para2: jfloat; para3: jfloat; para4: jint); overload; virtual;
    procedure clearShadowLayer(); overload; virtual;
    function getTextAlign(): AGPaint.InnerAlign; overload; virtual;
    procedure setTextAlign(para1: AGPaint.InnerAlign); overload; virtual;
    function getTextSize(): jfloat; overload; virtual;
    procedure setTextSize(para1: jfloat); overload; virtual;
    function getTextScaleX(): jfloat; overload; virtual;
    procedure setTextScaleX(para1: jfloat); overload; virtual;
    function getTextSkewX(): jfloat; overload; virtual;
    procedure setTextSkewX(para1: jfloat); overload; virtual;
    function ascent(): jfloat; overload; virtual;
    function descent(): jfloat; overload; virtual;
    function getFontMetrics(para1: AGPaint.InnerFontMetrics): jfloat; overload; virtual;
    function getFontMetrics(): AGPaint.InnerFontMetrics; overload; virtual;
    function getFontMetricsInt(para1: AGPaint.InnerFontMetricsInt): jint; overload; virtual;
    function getFontMetricsInt(): AGPaint.InnerFontMetricsInt; overload; virtual;
    function getFontSpacing(): jfloat; overload; virtual;
    function measureText(para1: Arr1jchar; para2: jint; para3: jint): jfloat; overload; virtual;
    function measureText(var para1: array of jchar; para2: jint; para3: jint): jfloat; overload; virtual;
    function measureText(para1: JLString; para2: jint; para3: jint): jfloat; overload; virtual;
    function measureText(para1: JLString): jfloat; overload; virtual;
    function measureText(para1: JLCharSequence; para2: jint; para3: jint): jfloat; overload; virtual;
    function breakText(para1: Arr1jchar; para2: jint; para3: jint; para4: jfloat; para5: Arr1jfloat): jint; overload; virtual;
    function breakText(var para1: array of jchar; para2: jint; para3: jint; para4: jfloat; var para5: array of jfloat): jint; overload; virtual;
    function breakText(para1: JLCharSequence; para2: jint; para3: jint; para4: jboolean; para5: jfloat; para6: Arr1jfloat): jint; overload; virtual;
    function breakText(para1: JLCharSequence; para2: jint; para3: jint; para4: jboolean; para5: jfloat; var para6: array of jfloat): jint; overload; virtual;
    function breakText(para1: JLString; para2: jboolean; para3: jfloat; para4: Arr1jfloat): jint; overload; virtual;
    function breakText(para1: JLString; para2: jboolean; para3: jfloat; var para4: array of jfloat): jint; overload; virtual;
    function getTextWidths(para1: Arr1jchar; para2: jint; para3: jint; para4: Arr1jfloat): jint; overload; virtual;
    function getTextWidths(var para1: array of jchar; para2: jint; para3: jint; var para4: array of jfloat): jint; overload; virtual;
    function getTextWidths(para1: JLCharSequence; para2: jint; para3: jint; para4: Arr1jfloat): jint; overload; virtual;
    function getTextWidths(para1: JLCharSequence; para2: jint; para3: jint; var para4: array of jfloat): jint; overload; virtual;
    function getTextWidths(para1: JLString; para2: jint; para3: jint; para4: Arr1jfloat): jint; overload; virtual;
    function getTextWidths(para1: JLString; para2: jint; para3: jint; var para4: array of jfloat): jint; overload; virtual;
    function getTextWidths(para1: JLString; para2: Arr1jfloat): jint; overload; virtual;
    function getTextWidths(para1: JLString; var para2: array of jfloat): jint; overload; virtual;
    procedure getTextPath(para1: Arr1jchar; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPath); overload; virtual;
    procedure getTextPath(var para1: array of jchar; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPath); overload; virtual;
    procedure getTextPath(para1: JLString; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPath); overload; virtual;
    procedure getTextBounds(para1: JLString; para2: jint; para3: jint; para4: AGRect); overload; virtual;
    procedure getTextBounds(para1: Arr1jchar; para2: jint; para3: jint; para4: AGRect); overload; virtual;
    procedure getTextBounds(var para1: array of jchar; para2: jint; para3: jint; para4: AGRect); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGPath = class external 'android.graphics' name 'Path' (JLObject)
  public
    type
      InnerDirection = class;
      Arr1InnerDirection = array of InnerDirection;
      Arr2InnerDirection = array of Arr1InnerDirection;
      Arr3InnerDirection = array of Arr2InnerDirection;
      InnerFillType = class;
      Arr1InnerFillType = array of InnerFillType;
      Arr2InnerFillType = array of Arr1InnerFillType;
      Arr3InnerFillType = array of Arr2InnerFillType;
      InnerDirection = class sealed external 'android.graphics' name 'Direction' (JLEnum)
      public
        final class var
          fCCW: AGPath.InnerDirection; external name 'CCW';
          fCW: AGPath.InnerDirection; external name 'CW';
      public
        class function values(): AGPath.Arr1InnerDirection; static; overload;
        class function valueOf(para1: JLString): AGPath.InnerDirection; static; overload;
      end;

      InnerFillType = class sealed external 'android.graphics' name 'FillType' (JLEnum)
      public
        final class var
          fEVEN_ODD: AGPath.InnerFillType; external name 'EVEN_ODD';
          fINVERSE_EVEN_ODD: AGPath.InnerFillType; external name 'INVERSE_EVEN_ODD';
          fINVERSE_WINDING: AGPath.InnerFillType; external name 'INVERSE_WINDING';
          fWINDING: AGPath.InnerFillType; external name 'WINDING';
      public
        class function values(): AGPath.Arr1InnerFillType; static; overload;
        class function valueOf(para1: JLString): AGPath.InnerFillType; static; overload;
      end;

  public
    constructor create(); overload;
    constructor create(para1: AGPath); overload;
    procedure reset(); overload; virtual;
    procedure rewind(); overload; virtual;
    procedure &set(para1: AGPath); overload; virtual;
    function getFillType(): AGPath.InnerFillType; overload; virtual;
    procedure setFillType(para1: AGPath.InnerFillType); overload; virtual;
    function isInverseFillType(): jboolean; overload; virtual;
    procedure toggleInverseFillType(); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function isRect(para1: AGRectF): jboolean; overload; virtual;
    procedure computeBounds(para1: AGRectF; para2: jboolean); overload; virtual;
    procedure incReserve(para1: jint); overload; virtual;
    procedure moveTo(para1: jfloat; para2: jfloat); overload; virtual;
    procedure rMoveTo(para1: jfloat; para2: jfloat); overload; virtual;
    procedure lineTo(para1: jfloat; para2: jfloat); overload; virtual;
    procedure rLineTo(para1: jfloat; para2: jfloat); overload; virtual;
    procedure quadTo(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure rQuadTo(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure cubicTo(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual;
    procedure rCubicTo(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual;
    procedure arcTo(para1: AGRectF; para2: jfloat; para3: jfloat; para4: jboolean); overload; virtual;
    procedure arcTo(para1: AGRectF; para2: jfloat; para3: jfloat); overload; virtual;
    procedure close(); overload; virtual;
    procedure addRect(para1: AGRectF; para2: AGPath.InnerDirection); overload; virtual;
    procedure addRect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: AGPath.InnerDirection); overload; virtual;
    procedure addOval(para1: AGRectF; para2: AGPath.InnerDirection); overload; virtual;
    procedure addCircle(para1: jfloat; para2: jfloat; para3: jfloat; para4: AGPath.InnerDirection); overload; virtual;
    procedure addArc(para1: AGRectF; para2: jfloat; para3: jfloat); overload; virtual;
    procedure addRoundRect(para1: AGRectF; para2: jfloat; para3: jfloat; para4: AGPath.InnerDirection); overload; virtual;
    procedure addRoundRect(para1: AGRectF; para2: Arr1jfloat; para3: AGPath.InnerDirection); overload; virtual;
    procedure addRoundRect(para1: AGRectF; var para2: array of jfloat; para3: AGPath.InnerDirection); overload; virtual;
    procedure addPath(para1: AGPath; para2: jfloat; para3: jfloat); overload; virtual;
    procedure addPath(para1: AGPath); overload; virtual;
    procedure addPath(para1: AGPath; para2: AGMatrix); overload; virtual;
    procedure offset(para1: jfloat; para2: jfloat; para3: AGPath); overload; virtual;
    procedure offset(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setLastPoint(para1: jfloat; para2: jfloat); overload; virtual;
    procedure transform(para1: AGMatrix; para2: AGPath); overload; virtual;
    procedure transform(para1: AGMatrix); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGPorterDuff = class external 'android.graphics' name 'PorterDuff' (JLObject)
  public
    type
      InnerMode = class;
      Arr1InnerMode = array of InnerMode;
      Arr2InnerMode = array of Arr1InnerMode;
      Arr3InnerMode = array of Arr2InnerMode;
      InnerMode = class sealed external 'android.graphics' name 'Mode' (JLEnum)
      public
        final class var
          fADD: AGPorterDuff.InnerMode; external name 'ADD';
          fCLEAR: AGPorterDuff.InnerMode; external name 'CLEAR';
          fDARKEN: AGPorterDuff.InnerMode; external name 'DARKEN';
          fDST: AGPorterDuff.InnerMode; external name 'DST';
          fDST_ATOP: AGPorterDuff.InnerMode; external name 'DST_ATOP';
          fDST_IN: AGPorterDuff.InnerMode; external name 'DST_IN';
          fDST_OUT: AGPorterDuff.InnerMode; external name 'DST_OUT';
          fDST_OVER: AGPorterDuff.InnerMode; external name 'DST_OVER';
          fLIGHTEN: AGPorterDuff.InnerMode; external name 'LIGHTEN';
          fMULTIPLY: AGPorterDuff.InnerMode; external name 'MULTIPLY';
          fOVERLAY: AGPorterDuff.InnerMode; external name 'OVERLAY';
          fSCREEN: AGPorterDuff.InnerMode; external name 'SCREEN';
          fSRC: AGPorterDuff.InnerMode; external name 'SRC';
          fSRC_ATOP: AGPorterDuff.InnerMode; external name 'SRC_ATOP';
          fSRC_IN: AGPorterDuff.InnerMode; external name 'SRC_IN';
          fSRC_OUT: AGPorterDuff.InnerMode; external name 'SRC_OUT';
          fSRC_OVER: AGPorterDuff.InnerMode; external name 'SRC_OVER';
          fXOR: AGPorterDuff.InnerMode; external name 'XOR';
      public
        class function values(): AGPorterDuff.Arr1InnerMode; static; overload;
        class function valueOf(para1: JLString): AGPorterDuff.InnerMode; static; overload;
      end;

  public
    constructor create(); overload;
  end;

  AGShader = class external 'android.graphics' name 'Shader' (JLObject)
  public
    type
      InnerTileMode = class;
      Arr1InnerTileMode = array of InnerTileMode;
      Arr2InnerTileMode = array of Arr1InnerTileMode;
      Arr3InnerTileMode = array of Arr2InnerTileMode;
      InnerTileMode = class sealed external 'android.graphics' name 'TileMode' (JLEnum)
      public
        final class var
          fCLAMP: AGShader.InnerTileMode; external name 'CLAMP';
          fMIRROR: AGShader.InnerTileMode; external name 'MIRROR';
          fREPEAT: AGShader.InnerTileMode; external name 'REPEAT';
      public
        class function values(): AGShader.Arr1InnerTileMode; static; overload;
        class function valueOf(para1: JLString): AGShader.InnerTileMode; static; overload;
      end;

  public
    constructor create(); overload;
    function getLocalMatrix(para1: AGMatrix): jboolean; overload; virtual;
    procedure setLocalMatrix(para1: AGMatrix); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  ANLocalSocketAddress = class external 'android.net' name 'LocalSocketAddress' (JLObject)
  public
    type
      InnerNamespace = class;
      Arr1InnerNamespace = array of InnerNamespace;
      Arr2InnerNamespace = array of Arr1InnerNamespace;
      Arr3InnerNamespace = array of Arr2InnerNamespace;
      InnerNamespace = class sealed external 'android.net' name 'Namespace' (JLEnum)
      public
        final class var
          fABSTRACT: ANLocalSocketAddress.InnerNamespace; external name 'ABSTRACT';
          fFILESYSTEM: ANLocalSocketAddress.InnerNamespace; external name 'FILESYSTEM';
          fRESERVED: ANLocalSocketAddress.InnerNamespace; external name 'RESERVED';
      public
        class function values(): ANLocalSocketAddress.Arr1InnerNamespace; static; overload;
        class function valueOf(para1: JLString): ANLocalSocketAddress.InnerNamespace; static; overload;
      end;

  public
    constructor create(para1: JLString; para2: ANLocalSocketAddress.InnerNamespace); overload;
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getNamespace(): ANLocalSocketAddress.InnerNamespace; overload; virtual;
  end;

  AOAsyncTask = class abstract external 'android.os' name 'AsyncTask' (JLObject)
  public
    type
      InnerStatus = class;
      Arr1InnerStatus = array of InnerStatus;
      Arr2InnerStatus = array of Arr1InnerStatus;
      Arr3InnerStatus = array of Arr2InnerStatus;
      InnerStatus = class sealed external 'android.os' name 'Status' (JLEnum)
      public
        final class var
          fFINISHED: AOAsyncTask.InnerStatus; external name 'FINISHED';
          fPENDING: AOAsyncTask.InnerStatus; external name 'PENDING';
          fRUNNING: AOAsyncTask.InnerStatus; external name 'RUNNING';
      public
        class function values(): AOAsyncTask.Arr1InnerStatus; static; overload;
        class function valueOf(para1: JLString): AOAsyncTask.InnerStatus; static; overload;
      end;

  public
    final class var
      fTHREAD_POOL_EXECUTOR: JUCExecutor; external name 'THREAD_POOL_EXECUTOR';
      fSERIAL_EXECUTOR: JUCExecutor; external name 'SERIAL_EXECUTOR';
  public
    constructor create(); overload;
    function getStatus(): AOAsyncTask.InnerStatus; overload; virtual; final;
  strict protected
    function doInBackground(para1: Arr1JLObject): JLObject; overload; virtual; abstract;
    function doInBackground(const para1: array of JLObject): JLObject; overload; virtual; abstract;
    procedure onPreExecute(); overload; virtual;
    procedure onPostExecute(para1: JLObject); overload; virtual;
    procedure onProgressUpdate(para1: Arr1JLObject); overload; virtual;
    procedure onProgressUpdate(const para1: array of JLObject); overload; virtual;
    procedure onCancelled(para1: JLObject); overload; virtual;
    procedure onCancelled(); overload; virtual;
  public
    function isCancelled(): jboolean; overload; virtual; final;
    function cancel(para1: jboolean): jboolean; overload; virtual; final;
    function get(): JLObject; overload; virtual; final;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function get(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual; final;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
    function execute(para1: Arr1JLObject): AOAsyncTask; overload; virtual; final;
    function execute(const para1: array of JLObject): AOAsyncTask; overload; virtual; final;
    function executeOnExecutor(para1: JUCExecutor; para2: Arr1JLObject): AOAsyncTask; overload; virtual; final;
    function executeOnExecutor(para1: JUCExecutor; const para2: array of JLObject): AOAsyncTask; overload; virtual; final;
    class procedure execute(para1: JLRunnable); static; overload;
  strict protected
    procedure publishProgress(para1: Arr1JLObject); overload; virtual; final;
    procedure publishProgress(const para1: array of JLObject); overload; virtual; final;
  end;

  ATSmsMessage = class external 'android.telephony' name 'SmsMessage' (JLObject)
  public
    type
      InnerSubmitPdu = class;
      Arr1InnerSubmitPdu = array of InnerSubmitPdu;
      Arr2InnerSubmitPdu = array of Arr1InnerSubmitPdu;
      Arr3InnerSubmitPdu = array of Arr2InnerSubmitPdu;
      InnerMessageClass = class;
      Arr1InnerMessageClass = array of InnerMessageClass;
      Arr2InnerMessageClass = array of Arr1InnerMessageClass;
      Arr3InnerMessageClass = array of Arr2InnerMessageClass;
      InnerSubmitPdu = class external 'android.telephony' name 'SubmitPdu' (JLObject)
      public
        var
          fencodedScAddress: Arr1jbyte; external name 'encodedScAddress';
          fencodedMessage: Arr1jbyte; external name 'encodedMessage';
      public
        function toString(): JLString; overload; virtual;
      end;

      InnerMessageClass = class sealed external 'android.telephony' name 'MessageClass' (JLEnum)
      public
        final class var
          fCLASS_0: ATSmsMessage.InnerMessageClass; external name 'CLASS_0';
          fCLASS_1: ATSmsMessage.InnerMessageClass; external name 'CLASS_1';
          fCLASS_2: ATSmsMessage.InnerMessageClass; external name 'CLASS_2';
          fCLASS_3: ATSmsMessage.InnerMessageClass; external name 'CLASS_3';
          fUNKNOWN: ATSmsMessage.InnerMessageClass; external name 'UNKNOWN';
      public
        class function values(): ATSmsMessage.Arr1InnerMessageClass; static; overload;
        class function valueOf(para1: JLString): ATSmsMessage.InnerMessageClass; static; overload;
      end;

  public
    const
      ENCODING_UNKNOWN = 0;
      ENCODING_7BIT = 1;
      ENCODING_8BIT = 2;
      ENCODING_16BIT = 3;
      MAX_USER_DATA_BYTES = 140;
      MAX_USER_DATA_BYTES_WITH_HEADER = 134;
      MAX_USER_DATA_SEPTETS = 160;
      MAX_USER_DATA_SEPTETS_WITH_HEADER = 153;
  public
    class function createFromPdu(para1: Arr1jbyte): ATSmsMessage; static; overload;
    class function createFromPdu(var para1: array of jbyte): ATSmsMessage; static; overload;
    class function getTPLayerLengthForPDU(para1: JLString): jint; static; overload;
    class function calculateLength(para1: JLCharSequence; para2: jboolean): Arr1jint; static; overload;
    class function calculateLength(para1: JLString; para2: jboolean): Arr1jint; static; overload;
    class function getSubmitPdu(para1: JLString; para2: JLString; para3: JLString; para4: jboolean): ATSmsMessage.InnerSubmitPdu; static; overload;
    class function getSubmitPdu(para1: JLString; para2: JLString; para3: jshort; para4: Arr1jbyte; para5: jboolean): ATSmsMessage.InnerSubmitPdu; static; overload;
    class function getSubmitPdu(para1: JLString; para2: JLString; para3: jshort; var para4: array of jbyte; para5: jboolean): ATSmsMessage.InnerSubmitPdu; static; overload;
    function getServiceCenterAddress(): JLString; overload; virtual;
    function getOriginatingAddress(): JLString; overload; virtual;
    function getDisplayOriginatingAddress(): JLString; overload; virtual;
    function getMessageBody(): JLString; overload; virtual;
    function getMessageClass(): ATSmsMessage.InnerMessageClass; overload; virtual;
    function getDisplayMessageBody(): JLString; overload; virtual;
    function getPseudoSubject(): JLString; overload; virtual;
    function getTimestampMillis(): jlong; overload; virtual;
    function isEmail(): jboolean; overload; virtual;
    function getEmailBody(): JLString; overload; virtual;
    function getEmailFrom(): JLString; overload; virtual;
    function getProtocolIdentifier(): jint; overload; virtual;
    function isReplace(): jboolean; overload; virtual;
    function isCphsMwiMessage(): jboolean; overload; virtual;
    function isMWIClearMessage(): jboolean; overload; virtual;
    function isMWISetMessage(): jboolean; overload; virtual;
    function isMwiDontStore(): jboolean; overload; virtual;
    function getUserData(): Arr1jbyte; overload; virtual;
    function getPdu(): Arr1jbyte; overload; virtual;
    function getStatusOnSim(): jint; overload; virtual;
    function getStatusOnIcc(): jint; overload; virtual;
    function getIndexOnSim(): jint; overload; virtual;
    function getIndexOnIcc(): jint; overload; virtual;
    function getStatus(): jint; overload; virtual;
    function isStatusReportMessage(): jboolean; overload; virtual;
    function isReplyPathPresent(): jboolean; overload; virtual;
  end;

  ATGSmsMessage = class external 'android.telephony.gsm' name 'SmsMessage' (JLObject)
  public
    type
      InnerSubmitPdu = class;
      Arr1InnerSubmitPdu = array of InnerSubmitPdu;
      Arr2InnerSubmitPdu = array of Arr1InnerSubmitPdu;
      Arr3InnerSubmitPdu = array of Arr2InnerSubmitPdu;
      InnerMessageClass = class;
      Arr1InnerMessageClass = array of InnerMessageClass;
      Arr2InnerMessageClass = array of Arr1InnerMessageClass;
      Arr3InnerMessageClass = array of Arr2InnerMessageClass;
      InnerSubmitPdu = class external 'android.telephony.gsm' name 'SubmitPdu' (JLObject)
      public
        var
          fencodedScAddress: Arr1jbyte; external name 'encodedScAddress';
          fencodedMessage: Arr1jbyte; external name 'encodedMessage';
      public
        constructor create(); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerMessageClass = class sealed external 'android.telephony.gsm' name 'MessageClass' (JLEnum)
      public
        final class var
          fCLASS_0: ATGSmsMessage.InnerMessageClass; external name 'CLASS_0';
          fCLASS_1: ATGSmsMessage.InnerMessageClass; external name 'CLASS_1';
          fCLASS_2: ATGSmsMessage.InnerMessageClass; external name 'CLASS_2';
          fCLASS_3: ATGSmsMessage.InnerMessageClass; external name 'CLASS_3';
          fUNKNOWN: ATGSmsMessage.InnerMessageClass; external name 'UNKNOWN';
      public
        class function values(): ATGSmsMessage.Arr1InnerMessageClass; static; overload;
        class function valueOf(para1: JLString): ATGSmsMessage.InnerMessageClass; static; overload;
      end;

  public
    const
      ENCODING_UNKNOWN = 0;
      ENCODING_7BIT = 1;
      ENCODING_8BIT = 2;
      ENCODING_16BIT = 3;
      MAX_USER_DATA_BYTES = 140;
      MAX_USER_DATA_SEPTETS = 160;
      MAX_USER_DATA_SEPTETS_WITH_HEADER = 153;
  public
    constructor create(); overload;
    class function createFromPdu(para1: Arr1jbyte): ATGSmsMessage; static; overload;
    class function createFromPdu(var para1: array of jbyte): ATGSmsMessage; static; overload;
    class function getTPLayerLengthForPDU(para1: JLString): jint; static; overload;
    class function calculateLength(para1: JLCharSequence; para2: jboolean): Arr1jint; static; overload;
    class function calculateLength(para1: JLString; para2: jboolean): Arr1jint; static; overload;
    class function getSubmitPdu(para1: JLString; para2: JLString; para3: JLString; para4: jboolean): ATGSmsMessage.InnerSubmitPdu; static; overload;
    class function getSubmitPdu(para1: JLString; para2: JLString; para3: jshort; para4: Arr1jbyte; para5: jboolean): ATGSmsMessage.InnerSubmitPdu; static; overload;
    class function getSubmitPdu(para1: JLString; para2: JLString; para3: jshort; var para4: array of jbyte; para5: jboolean): ATGSmsMessage.InnerSubmitPdu; static; overload;
    function getServiceCenterAddress(): JLString; overload; virtual;
    function getOriginatingAddress(): JLString; overload; virtual;
    function getDisplayOriginatingAddress(): JLString; overload; virtual;
    function getMessageBody(): JLString; overload; virtual;
    function getMessageClass(): ATGSmsMessage.InnerMessageClass; overload; virtual;
    function getDisplayMessageBody(): JLString; overload; virtual;
    function getPseudoSubject(): JLString; overload; virtual;
    function getTimestampMillis(): jlong; overload; virtual;
    function isEmail(): jboolean; overload; virtual;
    function getEmailBody(): JLString; overload; virtual;
    function getEmailFrom(): JLString; overload; virtual;
    function getProtocolIdentifier(): jint; overload; virtual;
    function isReplace(): jboolean; overload; virtual;
    function isCphsMwiMessage(): jboolean; overload; virtual;
    function isMWIClearMessage(): jboolean; overload; virtual;
    function isMWISetMessage(): jboolean; overload; virtual;
    function isMwiDontStore(): jboolean; overload; virtual;
    function getUserData(): Arr1jbyte; overload; virtual;
    function getPdu(): Arr1jbyte; overload; virtual;
    function getStatusOnSim(): jint; overload; virtual;
    function getIndexOnSim(): jint; overload; virtual;
    function getStatus(): jint; overload; virtual;
    function isStatusReportMessage(): jboolean; overload; virtual;
    function isReplyPathPresent(): jboolean; overload; virtual;
  end;

  ATLayout = class abstract external 'android.text' name 'Layout' (JLObject)
  public
    type
      InnerAlignment = class;
      Arr1InnerAlignment = array of InnerAlignment;
      Arr2InnerAlignment = array of Arr1InnerAlignment;
      Arr3InnerAlignment = array of Arr2InnerAlignment;
      InnerDirections = class;
      Arr1InnerDirections = array of InnerDirections;
      Arr2InnerDirections = array of Arr1InnerDirections;
      Arr3InnerDirections = array of Arr2InnerDirections;
      InnerAlignment = class sealed external 'android.text' name 'Alignment' (JLEnum)
      public
        final class var
          fALIGN_CENTER: ATLayout.InnerAlignment; external name 'ALIGN_CENTER';
          fALIGN_NORMAL: ATLayout.InnerAlignment; external name 'ALIGN_NORMAL';
          fALIGN_OPPOSITE: ATLayout.InnerAlignment; external name 'ALIGN_OPPOSITE';
      public
        class function values(): ATLayout.Arr1InnerAlignment; static; overload;
        class function valueOf(para1: JLString): ATLayout.InnerAlignment; static; overload;
      end;

      InnerDirections = class external 'android.text' name 'Directions' (JLObject)
      end;

  public
    const
      DIR_LEFT_TO_RIGHT = 1;
      DIR_RIGHT_TO_LEFT = -1;
  strict protected
    constructor create(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat); overload;
  public
    class function getDesiredWidth(para1: JLCharSequence; para2: ATTextPaint): jfloat; static; overload;
    class function getDesiredWidth(para1: JLCharSequence; para2: jint; para3: jint; para4: ATTextPaint): jfloat; static; overload;
    procedure draw(para1: AGCanvas); overload; virtual;
    procedure draw(para1: AGCanvas; para2: AGPath; para3: AGPaint; para4: jint); overload; virtual;
    function getText(): JLCharSequence; overload; virtual; final;
    function getPaint(): ATTextPaint; overload; virtual; final;
    function getWidth(): jint; overload; virtual; final;
    function getEllipsizedWidth(): jint; overload; virtual;
    procedure increaseWidthTo(para1: jint); overload; virtual; final;
    function getHeight(): jint; overload; virtual;
    function getAlignment(): ATLayout.InnerAlignment; overload; virtual; final;
    function getSpacingMultiplier(): jfloat; overload; virtual; final;
    function getSpacingAdd(): jfloat; overload; virtual; final;
    function getLineCount(): jint; overload; virtual; abstract;
    function getLineBounds(para1: jint; para2: AGRect): jint; overload; virtual;
    function getLineTop(para1: jint): jint; overload; virtual; abstract;
    function getLineDescent(para1: jint): jint; overload; virtual; abstract;
    function getLineStart(para1: jint): jint; overload; virtual; abstract;
    function getParagraphDirection(para1: jint): jint; overload; virtual; abstract;
    function getLineContainsTab(para1: jint): jboolean; overload; virtual; abstract;
    function getLineDirections(para1: jint): ATLayout.InnerDirections; overload; virtual; abstract;
    function getTopPadding(): jint; overload; virtual; abstract;
    function getBottomPadding(): jint; overload; virtual; abstract;
    function isRtlCharAt(para1: jint): jboolean; overload; virtual;
    function getPrimaryHorizontal(para1: jint): jfloat; overload; virtual;
    function getSecondaryHorizontal(para1: jint): jfloat; overload; virtual;
    function getLineLeft(para1: jint): jfloat; overload; virtual;
    function getLineRight(para1: jint): jfloat; overload; virtual;
    function getLineMax(para1: jint): jfloat; overload; virtual;
    function getLineWidth(para1: jint): jfloat; overload; virtual;
    function getLineForVertical(para1: jint): jint; overload; virtual;
    function getLineForOffset(para1: jint): jint; overload; virtual;
    function getOffsetForHorizontal(para1: jint; para2: jfloat): jint; overload; virtual;
    function getLineEnd(para1: jint): jint; overload; virtual; final;
    function getLineVisibleEnd(para1: jint): jint; overload; virtual;
    function getLineBottom(para1: jint): jint; overload; virtual; final;
    function getLineBaseline(para1: jint): jint; overload; virtual; final;
    function getLineAscent(para1: jint): jint; overload; virtual; final;
    function getOffsetToLeftOf(para1: jint): jint; overload; virtual;
    function getOffsetToRightOf(para1: jint): jint; overload; virtual;
    procedure getCursorPath(para1: jint; para2: AGPath; para3: JLCharSequence); overload; virtual;
    procedure getSelectionPath(para1: jint; para2: jint; para3: AGPath); overload; virtual;
    function getParagraphAlignment(para1: jint): ATLayout.InnerAlignment; overload; virtual; final;
    function getParagraphLeft(para1: jint): jint; overload; virtual; final;
    function getParagraphRight(para1: jint): jint; overload; virtual; final;
  strict protected
    function isSpanned(): jboolean; overload; virtual; final;
  public
    function getEllipsisStart(para1: jint): jint; overload; virtual; abstract;
    function getEllipsisCount(para1: jint): jint; overload; virtual; abstract;
  end;

  AUJsonToken = class sealed external 'android.util' name 'JsonToken' (JLEnum)
  public
    final class var
      fBEGIN_ARRAY: AUJsonToken; external name 'BEGIN_ARRAY';
      fBEGIN_OBJECT: AUJsonToken; external name 'BEGIN_OBJECT';
      fBOOLEAN: AUJsonToken; external name 'BOOLEAN';
      fEND_ARRAY: AUJsonToken; external name 'END_ARRAY';
      fEND_DOCUMENT: AUJsonToken; external name 'END_DOCUMENT';
      fEND_OBJECT: AUJsonToken; external name 'END_OBJECT';
      fNAME: AUJsonToken; external name 'NAME';
      fNULL: AUJsonToken; external name 'NULL';
      fNUMBER: AUJsonToken; external name 'NUMBER';
      fSTRING: AUJsonToken; external name 'STRING';
  public
    class function values(): Arr1AUJsonToken; static; overload;
    class function valueOf(para1: JLString): AUJsonToken; static; overload;
  end;

  AUXml = class external 'android.util' name 'Xml' (JLObject)
  public
    type
      InnerEncoding = class;
      Arr1InnerEncoding = array of InnerEncoding;
      Arr2InnerEncoding = array of Arr1InnerEncoding;
      Arr3InnerEncoding = array of Arr2InnerEncoding;
      InnerEncoding = class sealed external 'android.util' name 'Encoding' (JLEnum)
      public
        final class var
          fISO_8859_1: AUXml.InnerEncoding; external name 'ISO_8859_1';
          fUS_ASCII: AUXml.InnerEncoding; external name 'US_ASCII';
          fUTF_16: AUXml.InnerEncoding; external name 'UTF_16';
          fUTF_8: AUXml.InnerEncoding; external name 'UTF_8';
      public
        class function values(): AUXml.Arr1InnerEncoding; static; overload;
        class function valueOf(para1: JLString): AUXml.InnerEncoding; static; overload;
      end;

  public
    class var
      fFEATURE_RELAXED: JLString; external name 'FEATURE_RELAXED';
  public
    class procedure parse(para1: JLString; para2: OXSContentHandler); static; overload;  // throws org.xml.sax.SAXException
    class procedure parse(para1: JIReader; para2: OXSContentHandler); static; overload;  // throws java.io.IOException, org.xml.sax.SAXException
    class procedure parse(para1: JIInputStream; para2: AUXml.InnerEncoding; para3: OXSContentHandler); static; overload;  // throws java.io.IOException, org.xml.sax.SAXException
    class function newPullParser(): OXVXmlPullParser; static; overload;
    class function newSerializer(): OXVXmlSerializer; static; overload;
    class function findEncodingByName(para1: JLString): AUXml.InnerEncoding; static; overload;  // throws java.io.UnsupportedEncodingException
    class function asAttributeSet(para1: OXVXmlPullParser): AUAttributeSet; static; overload;
  end;

  AWConsoleMessage = class external 'android.webkit' name 'ConsoleMessage' (JLObject)
  public
    type
      InnerMessageLevel = class;
      Arr1InnerMessageLevel = array of InnerMessageLevel;
      Arr2InnerMessageLevel = array of Arr1InnerMessageLevel;
      Arr3InnerMessageLevel = array of Arr2InnerMessageLevel;
      InnerMessageLevel = class sealed external 'android.webkit' name 'MessageLevel' (JLEnum)
      public
        final class var
          fDEBUG: AWConsoleMessage.InnerMessageLevel; external name 'DEBUG';
          fERROR: AWConsoleMessage.InnerMessageLevel; external name 'ERROR';
          fLOG: AWConsoleMessage.InnerMessageLevel; external name 'LOG';
          fTIP: AWConsoleMessage.InnerMessageLevel; external name 'TIP';
          fWARNING: AWConsoleMessage.InnerMessageLevel; external name 'WARNING';
      public
        class function values(): AWConsoleMessage.Arr1InnerMessageLevel; static; overload;
        class function valueOf(para1: JLString): AWConsoleMessage.InnerMessageLevel; static; overload;
      end;

  public
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: AWConsoleMessage.InnerMessageLevel); overload;
    function messageLevel(): AWConsoleMessage.InnerMessageLevel; overload; virtual;
    function message(): JLString; overload; virtual;
    function sourceId(): JLString; overload; virtual;
    function lineNumber(): jint; overload; virtual;
  end;

  AWWebSettings = class external 'android.webkit' name 'WebSettings' (JLObject)
  public
    type
      InnerPluginState = class;
      Arr1InnerPluginState = array of InnerPluginState;
      Arr2InnerPluginState = array of Arr1InnerPluginState;
      Arr3InnerPluginState = array of Arr2InnerPluginState;
      InnerRenderPriority = class;
      Arr1InnerRenderPriority = array of InnerRenderPriority;
      Arr2InnerRenderPriority = array of Arr1InnerRenderPriority;
      Arr3InnerRenderPriority = array of Arr2InnerRenderPriority;
      InnerZoomDensity = class;
      Arr1InnerZoomDensity = array of InnerZoomDensity;
      Arr2InnerZoomDensity = array of Arr1InnerZoomDensity;
      Arr3InnerZoomDensity = array of Arr2InnerZoomDensity;
      InnerTextSize = class;
      Arr1InnerTextSize = array of InnerTextSize;
      Arr2InnerTextSize = array of Arr1InnerTextSize;
      Arr3InnerTextSize = array of Arr2InnerTextSize;
      InnerLayoutAlgorithm = class;
      Arr1InnerLayoutAlgorithm = array of InnerLayoutAlgorithm;
      Arr2InnerLayoutAlgorithm = array of Arr1InnerLayoutAlgorithm;
      Arr3InnerLayoutAlgorithm = array of Arr2InnerLayoutAlgorithm;
      InnerPluginState = class sealed external 'android.webkit' name 'PluginState' (JLEnum)
      public
        final class var
          fOFF: AWWebSettings.InnerPluginState; external name 'OFF';
          fON: AWWebSettings.InnerPluginState; external name 'ON';
          fON_DEMAND: AWWebSettings.InnerPluginState; external name 'ON_DEMAND';
      public
        class function values(): AWWebSettings.Arr1InnerPluginState; static; overload;
        class function valueOf(para1: JLString): AWWebSettings.InnerPluginState; static; overload;
      end;

      InnerRenderPriority = class sealed external 'android.webkit' name 'RenderPriority' (JLEnum)
      public
        final class var
          fHIGH: AWWebSettings.InnerRenderPriority; external name 'HIGH';
          fLOW: AWWebSettings.InnerRenderPriority; external name 'LOW';
          fNORMAL: AWWebSettings.InnerRenderPriority; external name 'NORMAL';
      public
        class function values(): AWWebSettings.Arr1InnerRenderPriority; static; overload;
        class function valueOf(para1: JLString): AWWebSettings.InnerRenderPriority; static; overload;
      end;

      InnerZoomDensity = class sealed external 'android.webkit' name 'ZoomDensity' (JLEnum)
      public
        final class var
          fCLOSE: AWWebSettings.InnerZoomDensity; external name 'CLOSE';
          fFAR: AWWebSettings.InnerZoomDensity; external name 'FAR';
          fMEDIUM: AWWebSettings.InnerZoomDensity; external name 'MEDIUM';
      public
        class function values(): AWWebSettings.Arr1InnerZoomDensity; static; overload;
        class function valueOf(para1: JLString): AWWebSettings.InnerZoomDensity; static; overload;
      end;

      InnerTextSize = class sealed external 'android.webkit' name 'TextSize' (JLEnum)
      public
        final class var
          fLARGER: AWWebSettings.InnerTextSize; external name 'LARGER';
          fLARGEST: AWWebSettings.InnerTextSize; external name 'LARGEST';
          fNORMAL: AWWebSettings.InnerTextSize; external name 'NORMAL';
          fSMALLER: AWWebSettings.InnerTextSize; external name 'SMALLER';
          fSMALLEST: AWWebSettings.InnerTextSize; external name 'SMALLEST';
      public
        class function values(): AWWebSettings.Arr1InnerTextSize; static; overload;
        class function valueOf(para1: JLString): AWWebSettings.InnerTextSize; static; overload;
      end;

      InnerLayoutAlgorithm = class sealed external 'android.webkit' name 'LayoutAlgorithm' (JLEnum)
      public
        final class var
          fNARROW_COLUMNS: AWWebSettings.InnerLayoutAlgorithm; external name 'NARROW_COLUMNS';
          fNORMAL: AWWebSettings.InnerLayoutAlgorithm; external name 'NORMAL';
          fSINGLE_COLUMN: AWWebSettings.InnerLayoutAlgorithm; external name 'SINGLE_COLUMN';
      public
        class function values(): AWWebSettings.Arr1InnerLayoutAlgorithm; static; overload;
        class function valueOf(para1: JLString): AWWebSettings.InnerLayoutAlgorithm; static; overload;
      end;

  public
    const
      LOAD_DEFAULT = -1;
      LOAD_NORMAL = 0;
      LOAD_CACHE_ELSE_NETWORK = 1;
      LOAD_NO_CACHE = 2;
      LOAD_CACHE_ONLY = 3;
  public
    procedure setNavDump(para1: jboolean); overload; virtual;
    function getNavDump(): jboolean; overload; virtual;
    procedure setSupportZoom(para1: jboolean); overload; virtual;
    function supportZoom(): jboolean; overload; virtual;
    procedure setBuiltInZoomControls(para1: jboolean); overload; virtual;
    function getBuiltInZoomControls(): jboolean; overload; virtual;
    procedure setDisplayZoomControls(para1: jboolean); overload; virtual;
    function getDisplayZoomControls(): jboolean; overload; virtual;
    procedure setAllowFileAccess(para1: jboolean); overload; virtual;
    function getAllowFileAccess(): jboolean; overload; virtual;
    procedure setAllowContentAccess(para1: jboolean); overload; virtual;
    function getAllowContentAccess(): jboolean; overload; virtual;
    procedure setLoadWithOverviewMode(para1: jboolean); overload; virtual;
    function getLoadWithOverviewMode(): jboolean; overload; virtual;
    procedure setEnableSmoothTransition(para1: jboolean); overload; virtual;
    function enableSmoothTransition(): jboolean; overload; virtual;
    procedure setUseWebViewBackgroundForOverscrollBackground(para1: jboolean); overload; virtual;
    function getUseWebViewBackgroundForOverscrollBackground(): jboolean; overload; virtual;
    procedure setSaveFormData(para1: jboolean); overload; virtual;
    function getSaveFormData(): jboolean; overload; virtual;
    procedure setSavePassword(para1: jboolean); overload; virtual;
    function getSavePassword(): jboolean; overload; virtual;
    procedure setTextZoom(para1: jint); overload; virtual;
    function getTextZoom(): jint; overload; virtual;
    procedure setTextSize(para1: AWWebSettings.InnerTextSize); overload; virtual;
    function getTextSize(): AWWebSettings.InnerTextSize; overload; virtual;
    procedure setDefaultZoom(para1: AWWebSettings.InnerZoomDensity); overload; virtual;
    function getDefaultZoom(): AWWebSettings.InnerZoomDensity; overload; virtual;
    procedure setLightTouchEnabled(para1: jboolean); overload; virtual;
    function getLightTouchEnabled(): jboolean; overload; virtual;
    procedure setUseDoubleTree(para1: jboolean); overload; virtual;
    function getUseDoubleTree(): jboolean; overload; virtual;
    procedure setUserAgent(para1: jint); overload; virtual;
    function getUserAgent(): jint; overload; virtual;
    procedure setUseWideViewPort(para1: jboolean); overload; virtual;
    function getUseWideViewPort(): jboolean; overload; virtual;
    procedure setSupportMultipleWindows(para1: jboolean); overload; virtual;
    function supportMultipleWindows(): jboolean; overload; virtual;
    procedure setLayoutAlgorithm(para1: AWWebSettings.InnerLayoutAlgorithm); overload; virtual;
    function getLayoutAlgorithm(): AWWebSettings.InnerLayoutAlgorithm; overload; virtual;
    procedure setStandardFontFamily(para1: JLString); overload; virtual;
    function getStandardFontFamily(): JLString; overload; virtual;
    procedure setFixedFontFamily(para1: JLString); overload; virtual;
    function getFixedFontFamily(): JLString; overload; virtual;
    procedure setSansSerifFontFamily(para1: JLString); overload; virtual;
    function getSansSerifFontFamily(): JLString; overload; virtual;
    procedure setSerifFontFamily(para1: JLString); overload; virtual;
    function getSerifFontFamily(): JLString; overload; virtual;
    procedure setCursiveFontFamily(para1: JLString); overload; virtual;
    function getCursiveFontFamily(): JLString; overload; virtual;
    procedure setFantasyFontFamily(para1: JLString); overload; virtual;
    function getFantasyFontFamily(): JLString; overload; virtual;
    procedure setMinimumFontSize(para1: jint); overload; virtual;
    function getMinimumFontSize(): jint; overload; virtual;
    procedure setMinimumLogicalFontSize(para1: jint); overload; virtual;
    function getMinimumLogicalFontSize(): jint; overload; virtual;
    procedure setDefaultFontSize(para1: jint); overload; virtual;
    function getDefaultFontSize(): jint; overload; virtual;
    procedure setDefaultFixedFontSize(para1: jint); overload; virtual;
    function getDefaultFixedFontSize(): jint; overload; virtual;
    procedure setLoadsImagesAutomatically(para1: jboolean); overload; virtual;
    function getLoadsImagesAutomatically(): jboolean; overload; virtual;
    procedure setBlockNetworkImage(para1: jboolean); overload; virtual;
    function getBlockNetworkImage(): jboolean; overload; virtual;
    procedure setBlockNetworkLoads(para1: jboolean); overload; virtual;
    function getBlockNetworkLoads(): jboolean; overload; virtual;
    procedure setJavaScriptEnabled(para1: jboolean); overload; virtual;
    procedure setPluginsEnabled(para1: jboolean); overload; virtual;
    procedure setPluginState(para1: AWWebSettings.InnerPluginState); overload; virtual;
    procedure setPluginsPath(para1: JLString); overload; virtual;
    procedure setDatabasePath(para1: JLString); overload; virtual;
    procedure setGeolocationDatabasePath(para1: JLString); overload; virtual;
    procedure setAppCacheEnabled(para1: jboolean); overload; virtual;
    procedure setAppCachePath(para1: JLString); overload; virtual;
    procedure setAppCacheMaxSize(para1: jlong); overload; virtual;
    procedure setDatabaseEnabled(para1: jboolean); overload; virtual;
    procedure setDomStorageEnabled(para1: jboolean); overload; virtual;
    function getDomStorageEnabled(): jboolean; overload; virtual;
    function getDatabasePath(): JLString; overload; virtual;
    function getDatabaseEnabled(): jboolean; overload; virtual;
    procedure setGeolocationEnabled(para1: jboolean); overload; virtual;
    function getJavaScriptEnabled(): jboolean; overload; virtual;
    function getPluginsEnabled(): jboolean; overload; virtual;
    function getPluginState(): AWWebSettings.InnerPluginState; overload; virtual;
    function getPluginsPath(): JLString; overload; virtual;
    procedure setJavaScriptCanOpenWindowsAutomatically(para1: jboolean); overload; virtual;
    function getJavaScriptCanOpenWindowsAutomatically(): jboolean; overload; virtual;
    procedure setDefaultTextEncodingName(para1: JLString); overload; virtual;
    function getDefaultTextEncodingName(): JLString; overload; virtual;
    procedure setUserAgentString(para1: JLString); overload; virtual;
    function getUserAgentString(): JLString; overload; virtual;
    procedure setNeedInitialFocus(para1: jboolean); overload; virtual;
    procedure setRenderPriority(para1: AWWebSettings.InnerRenderPriority); overload; virtual;
    procedure setCacheMode(para1: jint); overload; virtual;
    function getCacheMode(): jint; overload; virtual;
  end;

  JLAElementType = class sealed external 'java.lang.annotation' name 'ElementType' (JLEnum)
  public
    final class var
      fANNOTATION_TYPE: JLAElementType; external name 'ANNOTATION_TYPE';
      fCONSTRUCTOR: JLAElementType; external name 'CONSTRUCTOR';
      fFIELD: JLAElementType; external name 'FIELD';
      fLOCAL_VARIABLE: JLAElementType; external name 'LOCAL_VARIABLE';
      fMETHOD: JLAElementType; external name 'METHOD';
      fPACKAGE: JLAElementType; external name 'PACKAGE';
      fPARAMETER: JLAElementType; external name 'PARAMETER';
      fTYPE: JLAElementType; external name 'TYPE';
  public
    class function values(): Arr1JLAElementType; static; overload;
    class function valueOf(para1: JLString): JLAElementType; static; overload;
  end;

  JLARetentionPolicy = class sealed external 'java.lang.annotation' name 'RetentionPolicy' (JLEnum)
  public
    final class var
      fCLASS: JLARetentionPolicy; external name 'CLASS';
      fRUNTIME: JLARetentionPolicy; external name 'RUNTIME';
      fSOURCE: JLARetentionPolicy; external name 'SOURCE';
  public
    class function values(): Arr1JLARetentionPolicy; static; overload;
    class function valueOf(para1: JLString): JLARetentionPolicy; static; overload;
  end;

  JMRoundingMode = class sealed external 'java.math' name 'RoundingMode' (JLEnum)
  public
    final class var
      fCEILING: JMRoundingMode; external name 'CEILING';
      fDOWN: JMRoundingMode; external name 'DOWN';
      fFLOOR: JMRoundingMode; external name 'FLOOR';
      fHALF_DOWN: JMRoundingMode; external name 'HALF_DOWN';
      fHALF_EVEN: JMRoundingMode; external name 'HALF_EVEN';
      fHALF_UP: JMRoundingMode; external name 'HALF_UP';
      fUNNECESSARY: JMRoundingMode; external name 'UNNECESSARY';
      fUP: JMRoundingMode; external name 'UP';
  public
    class function values(): Arr1JMRoundingMode; static; overload;
    class function valueOf(para1: JLString): JMRoundingMode; static; overload;
    class function valueOf(para1: jint): JMRoundingMode; static; overload;
  end;

  JNAuthenticator = class abstract external 'java.net' name 'Authenticator' (JLObject)
  public
    type
      InnerRequestorType = class;
      Arr1InnerRequestorType = array of InnerRequestorType;
      Arr2InnerRequestorType = array of Arr1InnerRequestorType;
      Arr3InnerRequestorType = array of Arr2InnerRequestorType;
      InnerRequestorType = class sealed external 'java.net' name 'RequestorType' (JLEnum)
      public
        final class var
          fPROXY: JNAuthenticator.InnerRequestorType; external name 'PROXY';
          fSERVER: JNAuthenticator.InnerRequestorType; external name 'SERVER';
      public
        class function values(): JNAuthenticator.Arr1InnerRequestorType; static; overload;
        class function valueOf(para1: JLString): JNAuthenticator.InnerRequestorType; static; overload;
      end;

  public
    constructor create(); overload;
  strict protected
    function getPasswordAuthentication(): JNPasswordAuthentication; overload; virtual;
    function getRequestingPort(): jint; overload; virtual; final;
    function getRequestingSite(): JNInetAddress; overload; virtual; final;
    function getRequestingPrompt(): JLString; overload; virtual; final;
    function getRequestingProtocol(): JLString; overload; virtual; final;
    function getRequestingScheme(): JLString; overload; virtual; final;
  public
    class function requestPasswordAuthentication(para1: JNInetAddress; para2: jint; para3: JLString; para4: JLString; para5: JLString): JNPasswordAuthentication; static; overload;
    class procedure setDefault(para1: JNAuthenticator); static; overload;
    class function requestPasswordAuthentication(para1: JLString; para2: JNInetAddress; para3: jint; para4: JLString; para5: JLString; para6: JLString): JNPasswordAuthentication; static; overload;
  strict protected
    function getRequestingHost(): JLString; overload; virtual; final;
  public
    class function requestPasswordAuthentication(para1: JLString; para2: JNInetAddress; para3: jint; para4: JLString; para5: JLString; para6: JLString; para7: JNURL; para8: JNAuthenticator.InnerRequestorType): JNPasswordAuthentication; static; overload;
  strict protected
    function getRequestingURL(): JNURL; overload; virtual;
    function getRequestorType(): JNAuthenticator.InnerRequestorType; overload; virtual;
  end;

  JNProxy = class external 'java.net' name 'Proxy' (JLObject)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class sealed external 'java.net' name 'Type' (JLEnum)
      public
        final class var
          fDIRECT: JNProxy.InnerType; external name 'DIRECT';
          fHTTP: JNProxy.InnerType; external name 'HTTP';
          fSOCKS: JNProxy.InnerType; external name 'SOCKS';
      public
        class function values(): JNProxy.Arr1InnerType; static; overload;
        class function valueOf(para1: JLString): JNProxy.InnerType; static; overload;
      end;

  public
    final class var
      fNO_PROXY: JNProxy; external name 'NO_PROXY';
  public
    constructor create(para1: JNProxy.InnerType; para2: JNSocketAddress); overload;
    function &type(): JNProxy.InnerType; overload; virtual;
    function address(): JNSocketAddress; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
  end;

  JSClientInfoStatus = class sealed external 'java.sql' name 'ClientInfoStatus' (JLEnum)
  public
    final class var
      fREASON_UNKNOWN: JSClientInfoStatus; external name 'REASON_UNKNOWN';
      fREASON_UNKNOWN_PROPERTY: JSClientInfoStatus; external name 'REASON_UNKNOWN_PROPERTY';
      fREASON_VALUE_INVALID: JSClientInfoStatus; external name 'REASON_VALUE_INVALID';
      fREASON_VALUE_TRUNCATED: JSClientInfoStatus; external name 'REASON_VALUE_TRUNCATED';
  public
    class function values(): Arr1JSClientInfoStatus; static; overload;
    class function valueOf(para1: JLString): JSClientInfoStatus; static; overload;
  end;

  JSRowIdLifetime = class sealed external 'java.sql' name 'RowIdLifetime' (JLEnum)
  public
    final class var
      fROWID_UNSUPPORTED: JSRowIdLifetime; external name 'ROWID_UNSUPPORTED';
      fROWID_VALID_FOREVER: JSRowIdLifetime; external name 'ROWID_VALID_FOREVER';
      fROWID_VALID_OTHER: JSRowIdLifetime; external name 'ROWID_VALID_OTHER';
      fROWID_VALID_SESSION: JSRowIdLifetime; external name 'ROWID_VALID_SESSION';
      fROWID_VALID_TRANSACTION: JSRowIdLifetime; external name 'ROWID_VALID_TRANSACTION';
  public
    class function values(): Arr1JSRowIdLifetime; static; overload;
    class function valueOf(para1: JLString): JSRowIdLifetime; static; overload;
  end;

  JTNormalizer = class sealed external 'java.text' name 'Normalizer' (JLObject)
  public
    type
      InnerForm = class;
      Arr1InnerForm = array of InnerForm;
      Arr2InnerForm = array of Arr1InnerForm;
      Arr3InnerForm = array of Arr2InnerForm;
      InnerForm = class sealed external 'java.text' name 'Form' (JLEnum)
      public
        final class var
          fNFC: JTNormalizer.InnerForm; external name 'NFC';
          fNFD: JTNormalizer.InnerForm; external name 'NFD';
          fNFKC: JTNormalizer.InnerForm; external name 'NFKC';
          fNFKD: JTNormalizer.InnerForm; external name 'NFKD';
      public
        class function values(): JTNormalizer.Arr1InnerForm; static; overload;
        class function valueOf(para1: JLString): JTNormalizer.InnerForm; static; overload;
      end;

  public
    class function isNormalized(para1: JLCharSequence; para2: JTNormalizer.InnerForm): jboolean; static; overload;
    class function normalize(para1: JLCharSequence; para2: JTNormalizer.InnerForm): JLString; static; overload;
  end;

  JUCTimeUnit = class sealed external 'java.util.concurrent' name 'TimeUnit' (JLEnum)
  public
    final class var
      fDAYS: JUCTimeUnit; external name 'DAYS';
      fHOURS: JUCTimeUnit; external name 'HOURS';
      fMICROSECONDS: JUCTimeUnit; external name 'MICROSECONDS';
      fMILLISECONDS: JUCTimeUnit; external name 'MILLISECONDS';
      fMINUTES: JUCTimeUnit; external name 'MINUTES';
      fNANOSECONDS: JUCTimeUnit; external name 'NANOSECONDS';
      fSECONDS: JUCTimeUnit; external name 'SECONDS';
  public
    class function values(): Arr1JUCTimeUnit; static; overload;
    class function valueOf(para1: JLString): JUCTimeUnit; static; overload;
    function convert(para1: jlong; para2: JUCTimeUnit): jlong; overload; virtual;
    function toNanos(para1: jlong): jlong; overload; virtual;
    function toMicros(para1: jlong): jlong; overload; virtual;
    function toMillis(para1: jlong): jlong; overload; virtual;
    function toSeconds(para1: jlong): jlong; overload; virtual;
    function toMinutes(para1: jlong): jlong; overload; virtual;
    function toHours(para1: jlong): jlong; overload; virtual;
    function toDays(para1: jlong): jlong; overload; virtual;
    procedure timedWait(para1: JLObject; para2: jlong); overload; virtual;  // throws java.lang.InterruptedException
    procedure timedJoin(para1: JLThread; para2: jlong); overload; virtual;  // throws java.lang.InterruptedException
    procedure sleep(para1: jlong); overload; virtual;  // throws java.lang.InterruptedException
  end;

  JNSSSLEngineResult = class external 'javax.net.ssl' name 'SSLEngineResult' (JLObject)
  public
    type
      InnerStatus = class;
      Arr1InnerStatus = array of InnerStatus;
      Arr2InnerStatus = array of Arr1InnerStatus;
      Arr3InnerStatus = array of Arr2InnerStatus;
      InnerHandshakeStatus = class;
      Arr1InnerHandshakeStatus = array of InnerHandshakeStatus;
      Arr2InnerHandshakeStatus = array of Arr1InnerHandshakeStatus;
      Arr3InnerHandshakeStatus = array of Arr2InnerHandshakeStatus;
      InnerStatus = class sealed external 'javax.net.ssl' name 'Status' (JLEnum)
      public
        final class var
          fBUFFER_OVERFLOW: JNSSSLEngineResult.InnerStatus; external name 'BUFFER_OVERFLOW';
          fBUFFER_UNDERFLOW: JNSSSLEngineResult.InnerStatus; external name 'BUFFER_UNDERFLOW';
          fCLOSED: JNSSSLEngineResult.InnerStatus; external name 'CLOSED';
          fOK: JNSSSLEngineResult.InnerStatus; external name 'OK';
      public
        class function values(): JNSSSLEngineResult.Arr1InnerStatus; static; overload;
        class function valueOf(para1: JLString): JNSSSLEngineResult.InnerStatus; static; overload;
      end;

      InnerHandshakeStatus = class sealed external 'javax.net.ssl' name 'HandshakeStatus' (JLEnum)
      public
        final class var
          fFINISHED: JNSSSLEngineResult.InnerHandshakeStatus; external name 'FINISHED';
          fNEED_TASK: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NEED_TASK';
          fNEED_UNWRAP: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NEED_UNWRAP';
          fNEED_WRAP: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NEED_WRAP';
          fNOT_HANDSHAKING: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NOT_HANDSHAKING';
      public
        class function values(): JNSSSLEngineResult.Arr1InnerHandshakeStatus; static; overload;
        class function valueOf(para1: JLString): JNSSSLEngineResult.InnerHandshakeStatus; static; overload;
      end;

  public
    constructor create(para1: JNSSSLEngineResult.InnerStatus; para2: JNSSSLEngineResult.InnerHandshakeStatus; para3: jint; para4: jint); overload;
    function getStatus(): JNSSSLEngineResult.InnerStatus; overload; virtual; final;
    function getHandshakeStatus(): JNSSSLEngineResult.InnerHandshakeStatus; overload; virtual; final;
    function bytesConsumed(): jint; overload; virtual; final;
    function bytesProduced(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  OAHCRRouteInfo = interface external 'org.apache.http.conn.routing' name 'RouteInfo' 
    type
      InnerLayerType = class;
      Arr1InnerLayerType = array of InnerLayerType;
      Arr2InnerLayerType = array of Arr1InnerLayerType;
      Arr3InnerLayerType = array of Arr2InnerLayerType;
      InnerTunnelType = class;
      Arr1InnerTunnelType = array of InnerTunnelType;
      Arr2InnerTunnelType = array of Arr1InnerTunnelType;
      Arr3InnerTunnelType = array of Arr2InnerTunnelType;
      InnerLayerType = class sealed external 'org.apache.http.conn.routing' name 'LayerType' (JLEnum)
      public
        final class var
          fLAYERED: OAHCRRouteInfo.InnerLayerType; external name 'LAYERED';
          fPLAIN: OAHCRRouteInfo.InnerLayerType; external name 'PLAIN';
      public
        class function values(): OAHCRRouteInfo.Arr1InnerLayerType; static; overload;
        class function valueOf(para1: JLString): OAHCRRouteInfo.InnerLayerType; static; overload;
      end;

      InnerTunnelType = class sealed external 'org.apache.http.conn.routing' name 'TunnelType' (JLEnum)
      public
        final class var
          fPLAIN: OAHCRRouteInfo.InnerTunnelType; external name 'PLAIN';
          fTUNNELLED: OAHCRRouteInfo.InnerTunnelType; external name 'TUNNELLED';
      public
        class function values(): OAHCRRouteInfo.Arr1InnerTunnelType; static; overload;
        class function valueOf(para1: JLString): OAHCRRouteInfo.InnerTunnelType; static; overload;
      end;

    function getTargetHost(): OAHHttpHost; overload;
    function getLocalAddress(): JNInetAddress; overload;
    function getHopCount(): jint; overload;
    function getHopTarget(para1: jint): OAHHttpHost; overload;
    function getProxyHost(): OAHHttpHost; overload;
    function getTunnelType(): OAHCRRouteInfo.InnerTunnelType; overload;
    function isTunnelled(): jboolean; overload;
    function getLayerType(): OAHCRRouteInfo.InnerLayerType; overload;
    function isLayered(): jboolean; overload;
    function isSecure(): jboolean; overload;
  end;

  AWWebBackForwardList = class external 'android.webkit' name 'WebBackForwardList' (JLObject, JLCloneable, JISerializable)
  public
    function getCurrentItem(): AWWebHistoryItem; overload; virtual;
    function getCurrentIndex(): jint; overload; virtual;
    function getItemAtIndex(para1: jint): AWWebHistoryItem; overload; virtual;
    function getSize(): jint; overload; virtual;
  strict protected
    function clone(): AWWebBackForwardList; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JBPropertyChangeSupport = class external 'java.beans' name 'PropertyChangeSupport' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject); overload;
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
    procedure fireIndexedPropertyChange(para1: JLString; para2: jint; para3: JLObject; para4: JLObject); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(para1: JLString): Arr1JBPropertyChangeListener; overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
    procedure fireIndexedPropertyChange(para1: JLString; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure fireIndexedPropertyChange(para1: JLString; para2: jint; para3: jint; para4: jint); overload; virtual;
    function hasListeners(para1: JLString): jboolean; overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
    procedure firePropertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JIExternalizable = interface external 'java.io' name 'Externalizable' (JISerializable)
    procedure readExternal(para1: JIObjectInput); overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
    procedure writeExternal(para1: JIObjectOutput); overload;  // throws java.io.IOException
  end;

  JIFile = class external 'java.io' name 'File' (JLObject, JISerializable, JLComparable)
  public
    final class var
      fseparatorChar: jchar; external name 'separatorChar';
      fseparator: JLString; external name 'separator';
      fpathSeparatorChar: jchar; external name 'pathSeparatorChar';
      fpathSeparator: JLString; external name 'pathSeparator';
  public
    constructor create(para1: JIFile; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JNURI); overload;
    class function listRoots(): Arr1JIFile; static; overload;
    function canExecute(): jboolean; overload; virtual;
    function canRead(): jboolean; overload; virtual;
    function canWrite(): jboolean; overload; virtual;
    function compareTo(para1: JIFile): jint; overload; virtual;
    function delete(): jboolean; overload; virtual;
    procedure deleteOnExit(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function exists(): jboolean; overload; virtual;
    function getAbsolutePath(): JLString; overload; virtual;
    function getAbsoluteFile(): JIFile; overload; virtual;
    function getCanonicalPath(): JLString; overload; virtual;  // throws java.io.IOException
    function getCanonicalFile(): JIFile; overload; virtual;  // throws java.io.IOException
    function getName(): JLString; overload; virtual;
    function getParent(): JLString; overload; virtual;
    function getParentFile(): JIFile; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isAbsolute(): jboolean; overload; virtual;
    function isDirectory(): jboolean; overload; virtual;
    function isFile(): jboolean; overload; virtual;
    function isHidden(): jboolean; overload; virtual;
    function lastModified(): jlong; overload; virtual;
    function setLastModified(para1: jlong): jboolean; overload; virtual;
    function setReadOnly(): jboolean; overload; virtual;
    function setExecutable(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function setExecutable(para1: jboolean): jboolean; overload; virtual;
    function setReadable(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function setReadable(para1: jboolean): jboolean; overload; virtual;
    function setWritable(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function setWritable(para1: jboolean): jboolean; overload; virtual;
    function length(): jlong; overload; virtual;
    function list(): Arr1JLString; overload; virtual;
    function list(para1: JIFilenameFilter): Arr1JLString; overload; virtual;
    function listFiles(): Arr1JIFile; overload; virtual;
    function listFiles(para1: JIFilenameFilter): Arr1JIFile; overload; virtual;
    function listFiles(para1: JIFileFilter): Arr1JIFile; overload; virtual;
    function mkdir(): jboolean; overload; virtual;
    function mkdirs(): jboolean; overload; virtual;
    function createNewFile(): jboolean; overload; virtual;  // throws java.io.IOException
    class function createTempFile(para1: JLString; para2: JLString): JIFile; static; overload;  // throws java.io.IOException
    class function createTempFile(para1: JLString; para2: JLString; para3: JIFile): JIFile; static; overload;  // throws java.io.IOException
    function renameTo(para1: JIFile): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toURI(): JNURI; overload; virtual;
    function toURL(): JNURL; overload; virtual;  // throws java.net.MalformedURLException
    function getTotalSpace(): jlong; overload; virtual;
    function getUsableSpace(): jlong; overload; virtual;
    function getFreeSpace(): jlong; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JIObjectStreamClass = class external 'java.io' name 'ObjectStreamClass' (JLObject, JISerializable)
  public
    final class var
      fNO_FIELDS: Arr1JIObjectStreamField; external name 'NO_FIELDS';
  public
    function forClass(): JLClass; overload; virtual;
    function getField(para1: JLString): JIObjectStreamField; overload; virtual;
    function getFields(): Arr1JIObjectStreamField; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getSerialVersionUID(): jlong; overload; virtual;
    class function lookup(para1: JLClass): JIObjectStreamClass; static; overload;
    class function lookupAny(para1: JLClass): JIObjectStreamClass; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JLStackTraceElement = class sealed external 'java.lang' name 'StackTraceElement' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getClassName(): JLString; overload; virtual;
    function getFileName(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getMethodName(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isNativeMethod(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JLRProxy = class external 'java.lang.reflect' name 'Proxy' (JLObject, JISerializable)
  strict protected
    var
      fh: JLRInvocationHandler; external name 'h';
  strict protected
    constructor create(para1: JLRInvocationHandler); overload;
  public
    class function getProxyClass(para1: JLClassLoader; para2: Arr1JLClass): JLClass; static; overload;  // throws java.lang.IllegalArgumentException
    class function getProxyClass(para1: JLClassLoader; const para2: array of JLClass): JLClass; static; overload;  // throws java.lang.IllegalArgumentException
    class function newProxyInstance(para1: JLClassLoader; para2: Arr1JLClass; para3: JLRInvocationHandler): JLObject; static; overload;  // throws java.lang.IllegalArgumentException
    class function newProxyInstance(para1: JLClassLoader; var para2: array of JLClass; para3: JLRInvocationHandler): JLObject; static; overload;  // throws java.lang.IllegalArgumentException
    class function isProxyClass(para1: JLClass): jboolean; static; overload;
    class function getInvocationHandler(para1: JLObject): JLRInvocationHandler; static; overload;  // throws java.lang.IllegalArgumentException
  end;

  JMMathContext = class sealed external 'java.math' name 'MathContext' (JLObject, JISerializable)
  public
    final class var
      fDECIMAL128: JMMathContext; external name 'DECIMAL128';
      fDECIMAL32: JMMathContext; external name 'DECIMAL32';
      fDECIMAL64: JMMathContext; external name 'DECIMAL64';
      fUNLIMITED: JMMathContext; external name 'UNLIMITED';
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JMRoundingMode); overload;
    constructor create(para1: JLString); overload;
    function getPrecision(): jint; overload; virtual;
    function getRoundingMode(): JMRoundingMode; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNInetAddress = class external 'java.net' name 'InetAddress' (JLObject, JISerializable)
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getAddress(): Arr1jbyte; overload; virtual;
    class function getAllByName(para1: JLString): Arr1JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByName(para1: JLString): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    function getHostAddress(): JLString; overload; virtual;
    function getHostName(): JLString; overload; virtual;
    function getCanonicalHostName(): JLString; overload; virtual;
    class function getLocalHost(): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function isAnyLocalAddress(): jboolean; overload; virtual;
    function isLinkLocalAddress(): jboolean; overload; virtual;
    function isLoopbackAddress(): jboolean; overload; virtual;
    function isMCGlobal(): jboolean; overload; virtual;
    function isMCLinkLocal(): jboolean; overload; virtual;
    function isMCNodeLocal(): jboolean; overload; virtual;
    function isMCOrgLocal(): jboolean; overload; virtual;
    function isMCSiteLocal(): jboolean; overload; virtual;
    function isMulticastAddress(): jboolean; overload; virtual;
    function isSiteLocalAddress(): jboolean; overload; virtual;
    function isReachable(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function isReachable(para1: JNNetworkInterface; para2: jint; para3: jint): jboolean; overload; virtual;  // throws java.io.IOException
    class function getByAddress(para1: Arr1jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(var para1: array of jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; para2: Arr1jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; var para2: array of jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
  end;

  JNSocketAddress = class abstract external 'java.net' name 'SocketAddress' (JLObject, JISerializable)
  public
    constructor create(); overload;
  end;

  JNURI = class sealed external 'java.net' name 'URI' (JLObject, JLComparable, JISerializable)
  public
    constructor create(para1: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: JLString; para6: JLString; para7: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload;  // throws java.net.URISyntaxException
    function compareTo(para1: JNURI): jint; overload; virtual;
    class function create_(para1: JLString): JNURI; static; external name 'create'; overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getScheme(): JLString; overload; virtual;
    function getSchemeSpecificPart(): JLString; overload; virtual;
    function getRawSchemeSpecificPart(): JLString; overload; virtual;
    function getAuthority(): JLString; overload; virtual;
    function getRawAuthority(): JLString; overload; virtual;
    function getUserInfo(): JLString; overload; virtual;
    function getRawUserInfo(): JLString; overload; virtual;
    function getHost(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function getRawPath(): JLString; overload; virtual;
    function getQuery(): JLString; overload; virtual;
    function getRawQuery(): JLString; overload; virtual;
    function getFragment(): JLString; overload; virtual;
    function getRawFragment(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isAbsolute(): jboolean; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    function normalize(): JNURI; overload; virtual;
    function parseServerAuthority(): JNURI; overload; virtual;  // throws java.net.URISyntaxException
    function relativize(para1: JNURI): JNURI; overload; virtual;
    function resolve(para1: JNURI): JNURI; overload; virtual;
    function resolve(para1: JLString): JNURI; overload; virtual;
    function toASCIIString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toURL(): JNURL; overload; virtual;  // throws java.net.MalformedURLException
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNURL = class sealed external 'java.net' name 'URL' (JLObject, JISerializable)
  public
    constructor create(para1: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JNURL; para2: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JNURL; para2: JLString; para3: JNURLStreamHandler); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JNURLStreamHandler); overload;  // throws java.net.MalformedURLException
    class procedure setURLStreamHandlerFactory(para1: JNURLStreamHandlerFactory); static; overload;
  strict protected
    procedure &set(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JLString); overload; virtual;
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function sameFile(para1: JNURL): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getContent(): JLObject; overload; virtual; final;  // throws java.io.IOException
    function getContent(para1: Arr1JLClass): JLObject; overload; virtual; final;  // throws java.io.IOException
    function getContent(var para1: array of JLClass): JLObject; overload; virtual; final;  // throws java.io.IOException
    function openStream(): JIInputStream; overload; virtual; final;  // throws java.io.IOException
    function openConnection(): JNURLConnection; overload; virtual;  // throws java.io.IOException
    function openConnection(para1: JNProxy): JNURLConnection; overload; virtual;  // throws java.io.IOException
    function toURI(): JNURI; overload; virtual;  // throws java.net.URISyntaxException
    function toString(): JLString; overload; virtual;
    function toExternalForm(): JLString; overload; virtual;
    function getProtocol(): JLString; overload; virtual;
    function getAuthority(): JLString; overload; virtual;
    function getUserInfo(): JLString; overload; virtual;
    function getHost(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getDefaultPort(): jint; overload; virtual;
    function getFile(): JLString; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function getQuery(): JLString; overload; virtual;
    function getRef(): JLString; overload; virtual;
  strict protected
    procedure &set(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString); overload; virtual;
  end;

  JSCodeSigner = class sealed external 'java.security' name 'CodeSigner' (JLObject, JISerializable)
  public
    constructor create(para1: JSCCertPath; para2: JSecurityTimestamp); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getSignerCertPath(): JSCCertPath; overload; virtual;
    function getTimestamp(): JSecurityTimestamp; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCodeSource = class external 'java.security' name 'CodeSource' (JLObject, JISerializable)
  public
    constructor create(para1: JNURL; para2: Arr1JSCCertificate); overload;
    constructor create(para1: JNURL; const para2: array of JSCCertificate); overload;
    constructor create(para1: JNURL; para2: Arr1JSCodeSigner); overload;
    constructor create(para1: JNURL; const para2: array of JSCodeSigner); overload;
    function getCertificates(): Arr1JSCCertificate; overload; virtual; final;
    function getCodeSigners(): Arr1JSCodeSigner; overload; virtual; final;
    function getLocation(): JNURL; overload; virtual; final;
    function implies(para1: JSCodeSource): jboolean; overload; virtual;
  end;

  JSGuardedObject = class external 'java.security' name 'GuardedObject' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject; para2: JSGuard); overload;
    function getObject(): JLObject; overload; virtual;  // throws java.lang.SecurityException
  end;

  JSKey = interface external 'java.security' name 'Key' (JISerializable)
    const
      serialVersionUID = jlong(6603384152749567654);
    function getAlgorithm(): JLString; overload;
    function getFormat(): JLString; overload;
    function getEncoded(): Arr1jbyte; overload;
  end;

  JSKeyPair = class sealed external 'java.security' name 'KeyPair' (JLObject, JISerializable)
  public
    constructor create(para1: JSPublicKey; para2: JSPrivateKey); overload;
    function getPrivate(): JSPrivateKey; overload; virtual;
    function getPublic(): JSPublicKey; overload; virtual;
  end;

  JSKeyRep = class external 'java.security' name 'KeyRep' (JLObject, JISerializable)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class sealed external 'java.security' name 'Type' (JLEnum)
      public
        final class var
          fPRIVATE: JSKeyRep.InnerType; external name 'PRIVATE';
          fPUBLIC: JSKeyRep.InnerType; external name 'PUBLIC';
          fSECRET: JSKeyRep.InnerType; external name 'SECRET';
      public
        class function values(): JSKeyRep.Arr1InnerType; static; overload;
        class function valueOf(para1: JLString): JSKeyRep.InnerType; static; overload;
      end;

  public
    constructor create(para1: JSKeyRep.InnerType; para2: JLString; para3: JLString; para4: Arr1jbyte); overload;
    constructor create(para1: JSKeyRep.InnerType; para2: JLString; para3: JLString; const para4: array of jbyte); overload;
  strict protected
    function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JSPermissionCollection = class abstract external 'java.security' name 'PermissionCollection' (JLObject, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual; abstract;
    function elements(): JUEnumeration; overload; virtual; abstract;
    function implies(para1: JSPermission): jboolean; overload; virtual; abstract;
    function isReadOnly(): jboolean; overload; virtual;
    procedure setReadOnly(); overload; virtual;
  end;

  JSSecureRandomSpi = class abstract external 'java.security' name 'SecureRandomSpi' (JLObject, JISerializable)
  public
    constructor create(); overload;
  strict protected
    procedure engineSetSeed(para1: Arr1jbyte); overload; virtual; abstract;
    procedure engineSetSeed(var para1: array of jbyte); overload; virtual; abstract;
    procedure engineNextBytes(para1: Arr1jbyte); overload; virtual; abstract;
    procedure engineNextBytes(var para1: array of jbyte); overload; virtual; abstract;
    function engineGenerateSeed(para1: jint): Arr1jbyte; overload; virtual; abstract;
  end;

  JSSignedObject = class sealed external 'java.security' name 'SignedObject' (JLObject, JISerializable)
  public
    constructor create(para1: JISerializable; para2: JSPrivateKey; para3: JSSignature); overload;  // throws java.io.IOException, java.security.InvalidKeyException, java.security.SignatureException
    function getObject(): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function getSignature(): Arr1jbyte; overload; virtual;
    function getAlgorithm(): JLString; overload; virtual;
    function verify(para1: JSPublicKey; para2: JSSignature): jboolean; overload; virtual;  // throws java.security.InvalidKeyException, java.security.SignatureException
  end;

  JSecurityTimestamp = class sealed external 'java.security' name 'Timestamp' (JLObject, JISerializable)
  public
    constructor create(para1: JUDate; para2: JSCCertPath); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getSignerCertPath(): JSCCertPath; overload; virtual;
    function getTimestamp(): JUDate; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCCertPath = class abstract external 'java.security.cert' name 'CertPath' (JLObject, JISerializable)
  public
    type
      InnerCertPathRep = class;
      Arr1InnerCertPathRep = array of InnerCertPathRep;
      Arr2InnerCertPathRep = array of Arr1InnerCertPathRep;
      Arr3InnerCertPathRep = array of Arr2InnerCertPathRep;
      InnerCertPathRep = class external 'java.security.cert' name 'CertPathRep' (JLObject, JISerializable)
      strict protected
        constructor create(para1: JLString; para2: Arr1jbyte); overload;
        constructor create(para1: JLString; const para2: array of jbyte); overload;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getCertificates(): JUList; overload; virtual; abstract;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    function getEncoded(para1: JLString): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    function getEncodings(): JUIterator; overload; virtual; abstract;
  strict protected
    function writeReplace(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JSCCertificate = class abstract external 'java.security.cert' name 'Certificate' (JLObject, JISerializable)
  public
    type
      InnerCertificateRep = class;
      Arr1InnerCertificateRep = array of InnerCertificateRep;
      Arr2InnerCertificateRep = array of Arr1InnerCertificateRep;
      Arr3InnerCertificateRep = array of Arr2InnerCertificateRep;
      InnerCertificateRep = class external 'java.security.cert' name 'CertificateRep' (JLObject, JISerializable)
      strict protected
        constructor create(para1: JLString; para2: Arr1jbyte); overload;
        constructor create(para1: JLString; const para2: array of jbyte); overload;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    procedure verify(para1: JSPublicKey); overload; virtual; abstract;  // throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    procedure verify(para1: JSPublicKey; para2: JLString); overload; virtual; abstract;  // throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    function toString(): JLString; overload; virtual; abstract;
    function getPublicKey(): JSPublicKey; overload; virtual; abstract;
  strict protected
    function writeReplace(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JSSQLException = class external 'java.sql' name 'SQLException' (JLException, JISerializable, JLIterable)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
    function getErrorCode(): jint; overload; virtual;
    function getNextException(): JSSQLException; overload; virtual;
    function getSQLState(): JLString; overload; virtual;
    procedure setNextException(para1: JSSQLException); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JTDateFormatSymbols = class external 'java.text' name 'DateFormatSymbols' (JLObject, JISerializable, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: JULocale); overload;
    class function getInstance(): JTDateFormatSymbols; static; overload; final;
    class function getInstance(para1: JULocale): JTDateFormatSymbols; static; overload; final;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getAmPmStrings(): Arr1JLString; overload; virtual;
    function getEras(): Arr1JLString; overload; virtual;
    function getLocalPatternChars(): JLString; overload; virtual;
    function getMonths(): Arr1JLString; overload; virtual;
    function getShortMonths(): Arr1JLString; overload; virtual;
    function getShortWeekdays(): Arr1JLString; overload; virtual;
    function getWeekdays(): Arr1JLString; overload; virtual;
    function getZoneStrings(): Arr2JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure setAmPmStrings(para1: Arr1JLString); overload; virtual;
    procedure setAmPmStrings(var para1: array of JLString); overload; virtual;
    procedure setEras(para1: Arr1JLString); overload; virtual;
    procedure setEras(var para1: array of JLString); overload; virtual;
    procedure setLocalPatternChars(para1: JLString); overload; virtual;
    procedure setMonths(para1: Arr1JLString); overload; virtual;
    procedure setMonths(var para1: array of JLString); overload; virtual;
    procedure setShortMonths(para1: Arr1JLString); overload; virtual;
    procedure setShortMonths(var para1: array of JLString); overload; virtual;
    procedure setShortWeekdays(para1: Arr1JLString); overload; virtual;
    procedure setShortWeekdays(var para1: array of JLString); overload; virtual;
    procedure setWeekdays(para1: Arr1JLString); overload; virtual;
    procedure setWeekdays(var para1: array of JLString); overload; virtual;
    procedure setZoneStrings(para1: Arr2JLString); overload; virtual;
  end;

  JTDecimalFormatSymbols = class external 'java.text' name 'DecimalFormatSymbols' (JLObject, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JULocale); overload;
    class function getInstance(): JTDecimalFormatSymbols; static; overload;
    class function getInstance(para1: JULocale): JTDecimalFormatSymbols; static; overload;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getCurrency(): JUCurrency; overload; virtual;
    function getInternationalCurrencySymbol(): JLString; overload; virtual;
    function getCurrencySymbol(): JLString; overload; virtual;
    function getDecimalSeparator(): jchar; overload; virtual;
    function getDigit(): jchar; overload; virtual;
    function getGroupingSeparator(): jchar; overload; virtual;
    function getInfinity(): JLString; overload; virtual;
    function getMinusSign(): jchar; overload; virtual;
    function getMonetaryDecimalSeparator(): jchar; overload; virtual;
    function getNaN(): JLString; overload; virtual;
    function getPatternSeparator(): jchar; overload; virtual;
    function getPercent(): jchar; overload; virtual;
    function getPerMill(): jchar; overload; virtual;
    function getZeroDigit(): jchar; overload; virtual;
    function getExponentSeparator(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure setCurrency(para1: JUCurrency); overload; virtual;
    procedure setInternationalCurrencySymbol(para1: JLString); overload; virtual;
    procedure setCurrencySymbol(para1: JLString); overload; virtual;
    procedure setDecimalSeparator(para1: jchar); overload; virtual;
    procedure setDigit(para1: jchar); overload; virtual;
    procedure setGroupingSeparator(para1: jchar); overload; virtual;
    procedure setInfinity(para1: JLString); overload; virtual;
    procedure setMinusSign(para1: jchar); overload; virtual;
    procedure setMonetaryDecimalSeparator(para1: jchar); overload; virtual;
    procedure setNaN(para1: JLString); overload; virtual;
    procedure setPatternSeparator(para1: jchar); overload; virtual;
    procedure setPercent(para1: jchar); overload; virtual;
    procedure setPerMill(para1: jchar); overload; virtual;
    procedure setZeroDigit(para1: jchar); overload; virtual;
    procedure setExponentSeparator(para1: JLString); overload; virtual;
  end;

  JUCurrency = class sealed external 'java.util' name 'Currency' (JLObject, JISerializable)
  public
    class function getInstance(para1: JLString): JUCurrency; static; overload;
    class function getInstance(para1: JULocale): JUCurrency; static; overload;
    function getCurrencyCode(): JLString; overload; virtual;
    function getSymbol(): JLString; overload; virtual;
    function getSymbol(para1: JULocale): JLString; overload; virtual;
    function getDefaultFractionDigits(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUDate = class external 'java.util' name 'Date' (JLObject, JISerializable, JLCloneable, JLComparable)
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(para1: jlong); overload;
    constructor create(para1: JLString); overload;
    function after(para1: JUDate): jboolean; overload; virtual;
    function before(para1: JUDate): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function compareTo(para1: JUDate): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getDate(): jint; overload; virtual;
    function getDay(): jint; overload; virtual;
    function getHours(): jint; overload; virtual;
    function getMinutes(): jint; overload; virtual;
    function getMonth(): jint; overload; virtual;
    function getSeconds(): jint; overload; virtual;
    function getTime(): jlong; overload; virtual;
    function getTimezoneOffset(): jint; overload; virtual;
    function getYear(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    class function parse(para1: JLString): jlong; static; overload;
    procedure setDate(para1: jint); overload; virtual;
    procedure setHours(para1: jint); overload; virtual;
    procedure setMinutes(para1: jint); overload; virtual;
    procedure setMonth(para1: jint); overload; virtual;
    procedure setSeconds(para1: jint); overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    procedure setYear(para1: jint); overload; virtual;
    function toGMTString(): JLString; overload; virtual;
    function toLocaleString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function UTC(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jlong; static; overload;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUEventObject = class external 'java.util' name 'EventObject' (JLObject, JISerializable)
  strict protected
    var
      fsource: JLObject; external name 'source';
  public
    constructor create(para1: JLObject); overload;
    function getSource(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JULocale = class sealed external 'java.util' name 'Locale' (JLObject, JLCloneable, JISerializable)
  public
    final class var
      fCANADA: JULocale; external name 'CANADA';
      fCANADA_FRENCH: JULocale; external name 'CANADA_FRENCH';
      fCHINA: JULocale; external name 'CHINA';
      fCHINESE: JULocale; external name 'CHINESE';
      fENGLISH: JULocale; external name 'ENGLISH';
      fFRANCE: JULocale; external name 'FRANCE';
      fFRENCH: JULocale; external name 'FRENCH';
      fGERMAN: JULocale; external name 'GERMAN';
      fGERMANY: JULocale; external name 'GERMANY';
      fITALIAN: JULocale; external name 'ITALIAN';
      fITALY: JULocale; external name 'ITALY';
      fJAPAN: JULocale; external name 'JAPAN';
      fJAPANESE: JULocale; external name 'JAPANESE';
      fKOREA: JULocale; external name 'KOREA';
      fKOREAN: JULocale; external name 'KOREAN';
      fPRC: JULocale; external name 'PRC';
      fROOT: JULocale; external name 'ROOT';
      fSIMPLIFIED_CHINESE: JULocale; external name 'SIMPLIFIED_CHINESE';
      fTAIWAN: JULocale; external name 'TAIWAN';
      fTRADITIONAL_CHINESE: JULocale; external name 'TRADITIONAL_CHINESE';
      fUK: JULocale; external name 'UK';
      fUS: JULocale; external name 'US';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    function getCountry(): JLString; overload; virtual;
    class function getDefault(): JULocale; static; overload;
    function getDisplayCountry(): JLString; overload; virtual; final;
    function getDisplayCountry(para1: JULocale): JLString; overload; virtual;
    function getDisplayLanguage(): JLString; overload; virtual; final;
    function getDisplayLanguage(para1: JULocale): JLString; overload; virtual;
    function getDisplayName(): JLString; overload; virtual; final;
    function getDisplayName(para1: JULocale): JLString; overload; virtual;
    function getDisplayVariant(): JLString; overload; virtual; final;
    function getDisplayVariant(para1: JULocale): JLString; overload; virtual;
    function getISO3Country(): JLString; overload; virtual;
    function getISO3Language(): JLString; overload; virtual;
    class function getISOCountries(): Arr1JLString; static; overload;
    class function getISOLanguages(): Arr1JLString; static; overload;
    function getLanguage(): JLString; overload; virtual;
    function getVariant(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    class procedure setDefault(para1: JULocale); static; overload;
    function toString(): JLString; overload; virtual; final;
  end;

  JURandom = class external 'java.util' name 'Random' (JLObject, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jlong); overload;
  strict protected
    function next(para1: jint): jint; overload; virtual;
  public
    function nextBoolean(): jboolean; overload; virtual;
    procedure nextBytes(para1: Arr1jbyte); overload; virtual;
    procedure nextBytes(var para1: array of jbyte); overload; virtual;
    function nextDouble(): jdouble; overload; virtual;
    function nextFloat(): jfloat; overload; virtual;
    function nextGaussian(): jdouble; overload; virtual;
    function nextInt(): jint; overload; virtual;
    function nextInt(para1: jint): jint; overload; virtual;
    function nextLong(): jlong; overload; virtual;
    procedure setSeed(para1: jlong); overload; virtual;
  end;

  JUTimeZone = class abstract external 'java.util' name 'TimeZone' (JLObject, JISerializable, JLCloneable)
  public
    const
      SHORT = 0;
      LONG = 1;
  public
    constructor create(); overload;
    function clone(): JLObject; overload; virtual;
    class function getAvailableIDs(): Arr1JLString; static; overload;
    class function getAvailableIDs(para1: jint): Arr1JLString; static; overload;
    class function getDefault(): JUTimeZone; static; overload;
    function getDisplayName(): JLString; overload; virtual; final;
    function getDisplayName(para1: JULocale): JLString; overload; virtual; final;
    function getDisplayName(para1: jboolean; para2: jint): JLString; overload; virtual; final;
    function getDisplayName(para1: jboolean; para2: jint; para3: JULocale): JLString; overload; virtual;
    function getID(): JLString; overload; virtual;
    function getDSTSavings(): jint; overload; virtual;
    function getOffset(para1: jlong): jint; overload; virtual;
    function getOffset(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jint; overload; virtual; abstract;
    function getRawOffset(): jint; overload; virtual; abstract;
    class function getTimeZone(para1: JLString): JUTimeZone; static; overload;
    function hasSameRules(para1: JUTimeZone): jboolean; overload; virtual;
    function inDaylightTime(para1: JUDate): jboolean; overload; virtual; abstract;
    class procedure setDefault(para1: JUTimeZone); static; overload;
    procedure setID(para1: JLString); overload; virtual;
    procedure setRawOffset(para1: jint); overload; virtual; abstract;
    function useDaylightTime(): jboolean; overload; virtual; abstract;
  end;

  JUUUID = class sealed external 'java.util' name 'UUID' (JLObject, JISerializable, JLComparable)
  public
    constructor create(para1: jlong; para2: jlong); overload;
    class function randomUUID(): JUUUID; static; overload;
    class function nameUUIDFromBytes(para1: Arr1jbyte): JUUUID; static; overload;
    class function nameUUIDFromBytes(var para1: array of jbyte): JUUUID; static; overload;
    class function fromString(para1: JLString): JUUUID; static; overload;
    function getLeastSignificantBits(): jlong; overload; virtual;
    function getMostSignificantBits(): jlong; overload; virtual;
    function version(): jint; overload; virtual;
    function variant(): jint; overload; virtual;
    function timestamp(): jlong; overload; virtual;
    function clockSequence(): jint; overload; virtual;
    function node(): jlong; overload; virtual;
    function compareTo(para1: JUUUID): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUCSemaphore = class external 'java.util.concurrent' name 'Semaphore' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    procedure acquire(); overload; virtual;  // throws java.lang.InterruptedException
    procedure acquireUninterruptibly(); overload; virtual;
    function tryAcquire(): jboolean; overload; virtual;
    function tryAcquire(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure release(); overload; virtual;
    procedure acquire(para1: jint); overload; virtual;  // throws java.lang.InterruptedException
    procedure acquireUninterruptibly(para1: jint); overload; virtual;
    function tryAcquire(para1: jint): jboolean; overload; virtual;
    function tryAcquire(para1: jint; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure release(para1: jint); overload; virtual;
    function availablePermits(): jint; overload; virtual;
    function drainPermits(): jint; overload; virtual;
  strict protected
    procedure reducePermits(para1: jint); overload; virtual;
  public
    function isFair(): jboolean; overload; virtual;
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
  strict protected
    function getQueuedThreads(): JUCollection; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicBoolean = class external 'java.util.concurrent.atomic' name 'AtomicBoolean' (JLObject, JISerializable)
  public
    constructor create(para1: jboolean); overload;
    constructor create(); overload;
    function get(): jboolean; overload; virtual; final;
    function compareAndSet(para1: jboolean; para2: jboolean): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure &set(para1: jboolean); overload; virtual; final;
    procedure lazySet(para1: jboolean); overload; virtual; final;
    function getAndSet(para1: jboolean): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicIntegerArray = class external 'java.util.concurrent.atomic' name 'AtomicIntegerArray' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    function length(): jint; overload; virtual; final;
    function get(para1: jint): jint; overload; virtual; final;
    procedure &set(para1: jint; para2: jint); overload; virtual; final;
    procedure lazySet(para1: jint; para2: jint); overload; virtual; final;
    function getAndSet(para1: jint; para2: jint): jint; overload; virtual; final;
    function compareAndSet(para1: jint; para2: jint; para3: jint): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: jint; para3: jint): jboolean; overload; virtual; final;
    function getAndIncrement(para1: jint): jint; overload; virtual; final;
    function getAndDecrement(para1: jint): jint; overload; virtual; final;
    function getAndAdd(para1: jint; para2: jint): jint; overload; virtual; final;
    function incrementAndGet(para1: jint): jint; overload; virtual; final;
    function decrementAndGet(para1: jint): jint; overload; virtual; final;
    function addAndGet(para1: jint; para2: jint): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicLongArray = class external 'java.util.concurrent.atomic' name 'AtomicLongArray' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1jlong); overload;
    constructor create(const para1: array of jlong); overload;
    function length(): jint; overload; virtual; final;
    function get(para1: jint): jlong; overload; virtual; final;
    procedure &set(para1: jint; para2: jlong); overload; virtual; final;
    procedure lazySet(para1: jint; para2: jlong); overload; virtual; final;
    function getAndSet(para1: jint; para2: jlong): jlong; overload; virtual; final;
    function compareAndSet(para1: jint; para2: jlong; para3: jlong): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: jlong; para3: jlong): jboolean; overload; virtual; final;
    function getAndIncrement(para1: jint): jlong; overload; virtual; final;
    function getAndDecrement(para1: jint): jlong; overload; virtual; final;
    function getAndAdd(para1: jint; para2: jlong): jlong; overload; virtual; final;
    function incrementAndGet(para1: jint): jlong; overload; virtual; final;
    function decrementAndGet(para1: jint): jlong; overload; virtual; final;
    function addAndGet(para1: jint; para2: jlong): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicReference = class external 'java.util.concurrent.atomic' name 'AtomicReference' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject); overload;
    constructor create(); overload;
    function get(): JLObject; overload; virtual; final;
    procedure &set(para1: JLObject); overload; virtual; final;
    procedure lazySet(para1: JLObject); overload; virtual; final;
    function compareAndSet(para1: JLObject; para2: JLObject): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: JLObject; para2: JLObject): jboolean; overload; virtual; final;
    function getAndSet(para1: JLObject): JLObject; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicReferenceArray = class external 'java.util.concurrent.atomic' name 'AtomicReferenceArray' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    function length(): jint; overload; virtual; final;
    function get(para1: jint): JLObject; overload; virtual; final;
    procedure &set(para1: jint; para2: JLObject); overload; virtual; final;
    procedure lazySet(para1: jint; para2: JLObject); overload; virtual; final;
    function getAndSet(para1: jint; para2: JLObject): JLObject; overload; virtual; final;
    function compareAndSet(para1: jint; para2: JLObject; para3: JLObject): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: JLObject; para3: JLObject): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCLAbstractOwnableSynchronizer = class abstract external 'java.util.concurrent.locks' name 'AbstractOwnableSynchronizer' (JLObject, JISerializable)
  strict protected
    constructor create(); overload;
    procedure setExclusiveOwnerThread(para1: JLThread); overload; virtual; final;
    function getExclusiveOwnerThread(): JLThread; overload; virtual; final;
  end;

  JULLevel = class external 'java.util.logging' name 'Level' (JLObject, JISerializable)
  public
    final class var
      fOFF: JULLevel; external name 'OFF';
      fSEVERE: JULLevel; external name 'SEVERE';
      fWARNING: JULLevel; external name 'WARNING';
      fINFO: JULLevel; external name 'INFO';
      fCONFIG: JULLevel; external name 'CONFIG';
      fFINE: JULLevel; external name 'FINE';
      fFINER: JULLevel; external name 'FINER';
      fFINEST: JULLevel; external name 'FINEST';
      fALL: JULLevel; external name 'ALL';
  strict protected
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: JLString); overload;
  public
    class function parse(para1: JLString): JULLevel; static; overload;  // throws java.lang.IllegalArgumentException
    function getName(): JLString; overload; virtual;
    function getResourceBundleName(): JLString; overload; virtual;
    function intValue(): jint; overload; virtual; final;
    function getLocalizedName(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual; final;
  end;

  JULLogRecord = class external 'java.util.logging' name 'LogRecord' (JLObject, JISerializable)
  public
    constructor create(para1: JULLevel; para2: JLString); overload;
    function getLevel(): JULLevel; overload; virtual;
    procedure setLevel(para1: JULLevel); overload; virtual;
    function getLoggerName(): JLString; overload; virtual;
    procedure setLoggerName(para1: JLString); overload; virtual;
    function getMessage(): JLString; overload; virtual;
    procedure setMessage(para1: JLString); overload; virtual;
    function getMillis(): jlong; overload; virtual;
    procedure setMillis(para1: jlong); overload; virtual;
    function getParameters(): Arr1JLObject; overload; virtual;
    procedure setParameters(para1: Arr1JLObject); overload; virtual;
    procedure setParameters(var para1: array of JLObject); overload; virtual;
    function getResourceBundle(): JUResourceBundle; overload; virtual;
    procedure setResourceBundle(para1: JUResourceBundle); overload; virtual;
    function getResourceBundleName(): JLString; overload; virtual;
    procedure setResourceBundleName(para1: JLString); overload; virtual;
    function getSequenceNumber(): jlong; overload; virtual;
    procedure setSequenceNumber(para1: jlong); overload; virtual;
    function getSourceClassName(): JLString; overload; virtual;
    procedure setSourceClassName(para1: JLString); overload; virtual;
    function getSourceMethodName(): JLString; overload; virtual;
    procedure setSourceMethodName(para1: JLString); overload; virtual;
    function getThreadID(): jint; overload; virtual;
    procedure setThreadID(para1: jint); overload; virtual;
    function getThrown(): JLThrowable; overload; virtual;
    procedure setThrown(para1: JLThrowable); overload; virtual;
  end;

  JURPattern = class sealed external 'java.util.regex' name 'Pattern' (JLObject, JISerializable)
  public
    const
      UNIX_LINES = 1;
      CASE_INSENSITIVE = 2;
      COMMENTS = 4;
      MULTILINE = 8;
      LITERAL = 16;
      DOTALL = 32;
      UNICODE_CASE = 64;
      CANON_EQ = 128;
  public
    function matcher(para1: JLCharSequence): JURMatcher; overload; virtual;
    function split(para1: JLCharSequence; para2: jint): Arr1JLString; overload; virtual;
    function split(para1: JLCharSequence): Arr1JLString; overload; virtual;
    function pattern(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function flags(): jint; overload; virtual;
    class function compile(para1: JLString; para2: jint): JURPattern; static; overload;  // throws java.util.regex.PatternSyntaxException
    class function compile(para1: JLString): JURPattern; static; overload;
    class function matches(para1: JLString; para2: JLCharSequence): jboolean; static; overload;
    class function quote(para1: JLString): JLString; static; overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JCSealedObject = class external 'javax.crypto' name 'SealedObject' (JLObject, JISerializable)
  strict protected
    var
      fencodedParams: Arr1jbyte; external name 'encodedParams';
  public
    constructor create(para1: JISerializable; para2: JCCipher); overload;  // throws java.io.IOException, javax.crypto.IllegalBlockSizeException
  strict protected
    constructor create(para1: JCSealedObject); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getObject(para1: JSKey): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getObject(para1: JCCipher): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function getObject(para1: JSKey; para2: JLString): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidKeyException
  end;

  JSASubject = class sealed external 'javax.security.auth' name 'Subject' (JLObject, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jboolean; para2: JUSet; para3: JUSet; para4: JUSet); overload;
    class function doAs(para1: JSASubject; para2: JSPrivilegedAction): JLObject; static; overload;
    class function doAsPrivileged(para1: JSASubject; para2: JSPrivilegedAction; para3: JSAccessControlContext): JLObject; static; overload;
    class function doAs(para1: JSASubject; para2: JSPrivilegedExceptionAction): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function doAsPrivileged(para1: JSASubject; para2: JSPrivilegedExceptionAction; para3: JSAccessControlContext): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getPrincipals(): JUSet; overload; virtual;
    function getPrincipals(para1: JLClass): JUSet; overload; virtual;
    function getPrivateCredentials(): JUSet; overload; virtual;
    function getPrivateCredentials(para1: JLClass): JUSet; overload; virtual;
    function getPublicCredentials(): JUSet; overload; virtual;
    function getPublicCredentials(para1: JLClass): JUSet; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure setReadOnly(); overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function getSubject(para1: JSAccessControlContext): JSASubject; static; overload;
  end;

  JXNQName = class external 'javax.xml.namespace' name 'QName' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLString); overload;
    function getNamespaceURI(): JLString; overload; virtual;
    function getLocalPart(): JLString; overload; virtual;
    function getPrefix(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    class function valueOf(para1: JLString): JXNQName; static; overload;
  end;

  OAHProtocolVersion = class external 'org.apache.http' name 'ProtocolVersion' (JLObject, JISerializable, JLCloneable)
  strict protected
    final var
      fprotocol: JLString; external name 'protocol';
      fmajor: jint; external name 'major';
      fminor: jint; external name 'minor';
  public
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
    function getProtocol(): JLString; overload; virtual; final;
    function getMajor(): jint; overload; virtual; final;
    function getMinor(): jint; overload; virtual; final;
    function forVersion(para1: jint; para2: jint): OAHProtocolVersion; overload; virtual;
    function hashCode(): jint; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function isComparable(para1: OAHProtocolVersion): jboolean; overload; virtual;
    function compareToVersion(para1: OAHProtocolVersion): jint; overload; virtual;
    function greaterEquals(para1: OAHProtocolVersion): jboolean; overload; virtual; final;
    function lessEquals(para1: OAHProtocolVersion): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHCCookieIdentityComparator = class external 'org.apache.http.cookie' name 'CookieIdentityComparator' (JLObject, JISerializable, JUComparator)
  public
    constructor create(); overload;
    function compare(para1: OAHCCookie; para2: OAHCCookie): jint; overload; virtual;
    function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
  end;

  OAHCCookiePathComparator = class external 'org.apache.http.cookie' name 'CookiePathComparator' (JLObject, JISerializable, JUComparator)
  public
    constructor create(); overload;
    function compare(para1: OAHCCookie; para2: OAHCCookie): jint; overload; virtual;
    function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
  end;

  ANTagLostException = class external 'android.nfc' name 'TagLostException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  AUBase64DataException = class external 'android.util' name 'Base64DataException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  AUMalformedJsonException = class sealed external 'android.util' name 'MalformedJsonException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  JICharConversionException = class external 'java.io' name 'CharConversionException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIEOFException = class external 'java.io' name 'EOFException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIFileNotFoundException = class external 'java.io' name 'FileNotFoundException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIInterruptedIOException = class external 'java.io' name 'InterruptedIOException' (JIIOException)
  public
    var
      fbytesTransferred: jint; external name 'bytesTransferred';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIObjectStreamException = class abstract external 'java.io' name 'ObjectStreamException' (JIIOException)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JISyncFailedException = class external 'java.io' name 'SyncFailedException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  JIUTFDataFormatException = class external 'java.io' name 'UTFDataFormatException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIUnsupportedEncodingException = class external 'java.io' name 'UnsupportedEncodingException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNHttpRetryException = class external 'java.net' name 'HttpRetryException' (JIIOException)
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: JLString); overload;
    function getLocation(): JLString; overload; virtual;
    function getReason(): JLString; overload; virtual;
    function responseCode(): jint; overload; virtual;
  end;

  JNMalformedURLException = class external 'java.net' name 'MalformedURLException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNProtocolException = class external 'java.net' name 'ProtocolException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNSocketException = class external 'java.net' name 'SocketException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNUnknownHostException = class external 'java.net' name 'UnknownHostException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNUnknownServiceException = class external 'java.net' name 'UnknownServiceException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNCClosedChannelException = class external 'java.nio.channels' name 'ClosedChannelException' (JIIOException)
  public
    constructor create(); overload;
  end;

  JNCFileLockInterruptionException = class external 'java.nio.channels' name 'FileLockInterruptionException' (JIIOException)
  public
    constructor create(); overload;
  end;

  JUInvalidPropertiesFormatException = class external 'java.util' name 'InvalidPropertiesFormatException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUZZipException = class external 'java.util.zip' name 'ZipException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNSSSLException = class external 'javax.net.ssl' name 'SSLException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OAHConnectionClosedException = class external 'org.apache.http' name 'ConnectionClosedException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  OAHMalformedChunkCodingException = class external 'org.apache.http' name 'MalformedChunkCodingException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OAHNoHttpResponseException = class external 'org.apache.http' name 'NoHttpResponseException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  OAHCClientProtocolException = class external 'org.apache.http.client' name 'ClientProtocolException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  ATAssertionFailedError = class external 'android.test' name 'AssertionFailedError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIIOError = class external 'java.io' name 'IOError' (JLError)
  public
    constructor create(para1: JLThrowable); overload;
  end;

  JLThreadDeath = class external 'java.lang' name 'ThreadDeath' (JLError)
  public
    constructor create(); overload;
  end;

  JLVirtualMachineError = class abstract external 'java.lang' name 'VirtualMachineError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLAAnnotationFormatError = class external 'java.lang.annotation' name 'AnnotationFormatError' (JLError)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUServiceConfigurationError = class external 'java.util' name 'ServiceConfigurationError' (JLError)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JXPFactoryConfigurationError = class external 'javax.xml.parsers' name 'FactoryConfigurationError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    function getMessage(): JLString; overload; virtual;
    function getException(): JLException; overload; virtual;
  end;

  JXTTransformerFactoryConfigurationError = class external 'javax.xml.transform' name 'TransformerFactoryConfigurationError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    function getMessage(): JLString; overload; virtual;
    function getException(): JLException; overload; virtual;
  end;

  JFAssertionFailedError = class external 'junit.framework' name 'AssertionFailedError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ATGetChars = interface external 'android.text' name 'GetChars' (JLCharSequence)
    procedure getChars(para1: jint; para2: jint; para3: Arr1jchar; para4: jint); overload;
    procedure getChars(para1: jint; para2: jint; var para3: array of jchar; para4: jint); overload;
  end;

  ATSpanned = interface external 'android.text' name 'Spanned' (JLCharSequence)
    const
      SPAN_POINT_MARK_MASK = 51;
      SPAN_MARK_MARK = 17;
      SPAN_MARK_POINT = 18;
      SPAN_POINT_MARK = 33;
      SPAN_POINT_POINT = 34;
      SPAN_PARAGRAPH = 51;
      SPAN_INCLUSIVE_EXCLUSIVE = 17;
      SPAN_INCLUSIVE_INCLUSIVE = 18;
      SPAN_EXCLUSIVE_EXCLUSIVE = 33;
      SPAN_EXCLUSIVE_INCLUSIVE = 34;
      SPAN_COMPOSING = 256;
      SPAN_INTERMEDIATE = 512;
      SPAN_USER_SHIFT = 24;
      SPAN_USER = -16777216;
      SPAN_PRIORITY_SHIFT = 16;
      SPAN_PRIORITY = 16711680;
    function getSpans(para1: jint; para2: jint; para3: JLClass): Arr1JLObject; overload;
    function getSpanStart(para1: JLObject): jint; overload;
    function getSpanEnd(para1: JLObject): jint; overload;
    function getSpanFlags(para1: JLObject): jint; overload;
    function nextSpanTransition(para1: jint; para2: jint; para3: JLClass): jint; overload;
  end;

  JLClassCircularityError = class external 'java.lang' name 'ClassCircularityError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLClassFormatError = class external 'java.lang' name 'ClassFormatError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLExceptionInInitializerError = class external 'java.lang' name 'ExceptionInInitializerError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    function getException(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JLIncompatibleClassChangeError = class external 'java.lang' name 'IncompatibleClassChangeError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoClassDefFoundError = class external 'java.lang' name 'NoClassDefFoundError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLUnsatisfiedLinkError = class external 'java.lang' name 'UnsatisfiedLinkError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLVerifyError = class external 'java.lang' name 'VerifyError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIllegalThreadStateException = class external 'java.lang' name 'IllegalThreadStateException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNumberFormatException = class external 'java.lang' name 'NumberFormatException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNCIllegalSelectorException = class external 'java.nio.channels' name 'IllegalSelectorException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
  end;

  JNCUnresolvedAddressException = class external 'java.nio.channels' name 'UnresolvedAddressException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
  end;

  JNCUnsupportedAddressTypeException = class external 'java.nio.channels' name 'UnsupportedAddressTypeException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
  end;

  JSInvalidParameterException = class external 'java.security' name 'InvalidParameterException' (JLIllegalArgumentException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JUIllegalFormatException = class external 'java.util' name 'IllegalFormatException' (JLIllegalArgumentException, JISerializable)
  end;

  JURPatternSyntaxException = class external 'java.util.regex' name 'PatternSyntaxException' (JLIllegalArgumentException)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    function getPattern(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getIndex(): jint; overload; virtual;
  end;

  JLInheritableThreadLocal = class external 'java.lang' name 'InheritableThreadLocal' (JLThreadLocal)
  public
    constructor create(); overload;
  strict protected
    function childValue(para1: JLObject): JLObject; overload; virtual;
  end;

  JLPackage = class external 'java.lang' name 'Package' (JLObject, JLRAnnotatedElement)
  public
    function getAnnotation(para1: JLClass): JLAAnnotation; overload; virtual;
    function getAnnotations(): Arr1JLAAnnotation; overload; virtual;
    function getDeclaredAnnotations(): Arr1JLAAnnotation; overload; virtual;
    function isAnnotationPresent(para1: JLClass): jboolean; overload; virtual;
    function getImplementationTitle(): JLString; overload; virtual;
    function getImplementationVendor(): JLString; overload; virtual;
    function getImplementationVersion(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    class function getPackage(para1: JLString): JLPackage; static; overload;
    class function getPackages(): Arr1JLPackage; static; overload;
    function getSpecificationTitle(): JLString; overload; virtual;
    function getSpecificationVendor(): JLString; overload; virtual;
    function getSpecificationVersion(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isCompatibleWith(para1: JLString): jboolean; overload; virtual;  // throws java.lang.NumberFormatException
    function isSealed(): jboolean; overload; virtual;
    function isSealed(para1: JNURL): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JLRConstructor = class sealed external 'java.lang.reflect' name 'Constructor' (JLRAccessibleObject, JLRGenericDeclaration, JLRMember)
  public
    function getTypeParameters(): Arr1JLRTypeVariable; overload; virtual;
    function toGenericString(): JLString; overload; virtual;
    function getGenericParameterTypes(): Arr1JLRType; overload; virtual;
    function getGenericExceptionTypes(): Arr1JLRType; overload; virtual;
    function getDeclaredAnnotations(): Arr1JLAAnnotation; overload; virtual;
    function getAnnotation(para1: JLClass): JLAAnnotation; overload; virtual;
    function isAnnotationPresent(para1: JLClass): jboolean; overload; virtual;
    function getParameterAnnotations(): Arr2JLAAnnotation; overload; virtual;
    function isVarArgs(): jboolean; overload; virtual;
    function isSynthetic(): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getDeclaringClass(): JLClass; overload; virtual;
    function getExceptionTypes(): Arr1JLClass; overload; virtual;
    function getModifiers(): jint; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getParameterTypes(): Arr1JLClass; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function newInstance(para1: Arr1JLObject): JLObject; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException
    function newInstance(const para1: array of JLObject): JLObject; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException
    function toString(): JLString; overload; virtual;
  end;

  JLRGenericArrayType = interface external 'java.lang.reflect' name 'GenericArrayType' (JLRType)
    function getGenericComponentType(): JLRType; overload;
  end;

  JLRParameterizedType = interface external 'java.lang.reflect' name 'ParameterizedType' (JLRType)
    function getActualTypeArguments(): Arr1JLRType; overload;
    function getOwnerType(): JLRType; overload;
    function getRawType(): JLRType; overload;
  end;

  JLRTypeVariable = interface external 'java.lang.reflect' name 'TypeVariable' (JLRType)
    function getBounds(): Arr1JLRType; overload;
    function getGenericDeclaration(): JLRGenericDeclaration; overload;
    function getName(): JLString; overload;
  end;

  JLRWildcardType = interface external 'java.lang.reflect' name 'WildcardType' (JLRType)
    function getUpperBounds(): Arr1JLRType; overload;
    function getLowerBounds(): Arr1JLRType; overload;
  end;

  JMBigDecimal = class external 'java.math' name 'BigDecimal' (JLNumber, JLComparable, JISerializable)
  public
    const
      ROUND_UP = 0;
      ROUND_DOWN = 1;
      ROUND_CEILING = 2;
      ROUND_FLOOR = 3;
      ROUND_HALF_UP = 4;
      ROUND_HALF_DOWN = 5;
      ROUND_HALF_EVEN = 6;
      ROUND_UNNECESSARY = 7;
  public
    final class var
      fZERO: JMBigDecimal; external name 'ZERO';
      fONE: JMBigDecimal; external name 'ONE';
      fTEN: JMBigDecimal; external name 'TEN';
  public
    constructor create(para1: Arr1jchar; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: jint; para4: JMMathContext); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint; para4: JMMathContext); overload;
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    constructor create(para1: Arr1jchar; para2: JMMathContext); overload;
    constructor create(const para1: array of jchar; para2: JMMathContext); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JMMathContext); overload;
    constructor create(para1: jdouble); overload;
    constructor create(para1: jdouble; para2: JMMathContext); overload;
    constructor create(para1: JMBigInteger); overload;
    constructor create(para1: JMBigInteger; para2: JMMathContext); overload;
    constructor create(para1: JMBigInteger; para2: jint); overload;
    constructor create(para1: JMBigInteger; para2: jint; para3: JMMathContext); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JMMathContext); overload;
    constructor create(para1: jlong); overload;
    constructor create(para1: jlong; para2: JMMathContext); overload;
    class function valueOf(para1: jlong; para2: jint): JMBigDecimal; static; overload;
    class function valueOf(para1: jlong): JMBigDecimal; static; overload;
    class function valueOf(para1: jdouble): JMBigDecimal; static; overload;
    function add(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function add(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function subtract(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function subtract(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function multiply(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function multiply(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: jint; para3: jint): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: jint; para3: JMRoundingMode): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: jint): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: JMRoundingMode): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function divideToIntegralValue(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function divideToIntegralValue(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function remainder(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function remainder(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function divideAndRemainder(para1: JMBigDecimal): Arr1JMBigDecimal; overload; virtual;
    function divideAndRemainder(para1: JMBigDecimal; para2: JMMathContext): Arr1JMBigDecimal; overload; virtual;
    function pow(para1: jint): JMBigDecimal; overload; virtual;
    function pow(para1: jint; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function abs(): JMBigDecimal; overload; virtual;
    function abs(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function negate(): JMBigDecimal; overload; virtual;
    function negate(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function plus(): JMBigDecimal; overload; virtual;
    function plus(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function signum(): jint; overload; virtual;
    function scale(): jint; overload; virtual;
    function precision(): jint; overload; virtual;
    function unscaledValue(): JMBigInteger; overload; virtual;
    function round(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function setScale(para1: jint; para2: JMRoundingMode): JMBigDecimal; overload; virtual;
    function setScale(para1: jint; para2: jint): JMBigDecimal; overload; virtual;
    function setScale(para1: jint): JMBigDecimal; overload; virtual;
    function movePointLeft(para1: jint): JMBigDecimal; overload; virtual;
    function movePointRight(para1: jint): JMBigDecimal; overload; virtual;
    function scaleByPowerOfTen(para1: jint): JMBigDecimal; overload; virtual;
    function stripTrailingZeros(): JMBigDecimal; overload; virtual;
    function compareTo(para1: JMBigDecimal): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function min(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function max(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toEngineeringString(): JLString; overload; virtual;
    function toPlainString(): JLString; overload; virtual;
    function toBigInteger(): JMBigInteger; overload; virtual;
    function toBigIntegerExact(): JMBigInteger; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function longValueExact(): jlong; overload; virtual;
    function intValue(): jint; overload; virtual;
    function intValueExact(): jint; overload; virtual;
    function shortValueExact(): jshort; overload; virtual;
    function byteValueExact(): jbyte; overload; virtual;
    function floatValue(): jfloat; overload; virtual;
    function doubleValue(): jdouble; overload; virtual;
    function ulp(): JMBigDecimal; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUCAAtomicInteger = class external 'java.util.concurrent.atomic' name 'AtomicInteger' (JLNumber, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(); overload;
    function get(): jint; overload; virtual; final;
    procedure &set(para1: jint); overload; virtual; final;
    procedure lazySet(para1: jint); overload; virtual; final;
    function getAndSet(para1: jint): jint; overload; virtual; final;
    function compareAndSet(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function getAndIncrement(): jint; overload; virtual; final;
    function getAndDecrement(): jint; overload; virtual; final;
    function getAndAdd(para1: jint): jint; overload; virtual; final;
    function incrementAndGet(): jint; overload; virtual; final;
    function decrementAndGet(): jint; overload; virtual; final;
    function addAndGet(para1: jint): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function intValue(): jint; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function floatValue(): jfloat; overload; virtual;
    function doubleValue(): jdouble; overload; virtual;
  end;

  JUCAAtomicLong = class external 'java.util.concurrent.atomic' name 'AtomicLong' (JLNumber, JISerializable)
  public
    constructor create(para1: jlong); overload;
    constructor create(); overload;
    function get(): jlong; overload; virtual; final;
    procedure &set(para1: jlong); overload; virtual; final;
    procedure lazySet(para1: jlong); overload; virtual; final;
    function getAndSet(para1: jlong): jlong; overload; virtual; final;
    function compareAndSet(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function getAndIncrement(): jlong; overload; virtual; final;
    function getAndDecrement(): jlong; overload; virtual; final;
    function getAndAdd(para1: jlong): jlong; overload; virtual; final;
    function incrementAndGet(): jlong; overload; virtual; final;
    function decrementAndGet(): jlong; overload; virtual; final;
    function addAndGet(para1: jlong): jlong; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function intValue(): jint; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function floatValue(): jfloat; overload; virtual;
    function doubleValue(): jdouble; overload; virtual;
  end;

  JNDoubleBuffer = class abstract external 'java.nio' name 'DoubleBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNDoubleBuffer; static; overload;
    class function wrap(para1: Arr1jdouble): JNDoubleBuffer; static; overload;
    class function wrap(var para1: array of jdouble): JNDoubleBuffer; static; overload;
    class function wrap(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; static; overload;
    class function wrap(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; static; overload;
    function &array(): Arr1jdouble; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual; abstract;
    function compact(): JNDoubleBuffer; overload; virtual; abstract;
    function compareTo(para1: JNDoubleBuffer): jint; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(): jdouble; overload; virtual; abstract;
    function get(para1: Arr1jdouble): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble): JNDoubleBuffer; overload; virtual;
    function get(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(para1: jint): jdouble; overload; virtual; abstract;
    function hasArray(): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function isDirect(): jboolean; overload; virtual; abstract;
    function order(): JNByteOrder; overload; virtual; abstract;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual; abstract;
    function put(para1: Arr1jdouble): JNDoubleBuffer; overload; virtual; final;
    function put(var para1: array of jdouble): JNDoubleBuffer; overload; virtual; final;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual; abstract;
    function slice(): JNDoubleBuffer; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNFloatBuffer = class abstract external 'java.nio' name 'FloatBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNFloatBuffer; static; overload;
    class function wrap(para1: Arr1jfloat): JNFloatBuffer; static; overload;
    class function wrap(var para1: array of jfloat): JNFloatBuffer; static; overload;
    class function wrap(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; static; overload;
    class function wrap(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; static; overload;
    function &array(): Arr1jfloat; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual; abstract;
    function compact(): JNFloatBuffer; overload; virtual; abstract;
    function compareTo(para1: JNFloatBuffer): jint; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(): jfloat; overload; virtual; abstract;
    function get(para1: Arr1jfloat): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat): JNFloatBuffer; overload; virtual;
    function get(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(para1: jint): jfloat; overload; virtual; abstract;
    function hasArray(): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function isDirect(): jboolean; overload; virtual; abstract;
    function order(): JNByteOrder; overload; virtual; abstract;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual; abstract;
    function put(para1: Arr1jfloat): JNFloatBuffer; overload; virtual; final;
    function put(var para1: array of jfloat): JNFloatBuffer; overload; virtual; final;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual; abstract;
    function slice(): JNFloatBuffer; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNIntBuffer = class abstract external 'java.nio' name 'IntBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNIntBuffer; static; overload;
    class function wrap(para1: Arr1jint): JNIntBuffer; static; overload;
    class function wrap(var para1: array of jint): JNIntBuffer; static; overload;
    class function wrap(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; static; overload;
    class function wrap(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; static; overload;
    function &array(): Arr1jint; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual; abstract;
    function compact(): JNIntBuffer; overload; virtual; abstract;
    function compareTo(para1: JNIntBuffer): jint; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(): jint; overload; virtual; abstract;
    function get(para1: Arr1jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint): JNIntBuffer; overload; virtual;
    function get(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(para1: jint): jint; overload; virtual; abstract;
    function hasArray(): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function isDirect(): jboolean; overload; virtual; abstract;
    function order(): JNByteOrder; overload; virtual; abstract;
    function put(para1: jint): JNIntBuffer; overload; virtual; abstract;
    function put(para1: Arr1jint): JNIntBuffer; overload; virtual; final;
    function put(var para1: array of jint): JNIntBuffer; overload; virtual; final;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual; abstract;
    function slice(): JNIntBuffer; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNLongBuffer = class abstract external 'java.nio' name 'LongBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNLongBuffer; static; overload;
    class function wrap(para1: Arr1jlong): JNLongBuffer; static; overload;
    class function wrap(var para1: array of jlong): JNLongBuffer; static; overload;
    class function wrap(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; static; overload;
    class function wrap(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; static; overload;
    function &array(): Arr1jlong; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual; abstract;
    function compact(): JNLongBuffer; overload; virtual; abstract;
    function compareTo(para1: JNLongBuffer): jint; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(): jlong; overload; virtual; abstract;
    function get(para1: Arr1jlong): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong): JNLongBuffer; overload; virtual;
    function get(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(para1: jint): jlong; overload; virtual; abstract;
    function hasArray(): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function isDirect(): jboolean; overload; virtual; abstract;
    function order(): JNByteOrder; overload; virtual; abstract;
    function put(para1: jlong): JNLongBuffer; overload; virtual; abstract;
    function put(para1: Arr1jlong): JNLongBuffer; overload; virtual; final;
    function put(var para1: array of jlong): JNLongBuffer; overload; virtual; final;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual; abstract;
    function slice(): JNLongBuffer; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNShortBuffer = class abstract external 'java.nio' name 'ShortBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNShortBuffer; static; overload;
    class function wrap(para1: Arr1jshort): JNShortBuffer; static; overload;
    class function wrap(var para1: array of jshort): JNShortBuffer; static; overload;
    class function wrap(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; static; overload;
    class function wrap(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; static; overload;
    function &array(): Arr1jshort; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual; abstract;
    function compact(): JNShortBuffer; overload; virtual; abstract;
    function compareTo(para1: JNShortBuffer): jint; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(): jshort; overload; virtual; abstract;
    function get(para1: Arr1jshort): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort): JNShortBuffer; overload; virtual;
    function get(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(para1: jint): jshort; overload; virtual; abstract;
    function hasArray(): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function isDirect(): jboolean; overload; virtual; abstract;
    function order(): JNByteOrder; overload; virtual; abstract;
    function put(para1: jshort): JNShortBuffer; overload; virtual; abstract;
    function put(para1: Arr1jshort): JNShortBuffer; overload; virtual; final;
    function put(var para1: array of jshort): JNShortBuffer; overload; virtual; final;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual; abstract;
    function slice(): JNShortBuffer; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNInvalidMarkException = class external 'java.nio' name 'InvalidMarkException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCAlreadyConnectedException = class external 'java.nio.channels' name 'AlreadyConnectedException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCCancelledKeyException = class external 'java.nio.channels' name 'CancelledKeyException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCClosedSelectorException = class external 'java.nio.channels' name 'ClosedSelectorException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCConnectionPendingException = class external 'java.nio.channels' name 'ConnectionPendingException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCIllegalBlockingModeException = class external 'java.nio.channels' name 'IllegalBlockingModeException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNoConnectionPendingException = class external 'java.nio.channels' name 'NoConnectionPendingException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNonReadableChannelException = class external 'java.nio.channels' name 'NonReadableChannelException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNonWritableChannelException = class external 'java.nio.channels' name 'NonWritableChannelException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNotYetBoundException = class external 'java.nio.channels' name 'NotYetBoundException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNotYetConnectedException = class external 'java.nio.channels' name 'NotYetConnectedException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCOverlappingFileLockException = class external 'java.nio.channels' name 'OverlappingFileLockException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JUFormatterClosedException = class external 'java.util' name 'FormatterClosedException' (JLIllegalStateException, JISerializable)
  public
    constructor create(); overload;
  end;

  JUCCancellationException = class external 'java.util.concurrent' name 'CancellationException' (JLIllegalStateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNMappedByteBuffer = class abstract external 'java.nio' name 'MappedByteBuffer' (JNByteBuffer)
  public
    function isLoaded(): jboolean; overload; virtual; final;
    function load(): JNMappedByteBuffer; overload; virtual; final;
    function force(): JNMappedByteBuffer; overload; virtual; final;
  end;

  JNReadOnlyBufferException = class external 'java.nio' name 'ReadOnlyBufferException' (JLUnsupportedOperationException)
  public
    constructor create(); overload;
  end;

  JTRuleBasedCollator = class external 'java.text' name 'RuleBasedCollator' (JTCollator)
  public
    constructor create(para1: JLString); overload;  // throws java.text.ParseException
    function getCollationElementIterator(para1: JTCharacterIterator): JTCollationElementIterator; overload; virtual;
    function getCollationElementIterator(para1: JLString): JTCollationElementIterator; overload; virtual;
    function getRules(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function compare(para1: JLString; para2: JLString): jint; overload; virtual;
    function getCollationKey(para1: JLString): JTCollationKey; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JUSortedMap = interface external 'java.util' name 'SortedMap' (JUMap)
    function comparator(): JUComparator; overload;
    function firstKey(): JLObject; overload;
    function headMap(para1: JLObject): JUSortedMap; overload;
    function lastKey(): JLObject; overload;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload;
    function tailMap(para1: JLObject): JUSortedMap; overload;
  end;

  JUCConcurrentMap = interface external 'java.util.concurrent' name 'ConcurrentMap' (JUMap)
    function putIfAbsent(para1: JLObject; para2: JLObject): JLObject; overload;
    function remove(para1: JLObject; para2: JLObject): jboolean; overload;
    function replace(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload;
    function replace(para1: JLObject; para2: JLObject): JLObject; overload;
  end;

  JUJAttributes = class external 'java.util.jar' name 'Attributes' (JLObject, JLCloneable, JUMap)
  public
    type
      InnerName = class;
      Arr1InnerName = array of InnerName;
      Arr2InnerName = array of Arr1InnerName;
      Arr3InnerName = array of Arr2InnerName;
      InnerName = class external 'java.util.jar' name 'Name' (JLObject)
      public
        final class var
          fCLASS_PATH: JUJAttributes.InnerName; external name 'CLASS_PATH';
          fMANIFEST_VERSION: JUJAttributes.InnerName; external name 'MANIFEST_VERSION';
          fMAIN_CLASS: JUJAttributes.InnerName; external name 'MAIN_CLASS';
          fSIGNATURE_VERSION: JUJAttributes.InnerName; external name 'SIGNATURE_VERSION';
          fCONTENT_TYPE: JUJAttributes.InnerName; external name 'CONTENT_TYPE';
          fSEALED: JUJAttributes.InnerName; external name 'SEALED';
          fIMPLEMENTATION_TITLE: JUJAttributes.InnerName; external name 'IMPLEMENTATION_TITLE';
          fIMPLEMENTATION_VERSION: JUJAttributes.InnerName; external name 'IMPLEMENTATION_VERSION';
          fIMPLEMENTATION_VENDOR: JUJAttributes.InnerName; external name 'IMPLEMENTATION_VENDOR';
          fSPECIFICATION_TITLE: JUJAttributes.InnerName; external name 'SPECIFICATION_TITLE';
          fSPECIFICATION_VERSION: JUJAttributes.InnerName; external name 'SPECIFICATION_VERSION';
          fSPECIFICATION_VENDOR: JUJAttributes.InnerName; external name 'SPECIFICATION_VENDOR';
          fEXTENSION_LIST: JUJAttributes.InnerName; external name 'EXTENSION_LIST';
          fEXTENSION_NAME: JUJAttributes.InnerName; external name 'EXTENSION_NAME';
          fEXTENSION_INSTALLATION: JUJAttributes.InnerName; external name 'EXTENSION_INSTALLATION';
          fIMPLEMENTATION_VENDOR_ID: JUJAttributes.InnerName; external name 'IMPLEMENTATION_VENDOR_ID';
          fIMPLEMENTATION_URL: JUJAttributes.InnerName; external name 'IMPLEMENTATION_URL';
      public
        constructor create(para1: JLString); overload;
        function equals(para1: JLObject): jboolean; overload; virtual;
        function hashCode(): jint; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    var
      fmap: JUMap; external name 'map';
  public
    constructor create(); overload;
    constructor create(para1: JUJAttributes); overload;
    constructor create(para1: jint); overload;
    procedure clear(); overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getValue(para1: JUJAttributes.InnerName): JLString; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
    function putValue(para1: JLString; para2: JLString): JLString; overload; virtual;
  end;

  JUEnumMap = class external 'java.util' name 'EnumMap' (JUAbstractMap, JISerializable, JLCloneable, JUMap)
  public
    constructor create(para1: JLClass); overload;
    constructor create(para1: JUEnumMap); overload;
    constructor create(para1: JUMap); overload;
    procedure clear(); overload; virtual;
    function clone(): JUEnumMap; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function put(para1: JLEnum; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JUIdentityHashMap = class external 'java.util' name 'IdentityHashMap' (JUAbstractMap, JUMap, JISerializable, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUMap); overload;
    procedure clear(); overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
  end;

  JUGregorianCalendar = class external 'java.util' name 'GregorianCalendar' (JUCalendar)
  public
    const
      BC = 0;
      AD = 1;
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(para1: JULocale); overload;
    constructor create(para1: JUTimeZone); overload;
    constructor create(para1: JUTimeZone; para2: JULocale); overload;
    procedure add(para1: jint; para2: jint); overload; virtual;
    function clone(): JLObject; overload; virtual;
  strict protected
    procedure computeFields(); overload; virtual;
    procedure computeTime(); overload; virtual;
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getActualMaximum(para1: jint): jint; overload; virtual;
    function getActualMinimum(para1: jint): jint; overload; virtual;
    function getGreatestMinimum(para1: jint): jint; overload; virtual;
    function getGregorianChange(): JUDate; overload; virtual; final;
    function getLeastMaximum(para1: jint): jint; overload; virtual;
    function getMaximum(para1: jint): jint; overload; virtual;
    function getMinimum(para1: jint): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isLeapYear(para1: jint): jboolean; overload; virtual;
    procedure roll(para1: jint; para2: jint); overload; virtual;
    procedure roll(para1: jint; para2: jboolean); overload; virtual;
    procedure setGregorianChange(para1: JUDate); overload; virtual;
    procedure setFirstDayOfWeek(para1: jint); overload; virtual;
    procedure setMinimalDaysInFirstWeek(para1: jint); overload; virtual;
  end;

  JUCCopyOnWriteArraySet = class external 'java.util.concurrent' name 'CopyOnWriteArraySet' (JUAbstractSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JUHashSet = class external 'java.util' name 'HashSet' (JUAbstractSet, JUSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
  end;

  JUSortedSet = interface external 'java.util' name 'SortedSet' (JUSet)
    function comparator(): JUComparator; overload;
    function first(): JLObject; overload;
    function headSet(para1: JLObject): JUSortedSet; overload;
    function last(): JLObject; overload;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload;
    function tailSet(para1: JLObject): JUSortedSet; overload;
  end;

  JULinkedHashMap = class external 'java.util' name 'LinkedHashMap' (JUHashMap)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint; para2: jfloat; para3: jboolean); overload;
    constructor create(para1: JUMap); overload;
    function get(para1: JLObject): JLObject; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
  strict protected
    function removeEldestEntry(para1: JUMap.InnerEntry): jboolean; overload; virtual;
  end;

  JUList = interface external 'java.util' name 'List' (JUCollection)
    procedure add(para1: jint; para2: JLObject); overload;
    function add(para1: JLObject): jboolean; overload;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload;
    function addAll(para1: JUCollection): jboolean; overload;
    procedure clear(); overload;
    function contains(para1: JLObject): jboolean; overload;
    function containsAll(para1: JUCollection): jboolean; overload;
    function equals(para1: JLObject): jboolean; overload;
    function get(para1: jint): JLObject; overload;
    function hashCode(): jint; overload;
    function indexOf(para1: JLObject): jint; overload;
    function isEmpty(): jboolean; overload;
    function iterator(): JUIterator; overload;
    function lastIndexOf(para1: JLObject): jint; overload;
    function listIterator(): JUListIterator; overload;
    function listIterator(para1: jint): JUListIterator; overload;
    function remove(para1: jint): JLObject; overload;
    function remove(para1: JLObject): jboolean; overload;
    function removeAll(para1: JUCollection): jboolean; overload;
    function retainAll(para1: JUCollection): jboolean; overload;
    function &set(para1: jint; para2: JLObject): JLObject; overload;
    function size(): jint; overload;
    function subList(para1: jint; para2: jint): JUList; overload;
    function toArray(): Arr1JLObject; overload;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload;
  end;

  JUQueue = interface external 'java.util' name 'Queue' (JUCollection)
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    function remove(): JLObject; overload;
    function poll(): JLObject; overload;
    function element(): JLObject; overload;
    function peek(): JLObject; overload;
  end;

  AVAInterpolator = interface external 'android.view.animation' name 'Interpolator' (AATimeInterpolator)
  end;

  AAArgbEvaluator = class external 'android.animation' name 'ArgbEvaluator' (JLObject, AATypeEvaluator)
  public
    constructor create(); overload;
    function evaluate(para1: jfloat; para2: JLObject; para3: JLObject): JLObject; overload; virtual;
  end;

  AAFloatEvaluator = class external 'android.animation' name 'FloatEvaluator' (JLObject, AATypeEvaluator)
  public
    constructor create(); overload;
    function evaluate(para1: jfloat; para2: JLNumber; para3: JLNumber): JLFloat; overload; virtual;
    function evaluate(para1: jfloat; para2: JLObject; para3: JLObject): JLObject; overload; virtual;
  end;

  AAIntEvaluator = class external 'android.animation' name 'IntEvaluator' (JLObject, AATypeEvaluator)
  public
    constructor create(); overload;
    function evaluate(para1: jfloat; para2: JLInteger; para3: JLInteger): JLInteger; overload; virtual;
    function evaluate(para1: jfloat; para2: JLObject; para3: JLObject): JLObject; overload; virtual;
  end;

  AABFileBackupHelper = class external 'android.app.backup' name 'FileBackupHelper' (AABFileBackupHelperBase, AABBackupHelper)
  public
    constructor create(para1: ACContext; para2: Arr1JLString); overload;
    constructor create(para1: ACContext; const para2: array of JLString); overload;
    procedure performBackup(para1: AOParcelFileDescriptor; para2: AABBackupDataOutput; para3: AOParcelFileDescriptor); overload; virtual;
    procedure restoreEntity(para1: AABBackupDataInputStream); overload; virtual;
    procedure writeNewStateDescription(para1: AOParcelFileDescriptor); overload; virtual;
  end;

  AABSharedPreferencesBackupHelper = class external 'android.app.backup' name 'SharedPreferencesBackupHelper' (AABFileBackupHelperBase, AABBackupHelper)
  public
    constructor create(para1: ACContext; para2: Arr1JLString); overload;
    constructor create(para1: ACContext; const para2: array of JLString); overload;
    procedure performBackup(para1: AOParcelFileDescriptor; para2: AABBackupDataOutput; para3: AOParcelFileDescriptor); overload; virtual;
    procedure restoreEntity(para1: AABBackupDataInputStream); overload; virtual;
    procedure writeNewStateDescription(para1: AOParcelFileDescriptor); overload; virtual;
  end;

  ABBluetoothA2dp = class sealed external 'android.bluetooth' name 'BluetoothA2dp' (JLObject, ABBluetoothProfile)
  public
    const
      ACTION_CONNECTION_STATE_CHANGED = 'android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED';
      ACTION_PLAYING_STATE_CHANGED = 'android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED';
      STATE_PLAYING = 10;
      STATE_NOT_PLAYING = 11;
  public
    function getConnectedDevices(): JUList; overload; virtual;
    function getDevicesMatchingConnectionStates(para1: Arr1jint): JUList; overload; virtual;
    function getDevicesMatchingConnectionStates(var para1: array of jint): JUList; overload; virtual;
    function getConnectionState(para1: ABBluetoothDevice): jint; overload; virtual;
    function isA2dpPlaying(para1: ABBluetoothDevice): jboolean; overload; virtual;
  end;

  ABBluetoothAdapter = class sealed external 'android.bluetooth' name 'BluetoothAdapter' (JLObject)
  public
    const
      ERROR = -2147483648;
      ACTION_STATE_CHANGED = 'android.bluetooth.adapter.action.STATE_CHANGED';
      EXTRA_STATE = 'android.bluetooth.adapter.extra.STATE';
      EXTRA_PREVIOUS_STATE = 'android.bluetooth.adapter.extra.PREVIOUS_STATE';
      STATE_OFF = 10;
      STATE_TURNING_ON = 11;
      STATE_ON = 12;
      STATE_TURNING_OFF = 13;
      ACTION_REQUEST_DISCOVERABLE = 'android.bluetooth.adapter.action.REQUEST_DISCOVERABLE';
      EXTRA_DISCOVERABLE_DURATION = 'android.bluetooth.adapter.extra.DISCOVERABLE_DURATION';
      ACTION_REQUEST_ENABLE = 'android.bluetooth.adapter.action.REQUEST_ENABLE';
      ACTION_SCAN_MODE_CHANGED = 'android.bluetooth.adapter.action.SCAN_MODE_CHANGED';
      EXTRA_SCAN_MODE = 'android.bluetooth.adapter.extra.SCAN_MODE';
      EXTRA_PREVIOUS_SCAN_MODE = 'android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE';
      SCAN_MODE_NONE = 20;
      SCAN_MODE_CONNECTABLE = 21;
      SCAN_MODE_CONNECTABLE_DISCOVERABLE = 23;
      ACTION_DISCOVERY_STARTED = 'android.bluetooth.adapter.action.DISCOVERY_STARTED';
      ACTION_DISCOVERY_FINISHED = 'android.bluetooth.adapter.action.DISCOVERY_FINISHED';
      ACTION_LOCAL_NAME_CHANGED = 'android.bluetooth.adapter.action.LOCAL_NAME_CHANGED';
      EXTRA_LOCAL_NAME = 'android.bluetooth.adapter.extra.LOCAL_NAME';
      ACTION_CONNECTION_STATE_CHANGED = 'android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED';
      EXTRA_CONNECTION_STATE = 'android.bluetooth.adapter.extra.CONNECTION_STATE';
      EXTRA_PREVIOUS_CONNECTION_STATE = 'android.bluetooth.adapter.extra.PREVIOUS_CONNECTION_STATE';
      STATE_DISCONNECTED = 0;
      STATE_CONNECTING = 1;
      STATE_CONNECTED = 2;
      STATE_DISCONNECTING = 3;
  public
    class function getDefaultAdapter(): ABBluetoothAdapter; static; overload;
    function getRemoteDevice(para1: JLString): ABBluetoothDevice; overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    function getState(): jint; overload; virtual;
    function enable(): jboolean; overload; virtual;
    function disable(): jboolean; overload; virtual;
    function getAddress(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function setName(para1: JLString): jboolean; overload; virtual;
    function getScanMode(): jint; overload; virtual;
    function startDiscovery(): jboolean; overload; virtual;
    function cancelDiscovery(): jboolean; overload; virtual;
    function isDiscovering(): jboolean; overload; virtual;
    function getBondedDevices(): JUSet; overload; virtual;
    function getProfileConnectionState(para1: jint): jint; overload; virtual;
    function listenUsingRfcommWithServiceRecord(para1: JLString; para2: JUUUID): ABBluetoothServerSocket; overload; virtual;  // throws java.io.IOException
    function listenUsingInsecureRfcommWithServiceRecord(para1: JLString; para2: JUUUID): ABBluetoothServerSocket; overload; virtual;  // throws java.io.IOException
    function getProfileProxy(para1: ACContext; para2: ABBluetoothProfile.InnerServiceListener; para3: jint): jboolean; overload; virtual;
    procedure closeProfileProxy(para1: jint; para2: ABBluetoothProfile); overload; virtual;
    class function checkBluetoothAddress(para1: JLString): jboolean; static; overload;
  end;

  ABBluetoothHeadset = class sealed external 'android.bluetooth' name 'BluetoothHeadset' (JLObject, ABBluetoothProfile)
  public
    const
      ACTION_CONNECTION_STATE_CHANGED = 'android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED';
      ACTION_AUDIO_STATE_CHANGED = 'android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED';
      ACTION_VENDOR_SPECIFIC_HEADSET_EVENT = 'android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT';
      EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD = 'android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD';
      EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE = 'android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE';
      AT_CMD_TYPE_READ = 0;
      AT_CMD_TYPE_TEST = 1;
      AT_CMD_TYPE_SET = 2;
      AT_CMD_TYPE_BASIC = 3;
      AT_CMD_TYPE_ACTION = 4;
      EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS = 'android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_ARGS';
      VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY = 'android.bluetooth.headset.intent.category.companyid';
      STATE_AUDIO_DISCONNECTED = 10;
      STATE_AUDIO_CONNECTING = 11;
      STATE_AUDIO_CONNECTED = 12;
  public
    function getConnectedDevices(): JUList; overload; virtual;
    function getDevicesMatchingConnectionStates(para1: Arr1jint): JUList; overload; virtual;
    function getDevicesMatchingConnectionStates(var para1: array of jint): JUList; overload; virtual;
    function getConnectionState(para1: ABBluetoothDevice): jint; overload; virtual;
    function startVoiceRecognition(para1: ABBluetoothDevice): jboolean; overload; virtual;
    function stopVoiceRecognition(para1: ABBluetoothDevice): jboolean; overload; virtual;
    function isAudioConnected(para1: ABBluetoothDevice): jboolean; overload; virtual;
  end;

  ABBluetoothHealth = class sealed external 'android.bluetooth' name 'BluetoothHealth' (JLObject, ABBluetoothProfile)
  public
    const
      SOURCE_ROLE = 1;
      SINK_ROLE = 2;
      CHANNEL_TYPE_RELIABLE = 10;
      CHANNEL_TYPE_STREAMING = 11;
      STATE_CHANNEL_DISCONNECTED = 0;
      STATE_CHANNEL_CONNECTING = 1;
      STATE_CHANNEL_CONNECTED = 2;
      STATE_CHANNEL_DISCONNECTING = 3;
      APP_CONFIG_REGISTRATION_SUCCESS = 0;
      APP_CONFIG_REGISTRATION_FAILURE = 1;
      APP_CONFIG_UNREGISTRATION_SUCCESS = 2;
      APP_CONFIG_UNREGISTRATION_FAILURE = 3;
  public
    function registerSinkAppConfiguration(para1: JLString; para2: jint; para3: ABBluetoothHealthCallback): jboolean; overload; virtual;
    function unregisterAppConfiguration(para1: ABBluetoothHealthAppConfiguration): jboolean; overload; virtual;
    function connectChannelToSource(para1: ABBluetoothDevice; para2: ABBluetoothHealthAppConfiguration): jboolean; overload; virtual;
    function disconnectChannel(para1: ABBluetoothDevice; para2: ABBluetoothHealthAppConfiguration; para3: jint): jboolean; overload; virtual;
    function getMainChannelFd(para1: ABBluetoothDevice; para2: ABBluetoothHealthAppConfiguration): AOParcelFileDescriptor; overload; virtual;
    function getConnectionState(para1: ABBluetoothDevice): jint; overload; virtual;
    function getConnectedDevices(): JUList; overload; virtual;
    function getDevicesMatchingConnectionStates(para1: Arr1jint): JUList; overload; virtual;
    function getDevicesMatchingConnectionStates(var para1: array of jint): JUList; overload; virtual;
  end;

  AAADeviceAdminReceiver = class external 'android.app.admin' name 'DeviceAdminReceiver' (ACBroadcastReceiver)
  public
    const
      ACTION_DEVICE_ADMIN_ENABLED = 'android.app.action.DEVICE_ADMIN_ENABLED';
      ACTION_DEVICE_ADMIN_DISABLE_REQUESTED = 'android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED';
      EXTRA_DISABLE_WARNING = 'android.app.extra.DISABLE_WARNING';
      ACTION_DEVICE_ADMIN_DISABLED = 'android.app.action.DEVICE_ADMIN_DISABLED';
      ACTION_PASSWORD_CHANGED = 'android.app.action.ACTION_PASSWORD_CHANGED';
      ACTION_PASSWORD_FAILED = 'android.app.action.ACTION_PASSWORD_FAILED';
      ACTION_PASSWORD_SUCCEEDED = 'android.app.action.ACTION_PASSWORD_SUCCEEDED';
      ACTION_PASSWORD_EXPIRING = 'android.app.action.ACTION_PASSWORD_EXPIRING';
      DEVICE_ADMIN_META_DATA = 'android.app.device_admin';
  public
    constructor create(); overload;
    function getManager(para1: ACContext): AAADevicePolicyManager; overload; virtual;
    function getWho(para1: ACContext): ACComponentName; overload; virtual;
    procedure onEnabled(para1: ACContext; para2: ACIntent); overload; virtual;
    function onDisableRequested(para1: ACContext; para2: ACIntent): JLCharSequence; overload; virtual;
    procedure onDisabled(para1: ACContext; para2: ACIntent); overload; virtual;
    procedure onPasswordChanged(para1: ACContext; para2: ACIntent); overload; virtual;
    procedure onPasswordFailed(para1: ACContext; para2: ACIntent); overload; virtual;
    procedure onPasswordSucceeded(para1: ACContext; para2: ACIntent); overload; virtual;
    procedure onPasswordExpiring(para1: ACContext; para2: ACIntent); overload; virtual;
    procedure onReceive(para1: ACContext; para2: ACIntent); overload; virtual;
  end;

  AAAppWidgetProvider = class external 'android.appwidget' name 'AppWidgetProvider' (ACBroadcastReceiver)
  public
    constructor create(); overload;
    procedure onReceive(para1: ACContext; para2: ACIntent); overload; virtual;
    procedure onUpdate(para1: ACContext; para2: AAAppWidgetManager; para3: Arr1jint); overload; virtual;
    procedure onUpdate(para1: ACContext; para2: AAAppWidgetManager; var para3: array of jint); overload; virtual;
    procedure onDeleted(para1: ACContext; para2: Arr1jint); overload; virtual;
    procedure onDeleted(para1: ACContext; var para2: array of jint); overload; virtual;
    procedure onEnabled(para1: ACContext); overload; virtual;
    procedure onDisabled(para1: ACContext); overload; virtual;
  end;

  ACComponentCallbacks2 = interface external 'android.content' name 'ComponentCallbacks2' (ACComponentCallbacks)
    const
      TRIM_MEMORY_COMPLETE = 80;
      TRIM_MEMORY_MODERATE = 60;
      TRIM_MEMORY_BACKGROUND = 40;
      TRIM_MEMORY_UI_HIDDEN = 20;
    procedure onTrimMemory(para1: jint); overload;
  end;

  ATMMockContentResolver = class external 'android.test.mock' name 'MockContentResolver' (ACContentResolver)
  public
    constructor create(); overload;
    procedure addProvider(para1: JLString; para2: ACContentProvider); overload; virtual;
    procedure notifyChange(para1: ANUri; para2: ADContentObserver; para3: jboolean); overload; virtual;
  end;

  AASearchManager = class external 'android.app' name 'SearchManager' (JLObject, ACDialogInterface.InnerOnDismissListener, ACDialogInterface.InnerOnCancelListener)
  public
    type
      InnerOnCancelListener = interface;
      Arr1InnerOnCancelListener = array of InnerOnCancelListener;
      Arr2InnerOnCancelListener = array of Arr1InnerOnCancelListener;
      Arr3InnerOnCancelListener = array of Arr2InnerOnCancelListener;
      InnerOnDismissListener = interface;
      Arr1InnerOnDismissListener = array of InnerOnDismissListener;
      Arr2InnerOnDismissListener = array of Arr1InnerOnDismissListener;
      Arr3InnerOnDismissListener = array of Arr2InnerOnDismissListener;
      InnerOnCancelListener = interface external 'android.app' name 'OnCancelListener' 
        procedure onCancel(); overload;
      end;

      InnerOnDismissListener = interface external 'android.app' name 'OnDismissListener' 
        procedure onDismiss(); overload;
      end;

  public
    const
      MENU_KEY = 115;
      MENU_KEYCODE = 47;
      QUERY = 'query';
      USER_QUERY = 'user_query';
      APP_DATA = 'app_data';
      ACTION_KEY = 'action_key';
      EXTRA_DATA_KEY = 'intent_extra_data_key';
      EXTRA_SELECT_QUERY = 'select_query';
      EXTRA_NEW_SEARCH = 'new_search';
      EXTRA_WEB_SEARCH_PENDINGINTENT = 'web_search_pendingintent';
      CURSOR_EXTRA_KEY_IN_PROGRESS = 'in_progress';
      ACTION_MSG = 'action_msg';
      FLAG_QUERY_REFINEMENT = 1;
      SUGGEST_URI_PATH_QUERY = 'search_suggest_query';
      SUGGEST_MIME_TYPE = 'vnd.android.cursor.dir/vnd.android.search.suggest';
      SUGGEST_URI_PATH_SHORTCUT = 'search_suggest_shortcut';
      SHORTCUT_MIME_TYPE = 'vnd.android.cursor.item/vnd.android.search.suggest';
      SUGGEST_COLUMN_FORMAT = 'suggest_format';
      SUGGEST_COLUMN_TEXT_1 = 'suggest_text_1';
      SUGGEST_COLUMN_TEXT_2 = 'suggest_text_2';
      SUGGEST_COLUMN_TEXT_2_URL = 'suggest_text_2_url';
      SUGGEST_COLUMN_ICON_1 = 'suggest_icon_1';
      SUGGEST_COLUMN_ICON_2 = 'suggest_icon_2';
      SUGGEST_COLUMN_INTENT_ACTION = 'suggest_intent_action';
      SUGGEST_COLUMN_INTENT_DATA = 'suggest_intent_data';
      SUGGEST_COLUMN_INTENT_EXTRA_DATA = 'suggest_intent_extra_data';
      SUGGEST_COLUMN_INTENT_DATA_ID = 'suggest_intent_data_id';
      SUGGEST_COLUMN_QUERY = 'suggest_intent_query';
      SUGGEST_COLUMN_SHORTCUT_ID = 'suggest_shortcut_id';
      SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING = 'suggest_spinner_while_refreshing';
      SUGGEST_COLUMN_FLAGS = 'suggest_flags';
      SUGGEST_COLUMN_LAST_ACCESS_HINT = 'suggest_last_access_hint';
      SUGGEST_NEVER_MAKE_SHORTCUT = '_-1';
      SUGGEST_PARAMETER_LIMIT = 'limit';
      INTENT_ACTION_GLOBAL_SEARCH = 'android.search.action.GLOBAL_SEARCH';
      INTENT_ACTION_SEARCH_SETTINGS = 'android.search.action.SEARCH_SETTINGS';
      INTENT_ACTION_WEB_SEARCH_SETTINGS = 'android.search.action.WEB_SEARCH_SETTINGS';
      INTENT_ACTION_SEARCHABLES_CHANGED = 'android.search.action.SEARCHABLES_CHANGED';
      INTENT_ACTION_SEARCH_SETTINGS_CHANGED = 'android.search.action.SETTINGS_CHANGED';
  public
    procedure startSearch(para1: JLString; para2: jboolean; para3: ACComponentName; para4: AOBundle; para5: jboolean); overload; virtual;
    procedure triggerSearch(para1: JLString; para2: ACComponentName; para3: AOBundle); overload; virtual;
    procedure stopSearch(); overload; virtual;
    procedure setOnDismissListener(para1: AASearchManager.InnerOnDismissListener); overload; virtual;
    procedure setOnCancelListener(para1: AASearchManager.InnerOnCancelListener); overload; virtual;
    procedure onCancel(para1: ACDialogInterface); overload; virtual;
    procedure onDismiss(para1: ACDialogInterface); overload; virtual;
    function getSearchableInfo(para1: ACComponentName): AASearchableInfo; overload; virtual;
    function getSearchablesInGlobalSearch(): JUList; overload; virtual;
  end;

  ATMMockDialogInterface = class external 'android.test.mock' name 'MockDialogInterface' (JLObject, ACDialogInterface)
  public
    constructor create(); overload;
    procedure cancel(); overload; virtual;
    procedure dismiss(); overload; virtual;
  end;

  ACAsyncTaskLoader = class abstract external 'android.content' name 'AsyncTaskLoader' (ACLoader)
  public
    constructor create(para1: ACContext); overload;
    procedure setUpdateThrottle(para1: jlong); overload; virtual;
  strict protected
    procedure onForceLoad(); overload; virtual;
  public
    function cancelLoad(): jboolean; overload; virtual;
    procedure onCanceled(para1: JLObject); overload; virtual;
    function loadInBackground(): JLObject; overload; virtual; abstract;
  strict protected
    function onLoadInBackground(): JLObject; overload; virtual;
  public
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual;
  end;

  AMMediaScannerConnection = class external 'android.media' name 'MediaScannerConnection' (JLObject, ACServiceConnection)
  public
    type
      InnerOnScanCompletedListener = interface;
      Arr1InnerOnScanCompletedListener = array of InnerOnScanCompletedListener;
      Arr2InnerOnScanCompletedListener = array of Arr1InnerOnScanCompletedListener;
      Arr3InnerOnScanCompletedListener = array of Arr2InnerOnScanCompletedListener;
      InnerMediaScannerConnectionClient = interface;
      Arr1InnerMediaScannerConnectionClient = array of InnerMediaScannerConnectionClient;
      Arr2InnerMediaScannerConnectionClient = array of Arr1InnerMediaScannerConnectionClient;
      Arr3InnerMediaScannerConnectionClient = array of Arr2InnerMediaScannerConnectionClient;
      InnerOnScanCompletedListener = interface external 'android.media' name 'OnScanCompletedListener' 
        procedure onScanCompleted(para1: JLString; para2: ANUri); overload;
      end;

      InnerMediaScannerConnectionClient = interface external 'android.media' name 'MediaScannerConnectionClient' (AMMediaScannerConnection.InnerOnScanCompletedListener)
        procedure onMediaScannerConnected(); overload;
        procedure onScanCompleted(para1: JLString; para2: ANUri); overload;
      end;

  public
    constructor create(para1: ACContext; para2: AMMediaScannerConnection.InnerMediaScannerConnectionClient); overload;
    procedure connect(); overload; virtual;
    procedure disconnect(); overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    procedure scanFile(para1: JLString; para2: JLString); overload; virtual;
    class procedure scanFile(para1: ACContext; para2: Arr1JLString; para3: Arr1JLString; para4: AMMediaScannerConnection.InnerOnScanCompletedListener); static; overload;
    class procedure scanFile(para1: ACContext; var para2: array of JLString; var para3: array of JLString; para4: AMMediaScannerConnection.InnerOnScanCompletedListener); static; overload;
    procedure onServiceConnected(para1: ACComponentName; para2: AOIBinder); overload; virtual;
    procedure onServiceDisconnected(para1: ACComponentName); overload; virtual;
  end;

  ADCrossProcessCursor = interface external 'android.database' name 'CrossProcessCursor' (ADCursor)
    function getWindow(): ADCursorWindow; overload;
    procedure fillWindow(para1: jint; para2: ADCursorWindow); overload;
    function onMove(para1: jint; para2: jint): jboolean; overload;
  end;

  ADCursorWrapper = class external 'android.database' name 'CursorWrapper' (JLObject, ADCursor)
  public
    constructor create(para1: ADCursor); overload;
    function getWrappedCursor(): ADCursor; overload; virtual;
    procedure close(); overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    function getCount(): jint; overload; virtual;
    procedure deactivate(); overload; virtual;
    function moveToFirst(): jboolean; overload; virtual;
    function getColumnCount(): jint; overload; virtual;
    function getColumnIndex(para1: JLString): jint; overload; virtual;
    function getColumnIndexOrThrow(para1: JLString): jint; overload; virtual;  // throws java.lang.IllegalArgumentException
    function getColumnName(para1: jint): JLString; overload; virtual;
    function getColumnNames(): Arr1JLString; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;
    procedure copyStringToBuffer(para1: jint; para2: ADCharArrayBuffer); overload; virtual;
    function getBlob(para1: jint): Arr1jbyte; overload; virtual;
    function getWantsAllOnMoveCalls(): jboolean; overload; virtual;
    function isAfterLast(): jboolean; overload; virtual;
    function isBeforeFirst(): jboolean; overload; virtual;
    function isFirst(): jboolean; overload; virtual;
    function isLast(): jboolean; overload; virtual;
    function getType(para1: jint): jint; overload; virtual;
    function isNull(para1: jint): jboolean; overload; virtual;
    function moveToLast(): jboolean; overload; virtual;
    function move(para1: jint): jboolean; overload; virtual;
    function moveToPosition(para1: jint): jboolean; overload; virtual;
    function moveToNext(): jboolean; overload; virtual;
    function getPosition(): jint; overload; virtual;
    function moveToPrevious(): jboolean; overload; virtual;
    procedure registerContentObserver(para1: ADContentObserver); overload; virtual;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    function requery(): jboolean; overload; virtual;
    function respond(para1: AOBundle): AOBundle; overload; virtual;
    procedure setNotificationUri(para1: ACContentResolver; para2: ANUri); overload; virtual;
    procedure unregisterContentObserver(para1: ADContentObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
  end;

  ATMMockCursor = class external 'android.test.mock' name 'MockCursor' (JLObject, ADCursor)
  public
    constructor create(); overload;
    function getColumnCount(): jint; overload; virtual;
    function getColumnIndex(para1: JLString): jint; overload; virtual;
    function getColumnIndexOrThrow(para1: JLString): jint; overload; virtual;
    function getColumnName(para1: jint): JLString; overload; virtual;
    function getColumnNames(): Arr1JLString; overload; virtual;
    function getCount(): jint; overload; virtual;
    function isNull(para1: jint): jboolean; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function getBlob(para1: jint): Arr1jbyte; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    function getPosition(): jint; overload; virtual;
    function isAfterLast(): jboolean; overload; virtual;
    function isBeforeFirst(): jboolean; overload; virtual;
    function isFirst(): jboolean; overload; virtual;
    function isLast(): jboolean; overload; virtual;
    function move(para1: jint): jboolean; overload; virtual;
    function moveToFirst(): jboolean; overload; virtual;
    function moveToLast(): jboolean; overload; virtual;
    function moveToNext(): jboolean; overload; virtual;
    function moveToPrevious(): jboolean; overload; virtual;
    function moveToPosition(para1: jint): jboolean; overload; virtual;
    procedure copyStringToBuffer(para1: jint; para2: ADCharArrayBuffer); overload; virtual;
    procedure deactivate(); overload; virtual;
    procedure close(); overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    function requery(): jboolean; overload; virtual;
    procedure registerContentObserver(para1: ADContentObserver); overload; virtual;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    function respond(para1: AOBundle): AOBundle; overload; virtual;
    function getWantsAllOnMoveCalls(): jboolean; overload; virtual;
    procedure setNotificationUri(para1: ACContentResolver; para2: ANUri); overload; virtual;
    procedure unregisterContentObserver(para1: ADContentObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    function getType(para1: jint): jint; overload; virtual;
  end;

  ADDefaultDatabaseErrorHandler = class sealed external 'android.database' name 'DefaultDatabaseErrorHandler' (JLObject, ADDatabaseErrorHandler)
  public
    constructor create(); overload;
    procedure onCorruption(para1: ADSSQLiteDatabase); overload; virtual;
  end;

  ADContentObservable = class external 'android.database' name 'ContentObservable' (ADObservable)
  public
    constructor create(); overload;
    procedure registerObserver(para1: ADContentObserver); overload; virtual;
    procedure dispatchChange(para1: jboolean); overload; virtual;
    procedure notifyChange(para1: jboolean); overload; virtual;
    procedure registerObserver(para1: JLObject); overload; virtual;
  end;

  ADDataSetObservable = class external 'android.database' name 'DataSetObservable' (ADObservable)
  public
    constructor create(); overload;
    procedure notifyChanged(); overload; virtual;
    procedure notifyInvalidated(); overload; virtual;
  end;

  ADSSQLiteDatabase = class external 'android.database.sqlite' name 'SQLiteDatabase' (ADSSQLiteClosable)
  public
    type
      InnerCursorFactory = interface;
      Arr1InnerCursorFactory = array of InnerCursorFactory;
      Arr2InnerCursorFactory = array of Arr1InnerCursorFactory;
      Arr3InnerCursorFactory = array of Arr2InnerCursorFactory;
      InnerCursorFactory = interface external 'android.database.sqlite' name 'CursorFactory' 
        function newCursor(para1: ADSSQLiteDatabase; para2: ADSSQLiteCursorDriver; para3: JLString; para4: ADSSQLiteQuery): ADCursor; overload;
      end;

  public
    const
      CONFLICT_ROLLBACK = 1;
      CONFLICT_ABORT = 2;
      CONFLICT_FAIL = 3;
      CONFLICT_IGNORE = 4;
      CONFLICT_REPLACE = 5;
      CONFLICT_NONE = 0;
      SQLITE_MAX_LIKE_PATTERN_LENGTH = 50000;
      OPEN_READWRITE = 0;
      OPEN_READONLY = 1;
      NO_LOCALIZED_COLLATORS = 16;
      CREATE_IF_NECESSARY = 268435456;
      MAX_SQL_CACHE_SIZE = 100;
  strict protected
    procedure onAllReferencesReleased(); overload; virtual;
  public
    class function releaseMemory(): jint; static; overload;
    procedure setLockingEnabled(para1: jboolean); overload; virtual;
    procedure beginTransaction(); overload; virtual;
    procedure beginTransactionNonExclusive(); overload; virtual;
    procedure beginTransactionWithListener(para1: ADSSQLiteTransactionListener); overload; virtual;
    procedure beginTransactionWithListenerNonExclusive(para1: ADSSQLiteTransactionListener); overload; virtual;
    procedure endTransaction(); overload; virtual;
    procedure setTransactionSuccessful(); overload; virtual;
    function inTransaction(): jboolean; overload; virtual;
    function isDbLockedByCurrentThread(): jboolean; overload; virtual;
    function isDbLockedByOtherThreads(): jboolean; overload; virtual;
    function yieldIfContended(): jboolean; overload; virtual;
    function yieldIfContendedSafely(): jboolean; overload; virtual;
    function yieldIfContendedSafely(para1: jlong): jboolean; overload; virtual;
    function getSyncedTables(): JUMap; overload; virtual;
    class function openDatabase(para1: JLString; para2: ADSSQLiteDatabase.InnerCursorFactory; para3: jint): ADSSQLiteDatabase; static; overload;
    class function openDatabase(para1: JLString; para2: ADSSQLiteDatabase.InnerCursorFactory; para3: jint; para4: ADDatabaseErrorHandler): ADSSQLiteDatabase; static; overload;
    class function openOrCreateDatabase(para1: JIFile; para2: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; static; overload;
    class function openOrCreateDatabase(para1: JLString; para2: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; static; overload;
    class function openOrCreateDatabase(para1: JLString; para2: ADSSQLiteDatabase.InnerCursorFactory; para3: ADDatabaseErrorHandler): ADSSQLiteDatabase; static; overload;
    class function create_(para1: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; static; external name 'create'; overload;
    procedure close(); overload; virtual;
    function getVersion(): jint; overload; virtual;
    procedure setVersion(para1: jint); overload; virtual;
    function getMaximumSize(): jlong; overload; virtual;
    function setMaximumSize(para1: jlong): jlong; overload; virtual;
    function getPageSize(): jlong; overload; virtual;
    procedure setPageSize(para1: jlong); overload; virtual;
    procedure markTableSyncable(para1: JLString; para2: JLString); overload; virtual;
    procedure markTableSyncable(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    class function findEditTable(para1: JLString): JLString; static; overload;
    function compileStatement(para1: JLString): ADSSQLiteStatement; overload; virtual;  // throws android.database.SQLException
    function query(para1: jboolean; para2: JLString; para3: Arr1JLString; para4: JLString; para5: Arr1JLString; para6: JLString; para7: JLString; para8: JLString; para9: JLString): ADCursor; overload; virtual;
    function query(para1: jboolean; para2: JLString; var para3: array of JLString; para4: JLString; var para5: array of JLString; para6: JLString; para7: JLString; para8: JLString; para9: JLString): ADCursor; overload; virtual;
    function queryWithFactory(para1: ADSSQLiteDatabase.InnerCursorFactory; para2: jboolean; para3: JLString; para4: Arr1JLString; para5: JLString; para6: Arr1JLString; para7: JLString; para8: JLString; para9: JLString; para10: JLString): ADCursor; overload; virtual;
    function queryWithFactory(para1: ADSSQLiteDatabase.InnerCursorFactory; para2: jboolean; para3: JLString; var para4: array of JLString; para5: JLString; var para6: array of JLString; para7: JLString; para8: JLString; para9: JLString; para10: JLString): ADCursor; overload; virtual;
    function query(para1: JLString; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString; para6: JLString; para7: JLString): ADCursor; overload; virtual;
    function query(para1: JLString; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString; para6: JLString; para7: JLString): ADCursor; overload; virtual;
    function query(para1: JLString; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString): ADCursor; overload; virtual;
    function query(para1: JLString; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString): ADCursor; overload; virtual;
    function rawQuery(para1: JLString; para2: Arr1JLString): ADCursor; overload; virtual;
    function rawQuery(para1: JLString; var para2: array of JLString): ADCursor; overload; virtual;
    function rawQueryWithFactory(para1: ADSSQLiteDatabase.InnerCursorFactory; para2: JLString; para3: Arr1JLString; para4: JLString): ADCursor; overload; virtual;
    function rawQueryWithFactory(para1: ADSSQLiteDatabase.InnerCursorFactory; para2: JLString; var para3: array of JLString; para4: JLString): ADCursor; overload; virtual;
    function insert(para1: JLString; para2: JLString; para3: ACContentValues): jlong; overload; virtual;
    function insertOrThrow(para1: JLString; para2: JLString; para3: ACContentValues): jlong; overload; virtual;  // throws android.database.SQLException
    function replace(para1: JLString; para2: JLString; para3: ACContentValues): jlong; overload; virtual;
    function replaceOrThrow(para1: JLString; para2: JLString; para3: ACContentValues): jlong; overload; virtual;  // throws android.database.SQLException
    function insertWithOnConflict(para1: JLString; para2: JLString; para3: ACContentValues; para4: jint): jlong; overload; virtual;
    function delete(para1: JLString; para2: JLString; para3: Arr1JLString): jint; overload; virtual;
    function delete(para1: JLString; para2: JLString; var para3: array of JLString): jint; overload; virtual;
    function update(para1: JLString; para2: ACContentValues; para3: JLString; para4: Arr1JLString): jint; overload; virtual;
    function update(para1: JLString; para2: ACContentValues; para3: JLString; var para4: array of JLString): jint; overload; virtual;
    function updateWithOnConflict(para1: JLString; para2: ACContentValues; para3: JLString; para4: Arr1JLString; para5: jint): jint; overload; virtual;
    function updateWithOnConflict(para1: JLString; para2: ACContentValues; para3: JLString; var para4: array of JLString; para5: jint): jint; overload; virtual;
    procedure execSQL(para1: JLString); overload; virtual;  // throws android.database.SQLException
    procedure execSQL(para1: JLString; para2: Arr1JLObject); overload; virtual;  // throws android.database.SQLException
    procedure execSQL(para1: JLString; var para2: array of JLObject); overload; virtual;  // throws android.database.SQLException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function isReadOnly(): jboolean; overload; virtual;
    function isOpen(): jboolean; overload; virtual;
    function needUpgrade(para1: jint): jboolean; overload; virtual;
    function getPath(): JLString; overload; virtual; final;
    procedure setLocale(para1: JULocale); overload; virtual;
    procedure setMaxSqlCacheSize(para1: jint); overload; virtual;
    function enableWriteAheadLogging(): jboolean; overload; virtual;
    function getAttachedDbs(): JUList; overload; virtual;
    function isDatabaseIntegrityOk(): jboolean; overload; virtual;
  end;

  ADSSQLiteProgram = class abstract external 'android.database.sqlite' name 'SQLiteProgram' (ADSSQLiteClosable)
  strict protected
    var
      fmDatabase: ADSSQLiteDatabase; external name 'mDatabase';
      fnHandle: jint; external name 'nHandle';
      fnStatement: jint; external name 'nStatement';
  strict protected
    procedure onAllReferencesReleased(); overload; virtual;
    procedure onAllReferencesReleasedFromContainer(); overload; virtual;
  public
    function getUniqueId(): jint; overload; virtual; final;
  strict protected
    procedure compile(para1: JLString; para2: jboolean); overload; virtual;
  public
    procedure bindNull(para1: jint); overload; virtual;
    procedure bindLong(para1: jint; para2: jlong); overload; virtual;
    procedure bindDouble(para1: jint; para2: jdouble); overload; virtual;
    procedure bindString(para1: jint; para2: JLString); overload; virtual;
    procedure bindBlob(para1: jint; para2: Arr1jbyte); overload; virtual;
    procedure bindBlob(para1: jint; var para2: array of jbyte); overload; virtual;
    procedure clearBindings(); overload; virtual;
    procedure close(); overload; virtual;
    procedure bindAllArgsAsStrings(para1: Arr1JLString); overload; virtual;
    procedure bindAllArgsAsStrings(var para1: array of JLString); overload; virtual;
  strict protected
    procedure native_compile(para1: JLString); overload; virtual; final;
    procedure native_finalize(); overload; virtual; final;
    procedure native_bind_null(para1: jint); overload; virtual; final;
    procedure native_bind_long(para1: jint; para2: jlong); overload; virtual; final;
    procedure native_bind_double(para1: jint; para2: jdouble); overload; virtual; final;
    procedure native_bind_string(para1: jint; para2: JLString); overload; virtual; final;
    procedure native_bind_blob(para1: jint; para2: Arr1jbyte); overload; virtual; final;
    procedure native_bind_blob(para1: jint; var para2: array of jbyte); overload; virtual; final;
  end;

  ADDrmErrorEvent = class external 'android.drm' name 'DrmErrorEvent' (ADDrmEvent)
  public
    const
      TYPE_RIGHTS_NOT_INSTALLED = 2001;
      TYPE_RIGHTS_RENEWAL_NOT_ALLOWED = 2002;
      TYPE_NOT_SUPPORTED = 2003;
      TYPE_OUT_OF_MEMORY = 2004;
      TYPE_NO_INTERNET_CONNECTION = 2005;
      TYPE_PROCESS_DRM_INFO_FAILED = 2006;
      TYPE_REMOVE_ALL_RIGHTS_FAILED = 2007;
      TYPE_ACQUIRE_DRM_INFO_FAILED = 2008;
  public
    constructor create(para1: jint; para2: jint; para3: JLString); overload;
    constructor create(para1: jint; para2: jint; para3: JLString; para4: JUHashMap); overload;
  end;

  ADDrmInfoEvent = class external 'android.drm' name 'DrmInfoEvent' (ADDrmEvent)
  public
    const
      TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT = 1;
      TYPE_REMOVE_RIGHTS = 2;
      TYPE_RIGHTS_INSTALLED = 3;
      TYPE_WAIT_FOR_RIGHTS = 4;
      TYPE_ACCOUNT_ALREADY_REGISTERED = 5;
      TYPE_RIGHTS_REMOVED = 6;
  public
    constructor create(para1: jint; para2: jint; para3: JLString); overload;
    constructor create(para1: jint; para2: jint; para3: JLString; para4: JUHashMap); overload;
  end;

  AGColorMatrixColorFilter = class external 'android.graphics' name 'ColorMatrixColorFilter' (AGColorFilter)
  public
    constructor create(para1: AGColorMatrix); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
  end;

  AGLightingColorFilter = class external 'android.graphics' name 'LightingColorFilter' (AGColorFilter)
  public
    constructor create(para1: jint; para2: jint); overload;
  end;

  AGPaintFlagsDrawFilter = class external 'android.graphics' name 'PaintFlagsDrawFilter' (AGDrawFilter)
  public
    constructor create(para1: jint; para2: jint); overload;
  end;

  AGBlurMaskFilter = class external 'android.graphics' name 'BlurMaskFilter' (AGMaskFilter)
  public
    type
      InnerBlur = class;
      Arr1InnerBlur = array of InnerBlur;
      Arr2InnerBlur = array of Arr1InnerBlur;
      Arr3InnerBlur = array of Arr2InnerBlur;
      InnerBlur = class sealed external 'android.graphics' name 'Blur' (JLEnum)
      public
        final class var
          fINNER: AGBlurMaskFilter.InnerBlur; external name 'INNER';
          fNORMAL: AGBlurMaskFilter.InnerBlur; external name 'NORMAL';
          fOUTER: AGBlurMaskFilter.InnerBlur; external name 'OUTER';
          fSOLID: AGBlurMaskFilter.InnerBlur; external name 'SOLID';
      public
        class function values(): AGBlurMaskFilter.Arr1InnerBlur; static; overload;
        class function valueOf(para1: JLString): AGBlurMaskFilter.InnerBlur; static; overload;
      end;

  public
    constructor create(para1: jfloat; para2: AGBlurMaskFilter.InnerBlur); overload;
  end;

  AGEmbossMaskFilter = class external 'android.graphics' name 'EmbossMaskFilter' (AGMaskFilter)
  public
    constructor create(para1: Arr1jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    constructor create(const para1: array of jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
  end;

  AGComposePathEffect = class external 'android.graphics' name 'ComposePathEffect' (AGPathEffect)
  public
    constructor create(para1: AGPathEffect; para2: AGPathEffect); overload;
  end;

  AGCornerPathEffect = class external 'android.graphics' name 'CornerPathEffect' (AGPathEffect)
  public
    constructor create(para1: jfloat); overload;
  end;

  AGDashPathEffect = class external 'android.graphics' name 'DashPathEffect' (AGPathEffect)
  public
    constructor create(para1: Arr1jfloat; para2: jfloat); overload;
    constructor create(const para1: array of jfloat; para2: jfloat); overload;
  end;

  AGDiscretePathEffect = class external 'android.graphics' name 'DiscretePathEffect' (AGPathEffect)
  public
    constructor create(para1: jfloat; para2: jfloat); overload;
  end;

  AGPathDashPathEffect = class external 'android.graphics' name 'PathDashPathEffect' (AGPathEffect)
  public
    type
      InnerStyle = class;
      Arr1InnerStyle = array of InnerStyle;
      Arr2InnerStyle = array of Arr1InnerStyle;
      Arr3InnerStyle = array of Arr2InnerStyle;
      InnerStyle = class sealed external 'android.graphics' name 'Style' (JLEnum)
      public
        final class var
          fMORPH: AGPathDashPathEffect.InnerStyle; external name 'MORPH';
          fROTATE: AGPathDashPathEffect.InnerStyle; external name 'ROTATE';
          fTRANSLATE: AGPathDashPathEffect.InnerStyle; external name 'TRANSLATE';
      public
        class function values(): AGPathDashPathEffect.Arr1InnerStyle; static; overload;
        class function valueOf(para1: JLString): AGPathDashPathEffect.InnerStyle; static; overload;
      end;

  public
    constructor create(para1: AGPath; para2: jfloat; para3: jfloat; para4: AGPathDashPathEffect.InnerStyle); overload;
  end;

  AGSumPathEffect = class external 'android.graphics' name 'SumPathEffect' (AGPathEffect)
  public
    constructor create(para1: AGPathEffect; para2: AGPathEffect); overload;
  end;

  AGLayerRasterizer = class external 'android.graphics' name 'LayerRasterizer' (AGRasterizer)
  public
    constructor create(); overload;
    procedure addLayer(para1: AGPaint; para2: jfloat; para3: jfloat); overload; virtual;
    procedure addLayer(para1: AGPaint); overload; virtual;
  end;

  AGAvoidXfermode = class external 'android.graphics' name 'AvoidXfermode' (AGXfermode)
  public
    type
      InnerMode = class;
      Arr1InnerMode = array of InnerMode;
      Arr2InnerMode = array of Arr1InnerMode;
      Arr3InnerMode = array of Arr2InnerMode;
      InnerMode = class sealed external 'android.graphics' name 'Mode' (JLEnum)
      public
        final class var
          fAVOID: AGAvoidXfermode.InnerMode; external name 'AVOID';
          fTARGET: AGAvoidXfermode.InnerMode; external name 'TARGET';
      public
        class function values(): AGAvoidXfermode.Arr1InnerMode; static; overload;
        class function valueOf(para1: JLString): AGAvoidXfermode.InnerMode; static; overload;
      end;

  public
    constructor create(para1: jint; para2: jint; para3: AGAvoidXfermode.InnerMode); overload;
  end;

  AGPixelXorXfermode = class external 'android.graphics' name 'PixelXorXfermode' (AGXfermode)
  public
    constructor create(para1: jint); overload;
  end;

  AVOrientationListener = class abstract external 'android.view' name 'OrientationListener' (JLObject, AHSensorListener)
  public
    const
      ORIENTATION_UNKNOWN = -1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    procedure enable(); overload; virtual;
    procedure disable(); overload; virtual;
    procedure onAccuracyChanged(para1: jint; para2: jint); overload; virtual;
    procedure onSensorChanged(para1: jint; para2: Arr1jfloat); overload; virtual;
    procedure onSensorChanged(para1: jint; var para2: array of jfloat); overload; virtual;
    procedure onOrientationChanged(para1: jint); overload; virtual; abstract;
  end;

  ALLocationManager = class external 'android.location' name 'LocationManager' (JLObject)
  public
    const
      NETWORK_PROVIDER = 'network';
      GPS_PROVIDER = 'gps';
      PASSIVE_PROVIDER = 'passive';
      KEY_PROXIMITY_ENTERING = 'entering';
      KEY_STATUS_CHANGED = 'status';
      KEY_PROVIDER_ENABLED = 'providerEnabled';
      KEY_LOCATION_CHANGED = 'location';
      PROVIDERS_CHANGED_ACTION = 'android.location.PROVIDERS_CHANGED';
  public
    function getAllProviders(): JUList; overload; virtual;
    function getProviders(para1: jboolean): JUList; overload; virtual;
    function getProvider(para1: JLString): ALLocationProvider; overload; virtual;
    function getProviders(para1: ALCriteria; para2: jboolean): JUList; overload; virtual;
    function getBestProvider(para1: ALCriteria; para2: jboolean): JLString; overload; virtual;
    procedure requestLocationUpdates(para1: JLString; para2: jlong; para3: jfloat; para4: ALLocationListener); overload; virtual;
    procedure requestLocationUpdates(para1: JLString; para2: jlong; para3: jfloat; para4: ALLocationListener; para5: AOLooper); overload; virtual;
    procedure requestLocationUpdates(para1: jlong; para2: jfloat; para3: ALCriteria; para4: ALLocationListener; para5: AOLooper); overload; virtual;
    procedure requestLocationUpdates(para1: JLString; para2: jlong; para3: jfloat; para4: AAPendingIntent); overload; virtual;
    procedure requestLocationUpdates(para1: jlong; para2: jfloat; para3: ALCriteria; para4: AAPendingIntent); overload; virtual;
    procedure requestSingleUpdate(para1: JLString; para2: ALLocationListener; para3: AOLooper); overload; virtual;
    procedure requestSingleUpdate(para1: ALCriteria; para2: ALLocationListener; para3: AOLooper); overload; virtual;
    procedure requestSingleUpdate(para1: JLString; para2: AAPendingIntent); overload; virtual;
    procedure requestSingleUpdate(para1: ALCriteria; para2: AAPendingIntent); overload; virtual;
    procedure removeUpdates(para1: ALLocationListener); overload; virtual;
    procedure removeUpdates(para1: AAPendingIntent); overload; virtual;
    procedure addProximityAlert(para1: jdouble; para2: jdouble; para3: jfloat; para4: jlong; para5: AAPendingIntent); overload; virtual;
    procedure removeProximityAlert(para1: AAPendingIntent); overload; virtual;
    function isProviderEnabled(para1: JLString): jboolean; overload; virtual;
    function getLastKnownLocation(para1: JLString): ALLocation; overload; virtual;
    procedure addTestProvider(para1: JLString; para2: jboolean; para3: jboolean; para4: jboolean; para5: jboolean; para6: jboolean; para7: jboolean; para8: jboolean; para9: jint; para10: jint); overload; virtual;
    procedure removeTestProvider(para1: JLString); overload; virtual;
    procedure setTestProviderLocation(para1: JLString; para2: ALLocation); overload; virtual;
    procedure clearTestProviderLocation(para1: JLString); overload; virtual;
    procedure setTestProviderEnabled(para1: JLString; para2: jboolean); overload; virtual;
    procedure clearTestProviderEnabled(para1: JLString); overload; virtual;
    procedure setTestProviderStatus(para1: JLString; para2: jint; para3: AOBundle; para4: jlong); overload; virtual;
    procedure clearTestProviderStatus(para1: JLString); overload; virtual;
    function addGpsStatusListener(para1: ALGpsStatus.InnerListener): jboolean; overload; virtual;
    procedure removeGpsStatusListener(para1: ALGpsStatus.InnerListener); overload; virtual;
    function addNmeaListener(para1: ALGpsStatus.InnerNmeaListener): jboolean; overload; virtual;
    procedure removeNmeaListener(para1: ALGpsStatus.InnerNmeaListener); overload; virtual;
    function getGpsStatus(para1: ALGpsStatus): ALGpsStatus; overload; virtual;
    function sendExtraCommand(para1: JLString; para2: JLString; para3: AOBundle): jboolean; overload; virtual;
  end;

  AMABassBoost = class external 'android.media.audiofx' name 'BassBoost' (AMAAudioEffect)
  public
    type
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerOnParameterChangeListener = interface;
      Arr1InnerOnParameterChangeListener = array of InnerOnParameterChangeListener;
      Arr2InnerOnParameterChangeListener = array of Arr1InnerOnParameterChangeListener;
      Arr3InnerOnParameterChangeListener = array of Arr2InnerOnParameterChangeListener;
      InnerSettings = class external 'android.media.audiofx' name 'Settings' (JLObject)
      public
        var
          fstrength: jshort; external name 'strength';
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerOnParameterChangeListener = interface external 'android.media.audiofx' name 'OnParameterChangeListener' 
        procedure onParameterChange(para1: AMABassBoost; para2: jint; para3: jint; para4: jshort); overload;
      end;

  public
    const
      PARAM_STRENGTH_SUPPORTED = 0;
      PARAM_STRENGTH = 1;
  public
    constructor create(para1: jint; para2: jint); overload;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException, java.lang.RuntimeException
    function getStrengthSupported(): jboolean; overload; virtual;
    procedure setStrength(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getRoundedStrength(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setParameterListener(para1: AMABassBoost.InnerOnParameterChangeListener); overload; virtual;
    function getProperties(): AMABassBoost.InnerSettings; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setProperties(para1: AMABassBoost.InnerSettings); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
  end;

  AMAEnvironmentalReverb = class external 'android.media.audiofx' name 'EnvironmentalReverb' (AMAAudioEffect)
  public
    type
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerOnParameterChangeListener = interface;
      Arr1InnerOnParameterChangeListener = array of InnerOnParameterChangeListener;
      Arr2InnerOnParameterChangeListener = array of Arr1InnerOnParameterChangeListener;
      Arr3InnerOnParameterChangeListener = array of Arr2InnerOnParameterChangeListener;
      InnerSettings = class external 'android.media.audiofx' name 'Settings' (JLObject)
      public
        var
          froomLevel: jshort; external name 'roomLevel';
          froomHFLevel: jshort; external name 'roomHFLevel';
          fdecayTime: jint; external name 'decayTime';
          fdecayHFRatio: jshort; external name 'decayHFRatio';
          freflectionsLevel: jshort; external name 'reflectionsLevel';
          freflectionsDelay: jint; external name 'reflectionsDelay';
          freverbLevel: jshort; external name 'reverbLevel';
          freverbDelay: jint; external name 'reverbDelay';
          fdiffusion: jshort; external name 'diffusion';
          fdensity: jshort; external name 'density';
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerOnParameterChangeListener = interface external 'android.media.audiofx' name 'OnParameterChangeListener' 
        procedure onParameterChange(para1: AMAEnvironmentalReverb; para2: jint; para3: jint; para4: jint); overload;
      end;

  public
    const
      PARAM_ROOM_LEVEL = 0;
      PARAM_ROOM_HF_LEVEL = 1;
      PARAM_DECAY_TIME = 2;
      PARAM_DECAY_HF_RATIO = 3;
      PARAM_REFLECTIONS_LEVEL = 4;
      PARAM_REFLECTIONS_DELAY = 5;
      PARAM_REVERB_LEVEL = 6;
      PARAM_REVERB_DELAY = 7;
      PARAM_DIFFUSION = 8;
      PARAM_DENSITY = 9;
  public
    constructor create(para1: jint; para2: jint); overload;  // throws java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException, java.lang.RuntimeException
    procedure setRoomLevel(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getRoomLevel(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setRoomHFLevel(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getRoomHFLevel(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setDecayTime(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getDecayTime(): jint; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setDecayHFRatio(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getDecayHFRatio(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setReflectionsLevel(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getReflectionsLevel(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setReflectionsDelay(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getReflectionsDelay(): jint; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setReverbLevel(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getReverbLevel(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setReverbDelay(para1: jint); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getReverbDelay(): jint; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setDiffusion(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getDiffusion(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setDensity(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getDensity(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setParameterListener(para1: AMAEnvironmentalReverb.InnerOnParameterChangeListener); overload; virtual;
    function getProperties(): AMAEnvironmentalReverb.InnerSettings; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setProperties(para1: AMAEnvironmentalReverb.InnerSettings); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
  end;

  AMAEqualizer = class external 'android.media.audiofx' name 'Equalizer' (AMAAudioEffect)
  public
    type
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerOnParameterChangeListener = interface;
      Arr1InnerOnParameterChangeListener = array of InnerOnParameterChangeListener;
      Arr2InnerOnParameterChangeListener = array of Arr1InnerOnParameterChangeListener;
      Arr3InnerOnParameterChangeListener = array of Arr2InnerOnParameterChangeListener;
      InnerSettings = class external 'android.media.audiofx' name 'Settings' (JLObject)
      public
        var
          fcurPreset: jshort; external name 'curPreset';
          fnumBands: jshort; external name 'numBands';
          fbandLevels: Arr1jshort; external name 'bandLevels';
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerOnParameterChangeListener = interface external 'android.media.audiofx' name 'OnParameterChangeListener' 
        procedure onParameterChange(para1: AMAEqualizer; para2: jint; para3: jint; para4: jint; para5: jint); overload;
      end;

  public
    const
      PARAM_NUM_BANDS = 0;
      PARAM_LEVEL_RANGE = 1;
      PARAM_BAND_LEVEL = 2;
      PARAM_CENTER_FREQ = 3;
      PARAM_BAND_FREQ_RANGE = 4;
      PARAM_GET_BAND = 5;
      PARAM_CURRENT_PRESET = 6;
      PARAM_GET_NUM_OF_PRESETS = 7;
      PARAM_GET_PRESET_NAME = 8;
      PARAM_STRING_SIZE_MAX = 32;
  public
    constructor create(para1: jint; para2: jint); overload;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException, java.lang.RuntimeException
    function getNumberOfBands(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getBandLevelRange(): Arr1jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setBandLevel(para1: jshort; para2: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getBandLevel(para1: jshort): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getCenterFreq(para1: jshort): jint; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getBandFreqRange(para1: jshort): Arr1jint; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getBand(para1: jint): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getCurrentPreset(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure usePreset(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getNumberOfPresets(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getPresetName(para1: jshort): JLString; overload; virtual;
    procedure setParameterListener(para1: AMAEqualizer.InnerOnParameterChangeListener); overload; virtual;
    function getProperties(): AMAEqualizer.InnerSettings; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setProperties(para1: AMAEqualizer.InnerSettings); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
  end;

  AMAPresetReverb = class external 'android.media.audiofx' name 'PresetReverb' (AMAAudioEffect)
  public
    type
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerOnParameterChangeListener = interface;
      Arr1InnerOnParameterChangeListener = array of InnerOnParameterChangeListener;
      Arr2InnerOnParameterChangeListener = array of Arr1InnerOnParameterChangeListener;
      Arr3InnerOnParameterChangeListener = array of Arr2InnerOnParameterChangeListener;
      InnerSettings = class external 'android.media.audiofx' name 'Settings' (JLObject)
      public
        var
          fpreset: jshort; external name 'preset';
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerOnParameterChangeListener = interface external 'android.media.audiofx' name 'OnParameterChangeListener' 
        procedure onParameterChange(para1: AMAPresetReverb; para2: jint; para3: jint; para4: jshort); overload;
      end;

  public
    const
      PARAM_PRESET = 0;
      PRESET_NONE = 0;
      PRESET_SMALLROOM = 1;
      PRESET_MEDIUMROOM = 2;
      PRESET_LARGEROOM = 3;
      PRESET_MEDIUMHALL = 4;
      PRESET_LARGEHALL = 5;
      PRESET_PLATE = 6;
  public
    constructor create(para1: jint; para2: jint); overload;  // throws java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException, java.lang.RuntimeException
    procedure setPreset(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getPreset(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setParameterListener(para1: AMAPresetReverb.InnerOnParameterChangeListener); overload; virtual;
    function getProperties(): AMAPresetReverb.InnerSettings; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setProperties(para1: AMAPresetReverb.InnerSettings); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
  end;

  AMAVirtualizer = class external 'android.media.audiofx' name 'Virtualizer' (AMAAudioEffect)
  public
    type
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerOnParameterChangeListener = interface;
      Arr1InnerOnParameterChangeListener = array of InnerOnParameterChangeListener;
      Arr2InnerOnParameterChangeListener = array of Arr1InnerOnParameterChangeListener;
      Arr3InnerOnParameterChangeListener = array of Arr2InnerOnParameterChangeListener;
      InnerSettings = class external 'android.media.audiofx' name 'Settings' (JLObject)
      public
        var
          fstrength: jshort; external name 'strength';
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        function toString(): JLString; overload; virtual;
      end;

      InnerOnParameterChangeListener = interface external 'android.media.audiofx' name 'OnParameterChangeListener' 
        procedure onParameterChange(para1: AMAVirtualizer; para2: jint; para3: jint; para4: jshort); overload;
      end;

  public
    const
      PARAM_STRENGTH_SUPPORTED = 0;
      PARAM_STRENGTH = 1;
  public
    constructor create(para1: jint; para2: jint); overload;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException, java.lang.RuntimeException
    function getStrengthSupported(): jboolean; overload; virtual;
    procedure setStrength(para1: jshort); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    function getRoundedStrength(): jshort; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setParameterListener(para1: AMAVirtualizer.InnerOnParameterChangeListener); overload; virtual;
    function getProperties(): AMAVirtualizer.InnerSettings; overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
    procedure setProperties(para1: AMAVirtualizer.InnerSettings); overload; virtual;  // throws java.lang.IllegalStateException, java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
  end;

  ANRAudioStream = class external 'android.net.rtp' name 'AudioStream' (ANRRtpStream)
  public
    constructor create(para1: JNInetAddress); overload;  // throws java.net.SocketException
    function isBusy(): jboolean; overload; virtual; final;
    function getGroup(): ANRAudioGroup; overload; virtual;
    procedure join(para1: ANRAudioGroup); overload; virtual;
    function getCodec(): ANRAudioCodec; overload; virtual;
    procedure setCodec(para1: ANRAudioCodec); overload; virtual;
    function getDtmfType(): jint; overload; virtual;
    procedure setDtmfType(para1: jint); overload; virtual;
  end;

  ANSSipManager = class external 'android.net.sip' name 'SipManager' (JLObject)
  public
    const
      INCOMING_CALL_RESULT_CODE = 101;
      EXTRA_CALL_ID = 'android:sipCallID';
      EXTRA_OFFER_SD = 'android:sipOfferSD';
  public
    class function newInstance(para1: ACContext): ANSSipManager; static; overload;
    class function isApiSupported(para1: ACContext): jboolean; static; overload;
    class function isVoipSupported(para1: ACContext): jboolean; static; overload;
    class function isSipWifiOnly(para1: ACContext): jboolean; static; overload;
    procedure open(para1: ANSSipProfile); overload; virtual;  // throws android.net.sip.SipException
    procedure open(para1: ANSSipProfile; para2: AAPendingIntent; para3: ANSSipRegistrationListener); overload; virtual;  // throws android.net.sip.SipException
    procedure setRegistrationListener(para1: JLString; para2: ANSSipRegistrationListener); overload; virtual;  // throws android.net.sip.SipException
    procedure close(para1: JLString); overload; virtual;  // throws android.net.sip.SipException
    function isOpened(para1: JLString): jboolean; overload; virtual;  // throws android.net.sip.SipException
    function isRegistered(para1: JLString): jboolean; overload; virtual;  // throws android.net.sip.SipException
    function makeAudioCall(para1: ANSSipProfile; para2: ANSSipProfile; para3: ANSSipAudioCall.InnerListener; para4: jint): ANSSipAudioCall; overload; virtual;  // throws android.net.sip.SipException
    function makeAudioCall(para1: JLString; para2: JLString; para3: ANSSipAudioCall.InnerListener; para4: jint): ANSSipAudioCall; overload; virtual;  // throws android.net.sip.SipException
    function takeAudioCall(para1: ACIntent; para2: ANSSipAudioCall.InnerListener): ANSSipAudioCall; overload; virtual;  // throws android.net.sip.SipException
    class function isIncomingCallIntent(para1: ACIntent): jboolean; static; overload;
    class function getCallId(para1: ACIntent): JLString; static; overload;
    class function getOfferSessionDescription(para1: ACIntent): JLString; static; overload;
    procedure register(para1: ANSSipProfile; para2: jint; para3: ANSSipRegistrationListener); overload; virtual;  // throws android.net.sip.SipException
    procedure unregister(para1: ANSSipProfile; para2: ANSSipRegistrationListener); overload; virtual;  // throws android.net.sip.SipException
    function getSessionFor(para1: ACIntent): ANSSipSession; overload; virtual;  // throws android.net.sip.SipException
    function createSipSession(para1: ANSSipProfile; para2: ANSSipSession.InnerListener): ANSSipSession; overload; virtual;  // throws android.net.sip.SipException
  end;

  AOGLES11 = class external 'android.opengl' name 'GLES11' (AOGLES10)
  public
    const
      GL_ACTIVE_TEXTURE = 34016;
      GL_ADD_SIGNED = 34164;
      GL_ALPHA_SCALE = 3356;
      GL_ALPHA_TEST_FUNC = 3009;
      GL_ALPHA_TEST_REF = 3010;
      GL_ARRAY_BUFFER = 34962;
      GL_ARRAY_BUFFER_BINDING = 34964;
      GL_BLEND_DST = 3040;
      GL_BLEND_SRC = 3041;
      GL_BUFFER_ACCESS = 35003;
      GL_BUFFER_SIZE = 34660;
      GL_BUFFER_USAGE = 34661;
      GL_CLIENT_ACTIVE_TEXTURE = 34017;
      GL_CLIP_PLANE0 = 12288;
      GL_CLIP_PLANE1 = 12289;
      GL_CLIP_PLANE2 = 12290;
      GL_CLIP_PLANE3 = 12291;
      GL_CLIP_PLANE4 = 12292;
      GL_CLIP_PLANE5 = 12293;
      GL_COLOR_ARRAY_BUFFER_BINDING = 34968;
      GL_COLOR_ARRAY_POINTER = 32912;
      GL_COLOR_ARRAY_SIZE = 32897;
      GL_COLOR_ARRAY_STRIDE = 32899;
      GL_COLOR_ARRAY_TYPE = 32898;
      GL_COLOR_CLEAR_VALUE = 3106;
      GL_COLOR_WRITEMASK = 3107;
      GL_COMBINE = 34160;
      GL_COMBINE_ALPHA = 34162;
      GL_COMBINE_RGB = 34161;
      GL_CONSTANT = 34166;
      GL_COORD_REPLACE_OES = 34914;
      GL_CULL_FACE_MODE = 2885;
      GL_CURRENT_COLOR = 2816;
      GL_CURRENT_NORMAL = 2818;
      GL_CURRENT_TEXTURE_COORDS = 2819;
      GL_DEPTH_CLEAR_VALUE = 2931;
      GL_DEPTH_FUNC = 2932;
      GL_DEPTH_RANGE = 2928;
      GL_DEPTH_WRITEMASK = 2930;
      GL_DOT3_RGB = 34478;
      GL_DOT3_RGBA = 34479;
      GL_DYNAMIC_DRAW = 35048;
      GL_ELEMENT_ARRAY_BUFFER = 34963;
      GL_ELEMENT_ARRAY_BUFFER_BINDING = 34965;
      GL_FRONT_FACE = 2886;
      GL_GENERATE_MIPMAP = 33169;
      GL_GENERATE_MIPMAP_HINT = 33170;
      GL_INTERPOLATE = 34165;
      GL_LINE_WIDTH = 2849;
      GL_LOGIC_OP_MODE = 3056;
      GL_MATRIX_MODE = 2976;
      GL_MAX_CLIP_PLANES = 3378;
      GL_MODELVIEW_MATRIX = 2982;
      GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 35213;
      GL_MODELVIEW_STACK_DEPTH = 2979;
      GL_NORMAL_ARRAY_BUFFER_BINDING = 34967;
      GL_NORMAL_ARRAY_POINTER = 32911;
      GL_NORMAL_ARRAY_STRIDE = 32895;
      GL_NORMAL_ARRAY_TYPE = 32894;
      GL_OPERAND0_ALPHA = 34200;
      GL_OPERAND0_RGB = 34192;
      GL_OPERAND1_ALPHA = 34201;
      GL_OPERAND1_RGB = 34193;
      GL_OPERAND2_ALPHA = 34202;
      GL_OPERAND2_RGB = 34194;
      GL_POINT_DISTANCE_ATTENUATION = 33065;
      GL_POINT_FADE_THRESHOLD_SIZE = 33064;
      GL_POINT_SIZE = 2833;
      GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 35743;
      GL_POINT_SIZE_ARRAY_OES = 35740;
      GL_POINT_SIZE_ARRAY_POINTER_OES = 35212;
      GL_POINT_SIZE_ARRAY_STRIDE_OES = 35211;
      GL_POINT_SIZE_ARRAY_TYPE_OES = 35210;
      GL_POINT_SIZE_MAX = 33063;
      GL_POINT_SIZE_MIN = 33062;
      GL_POINT_SPRITE_OES = 34913;
      GL_POLYGON_OFFSET_FACTOR = 32824;
      GL_POLYGON_OFFSET_UNITS = 10752;
      GL_PREVIOUS = 34168;
      GL_PRIMARY_COLOR = 34167;
      GL_PROJECTION_MATRIX = 2983;
      GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 35214;
      GL_PROJECTION_STACK_DEPTH = 2980;
      GL_RGB_SCALE = 34163;
      GL_SAMPLE_BUFFERS = 32936;
      GL_SAMPLE_COVERAGE_INVERT = 32939;
      GL_SAMPLE_COVERAGE_VALUE = 32938;
      GL_SAMPLES = 32937;
      GL_SCISSOR_BOX = 3088;
      GL_SHADE_MODEL = 2900;
      GL_SRC0_ALPHA = 34184;
      GL_SRC0_RGB = 34176;
      GL_SRC1_ALPHA = 34185;
      GL_SRC1_RGB = 34177;
      GL_SRC2_ALPHA = 34186;
      GL_SRC2_RGB = 34178;
      GL_STATIC_DRAW = 35044;
      GL_STENCIL_CLEAR_VALUE = 2961;
      GL_STENCIL_FAIL = 2964;
      GL_STENCIL_FUNC = 2962;
      GL_STENCIL_PASS_DEPTH_FAIL = 2965;
      GL_STENCIL_PASS_DEPTH_PASS = 2966;
      GL_STENCIL_REF = 2967;
      GL_STENCIL_VALUE_MASK = 2963;
      GL_STENCIL_WRITEMASK = 2968;
      GL_SUBTRACT = 34023;
      GL_TEXTURE_BINDING_2D = 32873;
      GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 34970;
      GL_TEXTURE_COORD_ARRAY_POINTER = 32914;
      GL_TEXTURE_COORD_ARRAY_SIZE = 32904;
      GL_TEXTURE_COORD_ARRAY_STRIDE = 32906;
      GL_TEXTURE_COORD_ARRAY_TYPE = 32905;
      GL_TEXTURE_MATRIX = 2984;
      GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 35215;
      GL_TEXTURE_STACK_DEPTH = 2981;
      GL_VERTEX_ARRAY_BUFFER_BINDING = 34966;
      GL_VERTEX_ARRAY_POINTER = 32910;
      GL_VERTEX_ARRAY_SIZE = 32890;
      GL_VERTEX_ARRAY_STRIDE = 32892;
      GL_VERTEX_ARRAY_TYPE = 32891;
      GL_VIEWPORT = 2978;
      GL_WRITE_ONLY = 35001;
  public
    constructor create(); overload;
    class procedure glBindBuffer(para1: jint; para2: jint); static; overload;
    class procedure glBufferData(para1: jint; para2: jint; para3: JNBuffer; para4: jint); static; overload;
    class procedure glBufferSubData(para1: jint; para2: jint; para3: jint; para4: JNBuffer); static; overload;
    class procedure glClipPlanef(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glClipPlanef(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glClipPlanef(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glClipPlanex(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glClipPlanex(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glClipPlanex(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glColor4ub(para1: jbyte; para2: jbyte; para3: jbyte; para4: jbyte); static; overload;
    class procedure glColorPointer(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glDeleteBuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glDeleteBuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glDeleteBuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glDrawElements(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glGenBuffers(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGenBuffers(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGenBuffers(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetBooleanv(para1: jint; para2: Arr1jboolean; para3: jint); static; overload;
    class procedure glGetBooleanv(para1: jint; var para2: array of jboolean; para3: jint); static; overload;
    class procedure glGetBooleanv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetBufferParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetBufferParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetBufferParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetClipPlanef(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glGetClipPlanef(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glGetClipPlanef(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glGetClipPlanex(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGetClipPlanex(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGetClipPlanex(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetFixedv(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glGetFixedv(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glGetFixedv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glGetFloatv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glGetFloatv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glGetFloatv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glGetLightfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetLightfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetLightfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetLightxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetLightxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetLightxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetMaterialfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetMaterialfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetMaterialfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetMaterialxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetMaterialxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetMaterialxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexEnvfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetTexEnvfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetTexEnvfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetTexEnviv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexEnviv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexEnviv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexEnvxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexEnvxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexEnvxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glGetTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glGetTexParameterfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glGetTexParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glGetTexParameterxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glGetTexParameterxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glGetTexParameterxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class function glIsBuffer(para1: jint): jboolean; static; overload;
    class function glIsEnabled(para1: jint): jboolean; static; overload;
    class function glIsTexture(para1: jint): jboolean; static; overload;
    class procedure glNormalPointer(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glPointParameterf(para1: jint; para2: jfloat); static; overload;
    class procedure glPointParameterfv(para1: jint; para2: Arr1jfloat; para3: jint); static; overload;
    class procedure glPointParameterfv(para1: jint; var para2: array of jfloat; para3: jint); static; overload;
    class procedure glPointParameterfv(para1: jint; para2: JNFloatBuffer); static; overload;
    class procedure glPointParameterx(para1: jint; para2: jint); static; overload;
    class procedure glPointParameterxv(para1: jint; para2: Arr1jint; para3: jint); static; overload;
    class procedure glPointParameterxv(para1: jint; var para2: array of jint; para3: jint); static; overload;
    class procedure glPointParameterxv(para1: jint; para2: JNIntBuffer); static; overload;
    class procedure glPointSizePointerOES(para1: jint; para2: jint; para3: JNBuffer); static; overload;
    class procedure glTexCoordPointer(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
    class procedure glTexEnvi(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexEnviv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexEnviv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexEnviv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); static; overload;
    class procedure glTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); static; overload;
    class procedure glTexParameterfv(para1: jint; para2: jint; para3: JNFloatBuffer); static; overload;
    class procedure glTexParameteri(para1: jint; para2: jint; para3: jint); static; overload;
    class procedure glTexParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glTexParameterxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); static; overload;
    class procedure glTexParameterxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); static; overload;
    class procedure glTexParameterxv(para1: jint; para2: jint; para3: JNIntBuffer); static; overload;
    class procedure glVertexPointer(para1: jint; para2: jint; para3: jint; para4: jint); static; overload;
  end;

  ACAsyncQueryHandler = class abstract external 'android.content' name 'AsyncQueryHandler' (AOHandler)
  public
    type
      InnerWorkerHandler = class;
      Arr1InnerWorkerHandler = array of InnerWorkerHandler;
      Arr2InnerWorkerHandler = array of Arr1InnerWorkerHandler;
      Arr3InnerWorkerHandler = array of Arr2InnerWorkerHandler;
      InnerWorkerArgs = class;
      Arr1InnerWorkerArgs = array of InnerWorkerArgs;
      Arr2InnerWorkerArgs = array of Arr1InnerWorkerArgs;
      Arr3InnerWorkerArgs = array of Arr2InnerWorkerArgs;
      InnerWorkerHandler = class external 'android.content' name 'WorkerHandler' 
      end;

      InnerWorkerArgs = class sealed external 'android.content' name 'WorkerArgs' (JLObject)
      public
        var
          furi: ANUri; external name 'uri';
          fhandler: AOHandler; external name 'handler';
          fprojection: Arr1JLString; external name 'projection';
          fselection: JLString; external name 'selection';
          fselectionArgs: Arr1JLString; external name 'selectionArgs';
          forderBy: JLString; external name 'orderBy';
          fresult: JLObject; external name 'result';
          fcookie: JLObject; external name 'cookie';
          fvalues: ACContentValues; external name 'values';
      strict protected
        constructor create(); overload;
      end;

  public
    constructor create(para1: ACContentResolver); overload;
  strict protected
    function createHandler(para1: AOLooper): AOHandler; overload; virtual;
  public
    procedure startQuery(para1: jint; para2: JLObject; para3: ANUri; para4: Arr1JLString; para5: JLString; para6: Arr1JLString; para7: JLString); overload; virtual;
    procedure startQuery(para1: jint; para2: JLObject; para3: ANUri; var para4: array of JLString; para5: JLString; var para6: array of JLString; para7: JLString); overload; virtual;
    procedure cancelOperation(para1: jint); overload; virtual; final;
    procedure startInsert(para1: jint; para2: JLObject; para3: ANUri; para4: ACContentValues); overload; virtual; final;
    procedure startUpdate(para1: jint; para2: JLObject; para3: ANUri; para4: ACContentValues; para5: JLString; para6: Arr1JLString); overload; virtual; final;
    procedure startUpdate(para1: jint; para2: JLObject; para3: ANUri; para4: ACContentValues; para5: JLString; var para6: array of JLString); overload; virtual; final;
    procedure startDelete(para1: jint; para2: JLObject; para3: ANUri; para4: JLString; para5: Arr1JLString); overload; virtual; final;
    procedure startDelete(para1: jint; para2: JLObject; para3: ANUri; para4: JLString; var para5: array of JLString); overload; virtual; final;
  strict protected
    procedure onQueryComplete(para1: jint; para2: JLObject; para3: ADCursor); overload; virtual;
    procedure onInsertComplete(para1: jint; para2: JLObject; para3: ANUri); overload; virtual;
    procedure onUpdateComplete(para1: jint; para2: JLObject; para3: jint); overload; virtual;
    procedure onDeleteComplete(para1: jint; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure handleMessage(para1: AOMessage); overload; virtual;
  end;

  AWHttpAuthHandler = class external 'android.webkit' name 'HttpAuthHandler' (AOHandler)
  public
    function useHttpAuthUsernamePassword(): jboolean; overload; virtual;
    procedure cancel(); overload; virtual;
    procedure proceed(para1: JLString; para2: JLString); overload; virtual;
  end;

  AWSslErrorHandler = class external 'android.webkit' name 'SslErrorHandler' (AOHandler)
  public
    procedure proceed(); overload; virtual;
    procedure cancel(); overload; virtual;
  end;

  AOBinder = class external 'android.os' name 'Binder' (JLObject, AOIBinder)
  public
    constructor create(); overload;
    class function getCallingPid(): jint; static; overload; final;
    class function getCallingUid(): jint; static; overload; final;
    class function clearCallingIdentity(): jlong; static; overload; final;
    class procedure restoreCallingIdentity(para1: jlong); static; overload; final;
    class procedure flushPendingCommands(); static; overload; final;
    class procedure joinThreadPool(); static; overload; final;
    procedure attachInterface(para1: AOIInterface; para2: JLString); overload; virtual;
    function getInterfaceDescriptor(): JLString; overload; virtual;
    function pingBinder(): jboolean; overload; virtual;
    function isBinderAlive(): jboolean; overload; virtual;
    function queryLocalInterface(para1: JLString): AOIInterface; overload; virtual;
  strict protected
    function onTransact(para1: jint; para2: AOParcel; para3: AOParcel; para4: jint): jboolean; overload; virtual;  // throws android.os.RemoteException
  public
    procedure dump(para1: JIFileDescriptor; para2: Arr1JLString); overload; virtual;
    procedure dump(para1: JIFileDescriptor; var para2: array of JLString); overload; virtual;
    procedure dumpAsync(para1: JIFileDescriptor; para2: Arr1JLString); overload; virtual;
    procedure dumpAsync(para1: JIFileDescriptor; var para2: array of JLString); overload; virtual;
  strict protected
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; para3: Arr1JLString); overload; virtual;
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; var para3: array of JLString); overload; virtual;
  public
    function transact(para1: jint; para2: AOParcel; para3: AOParcel; para4: jint): jboolean; overload; virtual; final;  // throws android.os.RemoteException
    procedure linkToDeath(para1: AOIBinder.InnerDeathRecipient; para2: jint); overload; virtual;
    function unlinkToDeath(para1: AOIBinder.InnerDeathRecipient; para2: jint): jboolean; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AAAccessibilityServiceInfo = class external 'android.accessibilityservice' name 'AccessibilityServiceInfo' (JLObject, AOParcelable)
  public
    const
      FEEDBACK_SPOKEN = 1;
      FEEDBACK_HAPTIC = 2;
      FEEDBACK_AUDIBLE = 4;
      FEEDBACK_VISUAL = 8;
      FEEDBACK_GENERIC = 16;
      FEEDBACK_ALL_MASK = -1;
      DEFAULT = 1;
  public
    var
      feventTypes: jint; external name 'eventTypes';
      fpackageNames: Arr1JLString; external name 'packageNames';
      ffeedbackType: jint; external name 'feedbackType';
      fnotificationTimeout: jlong; external name 'notificationTimeout';
      fflags: jint; external name 'flags';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    function getId(): JLString; overload; virtual;
    function getResolveInfo(): ACPResolveInfo; overload; virtual;
    function getSettingsActivityName(): JLString; overload; virtual;
    function getCanRetrieveWindowContent(): jboolean; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
    class function feedbackTypeToString(para1: jint): JLString; static; overload;
    class function flagToString(para1: jint): JLString; static; overload;
  end;

  AAAccount = class external 'android.accounts' name 'Account' (JLObject, AOParcelable)
  public
    final var
      fname: JLString; external name 'name';
      ftype: JLString; external name 'type';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: AOParcel); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AAAccountAuthenticatorResponse = class external 'android.accounts' name 'AccountAuthenticatorResponse' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AOParcel); overload;
    procedure onResult(para1: AOBundle); overload; virtual;
    procedure onRequestContinued(); overload; virtual;
    procedure onError(para1: jint; para2: JLString); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AAAuthenticatorDescription = class external 'android.accounts' name 'AuthenticatorDescription' (JLObject, AOParcelable)
  public
    final var
      ftype: JLString; external name 'type';
      flabelId: jint; external name 'labelId';
      ficonId: jint; external name 'iconId';
      fsmallIconId: jint; external name 'smallIconId';
      faccountPreferencesId: jint; external name 'accountPreferencesId';
      fpackageName: JLString; external name 'packageName';
      fcustomTokens: jboolean; external name 'customTokens';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jboolean); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    class function newKey(para1: JLString): AAAuthenticatorDescription; static; overload;
    function describeContents(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AAApplicationErrorReport = class external 'android.app' name 'ApplicationErrorReport' (JLObject, AOParcelable)
  public
    type
      InnerRunningServiceInfo = class;
      Arr1InnerRunningServiceInfo = array of InnerRunningServiceInfo;
      Arr2InnerRunningServiceInfo = array of Arr1InnerRunningServiceInfo;
      Arr3InnerRunningServiceInfo = array of Arr2InnerRunningServiceInfo;
      InnerBatteryInfo = class;
      Arr1InnerBatteryInfo = array of InnerBatteryInfo;
      Arr2InnerBatteryInfo = array of Arr1InnerBatteryInfo;
      Arr3InnerBatteryInfo = array of Arr2InnerBatteryInfo;
      InnerAnrInfo = class;
      Arr1InnerAnrInfo = array of InnerAnrInfo;
      Arr2InnerAnrInfo = array of Arr1InnerAnrInfo;
      Arr3InnerAnrInfo = array of Arr2InnerAnrInfo;
      InnerCrashInfo = class;
      Arr1InnerCrashInfo = array of InnerCrashInfo;
      Arr2InnerCrashInfo = array of Arr1InnerCrashInfo;
      Arr3InnerCrashInfo = array of Arr2InnerCrashInfo;
      InnerRunningServiceInfo = class external 'android.app' name 'RunningServiceInfo' (JLObject)
      public
        var
          fdurationMillis: jlong; external name 'durationMillis';
          fserviceDetails: JLString; external name 'serviceDetails';
      public
        constructor create(); overload;
        constructor create(para1: AOParcel); overload;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
      end;

      InnerBatteryInfo = class external 'android.app' name 'BatteryInfo' (JLObject)
      public
        var
          fusagePercent: jint; external name 'usagePercent';
          fdurationMicros: jlong; external name 'durationMicros';
          fusageDetails: JLString; external name 'usageDetails';
          fcheckinDetails: JLString; external name 'checkinDetails';
      public
        constructor create(); overload;
        constructor create(para1: AOParcel); overload;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
      end;

      InnerAnrInfo = class external 'android.app' name 'AnrInfo' (JLObject)
      public
        var
          factivity: JLString; external name 'activity';
          fcause: JLString; external name 'cause';
          finfo: JLString; external name 'info';
      public
        constructor create(); overload;
        constructor create(para1: AOParcel); overload;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
      end;

      InnerCrashInfo = class external 'android.app' name 'CrashInfo' (JLObject)
      public
        var
          fexceptionClassName: JLString; external name 'exceptionClassName';
          fexceptionMessage: JLString; external name 'exceptionMessage';
          fthrowFileName: JLString; external name 'throwFileName';
          fthrowClassName: JLString; external name 'throwClassName';
          fthrowMethodName: JLString; external name 'throwMethodName';
          fthrowLineNumber: jint; external name 'throwLineNumber';
          fstackTrace: JLString; external name 'stackTrace';
      public
        constructor create(); overload;
        constructor create(para1: JLThrowable); overload;
        constructor create(para1: AOParcel); overload;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
      end;

  public
    const
      TYPE_NONE = 0;
      TYPE_CRASH = 1;
      TYPE_ANR = 2;
      TYPE_BATTERY = 3;
      TYPE_RUNNING_SERVICE = 5;
  public
    var
      ftype: jint; external name 'type';
      fpackageName: JLString; external name 'packageName';
      finstallerPackageName: JLString; external name 'installerPackageName';
      fprocessName: JLString; external name 'processName';
      ftime: jlong; external name 'time';
      fsystemApp: jboolean; external name 'systemApp';
      fcrashInfo: AAApplicationErrorReport.InnerCrashInfo; external name 'crashInfo';
      fanrInfo: AAApplicationErrorReport.InnerAnrInfo; external name 'anrInfo';
      fbatteryInfo: AAApplicationErrorReport.InnerBatteryInfo; external name 'batteryInfo';
      frunningServiceInfo: AAApplicationErrorReport.InnerRunningServiceInfo; external name 'runningServiceInfo';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    class function getErrorReportReceiver(para1: ACContext; para2: JLString; para3: jint): ACComponentName; static; overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
  end;

  AANotification = class external 'android.app' name 'Notification' (JLObject, AOParcelable)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.app' name 'Builder' (JLObject)
      public
        constructor create(para1: ACContext); overload;
        function setWhen(para1: jlong): AANotification.InnerBuilder; overload; virtual;
        function setSmallIcon(para1: jint): AANotification.InnerBuilder; overload; virtual;
        function setSmallIcon(para1: jint; para2: jint): AANotification.InnerBuilder; overload; virtual;
        function setContentTitle(para1: JLCharSequence): AANotification.InnerBuilder; overload; virtual;
        function setContentText(para1: JLCharSequence): AANotification.InnerBuilder; overload; virtual;
        function setNumber(para1: jint): AANotification.InnerBuilder; overload; virtual;
        function setContentInfo(para1: JLCharSequence): AANotification.InnerBuilder; overload; virtual;
        function setProgress(para1: jint; para2: jint; para3: jboolean): AANotification.InnerBuilder; overload; virtual;
        function setContent(para1: AWRemoteViews): AANotification.InnerBuilder; overload; virtual;
        function setContentIntent(para1: AAPendingIntent): AANotification.InnerBuilder; overload; virtual;
        function setDeleteIntent(para1: AAPendingIntent): AANotification.InnerBuilder; overload; virtual;
        function setFullScreenIntent(para1: AAPendingIntent; para2: jboolean): AANotification.InnerBuilder; overload; virtual;
        function setTicker(para1: JLCharSequence): AANotification.InnerBuilder; overload; virtual;
        function setTicker(para1: JLCharSequence; para2: AWRemoteViews): AANotification.InnerBuilder; overload; virtual;
        function setLargeIcon(para1: AGBitmap): AANotification.InnerBuilder; overload; virtual;
        function setSound(para1: ANUri): AANotification.InnerBuilder; overload; virtual;
        function setSound(para1: ANUri; para2: jint): AANotification.InnerBuilder; overload; virtual;
        function setVibrate(para1: Arr1jlong): AANotification.InnerBuilder; overload; virtual;
        function setVibrate(var para1: array of jlong): AANotification.InnerBuilder; overload; virtual;
        function setLights(para1: jint; para2: jint; para3: jint): AANotification.InnerBuilder; overload; virtual;
        function setOngoing(para1: jboolean): AANotification.InnerBuilder; overload; virtual;
        function setOnlyAlertOnce(para1: jboolean): AANotification.InnerBuilder; overload; virtual;
        function setAutoCancel(para1: jboolean): AANotification.InnerBuilder; overload; virtual;
        function setDefaults(para1: jint): AANotification.InnerBuilder; overload; virtual;
        function getNotification(): AANotification; overload; virtual;
      end;

  public
    const
      DEFAULT_ALL = -1;
      DEFAULT_SOUND = 1;
      DEFAULT_VIBRATE = 2;
      DEFAULT_LIGHTS = 4;
  public
    var
      fwhen: jlong; external name 'when';
      ficon: jint; external name 'icon';
      ficonLevel: jint; external name 'iconLevel';
      fnumber: jint; external name 'number';
      fcontentIntent: AAPendingIntent; external name 'contentIntent';
      fdeleteIntent: AAPendingIntent; external name 'deleteIntent';
      ffullScreenIntent: AAPendingIntent; external name 'fullScreenIntent';
      ftickerText: JLCharSequence; external name 'tickerText';
      ftickerView: AWRemoteViews; external name 'tickerView';
      fcontentView: AWRemoteViews; external name 'contentView';
      flargeIcon: AGBitmap; external name 'largeIcon';
      fsound: ANUri; external name 'sound';
  public
    const
      STREAM_DEFAULT = -1;
  public
    var
      faudioStreamType: jint; external name 'audioStreamType';
      fvibrate: Arr1jlong; external name 'vibrate';
      fledARGB: jint; external name 'ledARGB';
      fledOnMS: jint; external name 'ledOnMS';
      fledOffMS: jint; external name 'ledOffMS';
      fdefaults: jint; external name 'defaults';
  public
    const
      FLAG_SHOW_LIGHTS = 1;
      FLAG_ONGOING_EVENT = 2;
      FLAG_INSISTENT = 4;
      FLAG_ONLY_ALERT_ONCE = 8;
      FLAG_AUTO_CANCEL = 16;
      FLAG_NO_CLEAR = 32;
      FLAG_FOREGROUND_SERVICE = 64;
      FLAG_HIGH_PRIORITY = 128;
  public
    var
      fflags: jint; external name 'flags';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: JLCharSequence; para3: jlong); overload;
    constructor create(para1: AOParcel); overload;
    function clone(): AANotification; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure setLatestEventInfo(para1: ACContext; para2: JLCharSequence; para3: JLCharSequence; para4: AAPendingIntent); overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AASearchableInfo = class sealed external 'android.app' name 'SearchableInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getSuggestAuthority(): JLString; overload; virtual;
    function getSuggestPackage(): JLString; overload; virtual;
    function getSearchActivity(): ACComponentName; overload; virtual;
    function shouldRewriteQueryFromData(): jboolean; overload; virtual;
    function shouldRewriteQueryFromText(): jboolean; overload; virtual;
    function getSettingsDescriptionId(): jint; overload; virtual;
    function getSuggestPath(): JLString; overload; virtual;
    function getSuggestSelection(): JLString; overload; virtual;
    function getSuggestIntentAction(): JLString; overload; virtual;
    function getSuggestIntentData(): JLString; overload; virtual;
    function getSuggestThreshold(): jint; overload; virtual;
    function getHintId(): jint; overload; virtual;
    function getVoiceSearchEnabled(): jboolean; overload; virtual;
    function getVoiceSearchLaunchWebSearch(): jboolean; overload; virtual;
    function getVoiceSearchLaunchRecognizer(): jboolean; overload; virtual;
    function getVoiceLanguageModeId(): jint; overload; virtual;
    function getVoicePromptTextId(): jint; overload; virtual;
    function getVoiceLanguageId(): jint; overload; virtual;
    function getVoiceMaxResults(): jint; overload; virtual;
    function getInputType(): jint; overload; virtual;
    function getImeOptions(): jint; overload; virtual;
    function shouldIncludeInGlobalSearch(): jboolean; overload; virtual;
    function queryAfterZeroResults(): jboolean; overload; virtual;
    function autoUrlDetect(): jboolean; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AAWallpaperInfo = class sealed external 'android.app' name 'WallpaperInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: ACContext; para2: ACPResolveInfo); overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getPackageName(): JLString; overload; virtual;
    function getServiceName(): JLString; overload; virtual;
    function getServiceInfo(): ACPServiceInfo; overload; virtual;
    function getComponent(): ACComponentName; overload; virtual;
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function loadThumbnail(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function loadAuthor(para1: ACPPackageManager): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function loadDescription(para1: ACPPackageManager): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getSettingsActivity(): JLString; overload; virtual;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AAADeviceAdminInfo = class sealed external 'android.app.admin' name 'DeviceAdminInfo' (JLObject, AOParcelable)
  public
    const
      USES_POLICY_LIMIT_PASSWORD = 0;
      USES_POLICY_WATCH_LOGIN = 1;
      USES_POLICY_RESET_PASSWORD = 2;
      USES_POLICY_FORCE_LOCK = 3;
      USES_POLICY_WIPE_DATA = 4;
      USES_POLICY_EXPIRE_PASSWORD = 6;
      USES_ENCRYPTED_STORAGE = 7;
      USES_POLICY_DISABLE_CAMERA = 8;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: ACContext; para2: ACPResolveInfo); overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getPackageName(): JLString; overload; virtual;
    function getReceiverName(): JLString; overload; virtual;
    function getActivityInfo(): ACPActivityInfo; overload; virtual;
    function getComponent(): ACComponentName; overload; virtual;
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadDescription(para1: ACPPackageManager): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function isVisible(): jboolean; overload; virtual;
    function usesPolicy(para1: jint): jboolean; overload; virtual;
    function getTagForPolicy(para1: jint): JLString; overload; virtual;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AAAppWidgetProviderInfo = class external 'android.appwidget' name 'AppWidgetProviderInfo' (JLObject, AOParcelable)
  public
    const
      RESIZE_NONE = 0;
      RESIZE_HORIZONTAL = 1;
      RESIZE_VERTICAL = 2;
      RESIZE_BOTH = 3;
  public
    var
      fprovider: ACComponentName; external name 'provider';
      fminWidth: jint; external name 'minWidth';
      fminHeight: jint; external name 'minHeight';
      fminResizeWidth: jint; external name 'minResizeWidth';
      fminResizeHeight: jint; external name 'minResizeHeight';
      fupdatePeriodMillis: jint; external name 'updatePeriodMillis';
      finitialLayout: jint; external name 'initialLayout';
      fconfigure: ACComponentName; external name 'configure';
      flabel: JLString; external name 'label';
      ficon: jint; external name 'icon';
      fautoAdvanceViewId: jint; external name 'autoAdvanceViewId';
      fpreviewImage: jint; external name 'previewImage';
      fresizeMode: jint; external name 'resizeMode';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: AOParcel); overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ABBluetoothClass = class sealed external 'android.bluetooth' name 'BluetoothClass' (JLObject, AOParcelable)
  public
    type
      InnerDevice = class;
      Arr1InnerDevice = array of InnerDevice;
      Arr2InnerDevice = array of Arr1InnerDevice;
      Arr3InnerDevice = array of Arr2InnerDevice;
      InnerService = class;
      Arr1InnerService = array of InnerService;
      Arr2InnerService = array of Arr1InnerService;
      Arr3InnerService = array of Arr2InnerService;
      InnerDevice = class external 'android.bluetooth' name 'Device' (JLObject)
      public
        type
          InnerMajor = class;
          Arr1InnerMajor = array of InnerMajor;
          Arr2InnerMajor = array of Arr1InnerMajor;
          Arr3InnerMajor = array of Arr2InnerMajor;
          InnerMajor = class external 'android.bluetooth' name 'Major' (JLObject)
          public
            const
              MISC = 0;
              COMPUTER = 256;
              PHONE = 512;
              NETWORKING = 768;
              AUDIO_VIDEO = 1024;
              PERIPHERAL = 1280;
              IMAGING = 1536;
              WEARABLE = 1792;
              TOY = 2048;
              HEALTH = 2304;
              UNCATEGORIZED = 7936;
          public
            constructor create(); overload;
          end;

      public
        const
          COMPUTER_UNCATEGORIZED = 256;
          COMPUTER_DESKTOP = 260;
          COMPUTER_SERVER = 264;
          COMPUTER_LAPTOP = 268;
          COMPUTER_HANDHELD_PC_PDA = 272;
          COMPUTER_PALM_SIZE_PC_PDA = 276;
          COMPUTER_WEARABLE = 280;
          PHONE_UNCATEGORIZED = 512;
          PHONE_CELLULAR = 516;
          PHONE_CORDLESS = 520;
          PHONE_SMART = 524;
          PHONE_MODEM_OR_GATEWAY = 528;
          PHONE_ISDN = 532;
          AUDIO_VIDEO_UNCATEGORIZED = 1024;
          AUDIO_VIDEO_WEARABLE_HEADSET = 1028;
          AUDIO_VIDEO_HANDSFREE = 1032;
          AUDIO_VIDEO_MICROPHONE = 1040;
          AUDIO_VIDEO_LOUDSPEAKER = 1044;
          AUDIO_VIDEO_HEADPHONES = 1048;
          AUDIO_VIDEO_PORTABLE_AUDIO = 1052;
          AUDIO_VIDEO_CAR_AUDIO = 1056;
          AUDIO_VIDEO_SET_TOP_BOX = 1060;
          AUDIO_VIDEO_HIFI_AUDIO = 1064;
          AUDIO_VIDEO_VCR = 1068;
          AUDIO_VIDEO_VIDEO_CAMERA = 1072;
          AUDIO_VIDEO_CAMCORDER = 1076;
          AUDIO_VIDEO_VIDEO_MONITOR = 1080;
          AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER = 1084;
          AUDIO_VIDEO_VIDEO_CONFERENCING = 1088;
          AUDIO_VIDEO_VIDEO_GAMING_TOY = 1096;
          WEARABLE_UNCATEGORIZED = 1792;
          WEARABLE_WRIST_WATCH = 1796;
          WEARABLE_PAGER = 1800;
          WEARABLE_JACKET = 1804;
          WEARABLE_HELMET = 1808;
          WEARABLE_GLASSES = 1812;
          TOY_UNCATEGORIZED = 2048;
          TOY_ROBOT = 2052;
          TOY_VEHICLE = 2056;
          TOY_DOLL_ACTION_FIGURE = 2060;
          TOY_CONTROLLER = 2064;
          TOY_GAME = 2068;
          HEALTH_UNCATEGORIZED = 2304;
          HEALTH_BLOOD_PRESSURE = 2308;
          HEALTH_THERMOMETER = 2312;
          HEALTH_WEIGHING = 2316;
          HEALTH_GLUCOSE = 2320;
          HEALTH_PULSE_OXIMETER = 2324;
          HEALTH_PULSE_RATE = 2328;
          HEALTH_DATA_DISPLAY = 2332;
      public
        constructor create(); overload;
      end;

      InnerService = class sealed external 'android.bluetooth' name 'Service' (JLObject)
      public
        const
          LIMITED_DISCOVERABILITY = 8192;
          POSITIONING = 65536;
          NETWORKING = 131072;
          RENDER = 262144;
          CAPTURE = 524288;
          OBJECT_TRANSFER = 1048576;
          AUDIO = 2097152;
          TELEPHONY = 4194304;
          INFORMATION = 8388608;
      public
        constructor create(); overload;
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function hasService(para1: jint): jboolean; overload; virtual;
    function getMajorDeviceClass(): jint; overload; virtual;
    function getDeviceClass(): jint; overload; virtual;
  end;

  ABBluetoothDevice = class sealed external 'android.bluetooth' name 'BluetoothDevice' (JLObject, AOParcelable)
  public
    const
      ERROR = -2147483648;
      ACTION_FOUND = 'android.bluetooth.device.action.FOUND';
      ACTION_CLASS_CHANGED = 'android.bluetooth.device.action.CLASS_CHANGED';
      ACTION_ACL_CONNECTED = 'android.bluetooth.device.action.ACL_CONNECTED';
      ACTION_ACL_DISCONNECT_REQUESTED = 'android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED';
      ACTION_ACL_DISCONNECTED = 'android.bluetooth.device.action.ACL_DISCONNECTED';
      ACTION_NAME_CHANGED = 'android.bluetooth.device.action.NAME_CHANGED';
      ACTION_BOND_STATE_CHANGED = 'android.bluetooth.device.action.BOND_STATE_CHANGED';
      EXTRA_DEVICE = 'android.bluetooth.device.extra.DEVICE';
      EXTRA_NAME = 'android.bluetooth.device.extra.NAME';
      EXTRA_RSSI = 'android.bluetooth.device.extra.RSSI';
      EXTRA_CLASS = 'android.bluetooth.device.extra.CLASS';
      EXTRA_BOND_STATE = 'android.bluetooth.device.extra.BOND_STATE';
      EXTRA_PREVIOUS_BOND_STATE = 'android.bluetooth.device.extra.PREVIOUS_BOND_STATE';
      BOND_NONE = 10;
      BOND_BONDING = 11;
      BOND_BONDED = 12;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getAddress(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getBondState(): jint; overload; virtual;
    function getBluetoothClass(): ABBluetoothClass; overload; virtual;
    function createRfcommSocketToServiceRecord(para1: JUUUID): ABBluetoothSocket; overload; virtual;  // throws java.io.IOException
    function createInsecureRfcommSocketToServiceRecord(para1: JUUUID): ABBluetoothSocket; overload; virtual;  // throws java.io.IOException
  end;

  ABBluetoothHealthAppConfiguration = class sealed external 'android.bluetooth' name 'BluetoothHealthAppConfiguration' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    function getDataType(): jint; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getRole(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACClipData = class external 'android.content' name 'ClipData' (JLObject, AOParcelable)
  public
    type
      InnerItem = class;
      Arr1InnerItem = array of InnerItem;
      Arr2InnerItem = array of Arr1InnerItem;
      Arr3InnerItem = array of Arr2InnerItem;
      InnerItem = class external 'android.content' name 'Item' (JLObject)
      public
        constructor create(para1: JLCharSequence); overload;
        constructor create(para1: ACIntent); overload;
        constructor create(para1: ANUri); overload;
        constructor create(para1: JLCharSequence; para2: ACIntent; para3: ANUri); overload;
        function getText(): JLCharSequence; overload; virtual;
        function getIntent(): ACIntent; overload; virtual;
        function getUri(): ANUri; overload; virtual;
        function coerceToText(para1: ACContext): JLCharSequence; overload; virtual;
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLCharSequence; para2: Arr1JLString; para3: ACClipData.InnerItem); overload;
    constructor create(para1: JLCharSequence; const para2: array of JLString; para3: ACClipData.InnerItem); overload;
    constructor create(para1: ACClipDescription; para2: ACClipData.InnerItem); overload;
    class function newPlainText(para1: JLCharSequence; para2: JLCharSequence): ACClipData; static; overload;
    class function newIntent(para1: JLCharSequence; para2: ACIntent): ACClipData; static; overload;
    class function newUri(para1: ACContentResolver; para2: JLCharSequence; para3: ANUri): ACClipData; static; overload;
    class function newRawUri(para1: JLCharSequence; para2: ANUri): ACClipData; static; overload;
    function getDescription(): ACClipDescription; overload; virtual;
    procedure addItem(para1: ACClipData.InnerItem); overload; virtual;
    function getItemCount(): jint; overload; virtual;
    function getItemAt(para1: jint): ACClipData.InnerItem; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACClipDescription = class external 'android.content' name 'ClipDescription' (JLObject, AOParcelable)
  public
    const
      MIMETYPE_TEXT_PLAIN = 'text/plain';
      MIMETYPE_TEXT_URILIST = 'text/uri-list';
      MIMETYPE_TEXT_INTENT = 'text/vnd.android.intent';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLCharSequence; para2: Arr1JLString); overload;
    constructor create(para1: JLCharSequence; const para2: array of JLString); overload;
    constructor create(para1: ACClipDescription); overload;
    class function compareMimeTypes(para1: JLString; para2: JLString): jboolean; static; overload;
    function getLabel(): JLCharSequence; overload; virtual;
    function hasMimeType(para1: JLString): jboolean; overload; virtual;
    function filterMimeTypes(para1: JLString): Arr1JLString; overload; virtual;
    function getMimeTypeCount(): jint; overload; virtual;
    function getMimeType(para1: jint): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACComponentName = class sealed external 'android.content' name 'ComponentName' (JLObject, AOParcelable, JLCloneable, JLComparable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: ACContext; para2: JLString); overload;
    constructor create(para1: ACContext; para2: JLClass); overload;
    constructor create(para1: AOParcel); overload;
    function clone(): ACComponentName; overload; virtual;
    function getPackageName(): JLString; overload; virtual;
    function getClassName(): JLString; overload; virtual;
    function getShortClassName(): JLString; overload; virtual;
    function flattenToString(): JLString; overload; virtual;
    function flattenToShortString(): JLString; overload; virtual;
    class function unflattenFromString(para1: JLString): ACComponentName; static; overload;
    function toShortString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function compareTo(para1: ACComponentName): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    class procedure writeToParcel(para1: ACComponentName; para2: AOParcel); static; overload;
    class function readFromParcel(para1: AOParcel): ACComponentName; static; overload;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  ACContentProviderOperation = class external 'android.content' name 'ContentProviderOperation' (JLObject, AOParcelable)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.content' name 'Builder' (JLObject)
      public
        function build(): ACContentProviderOperation; overload; virtual;
        function withValueBackReferences(para1: ACContentValues): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withValueBackReference(para1: JLString; para2: jint): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withSelectionBackReference(para1: jint; para2: jint): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withValues(para1: ACContentValues): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withValue(para1: JLString; para2: JLObject): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withSelection(para1: JLString; para2: Arr1JLString): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withSelection(para1: JLString; var para2: array of JLString): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withExpectedCount(para1: jint): ACContentProviderOperation.InnerBuilder; overload; virtual;
        function withYieldAllowed(para1: jboolean): ACContentProviderOperation.InnerBuilder; overload; virtual;
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    class function newInsert(para1: ANUri): ACContentProviderOperation.InnerBuilder; static; overload;
    class function newUpdate(para1: ANUri): ACContentProviderOperation.InnerBuilder; static; overload;
    class function newDelete(para1: ANUri): ACContentProviderOperation.InnerBuilder; static; overload;
    class function newAssertQuery(para1: ANUri): ACContentProviderOperation.InnerBuilder; static; overload;
    function getUri(): ANUri; overload; virtual;
    function isYieldAllowed(): jboolean; overload; virtual;
    function isWriteOperation(): jboolean; overload; virtual;
    function isReadOperation(): jboolean; overload; virtual;
    function apply(para1: ACContentProvider; para2: Arr1ACContentProviderResult; para3: jint): ACContentProviderResult; overload; virtual;  // throws android.content.OperationApplicationException
    function apply(para1: ACContentProvider; var para2: array of ACContentProviderResult; para3: jint): ACContentProviderResult; overload; virtual;  // throws android.content.OperationApplicationException
    function resolveValueBackReferences(para1: Arr1ACContentProviderResult; para2: jint): ACContentValues; overload; virtual;
    function resolveValueBackReferences(var para1: array of ACContentProviderResult; para2: jint): ACContentValues; overload; virtual;
    function resolveSelectionArgsBackReferences(para1: Arr1ACContentProviderResult; para2: jint): Arr1JLString; overload; virtual;
    function resolveSelectionArgsBackReferences(var para1: array of ACContentProviderResult; para2: jint): Arr1JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  ACContentProviderResult = class external 'android.content' name 'ContentProviderResult' (JLObject, AOParcelable)
  public
    final var
      furi: ANUri; external name 'uri';
      fcount: JLInteger; external name 'count';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: ANUri); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: AOParcel); overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ACContentValues = class sealed external 'android.content' name 'ContentValues' (JLObject, AOParcelable)
  public
    const
      TAG = 'ContentValues';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: ACContentValues); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure put(para1: JLString; para2: JLString); overload; virtual;
    procedure putAll(para1: ACContentValues); overload; virtual;
    procedure put(para1: JLString; para2: JLByte); overload; virtual;
    procedure put(para1: JLString; para2: JLShort); overload; virtual;
    procedure put(para1: JLString; para2: JLInteger); overload; virtual;
    procedure put(para1: JLString; para2: JLLong); overload; virtual;
    procedure put(para1: JLString; para2: JLFloat); overload; virtual;
    procedure put(para1: JLString; para2: JLDouble); overload; virtual;
    procedure put(para1: JLString; para2: JLBoolean); overload; virtual;
    procedure put(para1: JLString; para2: Arr1jbyte); overload; virtual;
    procedure put(para1: JLString; var para2: array of jbyte); overload; virtual;
    procedure putNull(para1: JLString); overload; virtual;
    function size(): jint; overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    procedure clear(); overload; virtual;
    function containsKey(para1: JLString): jboolean; overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    function getAsString(para1: JLString): JLString; overload; virtual;
    function getAsLong(para1: JLString): JLLong; overload; virtual;
    function getAsInteger(para1: JLString): JLInteger; overload; virtual;
    function getAsShort(para1: JLString): JLShort; overload; virtual;
    function getAsByte(para1: JLString): JLByte; overload; virtual;
    function getAsDouble(para1: JLString): JLDouble; overload; virtual;
    function getAsFloat(para1: JLString): JLFloat; overload; virtual;
    function getAsBoolean(para1: JLString): JLBoolean; overload; virtual;
    function getAsByteArray(para1: JLString): Arr1jbyte; overload; virtual;
    function valueSet(): JUSet; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ACIntent = class external 'android.content' name 'Intent' (JLObject, AOParcelable, JLCloneable)
  public
    type
      InnerFilterComparison = class;
      Arr1InnerFilterComparison = array of InnerFilterComparison;
      Arr2InnerFilterComparison = array of Arr1InnerFilterComparison;
      Arr3InnerFilterComparison = array of Arr2InnerFilterComparison;
      InnerShortcutIconResource = class;
      Arr1InnerShortcutIconResource = array of InnerShortcutIconResource;
      Arr2InnerShortcutIconResource = array of Arr1InnerShortcutIconResource;
      Arr3InnerShortcutIconResource = array of Arr2InnerShortcutIconResource;
      InnerFilterComparison = class sealed external 'android.content' name 'FilterComparison' (JLObject)
      public
        constructor create(para1: ACIntent); overload;
        function getIntent(): ACIntent; overload; virtual;
        function equals(para1: JLObject): jboolean; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerShortcutIconResource = class external 'android.content' name 'ShortcutIconResource' (JLObject, AOParcelable)
      public
        var
          fpackageName: JLString; external name 'packageName';
          fresourceName: JLString; external name 'resourceName';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        class function fromContext(para1: ACContext; para2: jint): ACIntent.InnerShortcutIconResource; static; overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    const
      ACTION_MAIN = 'android.intent.action.MAIN';
      ACTION_VIEW = 'android.intent.action.VIEW';
      ACTION_DEFAULT = 'android.intent.action.VIEW';
      ACTION_ATTACH_DATA = 'android.intent.action.ATTACH_DATA';
      ACTION_EDIT = 'android.intent.action.EDIT';
      ACTION_INSERT_OR_EDIT = 'android.intent.action.INSERT_OR_EDIT';
      ACTION_PICK = 'android.intent.action.PICK';
      ACTION_CREATE_SHORTCUT = 'android.intent.action.CREATE_SHORTCUT';
      EXTRA_SHORTCUT_INTENT = 'android.intent.extra.shortcut.INTENT';
      EXTRA_SHORTCUT_NAME = 'android.intent.extra.shortcut.NAME';
      EXTRA_SHORTCUT_ICON = 'android.intent.extra.shortcut.ICON';
      EXTRA_SHORTCUT_ICON_RESOURCE = 'android.intent.extra.shortcut.ICON_RESOURCE';
      ACTION_CHOOSER = 'android.intent.action.CHOOSER';
      ACTION_GET_CONTENT = 'android.intent.action.GET_CONTENT';
      ACTION_DIAL = 'android.intent.action.DIAL';
      ACTION_CALL = 'android.intent.action.CALL';
      ACTION_SENDTO = 'android.intent.action.SENDTO';
      ACTION_SEND = 'android.intent.action.SEND';
      ACTION_SEND_MULTIPLE = 'android.intent.action.SEND_MULTIPLE';
      ACTION_ANSWER = 'android.intent.action.ANSWER';
      ACTION_INSERT = 'android.intent.action.INSERT';
      ACTION_PASTE = 'android.intent.action.PASTE';
      ACTION_DELETE = 'android.intent.action.DELETE';
      ACTION_RUN = 'android.intent.action.RUN';
      ACTION_SYNC = 'android.intent.action.SYNC';
      ACTION_PICK_ACTIVITY = 'android.intent.action.PICK_ACTIVITY';
      ACTION_SEARCH = 'android.intent.action.SEARCH';
      ACTION_SYSTEM_TUTORIAL = 'android.intent.action.SYSTEM_TUTORIAL';
      ACTION_WEB_SEARCH = 'android.intent.action.WEB_SEARCH';
      ACTION_ALL_APPS = 'android.intent.action.ALL_APPS';
      ACTION_SET_WALLPAPER = 'android.intent.action.SET_WALLPAPER';
      ACTION_BUG_REPORT = 'android.intent.action.BUG_REPORT';
      ACTION_FACTORY_TEST = 'android.intent.action.FACTORY_TEST';
      ACTION_CALL_BUTTON = 'android.intent.action.CALL_BUTTON';
      ACTION_VOICE_COMMAND = 'android.intent.action.VOICE_COMMAND';
      ACTION_SEARCH_LONG_PRESS = 'android.intent.action.SEARCH_LONG_PRESS';
      ACTION_APP_ERROR = 'android.intent.action.APP_ERROR';
      ACTION_POWER_USAGE_SUMMARY = 'android.intent.action.POWER_USAGE_SUMMARY';
      ACTION_MANAGE_NETWORK_USAGE = 'android.intent.action.MANAGE_NETWORK_USAGE';
      ACTION_INSTALL_PACKAGE = 'android.intent.action.INSTALL_PACKAGE';
      EXTRA_INSTALLER_PACKAGE_NAME = 'android.intent.extra.INSTALLER_PACKAGE_NAME';
      EXTRA_NOT_UNKNOWN_SOURCE = 'android.intent.extra.NOT_UNKNOWN_SOURCE';
      EXTRA_ALLOW_REPLACE = 'android.intent.extra.ALLOW_REPLACE';
      EXTRA_RETURN_RESULT = 'android.intent.extra.RETURN_RESULT';
      ACTION_UNINSTALL_PACKAGE = 'android.intent.action.UNINSTALL_PACKAGE';
      ACTION_SCREEN_OFF = 'android.intent.action.SCREEN_OFF';
      ACTION_SCREEN_ON = 'android.intent.action.SCREEN_ON';
      ACTION_USER_PRESENT = 'android.intent.action.USER_PRESENT';
      ACTION_TIME_TICK = 'android.intent.action.TIME_TICK';
      ACTION_TIME_CHANGED = 'android.intent.action.TIME_SET';
      ACTION_DATE_CHANGED = 'android.intent.action.DATE_CHANGED';
      ACTION_TIMEZONE_CHANGED = 'android.intent.action.TIMEZONE_CHANGED';
      ACTION_BOOT_COMPLETED = 'android.intent.action.BOOT_COMPLETED';
      ACTION_CLOSE_SYSTEM_DIALOGS = 'android.intent.action.CLOSE_SYSTEM_DIALOGS';
      ACTION_PACKAGE_INSTALL = 'android.intent.action.PACKAGE_INSTALL';
      ACTION_PACKAGE_ADDED = 'android.intent.action.PACKAGE_ADDED';
      ACTION_PACKAGE_REPLACED = 'android.intent.action.PACKAGE_REPLACED';
      ACTION_MY_PACKAGE_REPLACED = 'android.intent.action.MY_PACKAGE_REPLACED';
      ACTION_PACKAGE_REMOVED = 'android.intent.action.PACKAGE_REMOVED';
      ACTION_PACKAGE_FULLY_REMOVED = 'android.intent.action.PACKAGE_FULLY_REMOVED';
      ACTION_PACKAGE_CHANGED = 'android.intent.action.PACKAGE_CHANGED';
      ACTION_PACKAGE_RESTARTED = 'android.intent.action.PACKAGE_RESTARTED';
      ACTION_PACKAGE_DATA_CLEARED = 'android.intent.action.PACKAGE_DATA_CLEARED';
      ACTION_UID_REMOVED = 'android.intent.action.UID_REMOVED';
      ACTION_PACKAGE_FIRST_LAUNCH = 'android.intent.action.PACKAGE_FIRST_LAUNCH';
      ACTION_PACKAGE_NEEDS_VERIFICATION = 'android.intent.action.PACKAGE_NEEDS_VERIFICATION';
      ACTION_EXTERNAL_APPLICATIONS_AVAILABLE = 'android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE';
      ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE = 'android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE';
      ACTION_WALLPAPER_CHANGED = 'android.intent.action.WALLPAPER_CHANGED';
      ACTION_CONFIGURATION_CHANGED = 'android.intent.action.CONFIGURATION_CHANGED';
      ACTION_LOCALE_CHANGED = 'android.intent.action.LOCALE_CHANGED';
      ACTION_BATTERY_CHANGED = 'android.intent.action.BATTERY_CHANGED';
      ACTION_BATTERY_LOW = 'android.intent.action.BATTERY_LOW';
      ACTION_BATTERY_OKAY = 'android.intent.action.BATTERY_OKAY';
      ACTION_POWER_CONNECTED = 'android.intent.action.ACTION_POWER_CONNECTED';
      ACTION_POWER_DISCONNECTED = 'android.intent.action.ACTION_POWER_DISCONNECTED';
      ACTION_SHUTDOWN = 'android.intent.action.ACTION_SHUTDOWN';
      ACTION_DEVICE_STORAGE_LOW = 'android.intent.action.DEVICE_STORAGE_LOW';
      ACTION_DEVICE_STORAGE_OK = 'android.intent.action.DEVICE_STORAGE_OK';
      ACTION_MANAGE_PACKAGE_STORAGE = 'android.intent.action.MANAGE_PACKAGE_STORAGE';
      ACTION_UMS_CONNECTED = 'android.intent.action.UMS_CONNECTED';
      ACTION_UMS_DISCONNECTED = 'android.intent.action.UMS_DISCONNECTED';
      ACTION_MEDIA_REMOVED = 'android.intent.action.MEDIA_REMOVED';
      ACTION_MEDIA_UNMOUNTED = 'android.intent.action.MEDIA_UNMOUNTED';
      ACTION_MEDIA_CHECKING = 'android.intent.action.MEDIA_CHECKING';
      ACTION_MEDIA_NOFS = 'android.intent.action.MEDIA_NOFS';
      ACTION_MEDIA_MOUNTED = 'android.intent.action.MEDIA_MOUNTED';
      ACTION_MEDIA_SHARED = 'android.intent.action.MEDIA_SHARED';
      ACTION_MEDIA_BAD_REMOVAL = 'android.intent.action.MEDIA_BAD_REMOVAL';
      ACTION_MEDIA_UNMOUNTABLE = 'android.intent.action.MEDIA_UNMOUNTABLE';
      ACTION_MEDIA_EJECT = 'android.intent.action.MEDIA_EJECT';
      ACTION_MEDIA_SCANNER_STARTED = 'android.intent.action.MEDIA_SCANNER_STARTED';
      ACTION_MEDIA_SCANNER_FINISHED = 'android.intent.action.MEDIA_SCANNER_FINISHED';
      ACTION_MEDIA_SCANNER_SCAN_FILE = 'android.intent.action.MEDIA_SCANNER_SCAN_FILE';
      ACTION_MEDIA_BUTTON = 'android.intent.action.MEDIA_BUTTON';
      ACTION_CAMERA_BUTTON = 'android.intent.action.CAMERA_BUTTON';
      ACTION_GTALK_SERVICE_CONNECTED = 'android.intent.action.GTALK_CONNECTED';
      ACTION_GTALK_SERVICE_DISCONNECTED = 'android.intent.action.GTALK_DISCONNECTED';
      ACTION_INPUT_METHOD_CHANGED = 'android.intent.action.INPUT_METHOD_CHANGED';
      ACTION_AIRPLANE_MODE_CHANGED = 'android.intent.action.AIRPLANE_MODE';
      ACTION_PROVIDER_CHANGED = 'android.intent.action.PROVIDER_CHANGED';
      ACTION_HEADSET_PLUG = 'android.intent.action.HEADSET_PLUG';
      ACTION_NEW_OUTGOING_CALL = 'android.intent.action.NEW_OUTGOING_CALL';
      ACTION_REBOOT = 'android.intent.action.REBOOT';
      ACTION_DOCK_EVENT = 'android.intent.action.DOCK_EVENT';
      CATEGORY_DEFAULT = 'android.intent.category.DEFAULT';
      CATEGORY_BROWSABLE = 'android.intent.category.BROWSABLE';
      CATEGORY_ALTERNATIVE = 'android.intent.category.ALTERNATIVE';
      CATEGORY_SELECTED_ALTERNATIVE = 'android.intent.category.SELECTED_ALTERNATIVE';
      CATEGORY_TAB = 'android.intent.category.TAB';
      CATEGORY_LAUNCHER = 'android.intent.category.LAUNCHER';
      CATEGORY_INFO = 'android.intent.category.INFO';
      CATEGORY_HOME = 'android.intent.category.HOME';
      CATEGORY_PREFERENCE = 'android.intent.category.PREFERENCE';
      CATEGORY_DEVELOPMENT_PREFERENCE = 'android.intent.category.DEVELOPMENT_PREFERENCE';
      CATEGORY_EMBED = 'android.intent.category.EMBED';
      CATEGORY_APP_MARKET = 'android.intent.category.APP_MARKET';
      CATEGORY_MONKEY = 'android.intent.category.MONKEY';
      CATEGORY_TEST = 'android.intent.category.TEST';
      CATEGORY_UNIT_TEST = 'android.intent.category.UNIT_TEST';
      CATEGORY_SAMPLE_CODE = 'android.intent.category.SAMPLE_CODE';
      CATEGORY_OPENABLE = 'android.intent.category.OPENABLE';
      CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST = 'android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST';
      CATEGORY_CAR_DOCK = 'android.intent.category.CAR_DOCK';
      CATEGORY_DESK_DOCK = 'android.intent.category.DESK_DOCK';
      CATEGORY_LE_DESK_DOCK = 'android.intent.category.LE_DESK_DOCK';
      CATEGORY_HE_DESK_DOCK = 'android.intent.category.HE_DESK_DOCK';
      CATEGORY_CAR_MODE = 'android.intent.category.CAR_MODE';
      EXTRA_TEMPLATE = 'android.intent.extra.TEMPLATE';
      EXTRA_TEXT = 'android.intent.extra.TEXT';
      EXTRA_STREAM = 'android.intent.extra.STREAM';
      EXTRA_EMAIL = 'android.intent.extra.EMAIL';
      EXTRA_CC = 'android.intent.extra.CC';
      EXTRA_BCC = 'android.intent.extra.BCC';
      EXTRA_SUBJECT = 'android.intent.extra.SUBJECT';
      EXTRA_INTENT = 'android.intent.extra.INTENT';
      EXTRA_TITLE = 'android.intent.extra.TITLE';
      EXTRA_INITIAL_INTENTS = 'android.intent.extra.INITIAL_INTENTS';
      EXTRA_KEY_EVENT = 'android.intent.extra.KEY_EVENT';
      EXTRA_DONT_KILL_APP = 'android.intent.extra.DONT_KILL_APP';
      EXTRA_PHONE_NUMBER = 'android.intent.extra.PHONE_NUMBER';
      EXTRA_UID = 'android.intent.extra.UID';
      EXTRA_DATA_REMOVED = 'android.intent.extra.DATA_REMOVED';
      EXTRA_REPLACING = 'android.intent.extra.REPLACING';
      EXTRA_ALARM_COUNT = 'android.intent.extra.ALARM_COUNT';
      EXTRA_DOCK_STATE = 'android.intent.extra.DOCK_STATE';
      EXTRA_DOCK_STATE_UNDOCKED = 0;
      EXTRA_DOCK_STATE_DESK = 1;
      EXTRA_DOCK_STATE_CAR = 2;
      EXTRA_DOCK_STATE_LE_DESK = 3;
      EXTRA_DOCK_STATE_HE_DESK = 4;
      METADATA_DOCK_HOME = 'android.dock_home';
      EXTRA_BUG_REPORT = 'android.intent.extra.BUG_REPORT';
      EXTRA_REMOTE_INTENT_TOKEN = 'android.intent.extra.remote_intent_token';
      EXTRA_CHANGED_COMPONENT_NAME = 'android.intent.extra.changed_component_name';
      EXTRA_CHANGED_COMPONENT_NAME_LIST = 'android.intent.extra.changed_component_name_list';
      EXTRA_CHANGED_PACKAGE_LIST = 'android.intent.extra.changed_package_list';
      EXTRA_CHANGED_UID_LIST = 'android.intent.extra.changed_uid_list';
      EXTRA_LOCAL_ONLY = 'android.intent.extra.LOCAL_ONLY';
      FLAG_GRANT_READ_URI_PERMISSION = 1;
      FLAG_GRANT_WRITE_URI_PERMISSION = 2;
      FLAG_FROM_BACKGROUND = 4;
      FLAG_DEBUG_LOG_RESOLUTION = 8;
      FLAG_EXCLUDE_STOPPED_PACKAGES = 16;
      FLAG_INCLUDE_STOPPED_PACKAGES = 32;
      FLAG_ACTIVITY_NO_HISTORY = 1073741824;
      FLAG_ACTIVITY_SINGLE_TOP = 536870912;
      FLAG_ACTIVITY_NEW_TASK = 268435456;
      FLAG_ACTIVITY_MULTIPLE_TASK = 134217728;
      FLAG_ACTIVITY_CLEAR_TOP = 67108864;
      FLAG_ACTIVITY_FORWARD_RESULT = 33554432;
      FLAG_ACTIVITY_PREVIOUS_IS_TOP = 16777216;
      FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS = 8388608;
      FLAG_ACTIVITY_BROUGHT_TO_FRONT = 4194304;
      FLAG_ACTIVITY_RESET_TASK_IF_NEEDED = 2097152;
      FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY = 1048576;
      FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET = 524288;
      FLAG_ACTIVITY_NO_USER_ACTION = 262144;
      FLAG_ACTIVITY_REORDER_TO_FRONT = 131072;
      FLAG_ACTIVITY_NO_ANIMATION = 65536;
      FLAG_ACTIVITY_CLEAR_TASK = 32768;
      FLAG_ACTIVITY_TASK_ON_HOME = 16384;
      FLAG_RECEIVER_REGISTERED_ONLY = 1073741824;
      FLAG_RECEIVER_REPLACE_PENDING = 536870912;
      URI_INTENT_SCHEME = 1;
      FILL_IN_ACTION = 1;
      FILL_IN_DATA = 2;
      FILL_IN_CATEGORIES = 4;
      FILL_IN_COMPONENT = 8;
      FILL_IN_PACKAGE = 16;
      FILL_IN_SOURCE_BOUNDS = 32;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACIntent); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: ANUri); overload;
    constructor create(para1: ACContext; para2: JLClass); overload;
    constructor create(para1: JLString; para2: ANUri; para3: ACContext; para4: JLClass); overload;
    class function createChooser(para1: ACIntent; para2: JLCharSequence): ACIntent; static; overload;
    function clone(): JLObject; overload; virtual;
    function cloneFilter(): ACIntent; overload; virtual;
    class function makeMainActivity(para1: ACComponentName): ACIntent; static; overload;
    class function makeRestartActivityTask(para1: ACComponentName): ACIntent; static; overload;
    class function getIntent(para1: JLString): ACIntent; static; overload;  // throws java.net.URISyntaxException
    class function parseUri(para1: JLString; para2: jint): ACIntent; static; overload;  // throws java.net.URISyntaxException
    class function getIntentOld(para1: JLString): ACIntent; static; overload;  // throws java.net.URISyntaxException
    function getAction(): JLString; overload; virtual;
    function getData(): ANUri; overload; virtual;
    function getDataString(): JLString; overload; virtual;
    function getScheme(): JLString; overload; virtual;
    function getType(): JLString; overload; virtual;
    function resolveType(para1: ACContext): JLString; overload; virtual;
    function resolveType(para1: ACContentResolver): JLString; overload; virtual;
    function resolveTypeIfNeeded(para1: ACContentResolver): JLString; overload; virtual;
    function hasCategory(para1: JLString): jboolean; overload; virtual;
    function getCategories(): JUSet; overload; virtual;
    procedure setExtrasClassLoader(para1: JLClassLoader); overload; virtual;
    function hasExtra(para1: JLString): jboolean; overload; virtual;
    function hasFileDescriptors(): jboolean; overload; virtual;
    function getBooleanExtra(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    function getByteExtra(para1: JLString; para2: jbyte): jbyte; overload; virtual;
    function getShortExtra(para1: JLString; para2: jshort): jshort; overload; virtual;
    function getCharExtra(para1: JLString; para2: jchar): jchar; overload; virtual;
    function getIntExtra(para1: JLString; para2: jint): jint; overload; virtual;
    function getLongExtra(para1: JLString; para2: jlong): jlong; overload; virtual;
    function getFloatExtra(para1: JLString; para2: jfloat): jfloat; overload; virtual;
    function getDoubleExtra(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    function getStringExtra(para1: JLString): JLString; overload; virtual;
    function getCharSequenceExtra(para1: JLString): JLCharSequence; overload; virtual;
    function getParcelableExtra(para1: JLString): AOParcelable; overload; virtual;
    function getParcelableArrayExtra(para1: JLString): Arr1AOParcelable; overload; virtual;
    function getParcelableArrayListExtra(para1: JLString): JUArrayList; overload; virtual;
    function getSerializableExtra(para1: JLString): JISerializable; overload; virtual;
    function getIntegerArrayListExtra(para1: JLString): JUArrayList; overload; virtual;
    function getStringArrayListExtra(para1: JLString): JUArrayList; overload; virtual;
    function getCharSequenceArrayListExtra(para1: JLString): JUArrayList; overload; virtual;
    function getBooleanArrayExtra(para1: JLString): Arr1jboolean; overload; virtual;
    function getByteArrayExtra(para1: JLString): Arr1jbyte; overload; virtual;
    function getShortArrayExtra(para1: JLString): Arr1jshort; overload; virtual;
    function getCharArrayExtra(para1: JLString): Arr1jchar; overload; virtual;
    function getIntArrayExtra(para1: JLString): Arr1jint; overload; virtual;
    function getLongArrayExtra(para1: JLString): Arr1jlong; overload; virtual;
    function getFloatArrayExtra(para1: JLString): Arr1jfloat; overload; virtual;
    function getDoubleArrayExtra(para1: JLString): Arr1jdouble; overload; virtual;
    function getStringArrayExtra(para1: JLString): Arr1JLString; overload; virtual;
    function getCharSequenceArrayExtra(para1: JLString): Arr1JLCharSequence; overload; virtual;
    function getBundleExtra(para1: JLString): AOBundle; overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    function getFlags(): jint; overload; virtual;
    function getPackage(): JLString; overload; virtual;
    function getComponent(): ACComponentName; overload; virtual;
    function getSourceBounds(): AGRect; overload; virtual;
    function resolveActivity(para1: ACPPackageManager): ACComponentName; overload; virtual;
    function resolveActivityInfo(para1: ACPPackageManager; para2: jint): ACPActivityInfo; overload; virtual;
    function setAction(para1: JLString): ACIntent; overload; virtual;
    function setData(para1: ANUri): ACIntent; overload; virtual;
    function setType(para1: JLString): ACIntent; overload; virtual;
    function setDataAndType(para1: ANUri; para2: JLString): ACIntent; overload; virtual;
    function addCategory(para1: JLString): ACIntent; overload; virtual;
    procedure removeCategory(para1: JLString); overload; virtual;
    function putExtra(para1: JLString; para2: jboolean): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jbyte): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jchar): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jshort): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jint): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jlong): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jfloat): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: jdouble): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: JLString): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: JLCharSequence): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: AOParcelable): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1AOParcelable): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of AOParcelable): ACIntent; overload; virtual;
    function putParcelableArrayListExtra(para1: JLString; para2: JUArrayList): ACIntent; overload; virtual;
    function putIntegerArrayListExtra(para1: JLString; para2: JUArrayList): ACIntent; overload; virtual;
    function putStringArrayListExtra(para1: JLString; para2: JUArrayList): ACIntent; overload; virtual;
    function putCharSequenceArrayListExtra(para1: JLString; para2: JUArrayList): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: JISerializable): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jboolean): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jboolean): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jbyte): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jbyte): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jshort): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jshort): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jchar): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jchar): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jint): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jint): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jlong): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jlong): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jfloat): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jfloat): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1jdouble): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of jdouble): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1JLString): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of JLString): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: Arr1JLCharSequence): ACIntent; overload; virtual;
    function putExtra(para1: JLString; var para2: array of JLCharSequence): ACIntent; overload; virtual;
    function putExtra(para1: JLString; para2: AOBundle): ACIntent; overload; virtual;
    function putExtras(para1: ACIntent): ACIntent; overload; virtual;
    function putExtras(para1: AOBundle): ACIntent; overload; virtual;
    function replaceExtras(para1: ACIntent): ACIntent; overload; virtual;
    function replaceExtras(para1: AOBundle): ACIntent; overload; virtual;
    procedure removeExtra(para1: JLString); overload; virtual;
    function setFlags(para1: jint): ACIntent; overload; virtual;
    function addFlags(para1: jint): ACIntent; overload; virtual;
    function setPackage(para1: JLString): ACIntent; overload; virtual;
    function setComponent(para1: ACComponentName): ACIntent; overload; virtual;
    function setClassName(para1: ACContext; para2: JLString): ACIntent; overload; virtual;
    function setClassName(para1: JLString; para2: JLString): ACIntent; overload; virtual;
    function setClass(para1: ACContext; para2: JLClass): ACIntent; overload; virtual;
    procedure setSourceBounds(para1: AGRect); overload; virtual;
    function fillIn(para1: ACIntent; para2: jint): jint; overload; virtual;
    function filterEquals(para1: ACIntent): jboolean; overload; virtual;
    function filterHashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toURI(): JLString; overload; virtual;
    function toUri_(para1: jint): JLString; external name 'toUri'; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
    class function parseIntent(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet): ACIntent; static; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
  end;

  ACPeriodicSync = class external 'android.content' name 'PeriodicSync' (JLObject, AOParcelable)
  public
    final var
      faccount: AAAccount; external name 'account';
      fauthority: JLString; external name 'authority';
      fextras: AOBundle; external name 'extras';
      fperiod: jlong; external name 'period';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AAAccount; para2: JLString; para3: AOBundle; para4: jlong); overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  ACSyncAdapterType = class external 'android.content' name 'SyncAdapterType' (JLObject, AOParcelable)
  public
    final var
      fauthority: JLString; external name 'authority';
      faccountType: JLString; external name 'accountType';
      fisKey: jboolean; external name 'isKey';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: JLString; para3: jboolean; para4: jboolean); overload;
    constructor create(para1: AOParcel); overload;
    function supportsUploading(): jboolean; overload; virtual;
    function isUserVisible(): jboolean; overload; virtual;
    function allowParallelSyncs(): jboolean; overload; virtual;
    function isAlwaysSyncable(): jboolean; overload; virtual;
    function getSettingsActivity(): JLString; overload; virtual;
    class function newKey(para1: JLString; para2: JLString): ACSyncAdapterType; static; overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACSyncInfo = class external 'android.content' name 'SyncInfo' (JLObject, AOParcelable)
  public
    final var
      faccount: AAAccount; external name 'account';
      fauthority: JLString; external name 'authority';
      fstartTime: jlong; external name 'startTime';
  public
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACSyncResult = class sealed external 'android.content' name 'SyncResult' (JLObject, AOParcelable)
  public
    final var
      fsyncAlreadyInProgress: jboolean; external name 'syncAlreadyInProgress';
  public
    var
      ftooManyDeletions: jboolean; external name 'tooManyDeletions';
      ftooManyRetries: jboolean; external name 'tooManyRetries';
      fdatabaseError: jboolean; external name 'databaseError';
      ffullSyncRequested: jboolean; external name 'fullSyncRequested';
      fpartialSyncUnavailable: jboolean; external name 'partialSyncUnavailable';
      fmoreRecordsToGet: jboolean; external name 'moreRecordsToGet';
      fdelayUntil: jlong; external name 'delayUntil';
  public
    final var
      fstats: ACSyncStats; external name 'stats';
  public
    final class var
      fALREADY_IN_PROGRESS: ACSyncResult; external name 'ALREADY_IN_PROGRESS';
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    function hasHardError(): jboolean; overload; virtual;
    function hasSoftError(): jboolean; overload; virtual;
    function hasError(): jboolean; overload; virtual;
    function madeSomeProgress(): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
    function toDebugString(): JLString; overload; virtual;
  end;

  ACSyncStats = class external 'android.content' name 'SyncStats' (JLObject, AOParcelable)
  public
    var
      fnumAuthExceptions: jlong; external name 'numAuthExceptions';
      fnumIoExceptions: jlong; external name 'numIoExceptions';
      fnumParseExceptions: jlong; external name 'numParseExceptions';
      fnumConflictDetectedExceptions: jlong; external name 'numConflictDetectedExceptions';
      fnumInserts: jlong; external name 'numInserts';
      fnumUpdates: jlong; external name 'numUpdates';
      fnumDeletes: jlong; external name 'numDeletes';
      fnumEntries: jlong; external name 'numEntries';
      fnumSkippedEntries: jlong; external name 'numSkippedEntries';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: AOParcel); overload;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPConfigurationInfo = class external 'android.content.pm' name 'ConfigurationInfo' (JLObject, AOParcelable)
  public
    var
      freqTouchScreen: jint; external name 'reqTouchScreen';
      freqKeyboardType: jint; external name 'reqKeyboardType';
      freqNavigation: jint; external name 'reqNavigation';
  public
    const
      INPUT_FEATURE_HARD_KEYBOARD = 1;
      INPUT_FEATURE_FIVE_WAY_NAV = 2;
  public
    var
      freqInputFeatures: jint; external name 'reqInputFeatures';
  public
    const
      GL_ES_VERSION_UNDEFINED = 0;
  public
    var
      freqGlEsVersion: jint; external name 'reqGlEsVersion';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPConfigurationInfo); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getGlEsVersion(): JLString; overload; virtual;
  end;

  ACPFeatureInfo = class external 'android.content.pm' name 'FeatureInfo' (JLObject, AOParcelable)
  public
    var
      fname: JLString; external name 'name';
  public
    const
      GL_ES_VERSION_UNDEFINED = 0;
  public
    var
      freqGlEsVersion: jint; external name 'reqGlEsVersion';
  public
    const
      FLAG_REQUIRED = 1;
  public
    var
      fflags: jint; external name 'flags';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPFeatureInfo); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getGlEsVersion(): JLString; overload; virtual;
  end;

  ACPPackageInfo = class external 'android.content.pm' name 'PackageInfo' (JLObject, AOParcelable)
  public
    var
      fpackageName: JLString; external name 'packageName';
      fversionCode: jint; external name 'versionCode';
      fversionName: JLString; external name 'versionName';
      fsharedUserId: JLString; external name 'sharedUserId';
      fsharedUserLabel: jint; external name 'sharedUserLabel';
      fapplicationInfo: ACPApplicationInfo; external name 'applicationInfo';
      ffirstInstallTime: jlong; external name 'firstInstallTime';
      flastUpdateTime: jlong; external name 'lastUpdateTime';
      fgids: Arr1jint; external name 'gids';
      factivities: Arr1ACPActivityInfo; external name 'activities';
      freceivers: Arr1ACPActivityInfo; external name 'receivers';
      fservices: Arr1ACPServiceInfo; external name 'services';
      fproviders: Arr1ACPProviderInfo; external name 'providers';
      finstrumentation: Arr1ACPInstrumentationInfo; external name 'instrumentation';
      fpermissions: Arr1ACPPermissionInfo; external name 'permissions';
      frequestedPermissions: Arr1JLString; external name 'requestedPermissions';
      fsignatures: Arr1ACPSignature; external name 'signatures';
      fconfigPreferences: Arr1ACPConfigurationInfo; external name 'configPreferences';
      freqFeatures: Arr1ACPFeatureInfo; external name 'reqFeatures';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPPackageStats = class external 'android.content.pm' name 'PackageStats' (JLObject, AOParcelable)
  public
    var
      fpackageName: JLString; external name 'packageName';
      fcodeSize: jlong; external name 'codeSize';
      fdataSize: jlong; external name 'dataSize';
      fcacheSize: jlong; external name 'cacheSize';
      fexternalCodeSize: jlong; external name 'externalCodeSize';
      fexternalDataSize: jlong; external name 'externalDataSize';
      fexternalCacheSize: jlong; external name 'externalCacheSize';
      fexternalMediaSize: jlong; external name 'externalMediaSize';
      fexternalObbSize: jlong; external name 'externalObbSize';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: AOParcel); overload;
    constructor create(para1: ACPPackageStats); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPResolveInfo = class external 'android.content.pm' name 'ResolveInfo' (JLObject, AOParcelable)
  public
    type
      InnerDisplayNameComparator = class;
      Arr1InnerDisplayNameComparator = array of InnerDisplayNameComparator;
      Arr2InnerDisplayNameComparator = array of Arr1InnerDisplayNameComparator;
      Arr3InnerDisplayNameComparator = array of Arr2InnerDisplayNameComparator;
      InnerDisplayNameComparator = class external 'android.content.pm' name 'DisplayNameComparator' (JLObject, JUComparator)
      public
        constructor create(para1: ACPPackageManager); overload;
        function compare(para1: ACPResolveInfo; para2: ACPResolveInfo): jint; overload; virtual; final;
        function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
      end;

  public
    var
      factivityInfo: ACPActivityInfo; external name 'activityInfo';
      fserviceInfo: ACPServiceInfo; external name 'serviceInfo';
      ffilter: ACIntentFilter; external name 'filter';
      fpriority: jint; external name 'priority';
      fpreferredOrder: jint; external name 'preferredOrder';
      fmatch: jint; external name 'match';
      fspecificIndex: jint; external name 'specificIndex';
      fisDefault: jboolean; external name 'isDefault';
      flabelRes: jint; external name 'labelRes';
      fnonLocalizedLabel: JLCharSequence; external name 'nonLocalizedLabel';
      ficon: jint; external name 'icon';
      fresolvePackageName: JLString; external name 'resolvePackageName';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function getIconResource(): jint; overload; virtual; final;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPSignature = class external 'android.content.pm' name 'Signature' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: JLString); overload;
    function toChars(): Arr1jchar; overload; virtual;
    function toChars(para1: Arr1jchar; para2: Arr1jint): Arr1jchar; overload; virtual;
    function toChars(var para1: array of jchar; var para2: array of jint): Arr1jchar; overload; virtual;
    function toCharsString(): JLString; overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACRColorStateList = class external 'android.content.res' name 'ColorStateList' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: Arr2jint; para2: Arr1jint); overload;
    constructor create(para1: Arr2jint; const para2: array of jint); overload;
    class function valueOf(para1: jint): ACRColorStateList; static; overload;
    class function createFromXml(para1: ACRResources; para2: OXVXmlPullParser): ACRColorStateList; static; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function withAlpha(para1: jint): ACRColorStateList; overload; virtual;
    function isStateful(): jboolean; overload; virtual;
    function getColorForState(para1: Arr1jint; para2: jint): jint; overload; virtual;
    function getColorForState(var para1: array of jint; para2: jint): jint; overload; virtual;
    function getDefaultColor(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACRConfiguration = class sealed external 'android.content.res' name 'Configuration' (JLObject, AOParcelable, JLComparable)
  public
    var
      ffontScale: jfloat; external name 'fontScale';
      fmcc: jint; external name 'mcc';
      fmnc: jint; external name 'mnc';
      flocale: JULocale; external name 'locale';
  public
    const
      SCREENLAYOUT_SIZE_MASK = 15;
      SCREENLAYOUT_SIZE_UNDEFINED = 0;
      SCREENLAYOUT_SIZE_SMALL = 1;
      SCREENLAYOUT_SIZE_NORMAL = 2;
      SCREENLAYOUT_SIZE_LARGE = 3;
      SCREENLAYOUT_SIZE_XLARGE = 4;
      SCREENLAYOUT_LONG_MASK = 48;
      SCREENLAYOUT_LONG_UNDEFINED = 0;
      SCREENLAYOUT_LONG_NO = 16;
      SCREENLAYOUT_LONG_YES = 32;
  public
    var
      fscreenLayout: jint; external name 'screenLayout';
  public
    const
      TOUCHSCREEN_UNDEFINED = 0;
      TOUCHSCREEN_NOTOUCH = 1;
      TOUCHSCREEN_STYLUS = 2;
      TOUCHSCREEN_FINGER = 3;
  public
    var
      ftouchscreen: jint; external name 'touchscreen';
  public
    const
      KEYBOARD_UNDEFINED = 0;
      KEYBOARD_NOKEYS = 1;
      KEYBOARD_QWERTY = 2;
      KEYBOARD_12KEY = 3;
  public
    var
      fkeyboard: jint; external name 'keyboard';
  public
    const
      KEYBOARDHIDDEN_UNDEFINED = 0;
      KEYBOARDHIDDEN_NO = 1;
      KEYBOARDHIDDEN_YES = 2;
  public
    var
      fkeyboardHidden: jint; external name 'keyboardHidden';
  public
    const
      HARDKEYBOARDHIDDEN_UNDEFINED = 0;
      HARDKEYBOARDHIDDEN_NO = 1;
      HARDKEYBOARDHIDDEN_YES = 2;
  public
    var
      fhardKeyboardHidden: jint; external name 'hardKeyboardHidden';
  public
    const
      NAVIGATION_UNDEFINED = 0;
      NAVIGATION_NONAV = 1;
      NAVIGATION_DPAD = 2;
      NAVIGATION_TRACKBALL = 3;
      NAVIGATION_WHEEL = 4;
  public
    var
      fnavigation: jint; external name 'navigation';
  public
    const
      NAVIGATIONHIDDEN_UNDEFINED = 0;
      NAVIGATIONHIDDEN_NO = 1;
      NAVIGATIONHIDDEN_YES = 2;
  public
    var
      fnavigationHidden: jint; external name 'navigationHidden';
  public
    const
      ORIENTATION_UNDEFINED = 0;
      ORIENTATION_PORTRAIT = 1;
      ORIENTATION_LANDSCAPE = 2;
      ORIENTATION_SQUARE = 3;
  public
    var
      forientation: jint; external name 'orientation';
  public
    const
      UI_MODE_TYPE_MASK = 15;
      UI_MODE_TYPE_UNDEFINED = 0;
      UI_MODE_TYPE_NORMAL = 1;
      UI_MODE_TYPE_DESK = 2;
      UI_MODE_TYPE_CAR = 3;
      UI_MODE_TYPE_TELEVISION = 4;
      UI_MODE_NIGHT_MASK = 48;
      UI_MODE_NIGHT_UNDEFINED = 0;
      UI_MODE_NIGHT_NO = 16;
      UI_MODE_NIGHT_YES = 32;
  public
    var
      fuiMode: jint; external name 'uiMode';
  public
    const
      SCREEN_WIDTH_DP_UNDEFINED = 0;
  public
    var
      fscreenWidthDp: jint; external name 'screenWidthDp';
  public
    const
      SCREEN_HEIGHT_DP_UNDEFINED = 0;
  public
    var
      fscreenHeightDp: jint; external name 'screenHeightDp';
  public
    const
      SMALLEST_SCREEN_WIDTH_DP_UNDEFINED = 0;
  public
    var
      fsmallestScreenWidthDp: jint; external name 'smallestScreenWidthDp';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACRConfiguration); overload;
    function isLayoutSizeAtLeast(para1: jint): jboolean; overload; virtual;
    procedure setTo(para1: ACRConfiguration); overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure setToDefaults(); overload; virtual;
    function updateFrom(para1: ACRConfiguration): jint; overload; virtual;
    function diff(para1: ACRConfiguration): jint; overload; virtual;
    class function needNewResources(para1: jint; para2: jint): jboolean; static; overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
    function compareTo(para1: ACRConfiguration): jint; overload; virtual;
    function equals(para1: ACRConfiguration): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  ACRObbInfo = class external 'android.content.res' name 'ObbInfo' (JLObject, AOParcelable)
  public
    const
      OBB_OVERLAY = 1;
  public
    var
      ffilename: JLString; external name 'filename';
      fpackageName: JLString; external name 'packageName';
      fversion: jint; external name 'version';
      fflags: jint; external name 'flags';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ADCursorWindow = class external 'android.database' name 'CursorWindow' (ADSSQLiteClosable, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jboolean); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    procedure close(); overload; virtual;
    procedure clear(); overload; virtual;
    function getStartPosition(): jint; overload; virtual;
    procedure setStartPosition(para1: jint); overload; virtual;
    function getNumRows(): jint; overload; virtual;
    function setNumColumns(para1: jint): jboolean; overload; virtual;
    function allocRow(): jboolean; overload; virtual;
    procedure freeLastRow(); overload; virtual;
    function isNull(para1: jint; para2: jint): jboolean; overload; virtual;
    function isBlob(para1: jint; para2: jint): jboolean; overload; virtual;
    function isLong(para1: jint; para2: jint): jboolean; overload; virtual;
    function isFloat(para1: jint; para2: jint): jboolean; overload; virtual;
    function isString(para1: jint; para2: jint): jboolean; overload; virtual;
    function getType(para1: jint; para2: jint): jint; overload; virtual;
    function getBlob(para1: jint; para2: jint): Arr1jbyte; overload; virtual;
    function getString(para1: jint; para2: jint): JLString; overload; virtual;
    procedure copyStringToBuffer(para1: jint; para2: jint; para3: ADCharArrayBuffer); overload; virtual;
    function getLong(para1: jint; para2: jint): jlong; overload; virtual;
    function getDouble(para1: jint; para2: jint): jdouble; overload; virtual;
    function getShort(para1: jint; para2: jint): jshort; overload; virtual;
    function getInt(para1: jint; para2: jint): jint; overload; virtual;
    function getFloat(para1: jint; para2: jint): jfloat; overload; virtual;
    function putBlob(para1: Arr1jbyte; para2: jint; para3: jint): jboolean; overload; virtual;
    function putBlob(var para1: array of jbyte; para2: jint; para3: jint): jboolean; overload; virtual;
    function putString(para1: JLString; para2: jint; para3: jint): jboolean; overload; virtual;
    function putLong(para1: jlong; para2: jint; para3: jint): jboolean; overload; virtual;
    function putDouble(para1: jdouble; para2: jint; para3: jint): jboolean; overload; virtual;
    function putNull(para1: jint; para2: jint): jboolean; overload; virtual;
    class function newFromParcel(para1: AOParcel): ADCursorWindow; static; overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  strict protected
    procedure onAllReferencesReleased(); overload; virtual;
  end;

  AGGesture = class external 'android.gesture' name 'Gesture' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    function clone(): JLObject; overload; virtual;
    function getStrokes(): JUArrayList; overload; virtual;
    function getStrokesCount(): jint; overload; virtual;
    procedure addStroke(para1: AGGestureStroke); overload; virtual;
    function getLength(): jfloat; overload; virtual;
    function getBoundingBox(): AGRectF; overload; virtual;
    function toPath(): AGPath; overload; virtual;
    function toPath(para1: AGPath): AGPath; overload; virtual;
    function toPath(para1: jint; para2: jint; para3: jint; para4: jint): AGPath; overload; virtual;
    function toPath(para1: AGPath; para2: jint; para3: jint; para4: jint; para5: jint): AGPath; overload; virtual;
    function getID(): jlong; overload; virtual;
    function toBitmap(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint): AGBitmap; overload; virtual;
    function toBitmap(para1: jint; para2: jint; para3: jint; para4: jint): AGBitmap; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AGBitmap = class sealed external 'android.graphics' name 'Bitmap' (JLObject, AOParcelable)
  public
    type
      InnerCompressFormat = class;
      Arr1InnerCompressFormat = array of InnerCompressFormat;
      Arr2InnerCompressFormat = array of Arr1InnerCompressFormat;
      Arr3InnerCompressFormat = array of Arr2InnerCompressFormat;
      InnerConfig = class;
      Arr1InnerConfig = array of InnerConfig;
      Arr2InnerConfig = array of Arr1InnerConfig;
      Arr3InnerConfig = array of Arr2InnerConfig;
      InnerCompressFormat = class sealed external 'android.graphics' name 'CompressFormat' (JLEnum)
      public
        final class var
          fJPEG: AGBitmap.InnerCompressFormat; external name 'JPEG';
          fPNG: AGBitmap.InnerCompressFormat; external name 'PNG';
          fWEBP: AGBitmap.InnerCompressFormat; external name 'WEBP';
      public
        class function values(): AGBitmap.Arr1InnerCompressFormat; static; overload;
        class function valueOf(para1: JLString): AGBitmap.InnerCompressFormat; static; overload;
      end;

      InnerConfig = class sealed external 'android.graphics' name 'Config' (JLEnum)
      public
        final class var
          fALPHA_8: AGBitmap.InnerConfig; external name 'ALPHA_8';
          fARGB_4444: AGBitmap.InnerConfig; external name 'ARGB_4444';
          fARGB_8888: AGBitmap.InnerConfig; external name 'ARGB_8888';
          fRGB_565: AGBitmap.InnerConfig; external name 'RGB_565';
      public
        class function values(): AGBitmap.Arr1InnerConfig; static; overload;
        class function valueOf(para1: JLString): AGBitmap.InnerConfig; static; overload;
      end;

  public
    const
      DENSITY_NONE = 0;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getDensity(): jint; overload; virtual;
    procedure setDensity(para1: jint); overload; virtual;
    procedure recycle(); overload; virtual;
    function isRecycled(): jboolean; overload; virtual; final;
    function getGenerationId(): jint; overload; virtual;
    procedure copyPixelsToBuffer(para1: JNBuffer); overload; virtual;
    procedure copyPixelsFromBuffer(para1: JNBuffer); overload; virtual;
    function copy(para1: AGBitmap.InnerConfig; para2: jboolean): AGBitmap; overload; virtual;
    class function createScaledBitmap(para1: AGBitmap; para2: jint; para3: jint; para4: jboolean): AGBitmap; static; overload;
    class function createBitmap(para1: AGBitmap): AGBitmap; static; overload;
    class function createBitmap(para1: AGBitmap; para2: jint; para3: jint; para4: jint; para5: jint): AGBitmap; static; overload;
    class function createBitmap(para1: AGBitmap; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGMatrix; para7: jboolean): AGBitmap; static; overload;
    class function createBitmap(para1: jint; para2: jint; para3: AGBitmap.InnerConfig): AGBitmap; static; overload;
    class function createBitmap(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGBitmap.InnerConfig): AGBitmap; static; overload;
    class function createBitmap(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGBitmap.InnerConfig): AGBitmap; static; overload;
    class function createBitmap(para1: Arr1jint; para2: jint; para3: jint; para4: AGBitmap.InnerConfig): AGBitmap; static; overload;
    class function createBitmap(var para1: array of jint; para2: jint; para3: jint; para4: AGBitmap.InnerConfig): AGBitmap; static; overload;
    function getNinePatchChunk(): Arr1jbyte; overload; virtual;
    function compress(para1: AGBitmap.InnerCompressFormat; para2: jint; para3: JIOutputStream): jboolean; overload; virtual;
    function isMutable(): jboolean; overload; virtual; final;
    function getWidth(): jint; overload; virtual; final;
    function getHeight(): jint; overload; virtual; final;
    function getScaledWidth(para1: AGCanvas): jint; overload; virtual;
    function getScaledHeight(para1: AGCanvas): jint; overload; virtual;
    function getScaledWidth(para1: AUDisplayMetrics): jint; overload; virtual;
    function getScaledHeight(para1: AUDisplayMetrics): jint; overload; virtual;
    function getScaledWidth(para1: jint): jint; overload; virtual;
    function getScaledHeight(para1: jint): jint; overload; virtual;
    function getRowBytes(): jint; overload; virtual; final;
    function getByteCount(): jint; overload; virtual; final;
    function getConfig(): AGBitmap.InnerConfig; overload; virtual; final;
    function hasAlpha(): jboolean; overload; virtual; final;
    procedure setHasAlpha(para1: jboolean); overload; virtual;
    procedure eraseColor(para1: jint); overload; virtual;
    function getPixel(para1: jint; para2: jint): jint; overload; virtual;
    procedure getPixels(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure getPixels(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setPixels(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure setPixels(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function extractAlpha(): AGBitmap; overload; virtual;
    function extractAlpha(para1: AGPaint; para2: Arr1jint): AGBitmap; overload; virtual;
    function extractAlpha(para1: AGPaint; var para2: array of jint): AGBitmap; overload; virtual;
    function sameAs(para1: AGBitmap): jboolean; overload; virtual;
    procedure prepareToDraw(); overload; virtual;
  end;

  AGPoint = class external 'android.graphics' name 'Point' (JLObject, AOParcelable)
  public
    var
      fx: jint; external name 'x';
      fy: jint; external name 'y';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: AGPoint); overload;
    procedure &set(para1: jint; para2: jint); overload; virtual;
    procedure negate(); overload; virtual; final;
    procedure offset(para1: jint; para2: jint); overload; virtual; final;
    function equals(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
  end;

  AGPointF = class external 'android.graphics' name 'PointF' (JLObject, AOParcelable)
  public
    var
      fx: jfloat; external name 'x';
      fy: jfloat; external name 'y';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jfloat; para2: jfloat); overload;
    constructor create(para1: AGPoint); overload;
    procedure &set(para1: jfloat; para2: jfloat); overload; virtual; final;
    procedure &set(para1: AGPointF); overload; virtual; final;
    procedure negate(); overload; virtual; final;
    procedure offset(para1: jfloat; para2: jfloat); overload; virtual; final;
    function equals(para1: jfloat; para2: jfloat): jboolean; overload; virtual; final;
    function length(): jfloat; overload; virtual; final;
    class function length(para1: jfloat; para2: jfloat): jfloat; static; overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
  end;

  AGRect = class sealed external 'android.graphics' name 'Rect' (JLObject, AOParcelable)
  public
    var
      fleft: jint; external name 'left';
      ftop: jint; external name 'top';
      fright: jint; external name 'right';
      fbottom: jint; external name 'bottom';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: AGRect); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toShortString(): JLString; overload; virtual;
    function flattenToString(): JLString; overload; virtual;
    class function unflattenFromString(para1: JLString): AGRect; static; overload;
    function isEmpty(): jboolean; overload; virtual; final;
    function width(): jint; overload; virtual; final;
    function height(): jint; overload; virtual; final;
    function centerX(): jint; overload; virtual; final;
    function centerY(): jint; overload; virtual; final;
    function exactCenterX(): jfloat; overload; virtual; final;
    function exactCenterY(): jfloat; overload; virtual; final;
    procedure setEmpty(); overload; virtual;
    procedure &set(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure &set(para1: AGRect); overload; virtual;
    procedure offset(para1: jint; para2: jint); overload; virtual;
    procedure offsetTo(para1: jint; para2: jint); overload; virtual;
    procedure inset(para1: jint; para2: jint); overload; virtual;
    function contains(para1: jint; para2: jint): jboolean; overload; virtual;
    function contains(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function contains(para1: AGRect): jboolean; overload; virtual;
    function intersect(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function intersect(para1: AGRect): jboolean; overload; virtual;
    function setIntersect(para1: AGRect; para2: AGRect): jboolean; overload; virtual;
    function intersects(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    class function intersects(para1: AGRect; para2: AGRect): jboolean; static; overload;
    procedure union(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure union(para1: AGRect); overload; virtual;
    procedure union(para1: jint; para2: jint); overload; virtual;
    procedure sort(); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
  end;

  AGRectF = class external 'android.graphics' name 'RectF' (JLObject, AOParcelable)
  public
    var
      fleft: jfloat; external name 'left';
      ftop: jfloat; external name 'top';
      fright: jfloat; external name 'right';
      fbottom: jfloat; external name 'bottom';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    constructor create(para1: AGRectF); overload;
    constructor create(para1: AGRect); overload;
    function toString(): JLString; overload; virtual;
    function toShortString(): JLString; overload; virtual;
    function isEmpty(): jboolean; overload; virtual; final;
    function width(): jfloat; overload; virtual; final;
    function height(): jfloat; overload; virtual; final;
    function centerX(): jfloat; overload; virtual; final;
    function centerY(): jfloat; overload; virtual; final;
    procedure setEmpty(); overload; virtual;
    procedure &set(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure &set(para1: AGRectF); overload; virtual;
    procedure &set(para1: AGRect); overload; virtual;
    procedure offset(para1: jfloat; para2: jfloat); overload; virtual;
    procedure offsetTo(para1: jfloat; para2: jfloat); overload; virtual;
    procedure inset(para1: jfloat; para2: jfloat); overload; virtual;
    function contains(para1: jfloat; para2: jfloat): jboolean; overload; virtual;
    function contains(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function contains(para1: AGRectF): jboolean; overload; virtual;
    function intersect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function intersect(para1: AGRectF): jboolean; overload; virtual;
    function setIntersect(para1: AGRectF; para2: AGRectF): jboolean; overload; virtual;
    function intersects(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    class function intersects(para1: AGRectF; para2: AGRectF): jboolean; static; overload;
    procedure round(para1: AGRect); overload; virtual;
    procedure roundOut(para1: AGRect); overload; virtual;
    procedure union(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
    procedure union(para1: AGRectF); overload; virtual;
    procedure union(para1: jfloat; para2: jfloat); overload; virtual;
    procedure sort(); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
  end;

  AGRegion = class external 'android.graphics' name 'Region' (JLObject, AOParcelable)
  public
    type
      InnerOp = class;
      Arr1InnerOp = array of InnerOp;
      Arr2InnerOp = array of Arr1InnerOp;
      Arr3InnerOp = array of Arr2InnerOp;
      InnerOp = class sealed external 'android.graphics' name 'Op' (JLEnum)
      public
        final class var
          fDIFFERENCE: AGRegion.InnerOp; external name 'DIFFERENCE';
          fINTERSECT: AGRegion.InnerOp; external name 'INTERSECT';
          fREPLACE: AGRegion.InnerOp; external name 'REPLACE';
          fREVERSE_DIFFERENCE: AGRegion.InnerOp; external name 'REVERSE_DIFFERENCE';
          fUNION: AGRegion.InnerOp; external name 'UNION';
          fXOR: AGRegion.InnerOp; external name 'XOR';
      public
        class function values(): AGRegion.Arr1InnerOp; static; overload;
        class function valueOf(para1: JLString): AGRegion.InnerOp; static; overload;
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: AGRegion); overload;
    constructor create(para1: AGRect); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure setEmpty(); overload; virtual;
    function &set(para1: AGRegion): jboolean; overload; virtual;
    function &set(para1: AGRect): jboolean; overload; virtual;
    function &set(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function setPath(para1: AGPath; para2: AGRegion): jboolean; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function isRect(): jboolean; overload; virtual;
    function isComplex(): jboolean; overload; virtual;
    function getBounds(): AGRect; overload; virtual;
    function getBounds(para1: AGRect): jboolean; overload; virtual;
    function getBoundaryPath(): AGPath; overload; virtual;
    function getBoundaryPath(para1: AGPath): jboolean; overload; virtual;
    function contains(para1: jint; para2: jint): jboolean; overload; virtual;
    function quickContains(para1: AGRect): jboolean; overload; virtual;
    function quickContains(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function quickReject(para1: AGRect): jboolean; overload; virtual;
    function quickReject(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function quickReject(para1: AGRegion): jboolean; overload; virtual;
    procedure translate(para1: jint; para2: jint); overload; virtual;
    procedure translate(para1: jint; para2: jint; para3: AGRegion); overload; virtual;
    function union(para1: AGRect): jboolean; overload; virtual; final;
    function op(para1: AGRect; para2: AGRegion.InnerOp): jboolean; overload; virtual;
    function op(para1: jint; para2: jint; para3: jint; para4: jint; para5: AGRegion.InnerOp): jboolean; overload; virtual;
    function op(para1: AGRegion; para2: AGRegion.InnerOp): jboolean; overload; virtual;
    function op(para1: AGRect; para2: AGRegion; para3: AGRegion.InnerOp): jboolean; overload; virtual;
    function op(para1: AGRegion; para2: AGRegion; para3: AGRegion.InnerOp): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AHUUsbAccessory = class external 'android.hardware.usb' name 'UsbAccessory' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getManufacturer(): JLString; overload; virtual;
    function getModel(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getVersion(): JLString; overload; virtual;
    function getUri(): JLString; overload; virtual;
    function getSerial(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AHUUsbDevice = class external 'android.hardware.usb' name 'UsbDevice' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getDeviceName(): JLString; overload; virtual;
    function getDeviceId(): jint; overload; virtual;
    function getVendorId(): jint; overload; virtual;
    function getProductId(): jint; overload; virtual;
    function getDeviceClass(): jint; overload; virtual;
    function getDeviceSubclass(): jint; overload; virtual;
    function getDeviceProtocol(): jint; overload; virtual;
    function getInterfaceCount(): jint; overload; virtual;
    function getInterface(para1: jint): AHUUsbInterface; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    class function getDeviceId(para1: JLString): jint; static; overload;
    class function getDeviceName(para1: jint): JLString; static; overload;
  end;

  AHUUsbEndpoint = class external 'android.hardware.usb' name 'UsbEndpoint' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getAddress(): jint; overload; virtual;
    function getEndpointNumber(): jint; overload; virtual;
    function getDirection(): jint; overload; virtual;
    function getAttributes(): jint; overload; virtual;
    function getType(): jint; overload; virtual;
    function getMaxPacketSize(): jint; overload; virtual;
    function getInterval(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AHUUsbInterface = class external 'android.hardware.usb' name 'UsbInterface' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getId(): jint; overload; virtual;
    function getInterfaceClass(): jint; overload; virtual;
    function getInterfaceSubclass(): jint; overload; virtual;
    function getInterfaceProtocol(): jint; overload; virtual;
    function getEndpointCount(): jint; overload; virtual;
    function getEndpoint(para1: jint): AHUUsbEndpoint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ALAddress = class external 'android.location' name 'Address' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JULocale); overload;
    function getLocale(): JULocale; overload; virtual;
    function getMaxAddressLineIndex(): jint; overload; virtual;
    function getAddressLine(para1: jint): JLString; overload; virtual;
    procedure setAddressLine(para1: jint; para2: JLString); overload; virtual;
    function getFeatureName(): JLString; overload; virtual;
    procedure setFeatureName(para1: JLString); overload; virtual;
    function getAdminArea(): JLString; overload; virtual;
    procedure setAdminArea(para1: JLString); overload; virtual;
    function getSubAdminArea(): JLString; overload; virtual;
    procedure setSubAdminArea(para1: JLString); overload; virtual;
    function getLocality(): JLString; overload; virtual;
    procedure setLocality(para1: JLString); overload; virtual;
    function getSubLocality(): JLString; overload; virtual;
    procedure setSubLocality(para1: JLString); overload; virtual;
    function getThoroughfare(): JLString; overload; virtual;
    procedure setThoroughfare(para1: JLString); overload; virtual;
    function getSubThoroughfare(): JLString; overload; virtual;
    procedure setSubThoroughfare(para1: JLString); overload; virtual;
    function getPremises(): JLString; overload; virtual;
    procedure setPremises(para1: JLString); overload; virtual;
    function getPostalCode(): JLString; overload; virtual;
    procedure setPostalCode(para1: JLString); overload; virtual;
    function getCountryCode(): JLString; overload; virtual;
    procedure setCountryCode(para1: JLString); overload; virtual;
    function getCountryName(): JLString; overload; virtual;
    procedure setCountryName(para1: JLString); overload; virtual;
    function hasLatitude(): jboolean; overload; virtual;
    function getLatitude(): jdouble; overload; virtual;
    procedure setLatitude(para1: jdouble); overload; virtual;
    procedure clearLatitude(); overload; virtual;
    function hasLongitude(): jboolean; overload; virtual;
    function getLongitude(): jdouble; overload; virtual;
    procedure setLongitude(para1: jdouble); overload; virtual;
    procedure clearLongitude(); overload; virtual;
    function getPhone(): JLString; overload; virtual;
    procedure setPhone(para1: JLString); overload; virtual;
    function getUrl(): JLString; overload; virtual;
    procedure setUrl(para1: JLString); overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    procedure setExtras(para1: AOBundle); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ALCriteria = class external 'android.location' name 'Criteria' (JLObject, AOParcelable)
  public
    const
      NO_REQUIREMENT = 0;
      POWER_LOW = 1;
      POWER_MEDIUM = 2;
      POWER_HIGH = 3;
      ACCURACY_FINE = 1;
      ACCURACY_COARSE = 2;
      ACCURACY_LOW = 1;
      ACCURACY_MEDIUM = 2;
      ACCURACY_HIGH = 3;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ALCriteria); overload;
    procedure setHorizontalAccuracy(para1: jint); overload; virtual;
    function getHorizontalAccuracy(): jint; overload; virtual;
    procedure setVerticalAccuracy(para1: jint); overload; virtual;
    function getVerticalAccuracy(): jint; overload; virtual;
    procedure setSpeedAccuracy(para1: jint); overload; virtual;
    function getSpeedAccuracy(): jint; overload; virtual;
    procedure setBearingAccuracy(para1: jint); overload; virtual;
    function getBearingAccuracy(): jint; overload; virtual;
    procedure setAccuracy(para1: jint); overload; virtual;
    function getAccuracy(): jint; overload; virtual;
    procedure setPowerRequirement(para1: jint); overload; virtual;
    function getPowerRequirement(): jint; overload; virtual;
    procedure setCostAllowed(para1: jboolean); overload; virtual;
    function isCostAllowed(): jboolean; overload; virtual;
    procedure setAltitudeRequired(para1: jboolean); overload; virtual;
    function isAltitudeRequired(): jboolean; overload; virtual;
    procedure setSpeedRequired(para1: jboolean); overload; virtual;
    function isSpeedRequired(): jboolean; overload; virtual;
    procedure setBearingRequired(para1: jboolean); overload; virtual;
    function isBearingRequired(): jboolean; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ALLocation = class external 'android.location' name 'Location' (JLObject, AOParcelable)
  public
    const
      FORMAT_DEGREES = 0;
      FORMAT_MINUTES = 1;
      FORMAT_SECONDS = 2;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: ALLocation); overload;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    procedure &set(para1: ALLocation); overload; virtual;
    procedure reset(); overload; virtual;
    class function convert(para1: jdouble; para2: jint): JLString; static; overload;
    class function convert(para1: JLString): jdouble; static; overload;
    class procedure distanceBetween(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: Arr1jfloat); static; overload;
    class procedure distanceBetween(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; var para5: array of jfloat); static; overload;
    function distanceTo(para1: ALLocation): jfloat; overload; virtual;
    function bearingTo(para1: ALLocation): jfloat; overload; virtual;
    function getProvider(): JLString; overload; virtual;
    procedure setProvider(para1: JLString); overload; virtual;
    function getTime(): jlong; overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    function getLatitude(): jdouble; overload; virtual;
    procedure setLatitude(para1: jdouble); overload; virtual;
    function getLongitude(): jdouble; overload; virtual;
    procedure setLongitude(para1: jdouble); overload; virtual;
    function hasAltitude(): jboolean; overload; virtual;
    function getAltitude(): jdouble; overload; virtual;
    procedure setAltitude(para1: jdouble); overload; virtual;
    procedure removeAltitude(); overload; virtual;
    function hasSpeed(): jboolean; overload; virtual;
    function getSpeed(): jfloat; overload; virtual;
    procedure setSpeed(para1: jfloat); overload; virtual;
    procedure removeSpeed(); overload; virtual;
    function hasBearing(): jboolean; overload; virtual;
    function getBearing(): jfloat; overload; virtual;
    procedure setBearing(para1: jfloat); overload; virtual;
    procedure removeBearing(); overload; virtual;
    function hasAccuracy(): jboolean; overload; virtual;
    function getAccuracy(): jfloat; overload; virtual;
    procedure setAccuracy(para1: jfloat); overload; virtual;
    procedure removeAccuracy(); overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    procedure setExtras(para1: AOBundle); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANDhcpInfo = class external 'android.net' name 'DhcpInfo' (JLObject, AOParcelable)
  public
    var
      fipAddress: jint; external name 'ipAddress';
      fgateway: jint; external name 'gateway';
      fnetmask: jint; external name 'netmask';
      fdns1: jint; external name 'dns1';
      fdns2: jint; external name 'dns2';
      fserverAddress: jint; external name 'serverAddress';
      fleaseDuration: jint; external name 'leaseDuration';
  public
    constructor create(); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANNetworkInfo = class external 'android.net' name 'NetworkInfo' (JLObject, AOParcelable)
  public
    type
      InnerDetailedState = class;
      Arr1InnerDetailedState = array of InnerDetailedState;
      Arr2InnerDetailedState = array of Arr1InnerDetailedState;
      Arr3InnerDetailedState = array of Arr2InnerDetailedState;
      InnerState = class;
      Arr1InnerState = array of InnerState;
      Arr2InnerState = array of Arr1InnerState;
      Arr3InnerState = array of Arr2InnerState;
      InnerDetailedState = class sealed external 'android.net' name 'DetailedState' (JLEnum)
      public
        final class var
          fAUTHENTICATING: ANNetworkInfo.InnerDetailedState; external name 'AUTHENTICATING';
          fBLOCKED: ANNetworkInfo.InnerDetailedState; external name 'BLOCKED';
          fCONNECTED: ANNetworkInfo.InnerDetailedState; external name 'CONNECTED';
          fCONNECTING: ANNetworkInfo.InnerDetailedState; external name 'CONNECTING';
          fDISCONNECTED: ANNetworkInfo.InnerDetailedState; external name 'DISCONNECTED';
          fDISCONNECTING: ANNetworkInfo.InnerDetailedState; external name 'DISCONNECTING';
          fFAILED: ANNetworkInfo.InnerDetailedState; external name 'FAILED';
          fIDLE: ANNetworkInfo.InnerDetailedState; external name 'IDLE';
          fOBTAINING_IPADDR: ANNetworkInfo.InnerDetailedState; external name 'OBTAINING_IPADDR';
          fSCANNING: ANNetworkInfo.InnerDetailedState; external name 'SCANNING';
          fSUSPENDED: ANNetworkInfo.InnerDetailedState; external name 'SUSPENDED';
      public
        class function values(): ANNetworkInfo.Arr1InnerDetailedState; static; overload;
        class function valueOf(para1: JLString): ANNetworkInfo.InnerDetailedState; static; overload;
      end;

      InnerState = class sealed external 'android.net' name 'State' (JLEnum)
      public
        final class var
          fCONNECTED: ANNetworkInfo.InnerState; external name 'CONNECTED';
          fCONNECTING: ANNetworkInfo.InnerState; external name 'CONNECTING';
          fDISCONNECTED: ANNetworkInfo.InnerState; external name 'DISCONNECTED';
          fDISCONNECTING: ANNetworkInfo.InnerState; external name 'DISCONNECTING';
          fSUSPENDED: ANNetworkInfo.InnerState; external name 'SUSPENDED';
          fUNKNOWN: ANNetworkInfo.InnerState; external name 'UNKNOWN';
      public
        class function values(): ANNetworkInfo.Arr1InnerState; static; overload;
        class function valueOf(para1: JLString): ANNetworkInfo.InnerState; static; overload;
      end;

  public
    function getType(): jint; overload; virtual;
    function getSubtype(): jint; overload; virtual;
    function getTypeName(): JLString; overload; virtual;
    function getSubtypeName(): JLString; overload; virtual;
    function isConnectedOrConnecting(): jboolean; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    function isAvailable(): jboolean; overload; virtual;
    function isFailover(): jboolean; overload; virtual;
    function isRoaming(): jboolean; overload; virtual;
    function getState(): ANNetworkInfo.InnerState; overload; virtual;
    function getDetailedState(): ANNetworkInfo.InnerDetailedState; overload; virtual;
    function getReason(): JLString; overload; virtual;
    function getExtraInfo(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANUri = class abstract external 'android.net' name 'Uri' (JLObject, AOParcelable, JLComparable)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class sealed external 'android.net' name 'Builder' (JLObject)
      public
        constructor create(); overload;
        function scheme(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function opaquePart(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function encodedOpaquePart(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function authority(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function encodedAuthority(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function path(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function encodedPath(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function appendPath(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function appendEncodedPath(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function query(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function encodedQuery(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function fragment(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function encodedFragment(para1: JLString): ANUri.InnerBuilder; overload; virtual;
        function appendQueryParameter(para1: JLString; para2: JLString): ANUri.InnerBuilder; overload; virtual;
        function clearQuery(): ANUri.InnerBuilder; overload; virtual;
        function build(): ANUri; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    final class var
      fEMPTY: ANUri; external name 'EMPTY';
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function isHierarchical(): jboolean; overload; virtual; abstract;
    function isOpaque(): jboolean; overload; virtual;
    function isRelative(): jboolean; overload; virtual; abstract;
    function isAbsolute(): jboolean; overload; virtual;
    function getScheme(): JLString; overload; virtual; abstract;
    function getSchemeSpecificPart(): JLString; overload; virtual; abstract;
    function getEncodedSchemeSpecificPart(): JLString; overload; virtual; abstract;
    function getAuthority(): JLString; overload; virtual; abstract;
    function getEncodedAuthority(): JLString; overload; virtual; abstract;
    function getUserInfo(): JLString; overload; virtual; abstract;
    function getEncodedUserInfo(): JLString; overload; virtual; abstract;
    function getHost(): JLString; overload; virtual; abstract;
    function getPort(): jint; overload; virtual; abstract;
    function getPath(): JLString; overload; virtual; abstract;
    function getEncodedPath(): JLString; overload; virtual; abstract;
    function getQuery(): JLString; overload; virtual; abstract;
    function getEncodedQuery(): JLString; overload; virtual; abstract;
    function getFragment(): JLString; overload; virtual; abstract;
    function getEncodedFragment(): JLString; overload; virtual; abstract;
    function getPathSegments(): JUList; overload; virtual; abstract;
    function getLastPathSegment(): JLString; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function compareTo(para1: ANUri): jint; overload; virtual;
    function toString(): JLString; overload; virtual; abstract;
    function buildUpon(): ANUri.InnerBuilder; overload; virtual; abstract;
    class function parse(para1: JLString): ANUri; static; overload;
    class function fromFile(para1: JIFile): ANUri; static; overload;
    class function fromParts(para1: JLString; para2: JLString; para3: JLString): ANUri; static; overload;
    function getQueryParameterNames(): JUSet; overload; virtual;
    function getQueryParameters(para1: JLString): JUList; overload; virtual;
    function getQueryParameter(para1: JLString): JLString; overload; virtual;
    function getBooleanQueryParameter(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    class procedure writeToParcel(para1: AOParcel; para2: ANUri); static; overload;
    class function encode(para1: JLString): JLString; static; overload;
    class function encode(para1: JLString; para2: JLString): JLString; static; overload;
    class function decode(para1: JLString): JLString; static; overload;
    class function withAppendedPath(para1: ANUri; para2: JLString): ANUri; static; overload;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  ANSSipProfile = class external 'android.net.sip' name 'SipProfile' (JLObject, AOParcelable, JISerializable, JLCloneable)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.net.sip' name 'Builder' (JLObject)
      public
        constructor create(para1: ANSSipProfile); overload;
        constructor create(para1: JLString); overload;  // throws java.text.ParseException
        constructor create(para1: JLString; para2: JLString); overload;  // throws java.text.ParseException
        function setAuthUserName(para1: JLString): ANSSipProfile.InnerBuilder; overload; virtual;
        function setProfileName(para1: JLString): ANSSipProfile.InnerBuilder; overload; virtual;
        function setPassword(para1: JLString): ANSSipProfile.InnerBuilder; overload; virtual;
        function setPort(para1: jint): ANSSipProfile.InnerBuilder; overload; virtual;  // throws java.lang.IllegalArgumentException
        function setProtocol(para1: JLString): ANSSipProfile.InnerBuilder; overload; virtual;  // throws java.lang.IllegalArgumentException
        function setOutboundProxy(para1: JLString): ANSSipProfile.InnerBuilder; overload; virtual;
        function setDisplayName(para1: JLString): ANSSipProfile.InnerBuilder; overload; virtual;
        function setSendKeepAlive(para1: jboolean): ANSSipProfile.InnerBuilder; overload; virtual;
        function setAutoRegistration(para1: jboolean): ANSSipProfile.InnerBuilder; overload; virtual;
        function build(): ANSSipProfile; overload; virtual;
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function getUriString(): JLString; overload; virtual;
    function getDisplayName(): JLString; overload; virtual;
    function getUserName(): JLString; overload; virtual;
    function getAuthUserName(): JLString; overload; virtual;
    function getPassword(): JLString; overload; virtual;
    function getSipDomain(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getProtocol(): JLString; overload; virtual;
    function getProxyAddress(): JLString; overload; virtual;
    function getProfileName(): JLString; overload; virtual;
    function getSendKeepAlive(): jboolean; overload; virtual;
    function getAutoRegistration(): jboolean; overload; virtual;
  end;

  ANWScanResult = class external 'android.net.wifi' name 'ScanResult' (JLObject, AOParcelable)
  public
    var
      fSSID: JLString; external name 'SSID';
      fBSSID: JLString; external name 'BSSID';
      fcapabilities: JLString; external name 'capabilities';
      flevel: jint; external name 'level';
      ffrequency: jint; external name 'frequency';
  public
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWSupplicantState = class sealed external 'android.net.wifi' name 'SupplicantState' (JLEnum, AOParcelable)
  public
    final class var
      fASSOCIATED: ANWSupplicantState; external name 'ASSOCIATED';
      fASSOCIATING: ANWSupplicantState; external name 'ASSOCIATING';
      fAUTHENTICATING: ANWSupplicantState; external name 'AUTHENTICATING';
      fCOMPLETED: ANWSupplicantState; external name 'COMPLETED';
      fDISCONNECTED: ANWSupplicantState; external name 'DISCONNECTED';
      fDORMANT: ANWSupplicantState; external name 'DORMANT';
      fFOUR_WAY_HANDSHAKE: ANWSupplicantState; external name 'FOUR_WAY_HANDSHAKE';
      fGROUP_HANDSHAKE: ANWSupplicantState; external name 'GROUP_HANDSHAKE';
      fINACTIVE: ANWSupplicantState; external name 'INACTIVE';
      fINTERFACE_DISABLED: ANWSupplicantState; external name 'INTERFACE_DISABLED';
      fINVALID: ANWSupplicantState; external name 'INVALID';
      fSCANNING: ANWSupplicantState; external name 'SCANNING';
      fUNINITIALIZED: ANWSupplicantState; external name 'UNINITIALIZED';
  public
    class function values(): Arr1ANWSupplicantState; static; overload;
    class function valueOf(para1: JLString): ANWSupplicantState; static; overload;
    class function isValidState(para1: ANWSupplicantState): jboolean; static; overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWWifiConfiguration = class external 'android.net.wifi' name 'WifiConfiguration' (JLObject, AOParcelable)
  public
    type
      InnerStatus = class;
      Arr1InnerStatus = array of InnerStatus;
      Arr2InnerStatus = array of Arr1InnerStatus;
      Arr3InnerStatus = array of Arr2InnerStatus;
      InnerGroupCipher = class;
      Arr1InnerGroupCipher = array of InnerGroupCipher;
      Arr2InnerGroupCipher = array of Arr1InnerGroupCipher;
      Arr3InnerGroupCipher = array of Arr2InnerGroupCipher;
      InnerPairwiseCipher = class;
      Arr1InnerPairwiseCipher = array of InnerPairwiseCipher;
      Arr2InnerPairwiseCipher = array of Arr1InnerPairwiseCipher;
      Arr3InnerPairwiseCipher = array of Arr2InnerPairwiseCipher;
      InnerAuthAlgorithm = class;
      Arr1InnerAuthAlgorithm = array of InnerAuthAlgorithm;
      Arr2InnerAuthAlgorithm = array of Arr1InnerAuthAlgorithm;
      Arr3InnerAuthAlgorithm = array of Arr2InnerAuthAlgorithm;
      InnerProtocol = class;
      Arr1InnerProtocol = array of InnerProtocol;
      Arr2InnerProtocol = array of Arr1InnerProtocol;
      Arr3InnerProtocol = array of Arr2InnerProtocol;
      InnerKeyMgmt = class;
      Arr1InnerKeyMgmt = array of InnerKeyMgmt;
      Arr2InnerKeyMgmt = array of Arr1InnerKeyMgmt;
      Arr3InnerKeyMgmt = array of Arr2InnerKeyMgmt;
      InnerStatus = class external 'android.net.wifi' name 'Status' (JLObject)
      public
        const
          CURRENT = 0;
          DISABLED = 1;
          ENABLED = 2;
      public
        final class var
          fstrings: Arr1JLString; external name 'strings';
      end;

      InnerGroupCipher = class external 'android.net.wifi' name 'GroupCipher' (JLObject)
      public
        const
          WEP40 = 0;
          WEP104 = 1;
          TKIP = 2;
          CCMP = 3;
          varName = 'group';
      public
        final class var
          fstrings: Arr1JLString; external name 'strings';
      end;

      InnerPairwiseCipher = class external 'android.net.wifi' name 'PairwiseCipher' (JLObject)
      public
        const
          NONE = 0;
          TKIP = 1;
          CCMP = 2;
          varName = 'pairwise';
      public
        final class var
          fstrings: Arr1JLString; external name 'strings';
      end;

      InnerAuthAlgorithm = class external 'android.net.wifi' name 'AuthAlgorithm' (JLObject)
      public
        const
          OPEN = 0;
          SHARED = 1;
          LEAP = 2;
          varName = 'auth_alg';
      public
        final class var
          fstrings: Arr1JLString; external name 'strings';
      end;

      InnerProtocol = class external 'android.net.wifi' name 'Protocol' (JLObject)
      public
        const
          WPA = 0;
          RSN = 1;
          varName = 'proto';
      public
        final class var
          fstrings: Arr1JLString; external name 'strings';
      end;

      InnerKeyMgmt = class external 'android.net.wifi' name 'KeyMgmt' (JLObject)
      public
        const
          NONE = 0;
          WPA_PSK = 1;
          WPA_EAP = 2;
          IEEE8021X = 3;
          varName = 'key_mgmt';
      public
        final class var
          fstrings: Arr1JLString; external name 'strings';
      end;

  public
    var
      fnetworkId: jint; external name 'networkId';
      fstatus: jint; external name 'status';
      fSSID: JLString; external name 'SSID';
      fBSSID: JLString; external name 'BSSID';
      fpreSharedKey: JLString; external name 'preSharedKey';
      fwepKeys: Arr1JLString; external name 'wepKeys';
      fwepTxKeyIndex: jint; external name 'wepTxKeyIndex';
      fpriority: jint; external name 'priority';
      fhiddenSSID: jboolean; external name 'hiddenSSID';
      fallowedKeyManagement: JUBitSet; external name 'allowedKeyManagement';
      fallowedProtocols: JUBitSet; external name 'allowedProtocols';
      fallowedAuthAlgorithms: JUBitSet; external name 'allowedAuthAlgorithms';
      fallowedPairwiseCiphers: JUBitSet; external name 'allowedPairwiseCiphers';
      fallowedGroupCiphers: JUBitSet; external name 'allowedGroupCiphers';
  public
    constructor create(); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWWpsInfo = class external 'android.net.wifi' name 'WpsInfo' (JLObject, AOParcelable)
  public
    const
      PBC = 0;
      DISPLAY = 1;
      KEYPAD = 2;
      &LABEL = 3;
      INVALID = 4;
  public
    var
      fsetup: jint; external name 'setup';
      fpin: JLString; external name 'pin';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ANWWpsInfo); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWPWifiP2pConfig = class external 'android.net.wifi.p2p' name 'WifiP2pConfig' (JLObject, AOParcelable)
  public
    var
      fdeviceAddress: JLString; external name 'deviceAddress';
      fwps: ANWWpsInfo; external name 'wps';
      fgroupOwnerIntent: jint; external name 'groupOwnerIntent';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ANWPWifiP2pConfig); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWPWifiP2pDevice = class external 'android.net.wifi.p2p' name 'WifiP2pDevice' (JLObject, AOParcelable)
  public
    var
      fdeviceName: JLString; external name 'deviceName';
      fdeviceAddress: JLString; external name 'deviceAddress';
      fprimaryDeviceType: JLString; external name 'primaryDeviceType';
      fsecondaryDeviceType: JLString; external name 'secondaryDeviceType';
  public
    const
      CONNECTED = 0;
      INVITED = 1;
      FAILED = 2;
      AVAILABLE = 3;
      UNAVAILABLE = 4;
  public
    var
      fstatus: jint; external name 'status';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ANWPWifiP2pDevice); overload;
    function wpsPbcSupported(): jboolean; overload; virtual;
    function wpsKeypadSupported(): jboolean; overload; virtual;
    function wpsDisplaySupported(): jboolean; overload; virtual;
    function isServiceDiscoveryCapable(): jboolean; overload; virtual;
    function isGroupOwner(): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWPWifiP2pDeviceList = class external 'android.net.wifi.p2p' name 'WifiP2pDeviceList' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ANWPWifiP2pDeviceList); overload;
    function getDeviceList(): JUCollection; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWPWifiP2pGroup = class external 'android.net.wifi.p2p' name 'WifiP2pGroup' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ANWPWifiP2pGroup); overload;
    function getNetworkName(): JLString; overload; virtual;
    function isGroupOwner(): jboolean; overload; virtual;
    function getOwner(): ANWPWifiP2pDevice; overload; virtual;
    function getClientList(): JUCollection; overload; virtual;
    function getPassphrase(): JLString; overload; virtual;
    function getInterface(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANWPWifiP2pInfo = class external 'android.net.wifi.p2p' name 'WifiP2pInfo' (JLObject, AOParcelable)
  public
    var
      fgroupFormed: jboolean; external name 'groupFormed';
      fisGroupOwner: jboolean; external name 'isGroupOwner';
      fgroupOwnerAddress: JNInetAddress; external name 'groupOwnerAddress';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ANWPWifiP2pInfo); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANNdefMessage = class sealed external 'android.nfc' name 'NdefMessage' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: Arr1jbyte); overload;  // throws android.nfc.FormatException
    constructor create(const para1: array of jbyte); overload;  // throws android.nfc.FormatException
    constructor create(para1: Arr1ANNdefRecord); overload;
    constructor create(const para1: array of ANNdefRecord); overload;
    function getRecords(): Arr1ANNdefRecord; overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANNdefRecord = class sealed external 'android.nfc' name 'NdefRecord' (JLObject, AOParcelable)
  public
    const
      TNF_EMPTY = 0;
      TNF_WELL_KNOWN = 1;
      TNF_MIME_MEDIA = 2;
      TNF_ABSOLUTE_URI = 3;
      TNF_EXTERNAL_TYPE = 4;
      TNF_UNKNOWN = 5;
      TNF_UNCHANGED = 6;
  public
    final class var
      fRTD_TEXT: Arr1jbyte; external name 'RTD_TEXT';
      fRTD_URI: Arr1jbyte; external name 'RTD_URI';
      fRTD_SMART_POSTER: Arr1jbyte; external name 'RTD_SMART_POSTER';
      fRTD_ALTERNATIVE_CARRIER: Arr1jbyte; external name 'RTD_ALTERNATIVE_CARRIER';
      fRTD_HANDOVER_CARRIER: Arr1jbyte; external name 'RTD_HANDOVER_CARRIER';
      fRTD_HANDOVER_REQUEST: Arr1jbyte; external name 'RTD_HANDOVER_REQUEST';
      fRTD_HANDOVER_SELECT: Arr1jbyte; external name 'RTD_HANDOVER_SELECT';
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jshort; para2: Arr1jbyte; para3: Arr1jbyte; para4: Arr1jbyte); overload;
    constructor create(para1: jshort; const para2: array of jbyte; const para3: array of jbyte; const para4: array of jbyte); overload;
    constructor create(para1: Arr1jbyte); overload;  // throws android.nfc.FormatException
    constructor create(const para1: array of jbyte); overload;  // throws android.nfc.FormatException
    function getTnf(): jshort; overload; virtual;
    function getType(): Arr1jbyte; overload; virtual;
    function getId(): Arr1jbyte; overload; virtual;
    function getPayload(): Arr1jbyte; overload; virtual;
    class function createApplicationRecord(para1: JLString): ANNdefRecord; static; overload;
    class function createUri(para1: ANUri): ANNdefRecord; static; overload;
    class function createUri(para1: JLString): ANNdefRecord; static; overload;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ANTag = class sealed external 'android.nfc' name 'Tag' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getId(): Arr1jbyte; overload; virtual;
    function getTechList(): Arr1JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AOBundle = class sealed external 'android.os' name 'Bundle' (JLObject, AOParcelable, JLCloneable)
  public
    final class var
      fEMPTY: AOBundle; external name 'EMPTY';
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: JLClassLoader); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: AOBundle); overload;
    procedure setClassLoader(para1: JLClassLoader); overload; virtual;
    function getClassLoader(): JLClassLoader; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function containsKey(para1: JLString): jboolean; overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    procedure putAll(para1: AOBundle); overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function hasFileDescriptors(): jboolean; overload; virtual;
    procedure putBoolean(para1: JLString; para2: jboolean); overload; virtual;
    procedure putByte(para1: JLString; para2: jbyte); overload; virtual;
    procedure putChar(para1: JLString; para2: jchar); overload; virtual;
    procedure putShort(para1: JLString; para2: jshort); overload; virtual;
    procedure putInt(para1: JLString; para2: jint); overload; virtual;
    procedure putLong(para1: JLString; para2: jlong); overload; virtual;
    procedure putFloat(para1: JLString; para2: jfloat); overload; virtual;
    procedure putDouble(para1: JLString; para2: jdouble); overload; virtual;
    procedure putString(para1: JLString; para2: JLString); overload; virtual;
    procedure putCharSequence(para1: JLString; para2: JLCharSequence); overload; virtual;
    procedure putParcelable(para1: JLString; para2: AOParcelable); overload; virtual;
    procedure putParcelableArray(para1: JLString; para2: Arr1AOParcelable); overload; virtual;
    procedure putParcelableArray(para1: JLString; var para2: array of AOParcelable); overload; virtual;
    procedure putParcelableArrayList(para1: JLString; para2: JUArrayList); overload; virtual;
    procedure putSparseParcelableArray(para1: JLString; para2: AUSparseArray); overload; virtual;
    procedure putIntegerArrayList(para1: JLString; para2: JUArrayList); overload; virtual;
    procedure putStringArrayList(para1: JLString; para2: JUArrayList); overload; virtual;
    procedure putCharSequenceArrayList(para1: JLString; para2: JUArrayList); overload; virtual;
    procedure putSerializable(para1: JLString; para2: JISerializable); overload; virtual;
    procedure putBooleanArray(para1: JLString; para2: Arr1jboolean); overload; virtual;
    procedure putBooleanArray(para1: JLString; var para2: array of jboolean); overload; virtual;
    procedure putByteArray(para1: JLString; para2: Arr1jbyte); overload; virtual;
    procedure putByteArray(para1: JLString; var para2: array of jbyte); overload; virtual;
    procedure putShortArray(para1: JLString; para2: Arr1jshort); overload; virtual;
    procedure putShortArray(para1: JLString; var para2: array of jshort); overload; virtual;
    procedure putCharArray(para1: JLString; para2: Arr1jchar); overload; virtual;
    procedure putCharArray(para1: JLString; var para2: array of jchar); overload; virtual;
    procedure putIntArray(para1: JLString; para2: Arr1jint); overload; virtual;
    procedure putIntArray(para1: JLString; var para2: array of jint); overload; virtual;
    procedure putLongArray(para1: JLString; para2: Arr1jlong); overload; virtual;
    procedure putLongArray(para1: JLString; var para2: array of jlong); overload; virtual;
    procedure putFloatArray(para1: JLString; para2: Arr1jfloat); overload; virtual;
    procedure putFloatArray(para1: JLString; var para2: array of jfloat); overload; virtual;
    procedure putDoubleArray(para1: JLString; para2: Arr1jdouble); overload; virtual;
    procedure putDoubleArray(para1: JLString; var para2: array of jdouble); overload; virtual;
    procedure putStringArray(para1: JLString; para2: Arr1JLString); overload; virtual;
    procedure putStringArray(para1: JLString; var para2: array of JLString); overload; virtual;
    procedure putCharSequenceArray(para1: JLString; para2: Arr1JLCharSequence); overload; virtual;
    procedure putCharSequenceArray(para1: JLString; var para2: array of JLCharSequence); overload; virtual;
    procedure putBundle(para1: JLString; para2: AOBundle); overload; virtual;
    function getBoolean(para1: JLString): jboolean; overload; virtual;
    function getBoolean(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    function getByte(para1: JLString): jbyte; overload; virtual;
    function getByte(para1: JLString; para2: jbyte): JLByte; overload; virtual;
    function getChar(para1: JLString): jchar; overload; virtual;
    function getChar(para1: JLString; para2: jchar): jchar; overload; virtual;
    function getShort(para1: JLString): jshort; overload; virtual;
    function getShort(para1: JLString; para2: jshort): jshort; overload; virtual;
    function getInt(para1: JLString): jint; overload; virtual;
    function getInt(para1: JLString; para2: jint): jint; overload; virtual;
    function getLong(para1: JLString): jlong; overload; virtual;
    function getLong(para1: JLString; para2: jlong): jlong; overload; virtual;
    function getFloat(para1: JLString): jfloat; overload; virtual;
    function getFloat(para1: JLString; para2: jfloat): jfloat; overload; virtual;
    function getDouble(para1: JLString): jdouble; overload; virtual;
    function getDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    function getString(para1: JLString): JLString; overload; virtual;
    function getString(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getCharSequence(para1: JLString): JLCharSequence; overload; virtual;
    function getCharSequence(para1: JLString; para2: JLCharSequence): JLCharSequence; overload; virtual;
    function getBundle(para1: JLString): AOBundle; overload; virtual;
    function getParcelable(para1: JLString): AOParcelable; overload; virtual;
    function getParcelableArray(para1: JLString): Arr1AOParcelable; overload; virtual;
    function getParcelableArrayList(para1: JLString): JUArrayList; overload; virtual;
    function getSparseParcelableArray(para1: JLString): AUSparseArray; overload; virtual;
    function getSerializable(para1: JLString): JISerializable; overload; virtual;
    function getIntegerArrayList(para1: JLString): JUArrayList; overload; virtual;
    function getStringArrayList(para1: JLString): JUArrayList; overload; virtual;
    function getCharSequenceArrayList(para1: JLString): JUArrayList; overload; virtual;
    function getBooleanArray(para1: JLString): Arr1jboolean; overload; virtual;
    function getByteArray(para1: JLString): Arr1jbyte; overload; virtual;
    function getShortArray(para1: JLString): Arr1jshort; overload; virtual;
    function getCharArray(para1: JLString): Arr1jchar; overload; virtual;
    function getIntArray(para1: JLString): Arr1jint; overload; virtual;
    function getLongArray(para1: JLString): Arr1jlong; overload; virtual;
    function getFloatArray(para1: JLString): Arr1jfloat; overload; virtual;
    function getDoubleArray(para1: JLString): Arr1jdouble; overload; virtual;
    function getStringArray(para1: JLString): Arr1JLString; overload; virtual;
    function getCharSequenceArray(para1: JLString): Arr1JLCharSequence; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AODebug = class sealed external 'android.os' name 'Debug' (JLObject)
  public
    type
      InnerInstructionCount = class;
      Arr1InnerInstructionCount = array of InnerInstructionCount;
      Arr2InnerInstructionCount = array of Arr1InnerInstructionCount;
      Arr3InnerInstructionCount = array of Arr2InnerInstructionCount;
      InnerMemoryInfo = class;
      Arr1InnerMemoryInfo = array of InnerMemoryInfo;
      Arr2InnerMemoryInfo = array of Arr1InnerMemoryInfo;
      Arr3InnerMemoryInfo = array of Arr2InnerMemoryInfo;
      InnerInstructionCount = class external 'android.os' name 'InstructionCount' (JLObject)
      public
        constructor create(); overload;
        function resetAndStart(): jboolean; overload; virtual;
        function collect(): jboolean; overload; virtual;
        function globalTotal(): jint; overload; virtual;
        function globalMethodInvocations(): jint; overload; virtual;
      end;

      InnerMemoryInfo = class external 'android.os' name 'MemoryInfo' (JLObject, AOParcelable)
      public
        var
          fdalvikPss: jint; external name 'dalvikPss';
          fdalvikPrivateDirty: jint; external name 'dalvikPrivateDirty';
          fdalvikSharedDirty: jint; external name 'dalvikSharedDirty';
          fnativePss: jint; external name 'nativePss';
          fnativePrivateDirty: jint; external name 'nativePrivateDirty';
          fnativeSharedDirty: jint; external name 'nativeSharedDirty';
          fotherPss: jint; external name 'otherPss';
          fotherPrivateDirty: jint; external name 'otherPrivateDirty';
          fotherSharedDirty: jint; external name 'otherSharedDirty';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function getTotalPss(): jint; overload; virtual;
        function getTotalPrivateDirty(): jint; overload; virtual;
        function getTotalSharedDirty(): jint; overload; virtual;
        function getOtherPss(para1: jint): jint; overload; virtual;
        function getOtherPrivateDirty(para1: jint): jint; overload; virtual;
        function getOtherSharedDirty(para1: jint): jint; overload; virtual;
        class function getOtherLabel(para1: jint): JLString; static; overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

  public
    const
      TRACE_COUNT_ALLOCS = 1;
      SHOW_FULL_DETAIL = 1;
      SHOW_CLASSLOADER = 2;
      SHOW_INITIALIZED = 4;
  public
    class procedure waitForDebugger(); static; overload;
    class function waitingForDebugger(): jboolean; static; overload;
    class function isDebuggerConnected(): jboolean; static; overload;
    class procedure changeDebugPort(para1: jint); static; overload;
    class procedure startNativeTracing(); static; overload;
    class procedure stopNativeTracing(); static; overload;
    class procedure enableEmulatorTraceOutput(); static; overload;
    class procedure startMethodTracing(); static; overload;
    class procedure startMethodTracing(para1: JLString); static; overload;
    class procedure startMethodTracing(para1: JLString; para2: jint); static; overload;
    class procedure startMethodTracing(para1: JLString; para2: jint; para3: jint); static; overload;
    class procedure stopMethodTracing(); static; overload;
    class function threadCpuTimeNanos(): jlong; static; overload;
    class procedure startAllocCounting(); static; overload;
    class procedure stopAllocCounting(); static; overload;
    class function getGlobalAllocCount(): jint; static; overload;
    class function getGlobalAllocSize(): jint; static; overload;
    class function getGlobalFreedCount(): jint; static; overload;
    class function getGlobalFreedSize(): jint; static; overload;
    class function getGlobalClassInitCount(): jint; static; overload;
    class function getGlobalClassInitTime(): jint; static; overload;
    class function getGlobalExternalAllocCount(): jint; static; overload;
    class function getGlobalExternalAllocSize(): jint; static; overload;
    class function getGlobalExternalFreedCount(): jint; static; overload;
    class function getGlobalExternalFreedSize(): jint; static; overload;
    class function getGlobalGcInvocationCount(): jint; static; overload;
    class function getThreadAllocCount(): jint; static; overload;
    class function getThreadAllocSize(): jint; static; overload;
    class function getThreadExternalAllocCount(): jint; static; overload;
    class function getThreadExternalAllocSize(): jint; static; overload;
    class function getThreadGcInvocationCount(): jint; static; overload;
    class procedure resetGlobalAllocCount(); static; overload;
    class procedure resetGlobalAllocSize(); static; overload;
    class procedure resetGlobalFreedCount(); static; overload;
    class procedure resetGlobalFreedSize(); static; overload;
    class procedure resetGlobalClassInitCount(); static; overload;
    class procedure resetGlobalClassInitTime(); static; overload;
    class procedure resetGlobalExternalAllocCount(); static; overload;
    class procedure resetGlobalExternalAllocSize(); static; overload;
    class procedure resetGlobalExternalFreedCount(); static; overload;
    class procedure resetGlobalExternalFreedSize(); static; overload;
    class procedure resetGlobalGcInvocationCount(); static; overload;
    class procedure resetThreadAllocCount(); static; overload;
    class procedure resetThreadAllocSize(); static; overload;
    class procedure resetThreadExternalAllocCount(); static; overload;
    class procedure resetThreadExternalAllocSize(); static; overload;
    class procedure resetThreadGcInvocationCount(); static; overload;
    class procedure resetAllCounts(); static; overload;
    class function getNativeHeapSize(): jlong; static; overload;
    class function getNativeHeapAllocatedSize(): jlong; static; overload;
    class function getNativeHeapFreeSize(): jlong; static; overload;
    class procedure getMemoryInfo(para1: AODebug.InnerMemoryInfo); static; overload;
    class function getPss(): jlong; static; overload;
    class function setAllocationLimit(para1: jint): jint; static; overload;
    class function setGlobalAllocationLimit(para1: jint): jint; static; overload;
    class procedure printLoadedClasses(para1: jint); static; overload;
    class function getLoadedClassCount(): jint; static; overload;
    class procedure dumpHprofData(para1: JLString); static; overload;  // throws java.io.IOException
    class function getBinderSentTransactions(): jint; static; overload;
    class function getBinderReceivedTransactions(): jint; static; overload;
    class function getBinderLocalObjectCount(): jint; static; overload; final;
    class function getBinderProxyObjectCount(): jint; static; overload; final;
    class function getBinderDeathObjectCount(): jint; static; overload; final;
    class function dumpService(para1: JLString; para2: JIFileDescriptor; para3: Arr1JLString): jboolean; static; overload;
    class function dumpService(para1: JLString; para2: JIFileDescriptor; var para3: array of JLString): jboolean; static; overload;
  end;

  AOMessage = class sealed external 'android.os' name 'Message' (JLObject, AOParcelable)
  public
    var
      fwhat: jint; external name 'what';
      farg1: jint; external name 'arg1';
      farg2: jint; external name 'arg2';
      fobj: JLObject; external name 'obj';
      freplyTo: AOMessenger; external name 'replyTo';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    class function obtain(): AOMessage; static; overload;
    class function obtain(para1: AOMessage): AOMessage; static; overload;
    class function obtain(para1: AOHandler): AOMessage; static; overload;
    class function obtain(para1: AOHandler; para2: JLRunnable): AOMessage; static; overload;
    class function obtain(para1: AOHandler; para2: jint): AOMessage; static; overload;
    class function obtain(para1: AOHandler; para2: jint; para3: JLObject): AOMessage; static; overload;
    class function obtain(para1: AOHandler; para2: jint; para3: jint; para4: jint): AOMessage; static; overload;
    class function obtain(para1: AOHandler; para2: jint; para3: jint; para4: jint; para5: JLObject): AOMessage; static; overload;
    procedure recycle(); overload; virtual;
    procedure copyFrom(para1: AOMessage); overload; virtual;
    function getWhen(): jlong; overload; virtual;
    procedure setTarget(para1: AOHandler); overload; virtual;
    function getTarget(): AOHandler; overload; virtual;
    function getCallback(): JLRunnable; overload; virtual;
    function getData(): AOBundle; overload; virtual;
    function peekData(): AOBundle; overload; virtual;
    procedure setData(para1: AOBundle); overload; virtual;
    procedure sendToTarget(); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AOMessenger = class sealed external 'android.os' name 'Messenger' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AOHandler); overload;
    constructor create(para1: AOIBinder); overload;
    procedure send(para1: AOMessage); overload; virtual;  // throws android.os.RemoteException
    function getBinder(): AOIBinder; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    class procedure writeMessengerOrNullToParcel(para1: AOMessenger; para2: AOParcel); static; overload;
    class function readMessengerOrNullFromParcel(para1: AOParcel): AOMessenger; static; overload;
  end;

  AOParcel = class sealed external 'android.os' name 'Parcel' (JLObject)
  public
    final class var
      fSTRING_CREATOR: AOParcelable.InnerCreator; external name 'STRING_CREATOR';
  public
    class function obtain(): AOParcel; static; overload;
    procedure recycle(); overload; virtual; final;
    function dataSize(): jint; overload; virtual; final;
    function dataAvail(): jint; overload; virtual; final;
    function dataPosition(): jint; overload; virtual; final;
    function dataCapacity(): jint; overload; virtual; final;
    procedure setDataSize(para1: jint); overload; virtual; final;
    procedure setDataPosition(para1: jint); overload; virtual; final;
    procedure setDataCapacity(para1: jint); overload; virtual; final;
    function marshall(): Arr1jbyte; overload; virtual; final;
    procedure unmarshall(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;
    procedure unmarshall(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;
    procedure appendFrom(para1: AOParcel; para2: jint; para3: jint); overload; virtual; final;
    function hasFileDescriptors(): jboolean; overload; virtual; final;
    procedure writeInterfaceToken(para1: JLString); overload; virtual; final;
    procedure enforceInterface(para1: JLString); overload; virtual; final;
    procedure writeByteArray(para1: Arr1jbyte); overload; virtual; final;
    procedure writeByteArray(var para1: array of jbyte); overload; virtual; final;
    procedure writeByteArray(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;
    procedure writeByteArray(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;
    procedure writeInt(para1: jint); overload; virtual; final;
    procedure writeLong(para1: jlong); overload; virtual; final;
    procedure writeFloat(para1: jfloat); overload; virtual; final;
    procedure writeDouble(para1: jdouble); overload; virtual; final;
    procedure writeString(para1: JLString); overload; virtual; final;
    procedure writeStrongBinder(para1: AOIBinder); overload; virtual; final;
    procedure writeStrongInterface(para1: AOIInterface); overload; virtual; final;
    procedure writeFileDescriptor(para1: JIFileDescriptor); overload; virtual; final;
    procedure writeByte(para1: jbyte); overload; virtual; final;
    procedure writeMap(para1: JUMap); overload; virtual; final;
    procedure writeBundle(para1: AOBundle); overload; virtual; final;
    procedure writeList(para1: JUList); overload; virtual; final;
    procedure writeArray(para1: Arr1JLObject); overload; virtual; final;
    procedure writeArray(var para1: array of JLObject); overload; virtual; final;
    procedure writeSparseArray(para1: AUSparseArray); overload; virtual; final;
    procedure writeSparseBooleanArray(para1: AUSparseBooleanArray); overload; virtual; final;
    procedure writeBooleanArray(para1: Arr1jboolean); overload; virtual; final;
    procedure writeBooleanArray(var para1: array of jboolean); overload; virtual; final;
    function createBooleanArray(): Arr1jboolean; overload; virtual; final;
    procedure readBooleanArray(para1: Arr1jboolean); overload; virtual; final;
    procedure readBooleanArray(var para1: array of jboolean); overload; virtual; final;
    procedure writeCharArray(para1: Arr1jchar); overload; virtual; final;
    procedure writeCharArray(var para1: array of jchar); overload; virtual; final;
    function createCharArray(): Arr1jchar; overload; virtual; final;
    procedure readCharArray(para1: Arr1jchar); overload; virtual; final;
    procedure readCharArray(var para1: array of jchar); overload; virtual; final;
    procedure writeIntArray(para1: Arr1jint); overload; virtual; final;
    procedure writeIntArray(var para1: array of jint); overload; virtual; final;
    function createIntArray(): Arr1jint; overload; virtual; final;
    procedure readIntArray(para1: Arr1jint); overload; virtual; final;
    procedure readIntArray(var para1: array of jint); overload; virtual; final;
    procedure writeLongArray(para1: Arr1jlong); overload; virtual; final;
    procedure writeLongArray(var para1: array of jlong); overload; virtual; final;
    function createLongArray(): Arr1jlong; overload; virtual; final;
    procedure readLongArray(para1: Arr1jlong); overload; virtual; final;
    procedure readLongArray(var para1: array of jlong); overload; virtual; final;
    procedure writeFloatArray(para1: Arr1jfloat); overload; virtual; final;
    procedure writeFloatArray(var para1: array of jfloat); overload; virtual; final;
    function createFloatArray(): Arr1jfloat; overload; virtual; final;
    procedure readFloatArray(para1: Arr1jfloat); overload; virtual; final;
    procedure readFloatArray(var para1: array of jfloat); overload; virtual; final;
    procedure writeDoubleArray(para1: Arr1jdouble); overload; virtual; final;
    procedure writeDoubleArray(var para1: array of jdouble); overload; virtual; final;
    function createDoubleArray(): Arr1jdouble; overload; virtual; final;
    procedure readDoubleArray(para1: Arr1jdouble); overload; virtual; final;
    procedure readDoubleArray(var para1: array of jdouble); overload; virtual; final;
    procedure writeStringArray(para1: Arr1JLString); overload; virtual; final;
    procedure writeStringArray(var para1: array of JLString); overload; virtual; final;
    function createStringArray(): Arr1JLString; overload; virtual; final;
    procedure readStringArray(para1: Arr1JLString); overload; virtual; final;
    procedure readStringArray(var para1: array of JLString); overload; virtual; final;
    procedure writeBinderArray(para1: Arr1AOIBinder); overload; virtual; final;
    procedure writeBinderArray(var para1: array of AOIBinder); overload; virtual; final;
    function createBinderArray(): Arr1AOIBinder; overload; virtual; final;
    procedure readBinderArray(para1: Arr1AOIBinder); overload; virtual; final;
    procedure readBinderArray(var para1: array of AOIBinder); overload; virtual; final;
    procedure writeTypedList(para1: JUList); overload; virtual; final;
    procedure writeStringList(para1: JUList); overload; virtual; final;
    procedure writeBinderList(para1: JUList); overload; virtual; final;
    procedure writeTypedArray(para1: Arr1AOParcelable; para2: jint); overload; virtual; final;
    procedure writeTypedArray(var para1: array of AOParcelable; para2: jint); overload; virtual; final;
    procedure writeValue(para1: JLObject); overload; virtual; final;
    procedure writeParcelable(para1: AOParcelable; para2: jint); overload; virtual; final;
    procedure writeSerializable(para1: JISerializable); overload; virtual; final;
    procedure writeException(para1: JLException); overload; virtual; final;
    procedure writeNoException(); overload; virtual; final;
    procedure readException(); overload; virtual; final;
    procedure readException(para1: jint; para2: JLString); overload; virtual; final;
    function readInt(): jint; overload; virtual; final;
    function readLong(): jlong; overload; virtual; final;
    function readFloat(): jfloat; overload; virtual; final;
    function readDouble(): jdouble; overload; virtual; final;
    function readString(): JLString; overload; virtual; final;
    function readStrongBinder(): AOIBinder; overload; virtual; final;
    function readFileDescriptor(): AOParcelFileDescriptor; overload; virtual; final;
    function readByte(): jbyte; overload; virtual; final;
    procedure readMap(para1: JUMap; para2: JLClassLoader); overload; virtual; final;
    procedure readList(para1: JUList; para2: JLClassLoader); overload; virtual; final;
    function readHashMap(para1: JLClassLoader): JUHashMap; overload; virtual; final;
    function readBundle(): AOBundle; overload; virtual; final;
    function readBundle(para1: JLClassLoader): AOBundle; overload; virtual; final;
    function createByteArray(): Arr1jbyte; overload; virtual; final;
    procedure readByteArray(para1: Arr1jbyte); overload; virtual; final;
    procedure readByteArray(var para1: array of jbyte); overload; virtual; final;
    function readArrayList(para1: JLClassLoader): JUArrayList; overload; virtual; final;
    function readArray(para1: JLClassLoader): Arr1JLObject; overload; virtual; final;
    function readSparseArray(para1: JLClassLoader): AUSparseArray; overload; virtual; final;
    function readSparseBooleanArray(): AUSparseBooleanArray; overload; virtual; final;
    function createTypedArrayList(para1: AOParcelable.InnerCreator): JUArrayList; overload; virtual; final;
    procedure readTypedList(para1: JUList; para2: AOParcelable.InnerCreator); overload; virtual; final;
    function createStringArrayList(): JUArrayList; overload; virtual; final;
    function createBinderArrayList(): JUArrayList; overload; virtual; final;
    procedure readStringList(para1: JUList); overload; virtual; final;
    procedure readBinderList(para1: JUList); overload; virtual; final;
    function createTypedArray(para1: AOParcelable.InnerCreator): Arr1JLObject; overload; virtual; final;
    procedure readTypedArray(para1: Arr1JLObject; para2: AOParcelable.InnerCreator); overload; virtual; final;
    procedure readTypedArray(var para1: array of JLObject; para2: AOParcelable.InnerCreator); overload; virtual; final;
    procedure writeParcelableArray(para1: Arr1AOParcelable; para2: jint); overload; virtual; final;
    procedure writeParcelableArray(var para1: array of AOParcelable; para2: jint); overload; virtual; final;
    function readValue(para1: JLClassLoader): JLObject; overload; virtual; final;
    function readParcelable(para1: JLClassLoader): AOParcelable; overload; virtual; final;
    function readParcelableArray(para1: JLClassLoader): Arr1AOParcelable; overload; virtual; final;
    function readSerializable(): JISerializable; overload; virtual; final;
  strict protected
    class function obtain(para1: jint): AOParcel; static; overload; final;
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AOParcelUuid = class sealed external 'android.os' name 'ParcelUuid' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JUUUID); overload;
    class function fromString(para1: JLString): AOParcelUuid; static; overload;
    function getUuid(): JUUUID; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AOPatternMatcher = class external 'android.os' name 'PatternMatcher' (JLObject, AOParcelable)
  public
    const
      PATTERN_LITERAL = 0;
      PATTERN_PREFIX = 1;
      PATTERN_SIMPLE_GLOB = 2;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getPath(): JLString; overload; virtual; final;
    function getType(): jint; overload; virtual; final;
    function match(para1: JLString): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AOResultReceiver = class external 'android.os' name 'ResultReceiver' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AOHandler); overload;
    procedure send(para1: jint; para2: AOBundle); overload; virtual;
  strict protected
    procedure onReceiveResult(para1: jint; para2: AOBundle); overload; virtual;
  public
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AOWorkSource = class external 'android.os' name 'WorkSource' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: AOWorkSource); overload;
    procedure clear(); overload; virtual;
    function diff(para1: AOWorkSource): jboolean; overload; virtual;
    procedure &set(para1: AOWorkSource); overload; virtual;
    function add(para1: AOWorkSource): jboolean; overload; virtual;
    function remove(para1: AOWorkSource): jboolean; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ATNeighboringCellInfo = class external 'android.telephony' name 'NeighboringCellInfo' (JLObject, AOParcelable)
  public
    const
      UNKNOWN_RSSI = 99;
      UNKNOWN_CID = -1;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint; para2: JLString; para3: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getRssi(): jint; overload; virtual;
    function getLac(): jint; overload; virtual;
    function getCid(): jint; overload; virtual;
    function getPsc(): jint; overload; virtual;
    function getNetworkType(): jint; overload; virtual;
    procedure setCid(para1: jint); overload; virtual;
    procedure setRssi(para1: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ATServiceState = class external 'android.telephony' name 'ServiceState' (JLObject, AOParcelable)
  public
    const
      STATE_IN_SERVICE = 0;
      STATE_OUT_OF_SERVICE = 1;
      STATE_EMERGENCY_ONLY = 2;
      STATE_POWER_OFF = 3;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ATServiceState); overload;
    constructor create(para1: AOParcel); overload;
  strict protected
    procedure copyFrom(para1: ATServiceState); overload; virtual;
  public
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function getState(): jint; overload; virtual;
    function getRoaming(): jboolean; overload; virtual;
    function getOperatorAlphaLong(): JLString; overload; virtual;
    function getOperatorAlphaShort(): JLString; overload; virtual;
    function getOperatorNumeric(): JLString; overload; virtual;
    function getIsManualSelection(): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure setStateOutOfService(); overload; virtual;
    procedure setStateOff(); overload; virtual;
    procedure setState(para1: jint); overload; virtual;
    procedure setRoaming(para1: jboolean); overload; virtual;
    procedure setOperatorName(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure setIsManualSelection(para1: jboolean); overload; virtual;
  end;

  ATSignalStrength = class external 'android.telephony' name 'SignalStrength' (JLObject, AOParcelable)
  public
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function getGsmSignalStrength(): jint; overload; virtual;
    function getGsmBitErrorRate(): jint; overload; virtual;
    function getCdmaDbm(): jint; overload; virtual;
    function getCdmaEcio(): jint; overload; virtual;
    function getEvdoDbm(): jint; overload; virtual;
    function getEvdoEcio(): jint; overload; virtual;
    function getEvdoSnr(): jint; overload; virtual;
    function isGsm(): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ATParcelableSpan = interface external 'android.text' name 'ParcelableSpan' (AOParcelable)
    function getSpanTypeId(): jint; overload;
  end;

  ATTextUtils = class external 'android.text' name 'TextUtils' (JLObject)
  public
    type
      InnerEllipsizeCallback = interface;
      Arr1InnerEllipsizeCallback = array of InnerEllipsizeCallback;
      Arr2InnerEllipsizeCallback = array of Arr1InnerEllipsizeCallback;
      Arr3InnerEllipsizeCallback = array of Arr2InnerEllipsizeCallback;
      InnerTruncateAt = class;
      Arr1InnerTruncateAt = array of InnerTruncateAt;
      Arr2InnerTruncateAt = array of Arr1InnerTruncateAt;
      Arr3InnerTruncateAt = array of Arr2InnerTruncateAt;
      InnerStringSplitter = interface;
      Arr1InnerStringSplitter = array of InnerStringSplitter;
      Arr2InnerStringSplitter = array of Arr1InnerStringSplitter;
      Arr3InnerStringSplitter = array of Arr2InnerStringSplitter;
      InnerSimpleStringSplitter = class;
      Arr1InnerSimpleStringSplitter = array of InnerSimpleStringSplitter;
      Arr2InnerSimpleStringSplitter = array of Arr1InnerSimpleStringSplitter;
      Arr3InnerSimpleStringSplitter = array of Arr2InnerSimpleStringSplitter;
      InnerEllipsizeCallback = interface external 'android.text' name 'EllipsizeCallback' 
        procedure ellipsized(para1: jint; para2: jint); overload;
      end;

      InnerTruncateAt = class sealed external 'android.text' name 'TruncateAt' (JLEnum)
      public
        final class var
          fEND: ATTextUtils.InnerTruncateAt; external name 'END';
          fMARQUEE: ATTextUtils.InnerTruncateAt; external name 'MARQUEE';
          fMIDDLE: ATTextUtils.InnerTruncateAt; external name 'MIDDLE';
          fSTART: ATTextUtils.InnerTruncateAt; external name 'START';
      public
        class function values(): ATTextUtils.Arr1InnerTruncateAt; static; overload;
        class function valueOf(para1: JLString): ATTextUtils.InnerTruncateAt; static; overload;
      end;

      InnerStringSplitter = interface external 'android.text' name 'StringSplitter' (JLIterable)
        procedure setString(para1: JLString); overload;
      end;

      InnerSimpleStringSplitter = class external 'android.text' name 'SimpleStringSplitter' (JLObject, ATTextUtils.InnerStringSplitter, JUIterator)
      public
        constructor create(para1: jchar); overload;
        procedure setString(para1: JLString); overload; virtual;
        function iterator(): JUIterator; overload; virtual;
        function hasNext(): jboolean; overload; virtual;
        function next(): JLString; overload; virtual;
        procedure remove(); overload; virtual;
        function next(): JLObject; overload; virtual;
      end;

  public
    final class var
      fCHAR_SEQUENCE_CREATOR: AOParcelable.InnerCreator; external name 'CHAR_SEQUENCE_CREATOR';
  public
    const
      CAP_MODE_CHARACTERS = 4096;
      CAP_MODE_WORDS = 8192;
      CAP_MODE_SENTENCES = 16384;
  public
    class procedure getChars(para1: JLCharSequence; para2: jint; para3: jint; para4: Arr1jchar; para5: jint); static; overload;
    class procedure getChars(para1: JLCharSequence; para2: jint; para3: jint; var para4: array of jchar; para5: jint); static; overload;
    class function indexOf(para1: JLCharSequence; para2: jchar): jint; static; overload;
    class function indexOf(para1: JLCharSequence; para2: jchar; para3: jint): jint; static; overload;
    class function indexOf(para1: JLCharSequence; para2: jchar; para3: jint; para4: jint): jint; static; overload;
    class function lastIndexOf(para1: JLCharSequence; para2: jchar): jint; static; overload;
    class function lastIndexOf(para1: JLCharSequence; para2: jchar; para3: jint): jint; static; overload;
    class function lastIndexOf(para1: JLCharSequence; para2: jchar; para3: jint; para4: jint): jint; static; overload;
    class function indexOf(para1: JLCharSequence; para2: JLCharSequence): jint; static; overload;
    class function indexOf(para1: JLCharSequence; para2: JLCharSequence; para3: jint): jint; static; overload;
    class function indexOf(para1: JLCharSequence; para2: JLCharSequence; para3: jint; para4: jint): jint; static; overload;
    class function regionMatches(para1: JLCharSequence; para2: jint; para3: JLCharSequence; para4: jint; para5: jint): jboolean; static; overload;
    class function substring(para1: JLCharSequence; para2: jint; para3: jint): JLString; static; overload;
    class function join(para1: JLCharSequence; para2: Arr1JLObject): JLString; static; overload;
    class function join(para1: JLCharSequence; var para2: array of JLObject): JLString; static; overload;
    class function join(para1: JLCharSequence; para2: JLIterable): JLString; static; overload;
    class function split(para1: JLString; para2: JLString): Arr1JLString; static; overload;
    class function split(para1: JLString; para2: JURPattern): Arr1JLString; static; overload;
    class function stringOrSpannedString(para1: JLCharSequence): JLCharSequence; static; overload;
    class function isEmpty(para1: JLCharSequence): jboolean; static; overload;
    class function getTrimmedLength(para1: JLCharSequence): jint; static; overload;
    class function equals(para1: JLCharSequence; para2: JLCharSequence): jboolean; static; overload;
    class function getReverse(para1: JLCharSequence; para2: jint; para3: jint): JLCharSequence; static; overload;
    class procedure writeToParcel(para1: JLCharSequence; para2: AOParcel; para3: jint); static; overload;
    class procedure dumpSpans(para1: JLCharSequence; para2: AUPrinter; para3: JLString); static; overload;
    class function replace(para1: JLCharSequence; para2: Arr1JLString; para3: Arr1JLCharSequence): JLCharSequence; static; overload;
    class function replace(para1: JLCharSequence; var para2: array of JLString; var para3: array of JLCharSequence): JLCharSequence; static; overload;
    class function expandTemplate(para1: JLCharSequence; para2: Arr1JLCharSequence): JLCharSequence; static; overload;
    class function expandTemplate(para1: JLCharSequence; const para2: array of JLCharSequence): JLCharSequence; static; overload;
    class function getOffsetBefore(para1: JLCharSequence; para2: jint): jint; static; overload;
    class function getOffsetAfter(para1: JLCharSequence; para2: jint): jint; static; overload;
    class procedure copySpansFrom(para1: ATSpanned; para2: jint; para3: jint; para4: JLClass; para5: ATSpannable; para6: jint); static; overload;
    class function ellipsize(para1: JLCharSequence; para2: ATTextPaint; para3: jfloat; para4: ATTextUtils.InnerTruncateAt): JLCharSequence; static; overload;
    class function ellipsize(para1: JLCharSequence; para2: ATTextPaint; para3: jfloat; para4: ATTextUtils.InnerTruncateAt; para5: jboolean; para6: ATTextUtils.InnerEllipsizeCallback): JLCharSequence; static; overload;
    class function commaEllipsize(para1: JLCharSequence; para2: ATTextPaint; para3: jfloat; para4: JLString; para5: JLString): JLCharSequence; static; overload;
    class function htmlEncode(para1: JLString): JLString; static; overload;
    class function concat(para1: Arr1JLCharSequence): JLCharSequence; static; overload;
    class function concat(const para1: array of JLCharSequence): JLCharSequence; static; overload;
    class function isGraphic(para1: JLCharSequence): jboolean; static; overload;
    class function isGraphic(para1: jchar): jboolean; static; overload;
    class function isDigitsOnly(para1: JLCharSequence): jboolean; static; overload;
    class function getCapsMode(para1: JLCharSequence; para2: jint; para3: jint): jint; static; overload;
  end;

  AVAbsSavedState = class abstract external 'android.view' name 'AbsSavedState' (JLObject, AOParcelable)
  public
    final class var
      fEMPTY_STATE: AVAbsSavedState; external name 'EMPTY_STATE';
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  strict protected
    constructor create(para1: AOParcelable); overload;
    constructor create(para1: AOParcel); overload;
  public
    function getSuperState(): AOParcelable; overload; virtual; final;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AVDragEvent = class external 'android.view' name 'DragEvent' (JLObject, AOParcelable)
  public
    const
      ACTION_DRAG_STARTED = 1;
      ACTION_DRAG_LOCATION = 2;
      ACTION_DROP = 3;
      ACTION_DRAG_ENDED = 4;
      ACTION_DRAG_ENTERED = 5;
      ACTION_DRAG_EXITED = 6;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getAction(): jint; overload; virtual;
    function getX(): jfloat; overload; virtual;
    function getY(): jfloat; overload; virtual;
    function getClipData(): ACClipData; overload; virtual;
    function getClipDescription(): ACClipDescription; overload; virtual;
    function getLocalState(): JLObject; overload; virtual;
    function getResult(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AVInputDevice = class sealed external 'android.view' name 'InputDevice' (JLObject, AOParcelable)
  public
    type
      InnerMotionRange = class;
      Arr1InnerMotionRange = array of InnerMotionRange;
      Arr2InnerMotionRange = array of Arr1InnerMotionRange;
      Arr3InnerMotionRange = array of Arr2InnerMotionRange;
      InnerMotionRange = class sealed external 'android.view' name 'MotionRange' (JLObject)
      public
        function getAxis(): jint; overload; virtual;
        function getSource(): jint; overload; virtual;
        function getMin(): jfloat; overload; virtual;
        function getMax(): jfloat; overload; virtual;
        function getRange(): jfloat; overload; virtual;
        function getFlat(): jfloat; overload; virtual;
        function getFuzz(): jfloat; overload; virtual;
      end;

  public
    const
      SOURCE_CLASS_MASK = 255;
      SOURCE_CLASS_BUTTON = 1;
      SOURCE_CLASS_POINTER = 2;
      SOURCE_CLASS_TRACKBALL = 4;
      SOURCE_CLASS_POSITION = 8;
      SOURCE_CLASS_JOYSTICK = 16;
      SOURCE_UNKNOWN = 0;
      SOURCE_KEYBOARD = 257;
      SOURCE_DPAD = 513;
      SOURCE_GAMEPAD = 1025;
      SOURCE_TOUCHSCREEN = 4098;
      SOURCE_MOUSE = 8194;
      SOURCE_STYLUS = 16386;
      SOURCE_TRACKBALL = 65540;
      SOURCE_TOUCHPAD = 1048584;
      SOURCE_JOYSTICK = 16777232;
      SOURCE_ANY = -256;
      MOTION_RANGE_X = 0;
      MOTION_RANGE_Y = 1;
      MOTION_RANGE_PRESSURE = 2;
      MOTION_RANGE_SIZE = 3;
      MOTION_RANGE_TOUCH_MAJOR = 4;
      MOTION_RANGE_TOUCH_MINOR = 5;
      MOTION_RANGE_TOOL_MAJOR = 6;
      MOTION_RANGE_TOOL_MINOR = 7;
      MOTION_RANGE_ORIENTATION = 8;
      KEYBOARD_TYPE_NONE = 0;
      KEYBOARD_TYPE_NON_ALPHABETIC = 1;
      KEYBOARD_TYPE_ALPHABETIC = 2;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    class function getDevice(para1: jint): AVInputDevice; static; overload;
    class function getDeviceIds(): Arr1jint; static; overload;
    function getId(): jint; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getSources(): jint; overload; virtual;
    function getKeyboardType(): jint; overload; virtual;
    function getKeyCharacterMap(): AVKeyCharacterMap; overload; virtual;
    function getMotionRange(para1: jint): AVInputDevice.InnerMotionRange; overload; virtual;
    function getMotionRange(para1: jint; para2: jint): AVInputDevice.InnerMotionRange; overload; virtual;
    function getMotionRanges(): JUList; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AVInputEvent = class abstract external 'android.view' name 'InputEvent' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getDeviceId(): jint; overload; virtual; abstract;
    function getDevice(): AVInputDevice; overload; virtual; final;
    function getSource(): jint; overload; virtual; abstract;
    function describeContents(): jint; overload; virtual;
  end;

  AVSurface = class external 'android.view' name 'Surface' (JLObject, AOParcelable)
  public
    type
      InnerOutOfResourcesException = class;
      Arr1InnerOutOfResourcesException = array of InnerOutOfResourcesException;
      Arr2InnerOutOfResourcesException = array of Arr1InnerOutOfResourcesException;
      Arr3InnerOutOfResourcesException = array of Arr2InnerOutOfResourcesException;
      InnerOutOfResourcesException = class external 'android.view' name 'OutOfResourcesException' (JLException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

  public
    const
      ROTATION_0 = 0;
      ROTATION_90 = 1;
      ROTATION_180 = 2;
      ROTATION_270 = 3;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AGSurfaceTexture); overload;
    function isValid(): jboolean; overload; virtual;
    procedure release(); overload; virtual;
    function lockCanvas(para1: AGRect): AGCanvas; overload; virtual;  // throws android.view.Surface$OutOfResourcesException, java.lang.IllegalArgumentException
    procedure unlockCanvasAndPost(para1: AGCanvas); overload; virtual;
    procedure unlockCanvas(para1: AGCanvas); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AVAAccessibilityNodeInfo = class external 'android.view.accessibility' name 'AccessibilityNodeInfo' (JLObject, AOParcelable)
  public
    const
      ACTION_FOCUS = 1;
      ACTION_CLEAR_FOCUS = 2;
      ACTION_SELECT = 4;
      ACTION_CLEAR_SELECTION = 8;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    procedure setSource(para1: AVView); overload; virtual;
    function getWindowId(): jint; overload; virtual;
    function getChildCount(): jint; overload; virtual;
    function getChild(para1: jint): AVAAccessibilityNodeInfo; overload; virtual;
    procedure addChild(para1: AVView); overload; virtual;
    function getActions(): jint; overload; virtual;
    procedure addAction(para1: jint); overload; virtual;
    function performAction(para1: jint): jboolean; overload; virtual;
    function findAccessibilityNodeInfosByText(para1: JLString): JUList; overload; virtual;
    function getParent(): AVAAccessibilityNodeInfo; overload; virtual;
    procedure setParent(para1: AVView); overload; virtual;
    procedure getBoundsInParent(para1: AGRect); overload; virtual;
    procedure setBoundsInParent(para1: AGRect); overload; virtual;
    procedure getBoundsInScreen(para1: AGRect); overload; virtual;
    procedure setBoundsInScreen(para1: AGRect); overload; virtual;
    function isCheckable(): jboolean; overload; virtual;
    procedure setCheckable(para1: jboolean); overload; virtual;
    function isChecked(): jboolean; overload; virtual;
    procedure setChecked(para1: jboolean); overload; virtual;
    function isFocusable(): jboolean; overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
    function isFocused(): jboolean; overload; virtual;
    procedure setFocused(para1: jboolean); overload; virtual;
    function isSelected(): jboolean; overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
    function isClickable(): jboolean; overload; virtual;
    procedure setClickable(para1: jboolean); overload; virtual;
    function isLongClickable(): jboolean; overload; virtual;
    procedure setLongClickable(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isPassword(): jboolean; overload; virtual;
    procedure setPassword(para1: jboolean); overload; virtual;
    function isScrollable(): jboolean; overload; virtual;
    procedure setScrollable(para1: jboolean); overload; virtual;
    function getPackageName(): JLCharSequence; overload; virtual;
    procedure setPackageName(para1: JLCharSequence); overload; virtual;
    function getClassName(): JLCharSequence; overload; virtual;
    procedure setClassName(para1: JLCharSequence); overload; virtual;
    function getText(): JLCharSequence; overload; virtual;
    procedure setText(para1: JLCharSequence); overload; virtual;
    function getContentDescription(): JLCharSequence; overload; virtual;
    procedure setContentDescription(para1: JLCharSequence); overload; virtual;
    function describeContents(): jint; overload; virtual;
    class function obtain(para1: AVView): AVAAccessibilityNodeInfo; static; overload;
    class function obtain(): AVAAccessibilityNodeInfo; static; overload;
    class function obtain(para1: AVAAccessibilityNodeInfo): AVAAccessibilityNodeInfo; static; overload;
    procedure recycle(); overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  AVICompletionInfo = class sealed external 'android.view.inputmethod' name 'CompletionInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jlong; para2: jint; para3: JLCharSequence); overload;
    constructor create(para1: jlong; para2: jint; para3: JLCharSequence; para4: JLCharSequence); overload;
    function getId(): jlong; overload; virtual;
    function getPosition(): jint; overload; virtual;
    function getText(): JLCharSequence; overload; virtual;
    function getLabel(): JLCharSequence; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVICorrectionInfo = class sealed external 'android.view.inputmethod' name 'CorrectionInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jint; para2: JLCharSequence; para3: JLCharSequence); overload;
    function getOffset(): jint; overload; virtual;
    function getOldText(): JLCharSequence; overload; virtual;
    function getNewText(): JLCharSequence; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVIExtractedText = class external 'android.view.inputmethod' name 'ExtractedText' (JLObject, AOParcelable)
  public
    var
      ftext: JLCharSequence; external name 'text';
      fstartOffset: jint; external name 'startOffset';
      fpartialStartOffset: jint; external name 'partialStartOffset';
      fpartialEndOffset: jint; external name 'partialEndOffset';
      fselectionStart: jint; external name 'selectionStart';
      fselectionEnd: jint; external name 'selectionEnd';
  public
    const
      FLAG_SINGLE_LINE = 1;
      FLAG_SELECTING = 2;
  public
    var
      fflags: jint; external name 'flags';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVIExtractedTextRequest = class external 'android.view.inputmethod' name 'ExtractedTextRequest' (JLObject, AOParcelable)
  public
    var
      ftoken: jint; external name 'token';
      fflags: jint; external name 'flags';
      fhintMaxLines: jint; external name 'hintMaxLines';
      fhintMaxChars: jint; external name 'hintMaxChars';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVIInputBinding = class sealed external 'android.view.inputmethod' name 'InputBinding' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AVIInputConnection; para2: AOIBinder; para3: jint; para4: jint); overload;
    constructor create(para1: AVIInputConnection; para2: AVIInputBinding); overload;
    function getConnection(): AVIInputConnection; overload; virtual;
    function getConnectionToken(): AOIBinder; overload; virtual;
    function getUid(): jint; overload; virtual;
    function getPid(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVIInputMethodInfo = class sealed external 'android.view.inputmethod' name 'InputMethodInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: ACContext; para2: ACPResolveInfo); overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    constructor create(para1: JLString; para2: JLString; para3: JLCharSequence; para4: JLString); overload;
    function getId(): JLString; overload; virtual;
    function getPackageName(): JLString; overload; virtual;
    function getServiceName(): JLString; overload; virtual;
    function getServiceInfo(): ACPServiceInfo; overload; virtual;
    function getComponent(): ACComponentName; overload; virtual;
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function getSettingsActivity(): JLString; overload; virtual;
    function getSubtypeCount(): jint; overload; virtual;
    function getSubtypeAt(para1: jint): AVIInputMethodSubtype; overload; virtual;
    function getIsDefaultResourceId(): jint; overload; virtual;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVIInputMethodSubtype = class sealed external 'android.view.inputmethod' name 'InputMethodSubtype' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jint; para2: jint; para3: JLString; para4: JLString; para5: JLString; para6: jboolean; para7: jboolean); overload;
    function getNameResId(): jint; overload; virtual;
    function getIconResId(): jint; overload; virtual;
    function getLocale(): JLString; overload; virtual;
    function getMode(): JLString; overload; virtual;
    function getExtraValue(): JLString; overload; virtual;
    function isAuxiliary(): jboolean; overload; virtual;
    function overridesImplicitlyEnabledSubtype(): jboolean; overload; virtual;
    function getDisplayName(para1: ACContext; para2: JLString; para3: ACPApplicationInfo): JLCharSequence; overload; virtual;
    function containsExtraValueKey(para1: JLString): jboolean; overload; virtual;
    function getExtraValueOf(para1: JLString): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AVTSpellCheckerInfo = class sealed external 'android.view.textservice' name 'SpellCheckerInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getId(): JLString; overload; virtual;
    function getComponent(): ACComponentName; overload; virtual;
    function getPackageName(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    function getServiceInfo(): ACPServiceInfo; overload; virtual;
    function getSettingsActivity(): JLString; overload; virtual;
    function getSubtypeCount(): jint; overload; virtual;
    function getSubtypeAt(para1: jint): AVTSpellCheckerSubtype; overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVTSpellCheckerSubtype = class sealed external 'android.view.textservice' name 'SpellCheckerSubtype' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jint; para2: JLString; para3: JLString); overload;
    function getNameResId(): jint; overload; virtual;
    function getLocale(): JLString; overload; virtual;
    function getExtraValue(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getDisplayName(para1: ACContext; para2: JLString; para3: ACPApplicationInfo): JLCharSequence; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AVTSuggestionsInfo = class sealed external 'android.view.textservice' name 'SuggestionsInfo' (JLObject, AOParcelable)
  public
    const
      RESULT_ATTR_IN_THE_DICTIONARY = 1;
      RESULT_ATTR_LOOKS_LIKE_TYPO = 2;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jint; para2: Arr1JLString); overload;
    constructor create(para1: jint; const para2: array of JLString); overload;
    constructor create(para1: jint; para2: Arr1JLString; para3: jint; para4: jint); overload;
    constructor create(para1: jint; const para2: array of JLString; para3: jint; para4: jint); overload;
    constructor create(para1: AOParcel); overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure setCookieAndSequence(para1: jint; para2: jint); overload; virtual;
    function getCookie(): jint; overload; virtual;
    function getSequence(): jint; overload; virtual;
    function getSuggestionsAttributes(): jint; overload; virtual;
    function getSuggestionsCount(): jint; overload; virtual;
    function getSuggestionAt(para1: jint): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  AVTTextInfo = class sealed external 'android.view.textservice' name 'TextInfo' (JLObject, AOParcelable)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
    constructor create(para1: AOParcel); overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getText(): JLString; overload; virtual;
    function getCookie(): jint; overload; virtual;
    function getSequence(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  APCallLog = class external 'android.provider' name 'CallLog' (JLObject)
  public
    type
      InnerCalls = class;
      Arr1InnerCalls = array of InnerCalls;
      Arr2InnerCalls = array of Arr1InnerCalls;
      Arr3InnerCalls = array of Arr2InnerCalls;
      InnerCalls = class external 'android.provider' name 'Calls' (JLObject, APBaseColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_FILTER_URI: ANUri; external name 'CONTENT_FILTER_URI';
      public
        const
          DEFAULT_SORT_ORDER = 'date DESC';
          CONTENT_TYPE = 'vnd.android.cursor.dir/calls';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/calls';
          &TYPE = 'type';
          INCOMING_TYPE = 1;
          OUTGOING_TYPE = 2;
          MISSED_TYPE = 3;
          NUMBER = 'number';
          DATE = 'date';
          DURATION = 'duration';
          NEW = 'new';
          CACHED_NAME = 'name';
          CACHED_NUMBER_TYPE = 'numbertype';
          CACHED_NUMBER_LABEL = 'numberlabel';
          IS_READ = 'is_read';
      public
        constructor create(); overload;
        class function getLastOutgoingCall(para1: ACContext): JLString; static; overload;
      end;

  public
    const
      AUTHORITY = 'call_log';
  public
    final class var
      fCONTENT_URI: ANUri; external name 'CONTENT_URI';
  public
    constructor create(); overload;
  end;

  APLiveFolders = class sealed external 'android.provider' name 'LiveFolders' (JLObject, APBaseColumns)
  public
    const
      NAME = 'name';
      DESCRIPTION = 'description';
      INTENT = 'intent';
      ICON_BITMAP = 'icon_bitmap';
      ICON_PACKAGE = 'icon_package';
      ICON_RESOURCE = 'icon_resource';
      DISPLAY_MODE_GRID = 1;
      DISPLAY_MODE_LIST = 2;
      EXTRA_LIVE_FOLDER_NAME = 'android.intent.extra.livefolder.NAME';
      EXTRA_LIVE_FOLDER_ICON = 'android.intent.extra.livefolder.ICON';
      EXTRA_LIVE_FOLDER_DISPLAY_MODE = 'android.intent.extra.livefolder.DISPLAY_MODE';
      EXTRA_LIVE_FOLDER_BASE_INTENT = 'android.intent.extra.livefolder.BASE_INTENT';
      ACTION_CREATE_LIVE_FOLDER = 'android.intent.action.CREATE_LIVE_FOLDER';
  end;

  APSyncStateContract = class external 'android.provider' name 'SyncStateContract' (JLObject)
  public
    type
      InnerHelpers = class;
      Arr1InnerHelpers = array of InnerHelpers;
      Arr2InnerHelpers = array of Arr1InnerHelpers;
      Arr3InnerHelpers = array of Arr2InnerHelpers;
      InnerColumns = interface;
      Arr1InnerColumns = array of InnerColumns;
      Arr2InnerColumns = array of Arr1InnerColumns;
      Arr3InnerColumns = array of Arr2InnerColumns;
      InnerConstants = class;
      Arr1InnerConstants = array of InnerConstants;
      Arr2InnerConstants = array of Arr1InnerConstants;
      Arr3InnerConstants = array of Arr2InnerConstants;
      InnerHelpers = class sealed external 'android.provider' name 'Helpers' (JLObject)
      public
        constructor create(); overload;
        class function get(para1: ACContentProviderClient; para2: ANUri; para3: AAAccount): Arr1jbyte; static; overload;  // throws android.os.RemoteException
        class procedure &set(para1: ACContentProviderClient; para2: ANUri; para3: AAAccount; para4: Arr1jbyte); static; overload;  // throws android.os.RemoteException
        class procedure &set(para1: ACContentProviderClient; para2: ANUri; para3: AAAccount; var para4: array of jbyte); static; overload;  // throws android.os.RemoteException
        class function insert(para1: ACContentProviderClient; para2: ANUri; para3: AAAccount; para4: Arr1jbyte): ANUri; static; overload;  // throws android.os.RemoteException
        class function insert(para1: ACContentProviderClient; para2: ANUri; para3: AAAccount; var para4: array of jbyte): ANUri; static; overload;  // throws android.os.RemoteException
        class procedure update(para1: ACContentProviderClient; para2: ANUri; para3: Arr1jbyte); static; overload;  // throws android.os.RemoteException
        class procedure update(para1: ACContentProviderClient; para2: ANUri; var para3: array of jbyte); static; overload;  // throws android.os.RemoteException
        class function getWithUri(para1: ACContentProviderClient; para2: ANUri; para3: AAAccount): AUPair; static; overload;  // throws android.os.RemoteException
        class function newSetOperation(para1: ANUri; para2: AAAccount; para3: Arr1jbyte): ACContentProviderOperation; static; overload;
        class function newSetOperation(para1: ANUri; para2: AAAccount; var para3: array of jbyte): ACContentProviderOperation; static; overload;
        class function newUpdateOperation(para1: ANUri; para2: Arr1jbyte): ACContentProviderOperation; static; overload;
        class function newUpdateOperation(para1: ANUri; var para2: array of jbyte): ACContentProviderOperation; static; overload;
      end;

      InnerColumns = interface external 'android.provider' name 'Columns' (APBaseColumns)
        const
          ACCOUNT_NAME = 'account_name';
          ACCOUNT_TYPE = 'account_type';
          DATA = 'data';
      end;

      InnerConstants = class external 'android.provider' name 'Constants' (JLObject, APSyncStateContract.InnerColumns)
      public
        const
          CONTENT_DIRECTORY = 'syncstate';
      public
        constructor create(); overload;
      end;

  public
    constructor create(); overload;
  end;

  APUserDictionary = class external 'android.provider' name 'UserDictionary' (JLObject)
  public
    type
      InnerWords = class;
      Arr1InnerWords = array of InnerWords;
      Arr2InnerWords = array of Arr1InnerWords;
      Arr3InnerWords = array of Arr2InnerWords;
      InnerWords = class external 'android.provider' name 'Words' (JLObject, APBaseColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/vnd.google.userword';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/vnd.google.userword';
          _ID = '_id';
          WORD = 'word';
          FREQUENCY = 'frequency';
          LOCALE = 'locale';
          APP_ID = 'appid';
          LOCALE_TYPE_ALL = 0;
          LOCALE_TYPE_CURRENT = 1;
          DEFAULT_SORT_ORDER = 'frequency DESC';
      public
        constructor create(); overload;
        class procedure addWord(para1: ACContext; para2: JLString; para3: jint; para4: jint); static; overload;
      end;

  public
    const
      AUTHORITY = 'user_dictionary';
  public
    final class var
      fCONTENT_URI: ANUri; external name 'CONTENT_URI';
  public
    constructor create(); overload;
  end;

  APVoicemailContract = class external 'android.provider' name 'VoicemailContract' (JLObject)
  public
    type
      InnerStatus = class;
      Arr1InnerStatus = array of InnerStatus;
      Arr2InnerStatus = array of Arr1InnerStatus;
      Arr3InnerStatus = array of Arr2InnerStatus;
      InnerVoicemails = class;
      Arr1InnerVoicemails = array of InnerVoicemails;
      Arr2InnerVoicemails = array of Arr1InnerVoicemails;
      Arr3InnerVoicemails = array of Arr2InnerVoicemails;
      InnerStatus = class sealed external 'android.provider' name 'Status' (JLObject, APBaseColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          DIR_TYPE = 'vnd.android.cursor.dir/voicemail.source.status';
          ITEM_TYPE = 'vnd.android.cursor.item/voicemail.source.status';
          SOURCE_PACKAGE = 'source_package';
          SETTINGS_URI = 'settings_uri';
          VOICEMAIL_ACCESS_URI = 'voicemail_access_uri';
          CONFIGURATION_STATE = 'configuration_state';
          CONFIGURATION_STATE_OK = 0;
          CONFIGURATION_STATE_NOT_CONFIGURED = 1;
          CONFIGURATION_STATE_CAN_BE_CONFIGURED = 2;
          DATA_CHANNEL_STATE = 'data_channel_state';
          DATA_CHANNEL_STATE_OK = 0;
          DATA_CHANNEL_STATE_NO_CONNECTION = 1;
          NOTIFICATION_CHANNEL_STATE = 'notification_channel_state';
          NOTIFICATION_CHANNEL_STATE_OK = 0;
          NOTIFICATION_CHANNEL_STATE_NO_CONNECTION = 1;
          NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING = 2;
      public
        class function buildSourceUri(para1: JLString): ANUri; static; overload;
      end;

      InnerVoicemails = class sealed external 'android.provider' name 'Voicemails' (JLObject, APBaseColumns, APOpenableColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          DIR_TYPE = 'vnd.android.cursor.dir/voicemails';
          ITEM_TYPE = 'vnd.android.cursor.item/voicemail';
          NUMBER = 'number';
          DATE = 'date';
          DURATION = 'duration';
          IS_READ = 'is_read';
          SOURCE_PACKAGE = 'source_package';
          SOURCE_DATA = 'source_data';
          HAS_CONTENT = 'has_content';
          MIME_TYPE = 'mime_type';
      public
        class function buildSourceUri(para1: JLString): ANUri; static; overload;
      end;

  public
    const
      AUTHORITY = 'com.android.voicemail';
      PARAM_KEY_SOURCE_PACKAGE = 'source_package';
      ACTION_NEW_VOICEMAIL = 'android.intent.action.NEW_VOICEMAIL';
      ACTION_FETCH_VOICEMAIL = 'android.intent.action.FETCH_VOICEMAIL';
      EXTRA_SELF_CHANGE = 'com.android.voicemail.extra.SELF_CHANGE';
  end;

  ARAllocation = class external 'android.renderscript' name 'Allocation' (ARBaseObj)
  public
    type
      InnerMipmapControl = class;
      Arr1InnerMipmapControl = array of InnerMipmapControl;
      Arr2InnerMipmapControl = array of Arr1InnerMipmapControl;
      Arr3InnerMipmapControl = array of Arr2InnerMipmapControl;
      InnerMipmapControl = class sealed external 'android.renderscript' name 'MipmapControl' (JLEnum)
      public
        final class var
          fMIPMAP_FULL: ARAllocation.InnerMipmapControl; external name 'MIPMAP_FULL';
          fMIPMAP_NONE: ARAllocation.InnerMipmapControl; external name 'MIPMAP_NONE';
          fMIPMAP_ON_SYNC_TO_TEXTURE: ARAllocation.InnerMipmapControl; external name 'MIPMAP_ON_SYNC_TO_TEXTURE';
      public
        class function values(): ARAllocation.Arr1InnerMipmapControl; static; overload;
        class function valueOf(para1: JLString): ARAllocation.InnerMipmapControl; static; overload;
      end;

  public
    const
      USAGE_SCRIPT = 1;
      USAGE_GRAPHICS_TEXTURE = 2;
      USAGE_GRAPHICS_VERTEX = 4;
      USAGE_GRAPHICS_CONSTANTS = 8;
      USAGE_GRAPHICS_RENDER_TARGET = 16;
  public
    function getType(): ARType; overload; virtual;
    procedure syncAll(para1: jint); overload; virtual;
    procedure copyFrom(para1: Arr1ARBaseObj); overload; virtual;
    procedure copyFrom(var para1: array of ARBaseObj); overload; virtual;
    procedure copyFromUnchecked(para1: Arr1jint); overload; virtual;
    procedure copyFromUnchecked(var para1: array of jint); overload; virtual;
    procedure copyFromUnchecked(para1: Arr1jshort); overload; virtual;
    procedure copyFromUnchecked(var para1: array of jshort); overload; virtual;
    procedure copyFromUnchecked(para1: Arr1jbyte); overload; virtual;
    procedure copyFromUnchecked(var para1: array of jbyte); overload; virtual;
    procedure copyFromUnchecked(para1: Arr1jfloat); overload; virtual;
    procedure copyFromUnchecked(var para1: array of jfloat); overload; virtual;
    procedure copyFrom(para1: Arr1jint); overload; virtual;
    procedure copyFrom(var para1: array of jint); overload; virtual;
    procedure copyFrom(para1: Arr1jshort); overload; virtual;
    procedure copyFrom(var para1: array of jshort); overload; virtual;
    procedure copyFrom(para1: Arr1jbyte); overload; virtual;
    procedure copyFrom(var para1: array of jbyte); overload; virtual;
    procedure copyFrom(para1: Arr1jfloat); overload; virtual;
    procedure copyFrom(var para1: array of jfloat); overload; virtual;
    procedure copyFrom(para1: AGBitmap); overload; virtual;
    procedure setFromFieldPacker(para1: jint; para2: ARFieldPacker); overload; virtual;
    procedure setFromFieldPacker(para1: jint; para2: jint; para3: ARFieldPacker); overload; virtual;
    procedure generateMipmaps(); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; para3: Arr1jint); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; var para3: array of jint); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; para3: Arr1jshort); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; var para3: array of jshort); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; para3: Arr1jbyte); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; var para3: array of jbyte); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; para3: Arr1jfloat); overload; virtual;
    procedure copy1DRangeFromUnchecked(para1: jint; para2: jint; var para3: array of jfloat); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; para3: Arr1jint); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; var para3: array of jint); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; para3: Arr1jshort); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; var para3: array of jshort); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; para3: Arr1jbyte); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; var para3: array of jbyte); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; para3: Arr1jfloat); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; var para3: array of jfloat); overload; virtual;
    procedure copy1DRangeFrom(para1: jint; para2: jint; para3: ARAllocation; para4: jint); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jbyte); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jbyte); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jshort); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jshort); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jfloat); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jfloat); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: jint; para4: jint; para5: ARAllocation; para6: jint; para7: jint); overload; virtual;
    procedure copy2DRangeFrom(para1: jint; para2: jint; para3: AGBitmap); overload; virtual;
    procedure copyTo(para1: AGBitmap); overload; virtual;
    procedure copyTo(para1: Arr1jbyte); overload; virtual;
    procedure copyTo(var para1: array of jbyte); overload; virtual;
    procedure copyTo(para1: Arr1jshort); overload; virtual;
    procedure copyTo(var para1: array of jshort); overload; virtual;
    procedure copyTo(para1: Arr1jint); overload; virtual;
    procedure copyTo(var para1: array of jint); overload; virtual;
    procedure copyTo(para1: Arr1jfloat); overload; virtual;
    procedure copyTo(var para1: array of jfloat); overload; virtual;
    procedure resize(para1: jint); overload; virtual;
    class function createTyped(para1: ARRenderScript; para2: ARType; para3: ARAllocation.InnerMipmapControl; para4: jint): ARAllocation; static; overload;
    class function createTyped(para1: ARRenderScript; para2: ARType; para3: jint): ARAllocation; static; overload;
    class function createTyped(para1: ARRenderScript; para2: ARType): ARAllocation; static; overload;
    class function createSized(para1: ARRenderScript; para2: ARElement; para3: jint; para4: jint): ARAllocation; static; overload;
    class function createSized(para1: ARRenderScript; para2: ARElement; para3: jint): ARAllocation; static; overload;
    class function createFromBitmap(para1: ARRenderScript; para2: AGBitmap; para3: ARAllocation.InnerMipmapControl; para4: jint): ARAllocation; static; overload;
    class function createFromBitmap(para1: ARRenderScript; para2: AGBitmap): ARAllocation; static; overload;
    class function createCubemapFromBitmap(para1: ARRenderScript; para2: AGBitmap; para3: ARAllocation.InnerMipmapControl; para4: jint): ARAllocation; static; overload;
    class function createCubemapFromBitmap(para1: ARRenderScript; para2: AGBitmap): ARAllocation; static; overload;
    class function createCubemapFromCubeFaces(para1: ARRenderScript; para2: AGBitmap; para3: AGBitmap; para4: AGBitmap; para5: AGBitmap; para6: AGBitmap; para7: AGBitmap; para8: ARAllocation.InnerMipmapControl; para9: jint): ARAllocation; static; overload;
    class function createCubemapFromCubeFaces(para1: ARRenderScript; para2: AGBitmap; para3: AGBitmap; para4: AGBitmap; para5: AGBitmap; para6: AGBitmap; para7: AGBitmap): ARAllocation; static; overload;
    class function createFromBitmapResource(para1: ARRenderScript; para2: ACRResources; para3: jint; para4: ARAllocation.InnerMipmapControl; para5: jint): ARAllocation; static; overload;
    class function createFromBitmapResource(para1: ARRenderScript; para2: ACRResources; para3: jint): ARAllocation; static; overload;
    class function createFromString(para1: ARRenderScript; para2: JLString; para3: jint): ARAllocation; static; overload;
  end;

  ARElement = class external 'android.renderscript' name 'Element' (ARBaseObj)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerDataKind = class;
      Arr1InnerDataKind = array of InnerDataKind;
      Arr2InnerDataKind = array of Arr1InnerDataKind;
      Arr3InnerDataKind = array of Arr2InnerDataKind;
      InnerDataType = class;
      Arr1InnerDataType = array of InnerDataType;
      Arr2InnerDataType = array of Arr1InnerDataType;
      Arr3InnerDataType = array of Arr2InnerDataType;
      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        function add(para1: ARElement; para2: JLString; para3: jint): ARElement.InnerBuilder; overload; virtual;
        function add(para1: ARElement; para2: JLString): ARElement.InnerBuilder; overload; virtual;
        function create_(): ARElement; external name 'create'; overload; virtual;
      end;

      InnerDataKind = class sealed external 'android.renderscript' name 'DataKind' (JLEnum)
      public
        final class var
          fPIXEL_A: ARElement.InnerDataKind; external name 'PIXEL_A';
          fPIXEL_DEPTH: ARElement.InnerDataKind; external name 'PIXEL_DEPTH';
          fPIXEL_L: ARElement.InnerDataKind; external name 'PIXEL_L';
          fPIXEL_LA: ARElement.InnerDataKind; external name 'PIXEL_LA';
          fPIXEL_RGB: ARElement.InnerDataKind; external name 'PIXEL_RGB';
          fPIXEL_RGBA: ARElement.InnerDataKind; external name 'PIXEL_RGBA';
          fUSER: ARElement.InnerDataKind; external name 'USER';
      public
        class function values(): ARElement.Arr1InnerDataKind; static; overload;
        class function valueOf(para1: JLString): ARElement.InnerDataKind; static; overload;
      end;

      InnerDataType = class sealed external 'android.renderscript' name 'DataType' (JLEnum)
      public
        final class var
          fBOOLEAN: ARElement.InnerDataType; external name 'BOOLEAN';
          fFLOAT_32: ARElement.InnerDataType; external name 'FLOAT_32';
          fFLOAT_64: ARElement.InnerDataType; external name 'FLOAT_64';
          fMATRIX_2X2: ARElement.InnerDataType; external name 'MATRIX_2X2';
          fMATRIX_3X3: ARElement.InnerDataType; external name 'MATRIX_3X3';
          fMATRIX_4X4: ARElement.InnerDataType; external name 'MATRIX_4X4';
          fRS_ALLOCATION: ARElement.InnerDataType; external name 'RS_ALLOCATION';
          fRS_ELEMENT: ARElement.InnerDataType; external name 'RS_ELEMENT';
          fRS_MESH: ARElement.InnerDataType; external name 'RS_MESH';
          fRS_PROGRAM_FRAGMENT: ARElement.InnerDataType; external name 'RS_PROGRAM_FRAGMENT';
          fRS_PROGRAM_RASTER: ARElement.InnerDataType; external name 'RS_PROGRAM_RASTER';
          fRS_PROGRAM_STORE: ARElement.InnerDataType; external name 'RS_PROGRAM_STORE';
          fRS_PROGRAM_VERTEX: ARElement.InnerDataType; external name 'RS_PROGRAM_VERTEX';
          fRS_SAMPLER: ARElement.InnerDataType; external name 'RS_SAMPLER';
          fRS_SCRIPT: ARElement.InnerDataType; external name 'RS_SCRIPT';
          fRS_TYPE: ARElement.InnerDataType; external name 'RS_TYPE';
          fSIGNED_16: ARElement.InnerDataType; external name 'SIGNED_16';
          fSIGNED_32: ARElement.InnerDataType; external name 'SIGNED_32';
          fSIGNED_64: ARElement.InnerDataType; external name 'SIGNED_64';
          fSIGNED_8: ARElement.InnerDataType; external name 'SIGNED_8';
          fUNSIGNED_16: ARElement.InnerDataType; external name 'UNSIGNED_16';
          fUNSIGNED_32: ARElement.InnerDataType; external name 'UNSIGNED_32';
          fUNSIGNED_4_4_4_4: ARElement.InnerDataType; external name 'UNSIGNED_4_4_4_4';
          fUNSIGNED_5_5_5_1: ARElement.InnerDataType; external name 'UNSIGNED_5_5_5_1';
          fUNSIGNED_5_6_5: ARElement.InnerDataType; external name 'UNSIGNED_5_6_5';
          fUNSIGNED_64: ARElement.InnerDataType; external name 'UNSIGNED_64';
          fUNSIGNED_8: ARElement.InnerDataType; external name 'UNSIGNED_8';
      public
        class function values(): ARElement.Arr1InnerDataType; static; overload;
        class function valueOf(para1: JLString): ARElement.InnerDataType; static; overload;
      end;

  public
    function isComplex(): jboolean; overload; virtual;
    class function BOOLEAN(para1: ARRenderScript): ARElement; static; overload;
    class function U8(para1: ARRenderScript): ARElement; static; overload;
    class function I8(para1: ARRenderScript): ARElement; static; overload;
    class function U16(para1: ARRenderScript): ARElement; static; overload;
    class function I16(para1: ARRenderScript): ARElement; static; overload;
    class function U32(para1: ARRenderScript): ARElement; static; overload;
    class function I32(para1: ARRenderScript): ARElement; static; overload;
    class function U64(para1: ARRenderScript): ARElement; static; overload;
    class function I64(para1: ARRenderScript): ARElement; static; overload;
    class function F32(para1: ARRenderScript): ARElement; static; overload;
    class function F64(para1: ARRenderScript): ARElement; static; overload;
    class function ELEMENT(para1: ARRenderScript): ARElement; static; overload;
    class function &TYPE(para1: ARRenderScript): ARElement; static; overload;
    class function ALLOCATION(para1: ARRenderScript): ARElement; static; overload;
    class function SAMPLER(para1: ARRenderScript): ARElement; static; overload;
    class function SCRIPT(para1: ARRenderScript): ARElement; static; overload;
    class function MESH(para1: ARRenderScript): ARElement; static; overload;
    class function PROGRAM_FRAGMENT(para1: ARRenderScript): ARElement; static; overload;
    class function PROGRAM_VERTEX(para1: ARRenderScript): ARElement; static; overload;
    class function PROGRAM_RASTER(para1: ARRenderScript): ARElement; static; overload;
    class function PROGRAM_STORE(para1: ARRenderScript): ARElement; static; overload;
    class function A_8(para1: ARRenderScript): ARElement; static; overload;
    class function RGB_565(para1: ARRenderScript): ARElement; static; overload;
    class function RGB_888(para1: ARRenderScript): ARElement; static; overload;
    class function RGBA_5551(para1: ARRenderScript): ARElement; static; overload;
    class function RGBA_4444(para1: ARRenderScript): ARElement; static; overload;
    class function RGBA_8888(para1: ARRenderScript): ARElement; static; overload;
    class function F32_2(para1: ARRenderScript): ARElement; static; overload;
    class function F32_3(para1: ARRenderScript): ARElement; static; overload;
    class function F32_4(para1: ARRenderScript): ARElement; static; overload;
    class function F64_2(para1: ARRenderScript): ARElement; static; overload;
    class function F64_3(para1: ARRenderScript): ARElement; static; overload;
    class function F64_4(para1: ARRenderScript): ARElement; static; overload;
    class function U8_2(para1: ARRenderScript): ARElement; static; overload;
    class function U8_3(para1: ARRenderScript): ARElement; static; overload;
    class function U8_4(para1: ARRenderScript): ARElement; static; overload;
    class function I8_2(para1: ARRenderScript): ARElement; static; overload;
    class function I8_3(para1: ARRenderScript): ARElement; static; overload;
    class function I8_4(para1: ARRenderScript): ARElement; static; overload;
    class function U16_2(para1: ARRenderScript): ARElement; static; overload;
    class function U16_3(para1: ARRenderScript): ARElement; static; overload;
    class function U16_4(para1: ARRenderScript): ARElement; static; overload;
    class function I16_2(para1: ARRenderScript): ARElement; static; overload;
    class function I16_3(para1: ARRenderScript): ARElement; static; overload;
    class function I16_4(para1: ARRenderScript): ARElement; static; overload;
    class function U32_2(para1: ARRenderScript): ARElement; static; overload;
    class function U32_3(para1: ARRenderScript): ARElement; static; overload;
    class function U32_4(para1: ARRenderScript): ARElement; static; overload;
    class function I32_2(para1: ARRenderScript): ARElement; static; overload;
    class function I32_3(para1: ARRenderScript): ARElement; static; overload;
    class function I32_4(para1: ARRenderScript): ARElement; static; overload;
    class function U64_2(para1: ARRenderScript): ARElement; static; overload;
    class function U64_3(para1: ARRenderScript): ARElement; static; overload;
    class function U64_4(para1: ARRenderScript): ARElement; static; overload;
    class function I64_2(para1: ARRenderScript): ARElement; static; overload;
    class function I64_3(para1: ARRenderScript): ARElement; static; overload;
    class function I64_4(para1: ARRenderScript): ARElement; static; overload;
    class function MATRIX_4X4(para1: ARRenderScript): ARElement; static; overload;
    class function MATRIX4X4(para1: ARRenderScript): ARElement; static; overload;
    class function MATRIX_3X3(para1: ARRenderScript): ARElement; static; overload;
    class function MATRIX_2X2(para1: ARRenderScript): ARElement; static; overload;
    class function createVector(para1: ARRenderScript; para2: ARElement.InnerDataType; para3: jint): ARElement; static; overload;
    class function createPixel(para1: ARRenderScript; para2: ARElement.InnerDataType; para3: ARElement.InnerDataKind): ARElement; static; overload;
    function isCompatible(para1: ARElement): jboolean; overload; virtual;
  end;

  ARFileA3D = class external 'android.renderscript' name 'FileA3D' (ARBaseObj)
  public
    type
      InnerEntryType = class;
      Arr1InnerEntryType = array of InnerEntryType;
      Arr2InnerEntryType = array of Arr1InnerEntryType;
      Arr3InnerEntryType = array of Arr2InnerEntryType;
      InnerIndexEntry = class;
      Arr1InnerIndexEntry = array of InnerIndexEntry;
      Arr2InnerIndexEntry = array of Arr1InnerIndexEntry;
      Arr3InnerIndexEntry = array of Arr2InnerIndexEntry;
      InnerEntryType = class sealed external 'android.renderscript' name 'EntryType' (JLEnum)
      public
        final class var
          fMESH: ARFileA3D.InnerEntryType; external name 'MESH';
          fUNKNOWN: ARFileA3D.InnerEntryType; external name 'UNKNOWN';
      public
        class function values(): ARFileA3D.Arr1InnerEntryType; static; overload;
        class function valueOf(para1: JLString): ARFileA3D.InnerEntryType; static; overload;
      end;

      InnerIndexEntry = class external 'android.renderscript' name 'IndexEntry' (JLObject)
      public
        function getName(): JLString; overload; virtual;
        function getEntryType(): ARFileA3D.InnerEntryType; overload; virtual;
        function getObject(): ARBaseObj; overload; virtual;
        function getMesh(): ARMesh; overload; virtual;
      end;

  public
    function getIndexEntryCount(): jint; overload; virtual;
    function getIndexEntry(para1: jint): ARFileA3D.InnerIndexEntry; overload; virtual;
    class function createFromAsset(para1: ARRenderScript; para2: ACRAssetManager; para3: JLString): ARFileA3D; static; overload;
    class function createFromFile(para1: ARRenderScript; para2: JLString): ARFileA3D; static; overload;
    class function createFromFile(para1: ARRenderScript; para2: JIFile): ARFileA3D; static; overload;
    class function createFromResource(para1: ARRenderScript; para2: ACRResources; para3: jint): ARFileA3D; static; overload;
  end;

  ARFont = class external 'android.renderscript' name 'Font' (ARBaseObj)
  public
    type
      InnerStyle = class;
      Arr1InnerStyle = array of InnerStyle;
      Arr2InnerStyle = array of Arr1InnerStyle;
      Arr3InnerStyle = array of Arr2InnerStyle;
      InnerStyle = class sealed external 'android.renderscript' name 'Style' (JLEnum)
      public
        final class var
          fBOLD: ARFont.InnerStyle; external name 'BOLD';
          fBOLD_ITALIC: ARFont.InnerStyle; external name 'BOLD_ITALIC';
          fITALIC: ARFont.InnerStyle; external name 'ITALIC';
          fNORMAL: ARFont.InnerStyle; external name 'NORMAL';
      public
        class function values(): ARFont.Arr1InnerStyle; static; overload;
        class function valueOf(para1: JLString): ARFont.InnerStyle; static; overload;
      end;

  public
    class function createFromFile(para1: ARRenderScript; para2: ACRResources; para3: JLString; para4: jfloat): ARFont; static; overload;
    class function createFromFile(para1: ARRenderScript; para2: ACRResources; para3: JIFile; para4: jfloat): ARFont; static; overload;
    class function createFromAsset(para1: ARRenderScript; para2: ACRResources; para3: JLString; para4: jfloat): ARFont; static; overload;
    class function createFromResource(para1: ARRenderScript; para2: ACRResources; para3: jint; para4: jfloat): ARFont; static; overload;
    class function create_(para1: ARRenderScript; para2: ACRResources; para3: JLString; para4: ARFont.InnerStyle; para5: jfloat): ARFont; static; external name 'create'; overload;
  end;

  ARMesh = class external 'android.renderscript' name 'Mesh' (ARBaseObj)
  public
    type
      InnerTriangleMeshBuilder = class;
      Arr1InnerTriangleMeshBuilder = array of InnerTriangleMeshBuilder;
      Arr2InnerTriangleMeshBuilder = array of Arr1InnerTriangleMeshBuilder;
      Arr3InnerTriangleMeshBuilder = array of Arr2InnerTriangleMeshBuilder;
      InnerPrimitive = class;
      Arr1InnerPrimitive = array of InnerPrimitive;
      Arr2InnerPrimitive = array of Arr1InnerPrimitive;
      Arr3InnerPrimitive = array of Arr2InnerPrimitive;
      InnerAllocationBuilder = class;
      Arr1InnerAllocationBuilder = array of InnerAllocationBuilder;
      Arr2InnerAllocationBuilder = array of Arr1InnerAllocationBuilder;
      Arr3InnerAllocationBuilder = array of Arr2InnerAllocationBuilder;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerTriangleMeshBuilder = class external 'android.renderscript' name 'TriangleMeshBuilder' (JLObject)
      public
        const
          COLOR = 1;
          NORMAL = 2;
          TEXTURE_0 = 256;
      public
        constructor create(para1: ARRenderScript; para2: jint; para3: jint); overload;
        function addVertex(para1: jfloat; para2: jfloat): ARMesh.InnerTriangleMeshBuilder; overload; virtual;
        function addVertex(para1: jfloat; para2: jfloat; para3: jfloat): ARMesh.InnerTriangleMeshBuilder; overload; virtual;
        function setTexture(para1: jfloat; para2: jfloat): ARMesh.InnerTriangleMeshBuilder; overload; virtual;
        function setNormal(para1: jfloat; para2: jfloat; para3: jfloat): ARMesh.InnerTriangleMeshBuilder; overload; virtual;
        function setColor(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): ARMesh.InnerTriangleMeshBuilder; overload; virtual;
        function addTriangle(para1: jint; para2: jint; para3: jint): ARMesh.InnerTriangleMeshBuilder; overload; virtual;
        function create_(para1: jboolean): ARMesh; external name 'create'; overload; virtual;
      end;

      InnerPrimitive = class sealed external 'android.renderscript' name 'Primitive' (JLEnum)
      public
        final class var
          fLINE: ARMesh.InnerPrimitive; external name 'LINE';
          fLINE_STRIP: ARMesh.InnerPrimitive; external name 'LINE_STRIP';
          fPOINT: ARMesh.InnerPrimitive; external name 'POINT';
          fTRIANGLE: ARMesh.InnerPrimitive; external name 'TRIANGLE';
          fTRIANGLE_FAN: ARMesh.InnerPrimitive; external name 'TRIANGLE_FAN';
          fTRIANGLE_STRIP: ARMesh.InnerPrimitive; external name 'TRIANGLE_STRIP';
      public
        class function values(): ARMesh.Arr1InnerPrimitive; static; overload;
        class function valueOf(para1: JLString): ARMesh.InnerPrimitive; static; overload;
      end;

      InnerAllocationBuilder = class external 'android.renderscript' name 'AllocationBuilder' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        function getCurrentVertexTypeIndex(): jint; overload; virtual;
        function getCurrentIndexSetIndex(): jint; overload; virtual;
        function addVertexAllocation(para1: ARAllocation): ARMesh.InnerAllocationBuilder; overload; virtual;  // throws java.lang.IllegalStateException
        function addIndexSetAllocation(para1: ARAllocation; para2: ARMesh.InnerPrimitive): ARMesh.InnerAllocationBuilder; overload; virtual;
        function addIndexSetType(para1: ARMesh.InnerPrimitive): ARMesh.InnerAllocationBuilder; overload; virtual;
        function create_(): ARMesh; external name 'create'; overload; virtual;
      end;

      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript; para2: jint); overload;
        function getCurrentVertexTypeIndex(): jint; overload; virtual;
        function getCurrentIndexSetIndex(): jint; overload; virtual;
        function addVertexType(para1: ARType): ARMesh.InnerBuilder; overload; virtual;  // throws java.lang.IllegalStateException
        function addVertexType(para1: ARElement; para2: jint): ARMesh.InnerBuilder; overload; virtual;  // throws java.lang.IllegalStateException
        function addIndexSetType(para1: ARType; para2: ARMesh.InnerPrimitive): ARMesh.InnerBuilder; overload; virtual;
        function addIndexSetType(para1: ARMesh.InnerPrimitive): ARMesh.InnerBuilder; overload; virtual;
        function addIndexSetType(para1: ARElement; para2: jint; para3: ARMesh.InnerPrimitive): ARMesh.InnerBuilder; overload; virtual;
        function create_(): ARMesh; external name 'create'; overload; virtual;
      end;

  public
    function getVertexAllocationCount(): jint; overload; virtual;
    function getVertexAllocation(para1: jint): ARAllocation; overload; virtual;
    function getPrimitiveCount(): jint; overload; virtual;
    function getIndexSetAllocation(para1: jint): ARAllocation; overload; virtual;
    function getPrimitive(para1: jint): ARMesh.InnerPrimitive; overload; virtual;
  end;

  ARProgram = class external 'android.renderscript' name 'Program' (ARBaseObj)
  public
    type
      InnerTextureType = class;
      Arr1InnerTextureType = array of InnerTextureType;
      Arr2InnerTextureType = array of Arr1InnerTextureType;
      Arr3InnerTextureType = array of Arr2InnerTextureType;
      InnerBaseProgramBuilder = class;
      Arr1InnerBaseProgramBuilder = array of InnerBaseProgramBuilder;
      Arr2InnerBaseProgramBuilder = array of Arr1InnerBaseProgramBuilder;
      Arr3InnerBaseProgramBuilder = array of Arr2InnerBaseProgramBuilder;
      InnerTextureType = class sealed external 'android.renderscript' name 'TextureType' (JLEnum)
      public
        final class var
          fTEXTURE_2D: ARProgram.InnerTextureType; external name 'TEXTURE_2D';
          fTEXTURE_CUBE: ARProgram.InnerTextureType; external name 'TEXTURE_CUBE';
      public
        class function values(): ARProgram.Arr1InnerTextureType; static; overload;
        class function valueOf(para1: JLString): ARProgram.InnerTextureType; static; overload;
      end;

      InnerBaseProgramBuilder = class external 'android.renderscript' name 'BaseProgramBuilder' (JLObject)
      strict protected
        constructor create(para1: ARRenderScript); overload;
      public
        function setShader(para1: JLString): ARProgram.InnerBaseProgramBuilder; overload; virtual;
        function setShader(para1: ACRResources; para2: jint): ARProgram.InnerBaseProgramBuilder; overload; virtual;
        function getCurrentConstantIndex(): jint; overload; virtual;
        function getCurrentTextureIndex(): jint; overload; virtual;
        function addConstant(para1: ARType): ARProgram.InnerBaseProgramBuilder; overload; virtual;  // throws java.lang.IllegalStateException
        function addTexture(para1: ARProgram.InnerTextureType): ARProgram.InnerBaseProgramBuilder; overload; virtual;  // throws java.lang.IllegalArgumentException
      strict protected
        procedure initProgram(para1: ARProgram); overload; virtual;
      end;

  public
    procedure bindConstants(para1: ARAllocation; para2: jint); overload; virtual;
    procedure bindTexture(para1: ARAllocation; para2: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure bindSampler(para1: ARSampler; para2: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
  end;

  ARProgramRaster = class external 'android.renderscript' name 'ProgramRaster' (ARBaseObj)
  public
    type
      InnerCullMode = class;
      Arr1InnerCullMode = array of InnerCullMode;
      Arr2InnerCullMode = array of Arr1InnerCullMode;
      Arr3InnerCullMode = array of Arr2InnerCullMode;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerCullMode = class sealed external 'android.renderscript' name 'CullMode' (JLEnum)
      public
        final class var
          fBACK: ARProgramRaster.InnerCullMode; external name 'BACK';
          fFRONT: ARProgramRaster.InnerCullMode; external name 'FRONT';
          fNONE: ARProgramRaster.InnerCullMode; external name 'NONE';
      public
        class function values(): ARProgramRaster.Arr1InnerCullMode; static; overload;
        class function valueOf(para1: JLString): ARProgramRaster.InnerCullMode; static; overload;
      end;

      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        function setPointSpriteEnabled(para1: jboolean): ARProgramRaster.InnerBuilder; overload; virtual;
        function setCullMode(para1: ARProgramRaster.InnerCullMode): ARProgramRaster.InnerBuilder; overload; virtual;
        function create_(): ARProgramRaster; external name 'create'; overload; virtual;
      end;

  public
    class function CULL_BACK(para1: ARRenderScript): ARProgramRaster; static; overload;
    class function CULL_FRONT(para1: ARRenderScript): ARProgramRaster; static; overload;
    class function CULL_NONE(para1: ARRenderScript): ARProgramRaster; static; overload;
  end;

  ARProgramStore = class external 'android.renderscript' name 'ProgramStore' (ARBaseObj)
  public
    type
      InnerBlendDstFunc = class;
      Arr1InnerBlendDstFunc = array of InnerBlendDstFunc;
      Arr2InnerBlendDstFunc = array of Arr1InnerBlendDstFunc;
      Arr3InnerBlendDstFunc = array of Arr2InnerBlendDstFunc;
      InnerBlendSrcFunc = class;
      Arr1InnerBlendSrcFunc = array of InnerBlendSrcFunc;
      Arr2InnerBlendSrcFunc = array of Arr1InnerBlendSrcFunc;
      Arr3InnerBlendSrcFunc = array of Arr2InnerBlendSrcFunc;
      InnerDepthFunc = class;
      Arr1InnerDepthFunc = array of InnerDepthFunc;
      Arr2InnerDepthFunc = array of Arr1InnerDepthFunc;
      Arr3InnerDepthFunc = array of Arr2InnerDepthFunc;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBlendDstFunc = class sealed external 'android.renderscript' name 'BlendDstFunc' (JLEnum)
      public
        final class var
          fDST_ALPHA: ARProgramStore.InnerBlendDstFunc; external name 'DST_ALPHA';
          fONE: ARProgramStore.InnerBlendDstFunc; external name 'ONE';
          fONE_MINUS_DST_ALPHA: ARProgramStore.InnerBlendDstFunc; external name 'ONE_MINUS_DST_ALPHA';
          fONE_MINUS_SRC_ALPHA: ARProgramStore.InnerBlendDstFunc; external name 'ONE_MINUS_SRC_ALPHA';
          fONE_MINUS_SRC_COLOR: ARProgramStore.InnerBlendDstFunc; external name 'ONE_MINUS_SRC_COLOR';
          fSRC_ALPHA: ARProgramStore.InnerBlendDstFunc; external name 'SRC_ALPHA';
          fSRC_COLOR: ARProgramStore.InnerBlendDstFunc; external name 'SRC_COLOR';
          fZERO: ARProgramStore.InnerBlendDstFunc; external name 'ZERO';
      public
        class function values(): ARProgramStore.Arr1InnerBlendDstFunc; static; overload;
        class function valueOf(para1: JLString): ARProgramStore.InnerBlendDstFunc; static; overload;
      end;

      InnerBlendSrcFunc = class sealed external 'android.renderscript' name 'BlendSrcFunc' (JLEnum)
      public
        final class var
          fDST_ALPHA: ARProgramStore.InnerBlendSrcFunc; external name 'DST_ALPHA';
          fDST_COLOR: ARProgramStore.InnerBlendSrcFunc; external name 'DST_COLOR';
          fONE: ARProgramStore.InnerBlendSrcFunc; external name 'ONE';
          fONE_MINUS_DST_ALPHA: ARProgramStore.InnerBlendSrcFunc; external name 'ONE_MINUS_DST_ALPHA';
          fONE_MINUS_DST_COLOR: ARProgramStore.InnerBlendSrcFunc; external name 'ONE_MINUS_DST_COLOR';
          fONE_MINUS_SRC_ALPHA: ARProgramStore.InnerBlendSrcFunc; external name 'ONE_MINUS_SRC_ALPHA';
          fSRC_ALPHA: ARProgramStore.InnerBlendSrcFunc; external name 'SRC_ALPHA';
          fSRC_ALPHA_SATURATE: ARProgramStore.InnerBlendSrcFunc; external name 'SRC_ALPHA_SATURATE';
          fZERO: ARProgramStore.InnerBlendSrcFunc; external name 'ZERO';
      public
        class function values(): ARProgramStore.Arr1InnerBlendSrcFunc; static; overload;
        class function valueOf(para1: JLString): ARProgramStore.InnerBlendSrcFunc; static; overload;
      end;

      InnerDepthFunc = class sealed external 'android.renderscript' name 'DepthFunc' (JLEnum)
      public
        final class var
          fALWAYS: ARProgramStore.InnerDepthFunc; external name 'ALWAYS';
          fEQUAL: ARProgramStore.InnerDepthFunc; external name 'EQUAL';
          fGREATER: ARProgramStore.InnerDepthFunc; external name 'GREATER';
          fGREATER_OR_EQUAL: ARProgramStore.InnerDepthFunc; external name 'GREATER_OR_EQUAL';
          fLESS: ARProgramStore.InnerDepthFunc; external name 'LESS';
          fLESS_OR_EQUAL: ARProgramStore.InnerDepthFunc; external name 'LESS_OR_EQUAL';
          fNOT_EQUAL: ARProgramStore.InnerDepthFunc; external name 'NOT_EQUAL';
      public
        class function values(): ARProgramStore.Arr1InnerDepthFunc; static; overload;
        class function valueOf(para1: JLString): ARProgramStore.InnerDepthFunc; static; overload;
      end;

      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        function setDepthFunc(para1: ARProgramStore.InnerDepthFunc): ARProgramStore.InnerBuilder; overload; virtual;
        function setDepthMaskEnabled(para1: jboolean): ARProgramStore.InnerBuilder; overload; virtual;
        function setColorMaskEnabled(para1: jboolean; para2: jboolean; para3: jboolean; para4: jboolean): ARProgramStore.InnerBuilder; overload; virtual;
        function setBlendFunc(para1: ARProgramStore.InnerBlendSrcFunc; para2: ARProgramStore.InnerBlendDstFunc): ARProgramStore.InnerBuilder; overload; virtual;
        function setDitherEnabled(para1: jboolean): ARProgramStore.InnerBuilder; overload; virtual;
        function create_(): ARProgramStore; external name 'create'; overload; virtual;
      end;

  public
    class function BLEND_NONE_DEPTH_TEST(para1: ARRenderScript): ARProgramStore; static; overload;
    class function BLEND_NONE_DEPTH_NONE(para1: ARRenderScript): ARProgramStore; static; overload;
    class function BLEND_ALPHA_DEPTH_TEST(para1: ARRenderScript): ARProgramStore; static; overload;
    class function BLEND_ALPHA_DEPTH_NONE(para1: ARRenderScript): ARProgramStore; static; overload;
  end;

  ARSampler = class external 'android.renderscript' name 'Sampler' (ARBaseObj)
  public
    type
      InnerValue = class;
      Arr1InnerValue = array of InnerValue;
      Arr2InnerValue = array of Arr1InnerValue;
      Arr3InnerValue = array of Arr2InnerValue;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerValue = class sealed external 'android.renderscript' name 'Value' (JLEnum)
      public
        final class var
          fCLAMP: ARSampler.InnerValue; external name 'CLAMP';
          fLINEAR: ARSampler.InnerValue; external name 'LINEAR';
          fLINEAR_MIP_LINEAR: ARSampler.InnerValue; external name 'LINEAR_MIP_LINEAR';
          fLINEAR_MIP_NEAREST: ARSampler.InnerValue; external name 'LINEAR_MIP_NEAREST';
          fNEAREST: ARSampler.InnerValue; external name 'NEAREST';
          fWRAP: ARSampler.InnerValue; external name 'WRAP';
      public
        class function values(): ARSampler.Arr1InnerValue; static; overload;
        class function valueOf(para1: JLString): ARSampler.InnerValue; static; overload;
      end;

      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        procedure setMinification(para1: ARSampler.InnerValue); overload; virtual;
        procedure setMagnification(para1: ARSampler.InnerValue); overload; virtual;
        procedure setWrapS(para1: ARSampler.InnerValue); overload; virtual;
        procedure setWrapT(para1: ARSampler.InnerValue); overload; virtual;
        procedure setAnisotropy(para1: jfloat); overload; virtual;
        function create_(): ARSampler; external name 'create'; overload; virtual;
      end;

  public
    class function CLAMP_NEAREST(para1: ARRenderScript): ARSampler; static; overload;
    class function CLAMP_LINEAR(para1: ARRenderScript): ARSampler; static; overload;
    class function CLAMP_LINEAR_MIP_LINEAR(para1: ARRenderScript): ARSampler; static; overload;
    class function WRAP_NEAREST(para1: ARRenderScript): ARSampler; static; overload;
    class function WRAP_LINEAR(para1: ARRenderScript): ARSampler; static; overload;
    class function WRAP_LINEAR_MIP_LINEAR(para1: ARRenderScript): ARSampler; static; overload;
  end;

  ARScript = class external 'android.renderscript' name 'Script' (ARBaseObj)
  public
    type
      InnerFieldBase = class;
      Arr1InnerFieldBase = array of InnerFieldBase;
      Arr2InnerFieldBase = array of Arr1InnerFieldBase;
      Arr3InnerFieldBase = array of Arr2InnerFieldBase;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerFieldBase = class external 'android.renderscript' name 'FieldBase' (JLObject)
      strict protected
        var
          fmElement: ARElement; external name 'mElement';
          fmAllocation: ARAllocation; external name 'mAllocation';
      strict protected
        constructor create(); overload;
        procedure init(para1: ARRenderScript; para2: jint); overload; virtual;
        procedure init(para1: ARRenderScript; para2: jint; para3: jint); overload; virtual;
      public
        function getElement(): ARElement; overload; virtual;
        function getType(): ARType; overload; virtual;
        function getAllocation(): ARAllocation; overload; virtual;
        procedure updateAllocation(); overload; virtual;
      end;

      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      end;

  strict protected
    procedure invoke(para1: jint); overload; virtual;
    procedure invoke(para1: jint; para2: ARFieldPacker); overload; virtual;
    procedure forEach(para1: jint; para2: ARAllocation; para3: ARAllocation; para4: ARFieldPacker); overload; virtual;
  public
    procedure bindAllocation(para1: ARAllocation; para2: jint); overload; virtual;
    procedure setVar(para1: jint; para2: jfloat); overload; virtual;
    procedure setVar(para1: jint; para2: jdouble); overload; virtual;
    procedure setVar(para1: jint; para2: jint); overload; virtual;
    procedure setVar(para1: jint; para2: jlong); overload; virtual;
    procedure setVar(para1: jint; para2: jboolean); overload; virtual;
    procedure setVar(para1: jint; para2: ARBaseObj); overload; virtual;
    procedure setVar(para1: jint; para2: ARFieldPacker); overload; virtual;
    procedure setTimeZone(para1: JLString); overload; virtual;
  end;

  ARType = class external 'android.renderscript' name 'Type' (ARBaseObj)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerCubemapFace = class;
      Arr1InnerCubemapFace = array of InnerCubemapFace;
      Arr2InnerCubemapFace = array of Arr1InnerCubemapFace;
      Arr3InnerCubemapFace = array of Arr2InnerCubemapFace;
      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript; para2: ARElement); overload;
        function setX(para1: jint): ARType.InnerBuilder; overload; virtual;
        function setY(para1: jint): ARType.InnerBuilder; overload; virtual;
        function setMipmaps(para1: jboolean): ARType.InnerBuilder; overload; virtual;
        function setFaces(para1: jboolean): ARType.InnerBuilder; overload; virtual;
        function create_(): ARType; external name 'create'; overload; virtual;
      end;

      InnerCubemapFace = class sealed external 'android.renderscript' name 'CubemapFace' (JLEnum)
      public
        final class var
          fNEGATIVE_X: ARType.InnerCubemapFace; external name 'NEGATIVE_X';
          fNEGATIVE_Y: ARType.InnerCubemapFace; external name 'NEGATIVE_Y';
          fNEGATIVE_Z: ARType.InnerCubemapFace; external name 'NEGATIVE_Z';
          fPOSITIVE_X: ARType.InnerCubemapFace; external name 'POSITIVE_X';
          fPOSITIVE_Y: ARType.InnerCubemapFace; external name 'POSITIVE_Y';
          fPOSITIVE_Z: ARType.InnerCubemapFace; external name 'POSITIVE_Z';
          fPOSITVE_X: ARType.InnerCubemapFace; external name 'POSITVE_X';
          fPOSITVE_Y: ARType.InnerCubemapFace; external name 'POSITVE_Y';
          fPOSITVE_Z: ARType.InnerCubemapFace; external name 'POSITVE_Z';
      public
        class function values(): ARType.Arr1InnerCubemapFace; static; overload;
        class function valueOf(para1: JLString): ARType.InnerCubemapFace; static; overload;
      end;

  public
    function getElement(): ARElement; overload; virtual;
    function getX(): jint; overload; virtual;
    function getY(): jint; overload; virtual;
    function getZ(): jint; overload; virtual;
    function hasMipmaps(): jboolean; overload; virtual;
    function hasFaces(): jboolean; overload; virtual;
    function getCount(): jint; overload; virtual;
  end;

  ASRootElement = class external 'android.sax' name 'RootElement' (ASElement)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    function getContentHandler(): OXSContentHandler; overload; virtual;
  end;

  ASElementListener = interface external 'android.sax' name 'ElementListener' (ASStartElementListener, ASEndElementListener)
  end;

  ASTextElementListener = interface external 'android.sax' name 'TextElementListener' (ASStartElementListener, ASEndTextElementListener)
  end;

  ATCCdmaCellLocation = class external 'android.telephony.cdma' name 'CdmaCellLocation' (ATCellLocation)
  public
    constructor create(); overload;
    constructor create(para1: AOBundle); overload;
    function getBaseStationId(): jint; overload; virtual;
    function getBaseStationLatitude(): jint; overload; virtual;
    function getBaseStationLongitude(): jint; overload; virtual;
    function getSystemId(): jint; overload; virtual;
    function getNetworkId(): jint; overload; virtual;
    procedure setStateInvalid(); overload; virtual;
    procedure setCellLocationData(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setCellLocationData(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure fillInNotifierBundle(para1: AOBundle); overload; virtual;
  end;

  ATGGsmCellLocation = class external 'android.telephony.gsm' name 'GsmCellLocation' (ATCellLocation)
  public
    constructor create(); overload;
    constructor create(para1: AOBundle); overload;
    function getLac(): jint; overload; virtual;
    function getCid(): jint; overload; virtual;
    function getPsc(): jint; overload; virtual;
    procedure setStateInvalid(); overload; virtual;
    procedure setLacAndCid(para1: jint; para2: jint); overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure fillInNotifierBundle(para1: AOBundle); overload; virtual;
  end;

  ATInstrumentationTestRunner = class external 'android.test' name 'InstrumentationTestRunner' (AAInstrumentation, ATTestSuiteProvider)
  public
    const
      REPORT_VALUE_ID = 'InstrumentationTestRunner';
      REPORT_KEY_NUM_TOTAL = 'numtests';
      REPORT_KEY_NUM_CURRENT = 'current';
      REPORT_KEY_NAME_CLASS = 'class';
      REPORT_KEY_NAME_TEST = 'test';
      REPORT_VALUE_RESULT_START = 1;
      REPORT_VALUE_RESULT_OK = 0;
      REPORT_VALUE_RESULT_ERROR = -1;
      REPORT_VALUE_RESULT_FAILURE = -2;
      REPORT_KEY_STACK = 'stack';
  public
    constructor create(); overload;
    procedure onCreate(para1: AOBundle); overload; virtual;
  strict protected
    function getAndroidTestRunner(): ATAndroidTestRunner; overload; virtual;
  public
    procedure onStart(); overload; virtual;
    function getTestSuite(): JFTestSuite; overload; virtual;
    function getAllTests(): JFTestSuite; overload; virtual;
    function getLoader(): JLClassLoader; overload; virtual;
  end;

  ACClipboardManager = class external 'android.content' name 'ClipboardManager' (ATClipboardManager)
  public
    type
      InnerOnPrimaryClipChangedListener = interface;
      Arr1InnerOnPrimaryClipChangedListener = array of InnerOnPrimaryClipChangedListener;
      Arr2InnerOnPrimaryClipChangedListener = array of Arr1InnerOnPrimaryClipChangedListener;
      Arr3InnerOnPrimaryClipChangedListener = array of Arr2InnerOnPrimaryClipChangedListener;
      InnerOnPrimaryClipChangedListener = interface external 'android.content' name 'OnPrimaryClipChangedListener' 
        procedure onPrimaryClipChanged(); overload;
      end;

  public
    procedure setPrimaryClip(para1: ACClipData); overload; virtual;
    function getPrimaryClip(): ACClipData; overload; virtual;
    function getPrimaryClipDescription(): ACClipDescription; overload; virtual;
    function hasPrimaryClip(): jboolean; overload; virtual;
    procedure addPrimaryClipChangedListener(para1: ACClipboardManager.InnerOnPrimaryClipChangedListener); overload; virtual;
    procedure removePrimaryClipChangedListener(para1: ACClipboardManager.InnerOnPrimaryClipChangedListener); overload; virtual;
    function getText(): JLCharSequence; overload; virtual;
    procedure setText(para1: JLCharSequence); overload; virtual;
    function hasText(): jboolean; overload; virtual;
  end;

  ATLoginFilter = class abstract external 'android.text' name 'LoginFilter' (JLObject, ATInputFilter)
  public
    type
      InnerPasswordFilterGMail = class;
      Arr1InnerPasswordFilterGMail = array of InnerPasswordFilterGMail;
      Arr2InnerPasswordFilterGMail = array of Arr1InnerPasswordFilterGMail;
      Arr3InnerPasswordFilterGMail = array of Arr2InnerPasswordFilterGMail;
      InnerUsernameFilterGeneric = class;
      Arr1InnerUsernameFilterGeneric = array of InnerUsernameFilterGeneric;
      Arr2InnerUsernameFilterGeneric = array of Arr1InnerUsernameFilterGeneric;
      Arr3InnerUsernameFilterGeneric = array of Arr2InnerUsernameFilterGeneric;
      InnerUsernameFilterGMail = class;
      Arr1InnerUsernameFilterGMail = array of InnerUsernameFilterGMail;
      Arr2InnerUsernameFilterGMail = array of Arr1InnerUsernameFilterGMail;
      Arr3InnerUsernameFilterGMail = array of Arr2InnerUsernameFilterGMail;
      InnerPasswordFilterGMail = class external 'android.text' name 'PasswordFilterGMail' (ATLoginFilter)
      public
        constructor create(); overload;
        constructor create(para1: jboolean); overload;
        function isAllowed(para1: jchar): jboolean; overload; virtual;
      end;

      InnerUsernameFilterGeneric = class external 'android.text' name 'UsernameFilterGeneric' (ATLoginFilter)
      public
        constructor create(); overload;
        constructor create(para1: jboolean); overload;
        function isAllowed(para1: jchar): jboolean; overload; virtual;
      end;

      InnerUsernameFilterGMail = class external 'android.text' name 'UsernameFilterGMail' (ATLoginFilter)
      public
        constructor create(); overload;
        constructor create(para1: jboolean); overload;
        function isAllowed(para1: jchar): jboolean; overload; virtual;
      end;

  public
    function filter(para1: JLCharSequence; para2: jint; para3: jint; para4: ATSpanned; para5: jint; para6: jint): JLCharSequence; overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onInvalidCharacter(para1: jchar); overload; virtual;
    procedure onStop(); overload; virtual;
    function isAllowed(para1: jchar): jboolean; overload; virtual; abstract;
  end;

  AVIEditorInfo = class external 'android.view.inputmethod' name 'EditorInfo' (JLObject, ATInputType, AOParcelable)
  public
    var
      finputType: jint; external name 'inputType';
  public
    const
      IME_MASK_ACTION = 255;
      IME_ACTION_UNSPECIFIED = 0;
      IME_ACTION_NONE = 1;
      IME_ACTION_GO = 2;
      IME_ACTION_SEARCH = 3;
      IME_ACTION_SEND = 4;
      IME_ACTION_NEXT = 5;
      IME_ACTION_DONE = 6;
      IME_ACTION_PREVIOUS = 7;
      IME_FLAG_NO_FULLSCREEN = 33554432;
      IME_FLAG_NAVIGATE_PREVIOUS = 67108864;
      IME_FLAG_NAVIGATE_NEXT = 134217728;
      IME_FLAG_NO_EXTRACT_UI = 268435456;
      IME_FLAG_NO_ACCESSORY_ACTION = 536870912;
      IME_FLAG_NO_ENTER_ACTION = 1073741824;
      IME_NULL = 0;
  public
    var
      fimeOptions: jint; external name 'imeOptions';
      fprivateImeOptions: JLString; external name 'privateImeOptions';
      factionLabel: JLCharSequence; external name 'actionLabel';
      factionId: jint; external name 'actionId';
      finitialSelStart: jint; external name 'initialSelStart';
      finitialSelEnd: jint; external name 'initialSelEnd';
      finitialCapsMode: jint; external name 'initialCapsMode';
      fhintText: JLCharSequence; external name 'hintText';
      flabel: JLCharSequence; external name 'label';
      fpackageName: JLString; external name 'packageName';
      ffieldId: jint; external name 'fieldId';
      ffieldName: JLString; external name 'fieldName';
      fextras: AOBundle; external name 'extras';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    procedure makeCompatible(para1: jint); overload; virtual; final;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
  end;

  ATSpanWatcher = interface external 'android.text' name 'SpanWatcher' (ATNoCopySpan)
    procedure onSpanAdded(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint); overload;
    procedure onSpanRemoved(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint); overload;
    procedure onSpanChanged(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  end;

  ATTextWatcher = interface external 'android.text' name 'TextWatcher' (ATNoCopySpan)
    procedure beforeTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload;
    procedure onTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload;
    procedure afterTextChanged(para1: ATEditable); overload;
  end;

  ATMBaseKeyListener = class abstract external 'android.text.method' name 'BaseKeyListener' (ATMMetaKeyKeyListener, ATMKeyListener)
  public
    constructor create(); overload;
    function backspace(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function forwardDelete(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function onKeyOther(para1: AVView; para2: ATEditable; para3: AVKeyEvent): jboolean; overload; virtual;
  end;

  ATMBaseMovementMethod = class external 'android.text.method' name 'BaseMovementMethod' (JLObject, ATMMovementMethod)
  public
    constructor create(); overload;
    function canSelectArbitrarily(): jboolean; overload; virtual;
    procedure initialize(para1: AWTextView; para2: ATSpannable); overload; virtual;
    function onKeyDown(para1: AWTextView; para2: ATSpannable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function onKeyOther(para1: AWTextView; para2: ATSpannable; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: AWTextView; para2: ATSpannable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    procedure onTakeFocus(para1: AWTextView; para2: ATSpannable; para3: jint); overload; virtual;
    function onTouchEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload; virtual;
    function onTrackballEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    function getMovementMetaState(para1: ATSpannable; para2: AVKeyEvent): jint; overload; virtual;
    function handleMovementKey(para1: AWTextView; para2: ATSpannable; para3: jint; para4: jint; para5: AVKeyEvent): jboolean; overload; virtual;
    function left(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function right(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function up(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function down(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function pageUp(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function pageDown(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function top(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function bottom(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function lineStart(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function lineEnd(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function home(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function &end(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
  end;

  ATMReplacementTransformationMethod = class abstract external 'android.text.method' name 'ReplacementTransformationMethod' (JLObject, ATMTransformationMethod)
  public
    constructor create(); overload;
  strict protected
    function getOriginal(): Arr1jchar; overload; virtual; abstract;
    function getReplacement(): Arr1jchar; overload; virtual; abstract;
  public
    function getTransformation(para1: JLCharSequence; para2: AVView): JLCharSequence; overload; virtual;
    procedure onFocusChanged(para1: AVView; para2: JLCharSequence; para3: jboolean; para4: jint; para5: AGRect); overload; virtual;
  end;

  ATSLineBackgroundSpan = interface external 'android.text.style' name 'LineBackgroundSpan' (ATSParagraphStyle)
    procedure drawBackground(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jint); overload;
  end;

  ATSTabStopSpan = interface external 'android.text.style' name 'TabStopSpan' (ATSParagraphStyle)
    type
      InnerStandard = class;
      Arr1InnerStandard = array of InnerStandard;
      Arr2InnerStandard = array of Arr1InnerStandard;
      Arr3InnerStandard = array of Arr2InnerStandard;
      InnerStandard = class external 'android.text.style' name 'Standard' (JLObject, ATSTabStopSpan)
      public
        constructor create(para1: jint); overload;
        function getTabStop(): jint; overload; virtual;
      end;

    function getTabStop(): jint; overload;
  end;

  ATSWrapTogetherSpan = interface external 'android.text.style' name 'WrapTogetherSpan' (ATSParagraphStyle)
  end;

  ATSClickableSpan = class abstract external 'android.text.style' name 'ClickableSpan' (ATSCharacterStyle, ATSUpdateAppearance)
  public
    constructor create(); overload;
    procedure onClick(para1: AVView); overload; virtual; abstract;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSMaskFilterSpan = class external 'android.text.style' name 'MaskFilterSpan' (ATSCharacterStyle, ATSUpdateAppearance)
  public
    constructor create(para1: AGMaskFilter); overload;
    function getMaskFilter(): AGMaskFilter; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSRasterizerSpan = class external 'android.text.style' name 'RasterizerSpan' (ATSCharacterStyle, ATSUpdateAppearance)
  public
    constructor create(para1: AGRasterizer); overload;
    function getRasterizer(): AGRasterizer; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSUpdateLayout = interface external 'android.text.style' name 'UpdateLayout' (ATSUpdateAppearance)
  end;

  AULogPrinter = class external 'android.util' name 'LogPrinter' (JLObject, AUPrinter)
  public
    constructor create(para1: jint; para2: JLString); overload;
    procedure println(para1: JLString); overload; virtual;
  end;

  AUPrintStreamPrinter = class external 'android.util' name 'PrintStreamPrinter' (JLObject, AUPrinter)
  public
    constructor create(para1: JIPrintStream); overload;
    procedure println(para1: JLString); overload; virtual;
  end;

  AUPrintWriterPrinter = class external 'android.util' name 'PrintWriterPrinter' (JLObject, AUPrinter)
  public
    constructor create(para1: JIPrintWriter); overload;
    procedure println(para1: JLString); overload; virtual;
  end;

  AUStringBuilderPrinter = class external 'android.util' name 'StringBuilderPrinter' (JLObject, AUPrinter)
  public
    constructor create(para1: JLStringBuilder); overload;
    procedure println(para1: JLString); overload; virtual;
  end;

  AVViewParent = interface external 'android.view' name 'ViewParent' 
    procedure requestLayout(); overload;
    function isLayoutRequested(): jboolean; overload;
    procedure requestTransparentRegion(para1: AVView); overload;
    procedure invalidateChild(para1: AVView; para2: AGRect); overload;
    function invalidateChildInParent(para1: Arr1jint; para2: AGRect): AVViewParent; overload;
    function invalidateChildInParent(var para1: array of jint; para2: AGRect): AVViewParent; overload;
    function getParent(): AVViewParent; overload;
    procedure requestChildFocus(para1: AVView; para2: AVView); overload;
    procedure recomputeViewAttributes(para1: AVView); overload;
    procedure clearChildFocus(para1: AVView); overload;
    function getChildVisibleRect(para1: AVView; para2: AGRect; para3: AGPoint): jboolean; overload;
    function focusSearch(para1: AVView; para2: jint): AVView; overload;
    procedure bringChildToFront(para1: AVView); overload;
    procedure focusableViewAvailable(para1: AVView); overload;
    function showContextMenuForChild(para1: AVView): jboolean; overload;
    procedure createContextMenu(para1: AVContextMenu); overload;
    function startActionModeForChild(para1: AVView; para2: AVActionMode.InnerCallback): AVActionMode; overload;
    procedure childDrawableStateChanged(para1: AVView); overload;
    procedure requestDisallowInterceptTouchEvent(para1: jboolean); overload;
    function requestChildRectangleOnScreen(para1: AVView; para2: AGRect; para3: jboolean): jboolean; overload;
    function requestSendAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent): jboolean; overload;
  end;

  AWShareActionProvider = class external 'android.widget' name 'ShareActionProvider' (AVActionProvider)
  public
    type
      InnerOnShareTargetSelectedListener = interface;
      Arr1InnerOnShareTargetSelectedListener = array of InnerOnShareTargetSelectedListener;
      Arr2InnerOnShareTargetSelectedListener = array of Arr1InnerOnShareTargetSelectedListener;
      Arr3InnerOnShareTargetSelectedListener = array of Arr2InnerOnShareTargetSelectedListener;
      InnerOnShareTargetSelectedListener = interface external 'android.widget' name 'OnShareTargetSelectedListener' 
        function onShareTargetSelected(para1: AWShareActionProvider; para2: ACIntent): jboolean; overload;
      end;

  public
    const
      DEFAULT_SHARE_HISTORY_FILE_NAME = 'share_history.xml';
  public
    constructor create(para1: ACContext); overload;
    procedure setOnShareTargetSelectedListener(para1: AWShareActionProvider.InnerOnShareTargetSelectedListener); overload; virtual;
    function onCreateActionView(): AVView; overload; virtual;
    function hasSubMenu(): jboolean; overload; virtual;
    procedure onPrepareSubMenu(para1: AVSubMenu); overload; virtual;
    procedure setShareHistoryFileName(para1: JLString); overload; virtual;
    procedure setShareIntent(para1: ACIntent); overload; virtual;
  end;

  AVContextMenu = interface external 'android.view' name 'ContextMenu' (AVMenu)
    type
      InnerContextMenuInfo = interface;
      Arr1InnerContextMenuInfo = array of InnerContextMenuInfo;
      Arr2InnerContextMenuInfo = array of Arr1InnerContextMenuInfo;
      Arr3InnerContextMenuInfo = array of Arr2InnerContextMenuInfo;
      InnerContextMenuInfo = interface external 'android.view' name 'ContextMenuInfo' 
      end;

    function setHeaderTitle(para1: jint): AVContextMenu; overload;
    function setHeaderTitle(para1: JLCharSequence): AVContextMenu; overload;
    function setHeaderIcon(para1: jint): AVContextMenu; overload;
    function setHeaderIcon(para1: AGDDrawable): AVContextMenu; overload;
    function setHeaderView(para1: AVView): AVContextMenu; overload;
    procedure clearHeader(); overload;
  end;

  AVSubMenu = interface external 'android.view' name 'SubMenu' (AVMenu)
    function setHeaderTitle(para1: jint): AVSubMenu; overload;
    function setHeaderTitle(para1: JLCharSequence): AVSubMenu; overload;
    function setHeaderIcon(para1: jint): AVSubMenu; overload;
    function setHeaderIcon(para1: AGDDrawable): AVSubMenu; overload;
    function setHeaderView(para1: AVView): AVSubMenu; overload;
    procedure clearHeader(); overload;
    function setIcon(para1: jint): AVSubMenu; overload;
    function setIcon(para1: AGDDrawable): AVSubMenu; overload;
    function getItem(): AVMenuItem; overload;
  end;

  AVViewGroup_LayoutParams = class external 'android.view' name 'ViewGroup$LayoutParams' (JLObject)
  public
    const
      FILL_PARENT = -1;
      MATCH_PARENT = -1;
      WRAP_CONTENT = -2;
  public
    var
      fwidth: jint; external name 'width';
      fheight: jint; external name 'height';
      flayoutAnimationParameters: AVALayoutAnimationController.InnerAnimationParameters; external name 'layoutAnimationParameters';
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: AVViewGroup_LayoutParams); overload;
  strict protected
    procedure setBaseAttributes(para1: ACRTypedArray; para2: jint; para3: jint); overload; virtual;
  end;
  
  AVWindowManager = interface external 'android.view' name 'WindowManager' (AVViewManager)
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerBadTokenException = class;
      Arr1InnerBadTokenException = array of InnerBadTokenException;
      Arr2InnerBadTokenException = array of Arr1InnerBadTokenException;
      Arr3InnerBadTokenException = array of Arr2InnerBadTokenException;
      InnerLayoutParams = class external 'android.view' name 'LayoutParams' (AVViewGroup_LayoutParams, AOParcelable)
      public
        var
          fx: jint; external name 'x';
          fy: jint; external name 'y';
          fhorizontalWeight: jfloat; external name 'horizontalWeight';
          fverticalWeight: jfloat; external name 'verticalWeight';
          ftype: jint; external name 'type';
      public
        const
          FIRST_APPLICATION_WINDOW = 1;
          TYPE_BASE_APPLICATION = 1;
          TYPE_APPLICATION = 2;
          TYPE_APPLICATION_STARTING = 3;
          LAST_APPLICATION_WINDOW = 99;
          FIRST_SUB_WINDOW = 1000;
          TYPE_APPLICATION_PANEL = 1000;
          TYPE_APPLICATION_MEDIA = 1001;
          TYPE_APPLICATION_SUB_PANEL = 1002;
          TYPE_APPLICATION_ATTACHED_DIALOG = 1003;
          LAST_SUB_WINDOW = 1999;
          FIRST_SYSTEM_WINDOW = 2000;
          TYPE_STATUS_BAR = 2000;
          TYPE_SEARCH_BAR = 2001;
          TYPE_PHONE = 2002;
          TYPE_SYSTEM_ALERT = 2003;
          TYPE_KEYGUARD = 2004;
          TYPE_TOAST = 2005;
          TYPE_SYSTEM_OVERLAY = 2006;
          TYPE_PRIORITY_PHONE = 2007;
          TYPE_SYSTEM_DIALOG = 2008;
          TYPE_KEYGUARD_DIALOG = 2009;
          TYPE_SYSTEM_ERROR = 2010;
          TYPE_INPUT_METHOD = 2011;
          TYPE_INPUT_METHOD_DIALOG = 2012;
          TYPE_WALLPAPER = 2013;
          TYPE_STATUS_BAR_PANEL = 2014;
          LAST_SYSTEM_WINDOW = 2999;
          MEMORY_TYPE_NORMAL = 0;
          MEMORY_TYPE_HARDWARE = 1;
          MEMORY_TYPE_GPU = 2;
          MEMORY_TYPE_PUSH_BUFFERS = 3;
      public
        var
          fmemoryType: jint; external name 'memoryType';
      public
        const
          FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 1;
          FLAG_DIM_BEHIND = 2;
          FLAG_BLUR_BEHIND = 4;
          FLAG_NOT_FOCUSABLE = 8;
          FLAG_NOT_TOUCHABLE = 16;
          FLAG_NOT_TOUCH_MODAL = 32;
          FLAG_TOUCHABLE_WHEN_WAKING = 64;
          FLAG_KEEP_SCREEN_ON = 128;
          FLAG_LAYOUT_IN_SCREEN = 256;
          FLAG_LAYOUT_NO_LIMITS = 512;
          FLAG_FULLSCREEN = 1024;
          FLAG_FORCE_NOT_FULLSCREEN = 2048;
          FLAG_DITHER = 4096;
          FLAG_SECURE = 8192;
          FLAG_SCALED = 16384;
          FLAG_IGNORE_CHEEK_PRESSES = 32768;
          FLAG_LAYOUT_INSET_DECOR = 65536;
          FLAG_ALT_FOCUSABLE_IM = 131072;
          FLAG_WATCH_OUTSIDE_TOUCH = 262144;
          FLAG_SHOW_WHEN_LOCKED = 524288;
          FLAG_SHOW_WALLPAPER = 1048576;
          FLAG_TURN_SCREEN_ON = 2097152;
          FLAG_DISMISS_KEYGUARD = 4194304;
          FLAG_SPLIT_TOUCH = 8388608;
          FLAG_HARDWARE_ACCELERATED = 16777216;
      public
        var
          fflags: jint; external name 'flags';
      public
        const
          SOFT_INPUT_MASK_STATE = 15;
          SOFT_INPUT_STATE_UNSPECIFIED = 0;
          SOFT_INPUT_STATE_UNCHANGED = 1;
          SOFT_INPUT_STATE_HIDDEN = 2;
          SOFT_INPUT_STATE_ALWAYS_HIDDEN = 3;
          SOFT_INPUT_STATE_VISIBLE = 4;
          SOFT_INPUT_STATE_ALWAYS_VISIBLE = 5;
          SOFT_INPUT_MASK_ADJUST = 240;
          SOFT_INPUT_ADJUST_UNSPECIFIED = 0;
          SOFT_INPUT_ADJUST_RESIZE = 16;
          SOFT_INPUT_ADJUST_PAN = 32;
          SOFT_INPUT_ADJUST_NOTHING = 48;
          SOFT_INPUT_IS_FORWARD_NAVIGATION = 256;
      public
        var
          fsoftInputMode: jint; external name 'softInputMode';
          fgravity: jint; external name 'gravity';
          fhorizontalMargin: jfloat; external name 'horizontalMargin';
          fverticalMargin: jfloat; external name 'verticalMargin';
          fformat: jint; external name 'format';
          fwindowAnimations: jint; external name 'windowAnimations';
          falpha: jfloat; external name 'alpha';
          fdimAmount: jfloat; external name 'dimAmount';
      public
        const
          BRIGHTNESS_OVERRIDE_NONE = jfloat(-1.0);
          BRIGHTNESS_OVERRIDE_OFF = jfloat(0.0);
          BRIGHTNESS_OVERRIDE_FULL = jfloat(1.0);
      public
        var
          fscreenBrightness: jfloat; external name 'screenBrightness';
          fbuttonBrightness: jfloat; external name 'buttonBrightness';
          ftoken: AOIBinder; external name 'token';
          fpackageName: JLString; external name 'packageName';
          fscreenOrientation: jint; external name 'screenOrientation';
          fsystemUiVisibility: jint; external name 'systemUiVisibility';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        const
          LAYOUT_CHANGED = 1;
          TYPE_CHANGED = 2;
          FLAGS_CHANGED = 4;
          FORMAT_CHANGED = 8;
          ANIMATION_CHANGED = 16;
          DIM_AMOUNT_CHANGED = 32;
          TITLE_CHANGED = 64;
          ALPHA_CHANGED = 128;
          MEMORY_TYPE_CHANGED = 256;
          SOFT_INPUT_MODE_CHANGED = 512;
          SCREEN_ORIENTATION_CHANGED = 1024;
          SCREEN_BRIGHTNESS_CHANGED = 2048;
      public
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload;
        constructor create(para1: AOParcel); overload;
        class function mayUseInputMethod(para1: jint): jboolean; static; overload;
        procedure setTitle(para1: JLCharSequence); overload; virtual; final;
        function getTitle(): JLCharSequence; overload; virtual; final;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        function copyFrom(para1: AVWindowManager.InnerLayoutParams): jint; overload; virtual; final;
        function debug(para1: JLString): JLString; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerBadTokenException = class external 'android.view' name 'BadTokenException' (JLRuntimeException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

    function getDefaultDisplay(): AVDisplay; overload;
    procedure removeViewImmediate(para1: AVView); overload;
  end;

  AVAAccessibilityEvent = class sealed external 'android.view.accessibility' name 'AccessibilityEvent' (AVAAccessibilityRecord, AOParcelable)
  public
    const
      INVALID_POSITION = -1;
      MAX_TEXT_LENGTH = 500;
      TYPE_VIEW_CLICKED = 1;
      TYPE_VIEW_LONG_CLICKED = 2;
      TYPE_VIEW_SELECTED = 4;
      TYPE_VIEW_FOCUSED = 8;
      TYPE_VIEW_TEXT_CHANGED = 16;
      TYPE_WINDOW_STATE_CHANGED = 32;
      TYPE_NOTIFICATION_STATE_CHANGED = 64;
      TYPE_VIEW_HOVER_ENTER = 128;
      TYPE_VIEW_HOVER_EXIT = 256;
      TYPE_TOUCH_EXPLORATION_GESTURE_START = 512;
      TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024;
      TYPE_WINDOW_CONTENT_CHANGED = 2048;
      TYPE_VIEW_SCROLLED = 4096;
      TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192;
      TYPES_ALL_MASK = -1;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    function getRecordCount(): jint; overload; virtual;
    procedure appendRecord(para1: AVAAccessibilityRecord); overload; virtual;
    function getRecord(para1: jint): AVAAccessibilityRecord; overload; virtual;
    function getEventType(): jint; overload; virtual;
    procedure setEventType(para1: jint); overload; virtual;
    function getEventTime(): jlong; overload; virtual;
    procedure setEventTime(para1: jlong); overload; virtual;
    function getPackageName(): JLCharSequence; overload; virtual;
    procedure setPackageName(para1: JLCharSequence); overload; virtual;
    class function obtain(para1: jint): AVAAccessibilityEvent; static; overload;
    class function obtain(para1: AVAAccessibilityEvent): AVAAccessibilityEvent; static; overload;
    class function obtain(): AVAAccessibilityEvent; static; overload;
    procedure recycle(); overload; virtual;
    procedure initFromParcel(para1: AOParcel); overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function eventTypeToString(para1: jint): JLString; static; overload;
  end;

  AVAGridLayoutAnimationController = class external 'android.view.animation' name 'GridLayoutAnimationController' (AVALayoutAnimationController)
  public
    type
      InnerAnimationParameters = class;
      Arr1InnerAnimationParameters = array of InnerAnimationParameters;
      Arr2InnerAnimationParameters = array of Arr1InnerAnimationParameters;
      Arr3InnerAnimationParameters = array of Arr2InnerAnimationParameters;
      InnerAnimationParameters = class external 'android.view.animation' name 'AnimationParameters' (AVALayoutAnimationController.InnerAnimationParameters)
      public
        var
          fcolumn: jint; external name 'column';
          frow: jint; external name 'row';
          fcolumnsCount: jint; external name 'columnsCount';
          frowsCount: jint; external name 'rowsCount';
      public
        constructor create(); overload;
      end;

  public
    const
      DIRECTION_LEFT_TO_RIGHT = 0;
      DIRECTION_RIGHT_TO_LEFT = 1;
      DIRECTION_TOP_TO_BOTTOM = 0;
      DIRECTION_BOTTOM_TO_TOP = 2;
      DIRECTION_HORIZONTAL_MASK = 1;
      DIRECTION_VERTICAL_MASK = 2;
      PRIORITY_NONE = 0;
      PRIORITY_COLUMN = 1;
      PRIORITY_ROW = 2;
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: AVAAnimation); overload;
    constructor create(para1: AVAAnimation; para2: jfloat; para3: jfloat); overload;
    function getColumnDelay(): jfloat; overload; virtual;
    procedure setColumnDelay(para1: jfloat); overload; virtual;
    function getRowDelay(): jfloat; overload; virtual;
    procedure setRowDelay(para1: jfloat); overload; virtual;
    function getDirection(): jint; overload; virtual;
    procedure setDirection(para1: jint); overload; virtual;
    function getDirectionPriority(): jint; overload; virtual;
    procedure setDirectionPriority(para1: jint); overload; virtual;
    function willOverlap(): jboolean; overload; virtual;
  strict protected
    function getDelayForView(para1: AVView): jlong; overload; virtual;
  end;

  AVIBaseInputConnection = class external 'android.view.inputmethod' name 'BaseInputConnection' (JLObject, AVIInputConnection)
  public
    constructor create(para1: AVView; para2: jboolean); overload;
    class procedure removeComposingSpans(para1: ATSpannable); static; overload; final;
    class procedure setComposingSpans(para1: ATSpannable); static; overload;
    class function getComposingSpanStart(para1: ATSpannable): jint; static; overload;
    class function getComposingSpanEnd(para1: ATSpannable): jint; static; overload;
    function getEditable(): ATEditable; overload; virtual;
    function beginBatchEdit(): jboolean; overload; virtual;
    function endBatchEdit(): jboolean; overload; virtual;
    function clearMetaKeyStates(para1: jint): jboolean; overload; virtual;
    function commitCompletion(para1: AVICompletionInfo): jboolean; overload; virtual;
    function commitCorrection(para1: AVICorrectionInfo): jboolean; overload; virtual;
    function commitText(para1: JLCharSequence; para2: jint): jboolean; overload; virtual;
    function deleteSurroundingText(para1: jint; para2: jint): jboolean; overload; virtual;
    function finishComposingText(): jboolean; overload; virtual;
    function getCursorCapsMode(para1: jint): jint; overload; virtual;
    function getExtractedText(para1: AVIExtractedTextRequest; para2: jint): AVIExtractedText; overload; virtual;
    function getTextBeforeCursor(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function getSelectedText(para1: jint): JLCharSequence; overload; virtual;
    function getTextAfterCursor(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function performEditorAction(para1: jint): jboolean; overload; virtual;
    function performContextMenuAction(para1: jint): jboolean; overload; virtual;
    function performPrivateCommand(para1: JLString; para2: AOBundle): jboolean; overload; virtual;
    function setComposingText(para1: JLCharSequence; para2: jint): jboolean; overload; virtual;
    function setComposingRegion(para1: jint; para2: jint): jboolean; overload; virtual;
    function setSelection(para1: jint; para2: jint): jboolean; overload; virtual;
    function sendKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function reportFullscreenMode(para1: jboolean): jboolean; overload; virtual;
  end;

  AVIInputConnectionWrapper = class external 'android.view.inputmethod' name 'InputConnectionWrapper' (JLObject, AVIInputConnection)
  public
    constructor create(para1: AVIInputConnection; para2: jboolean); overload;
    procedure setTarget(para1: AVIInputConnection); overload; virtual;
    function getTextBeforeCursor(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function getTextAfterCursor(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function getSelectedText(para1: jint): JLCharSequence; overload; virtual;
    function getCursorCapsMode(para1: jint): jint; overload; virtual;
    function getExtractedText(para1: AVIExtractedTextRequest; para2: jint): AVIExtractedText; overload; virtual;
    function deleteSurroundingText(para1: jint; para2: jint): jboolean; overload; virtual;
    function setComposingText(para1: JLCharSequence; para2: jint): jboolean; overload; virtual;
    function setComposingRegion(para1: jint; para2: jint): jboolean; overload; virtual;
    function finishComposingText(): jboolean; overload; virtual;
    function commitText(para1: JLCharSequence; para2: jint): jboolean; overload; virtual;
    function commitCompletion(para1: AVICompletionInfo): jboolean; overload; virtual;
    function commitCorrection(para1: AVICorrectionInfo): jboolean; overload; virtual;
    function setSelection(para1: jint; para2: jint): jboolean; overload; virtual;
    function performEditorAction(para1: jint): jboolean; overload; virtual;
    function performContextMenuAction(para1: jint): jboolean; overload; virtual;
    function beginBatchEdit(): jboolean; overload; virtual;
    function endBatchEdit(): jboolean; overload; virtual;
    function sendKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function clearMetaKeyStates(para1: jint): jboolean; overload; virtual;
    function reportFullscreenMode(para1: jboolean): jboolean; overload; virtual;
    function performPrivateCommand(para1: JLString; para2: AOBundle): jboolean; overload; virtual;
  end;

  AVTTextServicesManager = class sealed external 'android.view.textservice' name 'TextServicesManager' (JLObject)
  public
    function newSpellCheckerSession(para1: AOBundle; para2: JULocale; para3: AVTSpellCheckerSession.InnerSpellCheckerSessionListener; para4: jboolean): AVTSpellCheckerSession; overload; virtual;
  end;

  AWJsPromptResult = class external 'android.webkit' name 'JsPromptResult' (AWJsResult)
  public
    procedure confirm(para1: JLString); overload; virtual;
  end;

  APBrowser = class external 'android.provider' name 'Browser' (JLObject)
  public
    type
      InnerSearchColumns = class;
      Arr1InnerSearchColumns = array of InnerSearchColumns;
      Arr2InnerSearchColumns = array of Arr1InnerSearchColumns;
      Arr3InnerSearchColumns = array of Arr2InnerSearchColumns;
      InnerBookmarkColumns = class;
      Arr1InnerBookmarkColumns = array of InnerBookmarkColumns;
      Arr2InnerBookmarkColumns = array of Arr1InnerBookmarkColumns;
      Arr3InnerBookmarkColumns = array of Arr2InnerBookmarkColumns;
      InnerSearchColumns = class external 'android.provider' name 'SearchColumns' (JLObject, APBaseColumns)
      public
        const
          URL = 'url';
          SEARCH = 'search';
          DATE = 'date';
      public
        constructor create(); overload;
      end;

      InnerBookmarkColumns = class external 'android.provider' name 'BookmarkColumns' (JLObject, APBaseColumns)
      public
        const
          URL = 'url';
          VISITS = 'visits';
          DATE = 'date';
          BOOKMARK = 'bookmark';
          TITLE = 'title';
          CREATED = 'created';
          FAVICON = 'favicon';
      public
        constructor create(); overload;
      end;

  public
    final class var
      fBOOKMARKS_URI: ANUri; external name 'BOOKMARKS_URI';
  public
    const
      INITIAL_ZOOM_LEVEL = 'browser.initialZoomLevel';
      EXTRA_APPLICATION_ID = 'com.android.browser.application_id';
      EXTRA_HEADERS = 'com.android.browser.headers';
  public
    final class var
      fHISTORY_PROJECTION: Arr1JLString; external name 'HISTORY_PROJECTION';
  public
    const
      HISTORY_PROJECTION_ID_INDEX = 0;
      HISTORY_PROJECTION_URL_INDEX = 1;
      HISTORY_PROJECTION_VISITS_INDEX = 2;
      HISTORY_PROJECTION_DATE_INDEX = 3;
      HISTORY_PROJECTION_BOOKMARK_INDEX = 4;
      HISTORY_PROJECTION_TITLE_INDEX = 5;
      HISTORY_PROJECTION_FAVICON_INDEX = 6;
  public
    final class var
      fTRUNCATE_HISTORY_PROJECTION: Arr1JLString; external name 'TRUNCATE_HISTORY_PROJECTION';
  public
    const
      TRUNCATE_HISTORY_PROJECTION_ID_INDEX = 0;
      TRUNCATE_N_OLDEST = 5;
  public
    final class var
      fSEARCHES_URI: ANUri; external name 'SEARCHES_URI';
      fSEARCHES_PROJECTION: Arr1JLString; external name 'SEARCHES_PROJECTION';
  public
    const
      SEARCHES_PROJECTION_SEARCH_INDEX = 1;
      SEARCHES_PROJECTION_DATE_INDEX = 2;
      EXTRA_CREATE_NEW_TAB = 'create_new_tab';
  public
    constructor create(); overload;
    class procedure saveBookmark(para1: ACContext; para2: JLString; para3: JLString); static; overload; final;
    class procedure sendString(para1: ACContext; para2: JLString); static; overload; final;
    class function getAllBookmarks(para1: ACContentResolver): ADCursor; static; overload; final;  // throws java.lang.IllegalStateException
    class function getAllVisitedUrls(para1: ACContentResolver): ADCursor; static; overload; final;  // throws java.lang.IllegalStateException
    class procedure updateVisitedHistory(para1: ACContentResolver; para2: JLString; para3: jboolean); static; overload; final;
    class procedure truncateHistory(para1: ACContentResolver); static; overload; final;
    class function canClearHistory(para1: ACContentResolver): jboolean; static; overload; final;
    class procedure clearHistory(para1: ACContentResolver); static; overload; final;
    class procedure deleteHistoryTimeFrame(para1: ACContentResolver; para2: jlong; para3: jlong); static; overload; final;
    class procedure deleteFromHistory(para1: ACContentResolver; para2: JLString); static; overload; final;
    class procedure addSearchUrl(para1: ACContentResolver; para2: JLString); static; overload; final;
    class procedure clearSearches(para1: ACContentResolver); static; overload; final;
    class procedure requestAllIcons(para1: ACContentResolver; para2: JLString; para3: AWWebIconDatabase.InnerIconListener); static; overload; final;
  end;

  AWWebChromeClient = class external 'android.webkit' name 'WebChromeClient' (JLObject)
  public
    type
      InnerCustomViewCallback = interface;
      Arr1InnerCustomViewCallback = array of InnerCustomViewCallback;
      Arr2InnerCustomViewCallback = array of Arr1InnerCustomViewCallback;
      Arr3InnerCustomViewCallback = array of Arr2InnerCustomViewCallback;
      InnerCustomViewCallback = interface external 'android.webkit' name 'CustomViewCallback' 
        procedure onCustomViewHidden(); overload;
      end;

  public
    constructor create(); overload;
    procedure onProgressChanged(para1: AWWebView; para2: jint); overload; virtual;
    procedure onReceivedTitle(para1: AWWebView; para2: JLString); overload; virtual;
    procedure onReceivedIcon(para1: AWWebView; para2: AGBitmap); overload; virtual;
    procedure onReceivedTouchIconUrl(para1: AWWebView; para2: JLString; para3: jboolean); overload; virtual;
    procedure onShowCustomView(para1: AVView; para2: AWWebChromeClient.InnerCustomViewCallback); overload; virtual;
    procedure onShowCustomView(para1: AVView; para2: jint; para3: AWWebChromeClient.InnerCustomViewCallback); overload; virtual;
    procedure onHideCustomView(); overload; virtual;
    function onCreateWindow(para1: AWWebView; para2: jboolean; para3: jboolean; para4: AOMessage): jboolean; overload; virtual;
    procedure onRequestFocus(para1: AWWebView); overload; virtual;
    procedure onCloseWindow(para1: AWWebView); overload; virtual;
    function onJsAlert(para1: AWWebView; para2: JLString; para3: JLString; para4: AWJsResult): jboolean; overload; virtual;
    function onJsConfirm(para1: AWWebView; para2: JLString; para3: JLString; para4: AWJsResult): jboolean; overload; virtual;
    function onJsPrompt(para1: AWWebView; para2: JLString; para3: JLString; para4: JLString; para5: AWJsPromptResult): jboolean; overload; virtual;
    function onJsBeforeUnload(para1: AWWebView; para2: JLString; para3: JLString; para4: AWJsResult): jboolean; overload; virtual;
    procedure onExceededDatabaseQuota(para1: JLString; para2: JLString; para3: jlong; para4: jlong; para5: jlong; para6: AWWebStorage.InnerQuotaUpdater); overload; virtual;
    procedure onReachedMaxAppCacheSize(para1: jlong; para2: jlong; para3: AWWebStorage.InnerQuotaUpdater); overload; virtual;
    procedure onGeolocationPermissionsShowPrompt(para1: JLString; para2: AWGeolocationPermissions.InnerCallback); overload; virtual;
    procedure onGeolocationPermissionsHidePrompt(); overload; virtual;
    function onJsTimeout(): jboolean; overload; virtual;
    procedure onConsoleMessage(para1: JLString; para2: jint; para3: JLString); overload; virtual;
    function onConsoleMessage(para1: AWConsoleMessage): jboolean; overload; virtual;
    function getDefaultVideoPoster(): AGBitmap; overload; virtual;
    function getVideoLoadingProgressView(): AVView; overload; virtual;
    procedure getVisitedHistory(para1: AWValueCallback); overload; virtual;
  end;

  AWListAdapter = interface external 'android.widget' name 'ListAdapter' (AWAdapter)
    function areAllItemsEnabled(): jboolean; overload;
    function isEnabled(para1: jint): jboolean; overload;
  end;

  AWSpinnerAdapter = interface external 'android.widget' name 'SpinnerAdapter' (AWAdapter)
    function getDropDownView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload;
  end;

  AWBaseExpandableListAdapter = class abstract external 'android.widget' name 'BaseExpandableListAdapter' (JLObject, AWExpandableListAdapter, AWHeterogeneousExpandableList)
  public
    constructor create(); overload;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure notifyDataSetInvalidated(); overload; virtual;
    procedure notifyDataSetChanged(); overload; virtual;
    function areAllItemsEnabled(): jboolean; overload; virtual;
    procedure onGroupCollapsed(para1: jint); overload; virtual;
    procedure onGroupExpanded(para1: jint); overload; virtual;
    function getCombinedChildId(para1: jlong; para2: jlong): jlong; overload; virtual;
    function getCombinedGroupId(para1: jlong): jlong; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function getChildType(para1: jint; para2: jint): jint; overload; virtual;
    function getChildTypeCount(): jint; overload; virtual;
    function getGroupType(para1: jint): jint; overload; virtual;
    function getGroupTypeCount(): jint; overload; virtual;
  end;

  AWAlphabetIndexer = class external 'android.widget' name 'AlphabetIndexer' (ADDataSetObserver, AWSectionIndexer)
  strict protected
    var
      fmDataCursor: ADCursor; external name 'mDataCursor';
      fmColumnIndex: jint; external name 'mColumnIndex';
      fmAlphabet: JLCharSequence; external name 'mAlphabet';
  public
    constructor create(para1: ADCursor; para2: jint; para3: JLCharSequence); overload;
    function getSections(): Arr1JLObject; overload; virtual;
    procedure setCursor(para1: ADCursor); overload; virtual;
  strict protected
    function compare(para1: JLString; para2: JLString): jint; overload; virtual;
  public
    function getPositionForSection(para1: jint): jint; overload; virtual;
    function getSectionForPosition(para1: jint): jint; overload; virtual;
    procedure onChanged(); overload; virtual;
    procedure onInvalidated(); overload; virtual;
  end;

  ABBluetoothServerSocket = class sealed external 'android.bluetooth' name 'BluetoothServerSocket' (JLObject, JICloseable)
  public
    function accept(): ABBluetoothSocket; overload; virtual;  // throws java.io.IOException
    function accept(para1: jint): ABBluetoothSocket; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  ABBluetoothSocket = class sealed external 'android.bluetooth' name 'BluetoothSocket' (JLObject, JICloseable)
  public
    procedure connect(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getRemoteDevice(): ABBluetoothDevice; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
  end;

  ANTTagTechnology = interface external 'android.nfc.tech' name 'TagTechnology' (JICloseable)
    function getTag(): ANTag; overload;
    procedure connect(); overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
    function isConnected(): jboolean; overload;
  end;

  AODropBoxManager = class external 'android.os' name 'DropBoxManager' (JLObject)
  public
    type
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerEntry = class external 'android.os' name 'Entry' (JLObject, AOParcelable, JICloseable)
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(para1: JLString; para2: jlong); overload;
        constructor create(para1: JLString; para2: jlong; para3: JLString); overload;
        constructor create(para1: JLString; para2: jlong; para3: Arr1jbyte; para4: jint); overload;
        constructor create(para1: JLString; para2: jlong; const para3: array of jbyte; para4: jint); overload;
        constructor create(para1: JLString; para2: jlong; para3: AOParcelFileDescriptor; para4: jint); overload;
        constructor create(para1: JLString; para2: jlong; para3: JIFile; para4: jint); overload;  // throws java.io.IOException
        procedure close(); overload; virtual;
        function getTag(): JLString; overload; virtual;
        function getTimeMillis(): jlong; overload; virtual;
        function getFlags(): jint; overload; virtual;
        function getText(para1: jint): JLString; overload; virtual;
        function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
      end;

  public
    const
      IS_EMPTY = 1;
      IS_TEXT = 2;
      IS_GZIPPED = 4;
      ACTION_DROPBOX_ENTRY_ADDED = 'android.intent.action.DROPBOX_ENTRY_ADDED';
      EXTRA_TAG = 'tag';
      EXTRA_TIME = 'time';
  strict protected
    constructor create(); overload;
  public
    procedure addText(para1: JLString; para2: JLString); overload; virtual;
    procedure addData(para1: JLString; para2: Arr1jbyte; para3: jint); overload; virtual;
    procedure addData(para1: JLString; var para2: array of jbyte; para3: jint); overload; virtual;
    procedure addFile(para1: JLString; para2: JIFile; para3: jint); overload; virtual;  // throws java.io.IOException
    function isTagEnabled(para1: JLString): jboolean; overload; virtual;
    function getNextEntry(para1: JLString; para2: jlong): AODropBoxManager.InnerEntry; overload; virtual;
  end;

  AUJsonReader = class sealed external 'android.util' name 'JsonReader' (JLObject, JICloseable)
  public
    constructor create(para1: JIReader); overload;
    procedure setLenient(para1: jboolean); overload; virtual;
    function isLenient(): jboolean; overload; virtual;
    procedure beginArray(); overload; virtual;  // throws java.io.IOException
    procedure endArray(); overload; virtual;  // throws java.io.IOException
    procedure beginObject(); overload; virtual;  // throws java.io.IOException
    procedure endObject(); overload; virtual;  // throws java.io.IOException
    function hasNext(): jboolean; overload; virtual;  // throws java.io.IOException
    function peek(): AUJsonToken; overload; virtual;  // throws java.io.IOException
    function nextName(): JLString; overload; virtual;  // throws java.io.IOException
    function nextString(): JLString; overload; virtual;  // throws java.io.IOException
    function nextBoolean(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure nextNull(); overload; virtual;  // throws java.io.IOException
    function nextDouble(): jdouble; overload; virtual;  // throws java.io.IOException
    function nextLong(): jlong; overload; virtual;  // throws java.io.IOException
    function nextInt(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure skipValue(); overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
  end;

  AUJsonWriter = class sealed external 'android.util' name 'JsonWriter' (JLObject, JICloseable)
  public
    constructor create(para1: JIWriter); overload;
    procedure setIndent(para1: JLString); overload; virtual;
    procedure setLenient(para1: jboolean); overload; virtual;
    function isLenient(): jboolean; overload; virtual;
    function beginArray(): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function endArray(): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function beginObject(): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function endObject(): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function name(para1: JLString): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function value(para1: JLString): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function nullValue(): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function value(para1: jboolean): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function value(para1: jdouble): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function value(para1: jlong): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    function value(para1: JLNumber): AUJsonWriter; overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIInputStream = class abstract external 'java.io' name 'InputStream' (JLObject, JICloseable)
  public
    constructor create(); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIReader = class abstract external 'java.io' name 'Reader' (JLObject, JLReadable, JICloseable)
  strict protected
    var
      flock: JLObject; external name 'lock';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function read(para1: JNCharBuffer): jint; overload; virtual;  // throws java.io.IOException
  end;

  JNCChannel = interface external 'java.nio.channels' name 'Channel' (JICloseable)
    function isOpen(): jboolean; overload;
    procedure close(); overload;  // throws java.io.IOException
  end;

  JIObjectInput = interface external 'java.io' name 'ObjectInput' (JIDataInput)
    function available(): jint; overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
    function read(): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function readObject(): JLObject; overload;  // throws java.lang.ClassNotFoundException, java.io.IOException
    function skip(para1: jlong): jlong; overload;  // throws java.io.IOException
  end;

  JIObjectOutput = interface external 'java.io' name 'ObjectOutput' (JIDataOutput)
    procedure close(); overload;  // throws java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(para1: jint); overload;  // throws java.io.IOException
    procedure writeObject(para1: JLObject); overload;  // throws java.io.IOException
  end;

  JIRandomAccessFile = class external 'java.io' name 'RandomAccessFile' (JLObject, JIDataInput, JIDataOutput, JICloseable)
  public
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function getChannel(): JNCFileChannel; overload; virtual; final;
    function getFD(): JIFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function getFilePointer(): jlong; overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual; final;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual; final;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual; final;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual; final;  // throws java.io.IOException
    function readFloat(): jfloat; overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    function readInt(): jint; overload; virtual; final;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual; final;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual; final;  // throws java.io.IOException
    function readShort(): jshort; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual; final;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual; final;  // throws java.io.IOException
    procedure seek(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure setLength(para1: jlong); overload; virtual;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual; final;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual; final;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual; final;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual; final;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload; virtual; final;  // throws java.io.IOException
  end;

  JIConsole = class sealed external 'java.io' name 'Console' (JLObject, JIFlushable)
  public
    procedure flush(); overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JIConsole; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JIConsole; overload; virtual;
    function printf(para1: JLString; para2: Arr1JLObject): JIConsole; overload; virtual;
    function printf(para1: JLString; const para2: array of JLObject): JIConsole; overload; virtual;
    function reader(): JIReader; overload; virtual;
    function readLine(): JLString; overload; virtual;
    function readLine(para1: JLString; para2: Arr1JLObject): JLString; overload; virtual;
    function readLine(para1: JLString; const para2: array of JLObject): JLString; overload; virtual;
    function readPassword(): Arr1jchar; overload; virtual;
    function readPassword(para1: JLString; para2: Arr1JLObject): Arr1jchar; overload; virtual;
    function readPassword(para1: JLString; const para2: array of JLObject): Arr1jchar; overload; virtual;
    function writer(): JIPrintWriter; overload; virtual;
  end;

  JIOutputStream = class abstract external 'java.io' name 'OutputStream' (JLObject, JICloseable, JIFlushable)
  public
    constructor create(); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JIWriter = class abstract external 'java.io' name 'Writer' (JLObject, JLAppendable, JICloseable, JIFlushable)
  strict protected
    var
      flock: JLObject; external name 'lock';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
    procedure flush(); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(para1: Arr1jchar); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JUFormatter = class sealed external 'java.util' name 'Formatter' (JLObject, JICloseable, JIFlushable)
  public
    type
      InnerBigDecimalLayoutForm = class;
      Arr1InnerBigDecimalLayoutForm = array of InnerBigDecimalLayoutForm;
      Arr2InnerBigDecimalLayoutForm = array of Arr1InnerBigDecimalLayoutForm;
      Arr3InnerBigDecimalLayoutForm = array of Arr2InnerBigDecimalLayoutForm;
      InnerBigDecimalLayoutForm = class sealed external 'java.util' name 'BigDecimalLayoutForm' (JLEnum)
      public
        final class var
          fDECIMAL_FLOAT: JUFormatter.InnerBigDecimalLayoutForm; external name 'DECIMAL_FLOAT';
          fSCIENTIFIC: JUFormatter.InnerBigDecimalLayoutForm; external name 'SCIENTIFIC';
      public
        class function values(): JUFormatter.Arr1InnerBigDecimalLayoutForm; static; overload;
        class function valueOf(para1: JLString): JUFormatter.InnerBigDecimalLayoutForm; static; overload;
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLAppendable); overload;
    constructor create(para1: JULocale); overload;
    constructor create(para1: JLAppendable; para2: JULocale); overload;
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JLString; para2: JLString; para3: JULocale); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIFile; para2: JLString; para3: JULocale); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIOutputStream; para2: JLString; para3: JULocale); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIPrintStream); overload;
    function locale(): JULocale; overload; virtual;
    function out(): JLAppendable; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;
    function ioException(): JIIOException; overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JUFormatter; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JUFormatter; overload; virtual;
    function format(para1: JULocale; para2: JLString; para3: Arr1JLObject): JUFormatter; overload; virtual;
    function format(para1: JULocale; para2: JLString; const para3: array of JLObject): JUFormatter; overload; virtual;
  end;

  JSSecureClassLoader = class external 'java.security' name 'SecureClassLoader' (JLClassLoader)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLClassLoader); overload;
    function getPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
    function defineClass(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint; para5: JSCodeSource): JLClass; overload; virtual; final;
    function defineClass(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint; para5: JSCodeSource): JLClass; overload; virtual; final;
    function defineClass(para1: JLString; para2: JNByteBuffer; para3: JSCodeSource): JLClass; overload; virtual; final;
  end;

  ARRenderScript = class external 'android.renderscript' name 'RenderScript' (JLObject)
  public
    type
      InnerPriority = class;
      Arr1InnerPriority = array of InnerPriority;
      Arr2InnerPriority = array of Arr1InnerPriority;
      Arr3InnerPriority = array of Arr2InnerPriority;
      InnerRSErrorHandler = class;
      Arr1InnerRSErrorHandler = array of InnerRSErrorHandler;
      Arr2InnerRSErrorHandler = array of Arr1InnerRSErrorHandler;
      Arr3InnerRSErrorHandler = array of Arr2InnerRSErrorHandler;
      InnerRSMessageHandler = class;
      Arr1InnerRSMessageHandler = array of InnerRSMessageHandler;
      Arr2InnerRSMessageHandler = array of Arr1InnerRSMessageHandler;
      Arr3InnerRSMessageHandler = array of Arr2InnerRSMessageHandler;
      InnerPriority = class sealed external 'android.renderscript' name 'Priority' (JLEnum)
      public
        final class var
          fLOW: ARRenderScript.InnerPriority; external name 'LOW';
          fNORMAL: ARRenderScript.InnerPriority; external name 'NORMAL';
      public
        class function values(): ARRenderScript.Arr1InnerPriority; static; overload;
        class function valueOf(para1: JLString): ARRenderScript.InnerPriority; static; overload;
      end;

      InnerRSErrorHandler = class external 'android.renderscript' name 'RSErrorHandler' (JLObject, JLRunnable)
      strict protected
        var
          fmErrorMessage: JLString; external name 'mErrorMessage';
          fmErrorNum: jint; external name 'mErrorNum';
      public
        constructor create(); overload;
        procedure run(); overload; virtual;
      end;

      InnerRSMessageHandler = class external 'android.renderscript' name 'RSMessageHandler' (JLObject, JLRunnable)
      strict protected
        var
          fmData: Arr1jint; external name 'mData';
          fmID: jint; external name 'mID';
          fmLength: jint; external name 'mLength';
      public
        constructor create(); overload;
        procedure run(); overload; virtual;
      end;

  public
    procedure setMessageHandler(para1: ARRenderScript.InnerRSMessageHandler); overload; virtual;
    function getMessageHandler(): ARRenderScript.InnerRSMessageHandler; overload; virtual;
    procedure setErrorHandler(para1: ARRenderScript.InnerRSErrorHandler); overload; virtual;
    function getErrorHandler(): ARRenderScript.InnerRSErrorHandler; overload; virtual;
    procedure setPriority(para1: ARRenderScript.InnerPriority); overload; virtual;
    function getApplicationContext(): ACContext; overload; virtual; final;
    class function create_(para1: ACContext): ARRenderScript; static; external name 'create'; overload;
    procedure contextDump(); overload; virtual;
    procedure finish(); overload; virtual;
    procedure destroy(); overload; virtual;
  end;

  AWWebSyncManager = class abstract external 'android.webkit' name 'WebSyncManager' (JLObject, JLRunnable)
  strict protected
    var
      fmHandler: AOHandler; external name 'mHandler';
      fmDataBase: AWWebViewDatabase; external name 'mDataBase';
  strict protected
    const
      LOGTAG = 'websync';
  strict protected
    constructor create(para1: ACContext; para2: JLString); overload;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  public
    procedure run(); overload; virtual;
    procedure sync(); overload; virtual;
    procedure resetSync(); overload; virtual;
    procedure startSync(); overload; virtual;
    procedure stopSync(); overload; virtual;
  strict protected
    procedure onSyncInit(); overload; virtual;
  end;

  JLThread = class external 'java.lang' name 'Thread' (JLObject, JLRunnable)
  public
    type
      InnerUncaughtExceptionHandler = interface;
      Arr1InnerUncaughtExceptionHandler = array of InnerUncaughtExceptionHandler;
      Arr2InnerUncaughtExceptionHandler = array of Arr1InnerUncaughtExceptionHandler;
      Arr3InnerUncaughtExceptionHandler = array of Arr2InnerUncaughtExceptionHandler;
      InnerState = class;
      Arr1InnerState = array of InnerState;
      Arr2InnerState = array of Arr1InnerState;
      Arr3InnerState = array of Arr2InnerState;
      InnerUncaughtExceptionHandler = interface external 'java.lang' name 'UncaughtExceptionHandler' 
        procedure uncaughtException(para1: JLThread; para2: JLThrowable); overload;
      end;

      InnerState = class sealed external 'java.lang' name 'State' (JLEnum)
      public
        final class var
          fBLOCKED: JLThread.InnerState; external name 'BLOCKED';
          fNEW: JLThread.InnerState; external name 'NEW';
          fRUNNABLE: JLThread.InnerState; external name 'RUNNABLE';
          fTERMINATED: JLThread.InnerState; external name 'TERMINATED';
          fTIMED_WAITING: JLThread.InnerState; external name 'TIMED_WAITING';
          fWAITING: JLThread.InnerState; external name 'WAITING';
      public
        class function values(): JLThread.Arr1InnerState; static; overload;
        class function valueOf(para1: JLString): JLThread.InnerState; static; overload;
      end;

  public
    const
      MAX_PRIORITY = 10;
      MIN_PRIORITY = 1;
      NORM_PRIORITY = 5;
  public
    constructor create(); overload;
    constructor create(para1: JLRunnable); overload;
    constructor create(para1: JLRunnable; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLRunnable); overload;
    constructor create(para1: JLThreadGroup; para2: JLRunnable; para3: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLRunnable; para3: JLString; para4: jlong); overload;
    class function activeCount(): jint; static; overload;
    procedure checkAccess(); overload; virtual; final;
    function countStackFrames(): jint; overload; virtual;
    class function currentThread(): JLThread; static; overload;
    procedure destroy(); overload; virtual;
    class procedure dumpStack(); static; overload;
    class function enumerate(para1: Arr1JLThread): jint; static; overload;
    class function enumerate(var para1: array of JLThread): jint; static; overload;
    class function getAllStackTraces(): JUMap; static; overload;
    function getContextClassLoader(): JLClassLoader; overload; virtual;
    class function getDefaultUncaughtExceptionHandler(): JLThread.InnerUncaughtExceptionHandler; static; overload;
    function getId(): jlong; overload; virtual;
    function getName(): JLString; overload; virtual; final;
    function getPriority(): jint; overload; virtual; final;
    function getStackTrace(): Arr1JLStackTraceElement; overload; virtual;
    function getState(): JLThread.InnerState; overload; virtual;
    function getThreadGroup(): JLThreadGroup; overload; virtual; final;
    function getUncaughtExceptionHandler(): JLThread.InnerUncaughtExceptionHandler; overload; virtual;
    procedure interrupt(); overload; virtual;
    class function interrupted(): jboolean; static; overload;
    function isAlive(): jboolean; overload; virtual; final;
    function isDaemon(): jboolean; overload; virtual; final;
    function isInterrupted(): jboolean; overload; virtual;
    procedure join(); overload; virtual; final;  // throws java.lang.InterruptedException
    procedure join(para1: jlong); overload; virtual; final;  // throws java.lang.InterruptedException
    procedure join(para1: jlong; para2: jint); overload; virtual; final;  // throws java.lang.InterruptedException
    procedure resume(); overload; virtual; final;
    procedure run(); overload; virtual;
    procedure setContextClassLoader(para1: JLClassLoader); overload; virtual;
    procedure setDaemon(para1: jboolean); overload; virtual; final;
    class procedure setDefaultUncaughtExceptionHandler(para1: JLThread.InnerUncaughtExceptionHandler); static; overload;
    procedure setName(para1: JLString); overload; virtual; final;
    procedure setPriority(para1: jint); overload; virtual; final;
    procedure setUncaughtExceptionHandler(para1: JLThread.InnerUncaughtExceptionHandler); overload; virtual;
    class procedure sleep(para1: jlong); static; overload;  // throws java.lang.InterruptedException
    class procedure sleep(para1: jlong; para2: jint); static; overload;  // throws java.lang.InterruptedException
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual; final;
    procedure stop(para1: JLThrowable); overload; virtual; final;
    procedure suspend(); overload; virtual; final;
    function toString(): JLString; overload; virtual;
    class procedure yield(); static; overload;
    class function holdsLock(para1: JLObject): jboolean; static; overload;
  end;

  JUTimerTask = class abstract external 'java.util' name 'TimerTask' (JLObject, JLRunnable)
  strict protected
    constructor create(); overload;
  public
    function cancel(): jboolean; overload; virtual;
    function scheduledExecutionTime(): jlong; overload; virtual;
    procedure run(); overload; virtual; abstract;
  end;

  OAHICTRefQueueWorker = class external 'org.apache.http.impl.conn.tsccm' name 'RefQueueWorker' (JLObject, JLRunnable)
  strict protected
    final var
      frefQueue: JLRReferenceQueue; external name 'refQueue';
      frefHandler: OAHICTRefQueueHandler; external name 'refHandler';
  strict protected
    var
      fworkerThread: JLThread; external name 'workerThread';
  public
    constructor create(para1: JLRReferenceQueue; para2: OAHICTRefQueueHandler); overload;
    procedure run(); overload; virtual;
    procedure shutdown(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ATFlakyTest = interface external 'android.test' name 'FlakyTest' (JLAAnnotation)
    function tolerance(): jint; overload;
  end;

  ATUiThreadTest = interface external 'android.test' name 'UiThreadTest' (JLAAnnotation)
  end;

  ATSALargeTest = interface external 'android.test.suitebuilder.annotation' name 'LargeTest' (JLAAnnotation)
  end;

  ATSAMediumTest = interface external 'android.test.suitebuilder.annotation' name 'MediumTest' (JLAAnnotation)
  end;

  ATSASmallTest = interface external 'android.test.suitebuilder.annotation' name 'SmallTest' (JLAAnnotation)
  end;

  ATSASmoke = interface external 'android.test.suitebuilder.annotation' name 'Smoke' (JLAAnnotation)
  end;

  ATSASuppress = interface external 'android.test.suitebuilder.annotation' name 'Suppress' (JLAAnnotation)
  end;

  AVViewDebug = class external 'android.view' name 'ViewDebug' (JLObject)
  public
    type
      InnerRecyclerTraceType = class;
      Arr1InnerRecyclerTraceType = array of InnerRecyclerTraceType;
      Arr2InnerRecyclerTraceType = array of Arr1InnerRecyclerTraceType;
      Arr3InnerRecyclerTraceType = array of Arr2InnerRecyclerTraceType;
      InnerHierarchyTraceType = class;
      Arr1InnerHierarchyTraceType = array of InnerHierarchyTraceType;
      Arr2InnerHierarchyTraceType = array of Arr1InnerHierarchyTraceType;
      Arr3InnerHierarchyTraceType = array of Arr2InnerHierarchyTraceType;
      InnerCapturedViewProperty = interface;
      Arr1InnerCapturedViewProperty = array of InnerCapturedViewProperty;
      Arr2InnerCapturedViewProperty = array of Arr1InnerCapturedViewProperty;
      Arr3InnerCapturedViewProperty = array of Arr2InnerCapturedViewProperty;
      InnerFlagToString = interface;
      Arr1InnerFlagToString = array of InnerFlagToString;
      Arr2InnerFlagToString = array of Arr1InnerFlagToString;
      Arr3InnerFlagToString = array of Arr2InnerFlagToString;
      InnerIntToString = interface;
      Arr1InnerIntToString = array of InnerIntToString;
      Arr2InnerIntToString = array of Arr1InnerIntToString;
      Arr3InnerIntToString = array of Arr2InnerIntToString;
      InnerExportedProperty = interface;
      Arr1InnerExportedProperty = array of InnerExportedProperty;
      Arr2InnerExportedProperty = array of Arr1InnerExportedProperty;
      Arr3InnerExportedProperty = array of Arr2InnerExportedProperty;
      InnerRecyclerTraceType = class sealed external 'android.view' name 'RecyclerTraceType' (JLEnum)
      public
        final class var
          fBIND_VIEW: AVViewDebug.InnerRecyclerTraceType; external name 'BIND_VIEW';
          fMOVE_FROM_ACTIVE_TO_SCRAP_HEAP: AVViewDebug.InnerRecyclerTraceType; external name 'MOVE_FROM_ACTIVE_TO_SCRAP_HEAP';
          fMOVE_TO_SCRAP_HEAP: AVViewDebug.InnerRecyclerTraceType; external name 'MOVE_TO_SCRAP_HEAP';
          fNEW_VIEW: AVViewDebug.InnerRecyclerTraceType; external name 'NEW_VIEW';
          fRECYCLE_FROM_ACTIVE_HEAP: AVViewDebug.InnerRecyclerTraceType; external name 'RECYCLE_FROM_ACTIVE_HEAP';
          fRECYCLE_FROM_SCRAP_HEAP: AVViewDebug.InnerRecyclerTraceType; external name 'RECYCLE_FROM_SCRAP_HEAP';
      public
        class function values(): AVViewDebug.Arr1InnerRecyclerTraceType; static; overload;
        class function valueOf(para1: JLString): AVViewDebug.InnerRecyclerTraceType; static; overload;
      end;

      InnerHierarchyTraceType = class sealed external 'android.view' name 'HierarchyTraceType' (JLEnum)
      public
        final class var
          fBUILD_CACHE: AVViewDebug.InnerHierarchyTraceType; external name 'BUILD_CACHE';
          fDRAW: AVViewDebug.InnerHierarchyTraceType; external name 'DRAW';
          fINVALIDATE: AVViewDebug.InnerHierarchyTraceType; external name 'INVALIDATE';
          fINVALIDATE_CHILD: AVViewDebug.InnerHierarchyTraceType; external name 'INVALIDATE_CHILD';
          fINVALIDATE_CHILD_IN_PARENT: AVViewDebug.InnerHierarchyTraceType; external name 'INVALIDATE_CHILD_IN_PARENT';
          fON_LAYOUT: AVViewDebug.InnerHierarchyTraceType; external name 'ON_LAYOUT';
          fON_MEASURE: AVViewDebug.InnerHierarchyTraceType; external name 'ON_MEASURE';
          fREQUEST_LAYOUT: AVViewDebug.InnerHierarchyTraceType; external name 'REQUEST_LAYOUT';
      public
        class function values(): AVViewDebug.Arr1InnerHierarchyTraceType; static; overload;
        class function valueOf(para1: JLString): AVViewDebug.InnerHierarchyTraceType; static; overload;
      end;

      InnerCapturedViewProperty = interface external 'android.view' name 'CapturedViewProperty' (JLAAnnotation)
        function retrieveReturn(): jboolean; overload;
      end;

      InnerFlagToString = interface external 'android.view' name 'FlagToString' (JLAAnnotation)
        function mask(): jint; overload;
        function equals(): jint; overload;
        function name(): JLString; overload;
        function outputIf(): jboolean; overload;
      end;

      InnerIntToString = interface external 'android.view' name 'IntToString' (JLAAnnotation)
        function from(): jint; overload;
        function &to(): JLString; overload;
      end;

      InnerExportedProperty = interface external 'android.view' name 'ExportedProperty' (JLAAnnotation)
        function resolveId(): jboolean; overload;
        function mapping(): AVViewDebug.Arr1InnerIntToString; overload;
        function indexMapping(): AVViewDebug.Arr1InnerIntToString; overload;
        function flagMapping(): AVViewDebug.Arr1InnerFlagToString; overload;
        function deepExport(): jboolean; overload;
        function prefix(): JLString; overload;
        function category(): JLString; overload;
      end;

  public
    const
      TRACE_HIERARCHY = 0;
      TRACE_RECYCLER = 0;
  public
    constructor create(); overload;
    class procedure trace(para1: AVView; para2: AVViewDebug.InnerRecyclerTraceType; para3: Arr1jint); static; overload;
    class procedure trace(para1: AVView; para2: AVViewDebug.InnerRecyclerTraceType; const para3: array of jint); static; overload;
    class procedure startRecyclerTracing(para1: JLString; para2: AVView); static; overload;
    class procedure stopRecyclerTracing(); static; overload;
    class procedure trace(para1: AVView; para2: AVViewDebug.InnerHierarchyTraceType); static; overload;
    class procedure startHierarchyTracing(para1: JLString; para2: AVView); static; overload;
    class procedure stopHierarchyTracing(); static; overload;
    class procedure dumpCapturedView(para1: JLString; para2: JLObject); static; overload;
  end;

  AWRemoteViews = class external 'android.widget' name 'RemoteViews' (JLObject, AOParcelable, AVLayoutInflater.InnerFilter)
  public
    type
      InnerActionException = class;
      Arr1InnerActionException = array of InnerActionException;
      Arr2InnerActionException = array of Arr1InnerActionException;
      Arr3InnerActionException = array of Arr2InnerActionException;
      InnerRemoteView = interface;
      Arr1InnerRemoteView = array of InnerRemoteView;
      Arr2InnerRemoteView = array of Arr1InnerRemoteView;
      Arr3InnerRemoteView = array of Arr2InnerRemoteView;
      InnerActionException = class external 'android.widget' name 'ActionException' (JLRuntimeException)
      public
        constructor create(para1: JLException); overload;
        constructor create(para1: JLString); overload;
      end;

      InnerRemoteView = interface external 'android.widget' name 'RemoteView' (JLAAnnotation)
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: AOParcel); overload;
    function clone(): AWRemoteViews; overload; virtual;
    function getPackage(): JLString; overload; virtual;
    function getLayoutId(): jint; overload; virtual;
    procedure addView(para1: jint; para2: AWRemoteViews); overload; virtual;
    procedure removeAllViews(para1: jint); overload; virtual;
    procedure showNext(para1: jint); overload; virtual;
    procedure showPrevious(para1: jint); overload; virtual;
    procedure setDisplayedChild(para1: jint; para2: jint); overload; virtual;
    procedure setViewVisibility(para1: jint; para2: jint); overload; virtual;
    procedure setTextViewText(para1: jint; para2: JLCharSequence); overload; virtual;
    procedure setImageViewResource(para1: jint; para2: jint); overload; virtual;
    procedure setImageViewUri(para1: jint; para2: ANUri); overload; virtual;
    procedure setImageViewBitmap(para1: jint; para2: AGBitmap); overload; virtual;
    procedure setEmptyView(para1: jint; para2: jint); overload; virtual;
    procedure setChronometer(para1: jint; para2: jlong; para3: JLString; para4: jboolean); overload; virtual;
    procedure setProgressBar(para1: jint; para2: jint; para3: jint; para4: jboolean); overload; virtual;
    procedure setOnClickPendingIntent(para1: jint; para2: AAPendingIntent); overload; virtual;
    procedure setPendingIntentTemplate(para1: jint; para2: AAPendingIntent); overload; virtual;
    procedure setOnClickFillInIntent(para1: jint; para2: ACIntent); overload; virtual;
    procedure setTextColor(para1: jint; para2: jint); overload; virtual;
    procedure setRemoteAdapter(para1: jint; para2: jint; para3: ACIntent); overload; virtual;
    procedure setRemoteAdapter(para1: jint; para2: ACIntent); overload; virtual;
    procedure setScrollPosition(para1: jint; para2: jint); overload; virtual;
    procedure setRelativeScrollPosition(para1: jint; para2: jint); overload; virtual;
    procedure setBoolean(para1: jint; para2: JLString; para3: jboolean); overload; virtual;
    procedure setByte(para1: jint; para2: JLString; para3: jbyte); overload; virtual;
    procedure setShort(para1: jint; para2: JLString; para3: jshort); overload; virtual;
    procedure setInt(para1: jint; para2: JLString; para3: jint); overload; virtual;
    procedure setLong(para1: jint; para2: JLString; para3: jlong); overload; virtual;
    procedure setFloat(para1: jint; para2: JLString; para3: jfloat); overload; virtual;
    procedure setDouble(para1: jint; para2: JLString; para3: jdouble); overload; virtual;
    procedure setChar(para1: jint; para2: JLString; para3: jchar); overload; virtual;
    procedure setString(para1: jint; para2: JLString; para3: JLString); overload; virtual;
    procedure setCharSequence(para1: jint; para2: JLString; para3: JLCharSequence); overload; virtual;
    procedure setUri(para1: jint; para2: JLString; para3: ANUri); overload; virtual;
    procedure setBitmap(para1: jint; para2: JLString; para3: AGBitmap); overload; virtual;
    procedure setBundle(para1: jint; para2: JLString; para3: AOBundle); overload; virtual;
    procedure setIntent(para1: jint; para2: JLString; para3: ACIntent); overload; virtual;
    function apply(para1: ACContext; para2: AVViewGroup): AVView; overload; virtual;
    procedure reapply(para1: ACContext; para2: AVView); overload; virtual;
    function onLoadClass(para1: JLClass): jboolean; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JLDeprecated = interface external 'java.lang' name 'Deprecated' (JLAAnnotation)
  end;

  JLOverride = interface external 'java.lang' name 'Override' (JLAAnnotation)
  end;

  JLSuppressWarnings = interface external 'java.lang' name 'SuppressWarnings' (JLAAnnotation)
    function value(): Arr1JLString; overload;
  end;

  JLADocumented = interface external 'java.lang.annotation' name 'Documented' (JLAAnnotation)
  end;

  JLAInherited = interface external 'java.lang.annotation' name 'Inherited' (JLAAnnotation)
  end;

  JLARetention = interface external 'java.lang.annotation' name 'Retention' (JLAAnnotation)
    function value(): JLARetentionPolicy; overload;
  end;

  JLATarget = interface external 'java.lang.annotation' name 'Target' (JLAAnnotation)
    function value(): Arr1JLAElementType; overload;
  end;

  JLRPhantomReference = class external 'java.lang.ref' name 'PhantomReference' (JLRReference)
  public
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
    function get(): JLObject; overload; virtual;
  end;

  JLRSoftReference = class external 'java.lang.ref' name 'SoftReference' (JLRReference)
  public
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
  end;

  JLRWeakReference = class external 'java.lang.ref' name 'WeakReference' (JLRReference)
  public
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
  end;

  JNSecureCacheResponse = class abstract external 'java.net' name 'SecureCacheResponse' (JNCacheResponse)
  public
    constructor create(); overload;
    function getCipherSuite(): JLString; overload; virtual; abstract;
    function getLocalCertificateChain(): JUList; overload; virtual; abstract;
    function getServerCertificateChain(): JUList; overload; virtual; abstract;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload; virtual; abstract;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload; virtual; abstract;
  end;

  JNCookieManager = class external 'java.net' name 'CookieManager' (JNCookieHandler)
  public
    constructor create(); overload;
    constructor create(para1: JNCookieStore; para2: JNCookiePolicy); overload;
    function get(para1: JNURI; para2: JUMap): JUMap; overload; virtual;  // throws java.io.IOException
    procedure put(para1: JNURI; para2: JUMap); overload; virtual;  // throws java.io.IOException
    procedure setCookiePolicy(para1: JNCookiePolicy); overload; virtual;
    function getCookieStore(): JNCookieStore; overload; virtual;
  end;

  JNMulticastSocket = class external 'java.net' name 'MulticastSocket' (JNDatagramSocket)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;  // throws java.io.IOException
    constructor create(para1: JNSocketAddress); overload;  // throws java.io.IOException
    function getInterface(): JNInetAddress; overload; virtual;  // throws java.net.SocketException
    function getNetworkInterface(): JNNetworkInterface; overload; virtual;  // throws java.net.SocketException
    function getTimeToLive(): jint; overload; virtual;  // throws java.io.IOException
    function getTTL(): jbyte; overload; virtual;  // throws java.io.IOException
    procedure joinGroup(para1: JNInetAddress); overload; virtual;  // throws java.io.IOException
    procedure joinGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual;  // throws java.io.IOException
    procedure leaveGroup(para1: JNInetAddress); overload; virtual;  // throws java.io.IOException
    procedure leaveGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual;  // throws java.io.IOException
    procedure send(para1: JNDatagramPacket; para2: jbyte); overload; virtual;  // throws java.io.IOException
    procedure setInterface(para1: JNInetAddress); overload; virtual;  // throws java.net.SocketException
    procedure setNetworkInterface(para1: JNNetworkInterface); overload; virtual;  // throws java.net.SocketException
    procedure setTimeToLive(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure setTTL(para1: jbyte); overload; virtual;  // throws java.io.IOException
    function getLoopbackMode(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setLoopbackMode(para1: jboolean); overload; virtual;  // throws java.net.SocketException
  end;

  ANHHttpResponseCache = class sealed external 'android.net.http' name 'HttpResponseCache' (JNResponseCache, JICloseable)
  public
    class function getInstalled(): ANHHttpResponseCache; static; overload;
    class function install(para1: JIFile; para2: jlong): ANHHttpResponseCache; static; overload;  // throws java.io.IOException
    function get(para1: JNURI; para2: JLString; para3: JUMap): JNCacheResponse; overload; virtual;  // throws java.io.IOException
    function put(para1: JNURI; para2: JNURLConnection): JNCacheRequest; overload; virtual;  // throws java.io.IOException
    function size(): jlong; overload; virtual;
    function maxSize(): jlong; overload; virtual;
    procedure flush(); overload; virtual;
    function getNetworkCount(): jint; overload; virtual;
    function getHitCount(): jint; overload; virtual;
    function getRequestCount(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure delete(); overload; virtual;  // throws java.io.IOException
  end;

  JNSSSLServerSocket = class abstract external 'javax.net.ssl' name 'SSLServerSocket' (JNServerSocket)
  strict protected
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint; para3: JNInetAddress); overload;  // throws java.io.IOException
  public
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedProtocols(): Arr1JLString; overload; virtual; abstract;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledProtocols(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(var para1: array of JLString); overload; virtual; abstract;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual; abstract;
    function getNeedClientAuth(): jboolean; overload; virtual; abstract;
    procedure setWantClientAuth(para1: jboolean); overload; virtual; abstract;
    function getWantClientAuth(): jboolean; overload; virtual; abstract;
    procedure setUseClientMode(para1: jboolean); overload; virtual; abstract;
    function getUseClientMode(): jboolean; overload; virtual; abstract;
    procedure setEnableSessionCreation(para1: jboolean); overload; virtual; abstract;
    function getEnableSessionCreation(): jboolean; overload; virtual; abstract;
  end;

  JNSSSLSocket = class abstract external 'javax.net.ssl' name 'SSLSocket' (JNSocket)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString; para2: jint); overload;  // throws java.io.IOException, java.net.UnknownHostException
    constructor create(para1: JNInetAddress; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException, java.net.UnknownHostException
    constructor create(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException
  public
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    function getSupportedProtocols(): Arr1JLString; overload; virtual; abstract;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledProtocols(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(var para1: array of JLString); overload; virtual; abstract;
    function getSession(): JNSSSLSession; overload; virtual; abstract;
    procedure addHandshakeCompletedListener(para1: JNSHandshakeCompletedListener); overload; virtual; abstract;
    procedure removeHandshakeCompletedListener(para1: JNSHandshakeCompletedListener); overload; virtual; abstract;
    procedure startHandshake(); overload; virtual; abstract;  // throws java.io.IOException
    procedure setUseClientMode(para1: jboolean); overload; virtual; abstract;
    function getUseClientMode(): jboolean; overload; virtual; abstract;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual; abstract;
    procedure setWantClientAuth(para1: jboolean); overload; virtual; abstract;
    function getNeedClientAuth(): jboolean; overload; virtual; abstract;
    function getWantClientAuth(): jboolean; overload; virtual; abstract;
    procedure setEnableSessionCreation(para1: jboolean); overload; virtual; abstract;
    function getEnableSessionCreation(): jboolean; overload; virtual; abstract;
    function getSSLParameters(): JNSSSLParameters; overload; virtual;
    procedure setSSLParameters(para1: JNSSSLParameters); overload; virtual;
  end;

  JNDatagramSocketImpl = class abstract external 'java.net' name 'DatagramSocketImpl' (JLObject, JNSocketOptions)
  strict protected
    var
      ffd: JIFileDescriptor; external name 'fd';
      flocalPort: jint; external name 'localPort';
  public
    constructor create(); overload;
  strict protected
    procedure bind(para1: jint; para2: JNInetAddress); overload; virtual; abstract;  // throws java.net.SocketException
    procedure close(); overload; virtual; abstract;
    procedure create_(); external name 'create'; overload; virtual; abstract;  // throws java.net.SocketException
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getTTL(): jbyte; overload; virtual; abstract;  // throws java.io.IOException
    function getTimeToLive(): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure join(para1: JNInetAddress); overload; virtual; abstract;  // throws java.io.IOException
    procedure joinGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual; abstract;  // throws java.io.IOException
    procedure leave(para1: JNInetAddress); overload; virtual; abstract;  // throws java.io.IOException
    procedure leaveGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual; abstract;  // throws java.io.IOException
    function peek(para1: JNInetAddress): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure receive(para1: JNDatagramPacket); overload; virtual; abstract;  // throws java.io.IOException
    procedure send(para1: JNDatagramPacket); overload; virtual; abstract;  // throws java.io.IOException
    procedure setTimeToLive(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure setTTL(para1: jbyte); overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual;  // throws java.net.SocketException
    procedure disconnect(); overload; virtual;
    function peekData(para1: JNDatagramPacket): jint; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNSocketImpl = class abstract external 'java.net' name 'SocketImpl' (JLObject, JNSocketOptions)
  strict protected
    var
      faddress: JNInetAddress; external name 'address';
      fport: jint; external name 'port';
      ffd: JIFileDescriptor; external name 'fd';
      flocalport: jint; external name 'localport';
  public
    constructor create(); overload;
  strict protected
    procedure accept(para1: JNSocketImpl); overload; virtual; abstract;  // throws java.io.IOException
    function available(): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure bind(para1: JNInetAddress; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JLString; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure create_(para1: jboolean); external name 'create'; overload; virtual; abstract;  // throws java.io.IOException
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual; abstract;  // throws java.io.IOException
    function getLocalPort(): jint; overload; virtual;
    function getOutputStream(): JIOutputStream; overload; virtual; abstract;  // throws java.io.IOException
    function getPort(): jint; overload; virtual;
    procedure listen(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
  public
    function toString(): JLString; overload; virtual;
  strict protected
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    function supportsUrgentData(): jboolean; overload; virtual;
    procedure sendUrgentData(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure setPerformancePreferences(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JNHttpURLConnection = class abstract external 'java.net' name 'HttpURLConnection' (JNURLConnection)
  strict protected
    var
      fmethod: JLString; external name 'method';
      fresponseCode: jint; external name 'responseCode';
      fresponseMessage: JLString; external name 'responseMessage';
      finstanceFollowRedirects: jboolean; external name 'instanceFollowRedirects';
      fchunkLength: jint; external name 'chunkLength';
      ffixedContentLength: jint; external name 'fixedContentLength';
  public
    const
      HTTP_ACCEPTED = 202;
      HTTP_BAD_GATEWAY = 502;
      HTTP_BAD_METHOD = 405;
      HTTP_BAD_REQUEST = 400;
      HTTP_CLIENT_TIMEOUT = 408;
      HTTP_CONFLICT = 409;
      HTTP_CREATED = 201;
      HTTP_ENTITY_TOO_LARGE = 413;
      HTTP_FORBIDDEN = 403;
      HTTP_GATEWAY_TIMEOUT = 504;
      HTTP_GONE = 410;
      HTTP_INTERNAL_ERROR = 500;
      HTTP_LENGTH_REQUIRED = 411;
      HTTP_MOVED_PERM = 301;
      HTTP_MOVED_TEMP = 302;
      HTTP_MULT_CHOICE = 300;
      HTTP_NO_CONTENT = 204;
      HTTP_NOT_ACCEPTABLE = 406;
      HTTP_NOT_AUTHORITATIVE = 203;
      HTTP_NOT_FOUND = 404;
      HTTP_NOT_IMPLEMENTED = 501;
      HTTP_NOT_MODIFIED = 304;
      HTTP_OK = 200;
      HTTP_PARTIAL = 206;
      HTTP_PAYMENT_REQUIRED = 402;
      HTTP_PRECON_FAILED = 412;
      HTTP_PROXY_AUTH = 407;
      HTTP_REQ_TOO_LONG = 414;
      HTTP_RESET = 205;
      HTTP_SEE_OTHER = 303;
      HTTP_SERVER_ERROR = 500;
      HTTP_USE_PROXY = 305;
      HTTP_UNAUTHORIZED = 401;
      HTTP_UNSUPPORTED_TYPE = 415;
      HTTP_UNAVAILABLE = 503;
      HTTP_VERSION = 505;
  strict protected
    constructor create(para1: JNURL); overload;
  public
    procedure disconnect(); overload; virtual; abstract;
    function getErrorStream(): JIInputStream; overload; virtual;
    class function getFollowRedirects(): jboolean; static; overload;
    function getPermission(): JSPermission; overload; virtual;  // throws java.io.IOException
    function getRequestMethod(): JLString; overload; virtual;
    function getResponseCode(): jint; overload; virtual;  // throws java.io.IOException
    function getResponseMessage(): JLString; overload; virtual;  // throws java.io.IOException
    class procedure setFollowRedirects(para1: jboolean); static; overload;
    procedure setRequestMethod(para1: JLString); overload; virtual;  // throws java.net.ProtocolException
    function usingProxy(): jboolean; overload; virtual; abstract;
    function getContentEncoding(): JLString; overload; virtual;
    function getInstanceFollowRedirects(): jboolean; overload; virtual;
    procedure setInstanceFollowRedirects(para1: jboolean); overload; virtual;
    function getHeaderFieldDate(para1: JLString; para2: jlong): jlong; overload; virtual;
    procedure setFixedLengthStreamingMode(para1: jint); overload; virtual;
    procedure setChunkedStreamingMode(para1: jint); overload; virtual;
  end;

  JNJarURLConnection = class abstract external 'java.net' name 'JarURLConnection' (JNURLConnection)
  strict protected
    var
      fjarFileURLConnection: JNURLConnection; external name 'jarFileURLConnection';
  strict protected
    constructor create(para1: JNURL); overload;  // throws java.net.MalformedURLException
  public
    function getAttributes(): JUJAttributes; overload; virtual;  // throws java.io.IOException
    function getCertificates(): Arr1JSCCertificate; overload; virtual;  // throws java.io.IOException
    function getEntryName(): JLString; overload; virtual;
    function getJarEntry(): JUJJarEntry; overload; virtual;  // throws java.io.IOException
    function getManifest(): JUJManifest; overload; virtual;  // throws java.io.IOException
    function getJarFile(): JUJJarFile; overload; virtual; abstract;  // throws java.io.IOException
    function getJarFileURL(): JNURL; overload; virtual;
    function getMainAttributes(): JUJAttributes; overload; virtual;  // throws java.io.IOException
  end;

  JNCSAbstractSelectionKey = class abstract external 'java.nio.channels.spi' name 'AbstractSelectionKey' (JNCSelectionKey)
  strict protected
    constructor create(); overload;
  public
    function isValid(): jboolean; overload; virtual; final;
    procedure cancel(); overload; virtual; final;
  end;

  JNCSAbstractSelector = class abstract external 'java.nio.channels.spi' name 'AbstractSelector' (JNCSelector)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    procedure close(); overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure implCloseSelector(); overload; virtual; abstract;  // throws java.io.IOException
  public
    function isOpen(): jboolean; overload; virtual; final;
    function provider(): JNCSSelectorProvider; overload; virtual; final;
  strict protected
    function cancelledKeys(): JUSet; overload; virtual; final;
    function register(para1: JNCSAbstractSelectableChannel; para2: jint; para3: JLObject): JNCSelectionKey; overload; virtual; abstract;
    procedure deregister(para1: JNCSAbstractSelectionKey); overload; virtual; final;
    procedure &begin(); overload; virtual; final;
    procedure &end(); overload; virtual; final;
  end;

  JSASubjectDomainCombiner = class external 'javax.security.auth' name 'SubjectDomainCombiner' (JLObject, JSDomainCombiner)
  public
    constructor create(para1: JSASubject); overload;
    function getSubject(): JSASubject; overload; virtual;
    function combine(para1: Arr1JSProtectionDomain; para2: Arr1JSProtectionDomain): Arr1JSProtectionDomain; overload; virtual;
    function combine(var para1: array of JSProtectionDomain; var para2: array of JSProtectionDomain): Arr1JSProtectionDomain; overload; virtual;
  end;

  JSPermission = class abstract external 'java.security' name 'Permission' (JLObject, JSGuard, JISerializable)
  public
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual; final;
    procedure checkGuard(para1: JLObject); overload; virtual;  // throws java.lang.SecurityException
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
    function getActions(): JLString; overload; virtual; abstract;
    function implies(para1: JSPermission): jboolean; overload; virtual; abstract;
  end;

  JSKeyPairGenerator = class abstract external 'java.security' name 'KeyPairGenerator' (JSKeyPairGeneratorSpi)
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual;
    class function getInstance(para1: JLString): JSKeyPairGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSKeyPairGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSKeyPairGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure initialize(para1: jint); overload; virtual;
    procedure initialize(para1: JSSAlgorithmParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function genKeyPair(): JSKeyPair; overload; virtual; final;
    function generateKeyPair(): JSKeyPair; overload; virtual;
    procedure initialize(para1: jint; para2: JSSecureRandom); overload; virtual;
    procedure initialize(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
  end;

  JSMessageDigest = class abstract external 'java.security' name 'MessageDigest' (JSMessageDigestSpi)
  strict protected
    constructor create(para1: JLString); overload;
  public
    class function getInstance(para1: JLString): JSMessageDigest; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSMessageDigest; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSMessageDigest; static; overload;  // throws java.security.NoSuchAlgorithmException
    procedure reset(); overload; virtual;
    procedure update(para1: jbyte); overload; virtual;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(para1: Arr1jbyte); overload; virtual;
    procedure update(var para1: array of jbyte); overload; virtual;
    function digest(): Arr1jbyte; overload; virtual;
    function digest(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    function digest(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    function digest(para1: Arr1jbyte): Arr1jbyte; overload; virtual;
    function digest(var para1: array of jbyte): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function isEqual(para1: Arr1jbyte; para2: Arr1jbyte): jboolean; static; overload;
    class function isEqual(var para1: array of jbyte; var para2: array of jbyte): jboolean; static; overload;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    function getDigestLength(): jint; overload; virtual; final;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    procedure update(para1: JNByteBuffer); overload; virtual; final;
  end;

  JSIdentity = class abstract external 'java.security' name 'Identity' (JLObject, JSPrincipal, JISerializable)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSIdentityScope); overload;  // throws java.security.KeyManagementException
    procedure addCertificate(para1: JSCertificate); overload; virtual;  // throws java.security.KeyManagementException
    procedure removeCertificate(para1: JSCertificate); overload; virtual;  // throws java.security.KeyManagementException
    function certificates(): Arr1JSCertificate; overload; virtual;
  strict protected
    function identityEquals(para1: JSIdentity): jboolean; overload; virtual;
  public
    function toString(para1: jboolean): JLString; overload; virtual;
    function getScope(): JSIdentityScope; overload; virtual; final;
    procedure setPublicKey(para1: JSPublicKey); overload; virtual;  // throws java.security.KeyManagementException
    function getPublicKey(): JSPublicKey; overload; virtual;
    procedure setInfo(para1: JLString); overload; virtual;
    function getInfo(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSAGroup = interface external 'java.security.acl' name 'Group' (JSPrincipal)
    function addMember(para1: JSPrincipal): jboolean; overload;
    function removeMember(para1: JSPrincipal): jboolean; overload;
    function isMember(para1: JSPrincipal): jboolean; overload;
    function members(): JUEnumeration; overload;
  end;

  JSAXX500Principal = class sealed external 'javax.security.auth.x500' name 'X500Principal' (JLObject, JISerializable, JSPrincipal)
  public
    const
      CANONICAL = 'CANONICAL';
      RFC1779 = 'RFC1779';
      RFC2253 = 'RFC2253';
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getName(para1: JLString): JLString; overload; virtual;
    function getName(para1: JLString; para2: JUMap): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHABasicUserPrincipal = class sealed external 'org.apache.http.auth' name 'BasicUserPrincipal' (JLObject, JSPrincipal)
  public
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHANTUserPrincipal = class external 'org.apache.http.auth' name 'NTUserPrincipal' (JLObject, JSPrincipal)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getDomain(): JLString; overload; virtual;
    function getUsername(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSignature = class abstract external 'java.security' name 'Signature' (JSSignatureSpi)
  strict protected
    const
      UNINITIALIZED = 0;
      SIGN = 2;
      VERIFY = 3;
  strict protected
    var
      fstate: jint; external name 'state';
  strict protected
    constructor create(para1: JLString); overload;
  public
    class function getInstance(para1: JLString): JSSignature; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSSignature; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSSignature; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    procedure initVerify(para1: JSPublicKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure initVerify(para1: JSCCertificate); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure initSign(para1: JSPrivateKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure initSign(para1: JSPrivateKey; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    function sign_(): Arr1jbyte; external name 'sign'; overload; virtual; final;  // throws java.security.SignatureException
    function sign_(para1: Arr1jbyte; para2: jint; para3: jint): jint; external name 'sign'; overload; virtual; final;  // throws java.security.SignatureException
    function sign_(var para1: array of jbyte; para2: jint; para3: jint): jint; external name 'sign'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(para1: Arr1jbyte): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(var para1: array of jbyte): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(para1: Arr1jbyte; para2: jint; para3: jint): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(var para1: array of jbyte; para2: jint; para3: jint): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: jbyte); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: Arr1jbyte); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(var para1: array of jbyte); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: JNByteBuffer); overload; virtual; final;  // throws java.security.SignatureException
    function toString(): JLString; overload; virtual;
    procedure setParameter(para1: JLString; para2: JLObject); overload; virtual; final;  // throws java.security.InvalidParameterException
    procedure setParameter(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function getParameters(): JSAlgorithmParameters; overload; virtual; final;
    function getParameter(para1: JLString): JLObject; overload; virtual; final;  // throws java.security.InvalidParameterException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSAAcl = interface external 'java.security.acl' name 'Acl' (JSAOwner)
    procedure setName(para1: JSPrincipal; para2: JLString); overload;  // throws java.security.acl.NotOwnerException
    function getName(): JLString; overload;
    function addEntry(para1: JSPrincipal; para2: JSAAclEntry): jboolean; overload;  // throws java.security.acl.NotOwnerException
    function removeEntry(para1: JSPrincipal; para2: JSAAclEntry): jboolean; overload;  // throws java.security.acl.NotOwnerException
    function getPermissions(para1: JSPrincipal): JUEnumeration; overload;
    function entries(): JUEnumeration; overload;
    function checkPermission(para1: JSPrincipal; para2: JSAPermission): jboolean; overload;
    function toString(): JLString; overload;
  end;

  JSCX509CRL = class abstract external 'java.security.cert' name 'X509CRL' (JSCCRL, JSCX509Extension)
  strict protected
    constructor create(); overload;
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CRLException
    procedure verify(para1: JSPublicKey); overload; virtual; abstract;  // throws java.security.cert.CRLException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    procedure verify(para1: JSPublicKey; para2: JLString); overload; virtual; abstract;  // throws java.security.cert.CRLException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    function getVersion(): jint; overload; virtual; abstract;
    function getIssuerDN(): JSPrincipal; overload; virtual; abstract;
    function getIssuerX500Principal(): JSAXX500Principal; overload; virtual;
    function getThisUpdate(): JUDate; overload; virtual; abstract;
    function getNextUpdate(): JUDate; overload; virtual; abstract;
    function getRevokedCertificate(para1: JMBigInteger): JSCX509CRLEntry; overload; virtual; abstract;
    function getRevokedCertificate(para1: JSCX509Certificate): JSCX509CRLEntry; overload; virtual;
    function getRevokedCertificates(): JUSet; overload; virtual; abstract;
    function getTBSCertList(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function getSignature(): Arr1jbyte; overload; virtual; abstract;
    function getSigAlgName(): JLString; overload; virtual; abstract;
    function getSigAlgOID(): JLString; overload; virtual; abstract;
    function getSigAlgParams(): Arr1jbyte; overload; virtual; abstract;
  end;

  JSCX509CRLEntry = class abstract external 'java.security.cert' name 'X509CRLEntry' (JLObject, JSCX509Extension)
  public
    constructor create(); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function getSerialNumber(): JMBigInteger; overload; virtual; abstract;
    function getCertificateIssuer(): JSAXX500Principal; overload; virtual;
    function getRevocationDate(): JUDate; overload; virtual; abstract;
    function hasExtensions(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual; abstract;
  end;

  JSSDSAParameterSpec = class external 'java.security.spec' name 'DSAParameterSpec' (JLObject, JSSAlgorithmParameterSpec, JSIDSAParams)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getG(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getQ(): JMBigInteger; overload; virtual;
  end;

  JSSECGenParameterSpec = class external 'java.security.spec' name 'ECGenParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
  end;

  JSSECParameterSpec = class external 'java.security.spec' name 'ECParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: JSSEllipticCurve; para2: JSSECPoint; para3: JMBigInteger; para4: jint); overload;
    function getCofactor(): jint; overload; virtual;
    function getCurve(): JSSEllipticCurve; overload; virtual;
    function getGenerator(): JSSECPoint; overload; virtual;
    function getOrder(): JMBigInteger; overload; virtual;
  end;

  JSSMGF1ParameterSpec = class external 'java.security.spec' name 'MGF1ParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fSHA1: JSSMGF1ParameterSpec; external name 'SHA1';
      fSHA256: JSSMGF1ParameterSpec; external name 'SHA256';
      fSHA384: JSSMGF1ParameterSpec; external name 'SHA384';
      fSHA512: JSSMGF1ParameterSpec; external name 'SHA512';
  public
    constructor create(para1: JLString); overload;
    function getDigestAlgorithm(): JLString; overload; virtual;
  end;

  JSSPSSParameterSpec = class external 'java.security.spec' name 'PSSParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fDEFAULT: JSSPSSParameterSpec; external name 'DEFAULT';
  public
    constructor create(para1: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: JSSAlgorithmParameterSpec; para4: jint; para5: jint); overload;
    function getSaltLength(): jint; overload; virtual;
    function getDigestAlgorithm(): JLString; overload; virtual;
    function getMGFAlgorithm(): JLString; overload; virtual;
    function getMGFParameters(): JSSAlgorithmParameterSpec; overload; virtual;
    function getTrailerField(): jint; overload; virtual;
  end;

  JSSRSAKeyGenParameterSpec = class external 'java.security.spec' name 'RSAKeyGenParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fF0: JMBigInteger; external name 'F0';
      fF4: JMBigInteger; external name 'F4';
  public
    constructor create(para1: jint; para2: JMBigInteger); overload;
    function getKeysize(): jint; overload; virtual;
    function getPublicExponent(): JMBigInteger; overload; virtual;
  end;

  JCSDHGenParameterSpec = class external 'javax.crypto.spec' name 'DHGenParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: jint; para2: jint); overload;
    function getPrimeSize(): jint; overload; virtual;
    function getExponentSize(): jint; overload; virtual;
  end;

  JCSDHParameterSpec = class external 'javax.crypto.spec' name 'DHParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: jint); overload;
    function getP(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
    function getL(): jint; overload; virtual;
  end;

  JCSIvParameterSpec = class external 'javax.crypto.spec' name 'IvParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    function getIV(): Arr1jbyte; overload; virtual;
  end;

  JCSOAEPParameterSpec = class external 'javax.crypto.spec' name 'OAEPParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fDEFAULT: JCSOAEPParameterSpec; external name 'DEFAULT';
  public
    constructor create(para1: JLString; para2: JLString; para3: JSSAlgorithmParameterSpec; para4: JCSPSource); overload;
    function getDigestAlgorithm(): JLString; overload; virtual;
    function getMGFAlgorithm(): JLString; overload; virtual;
    function getMGFParameters(): JSSAlgorithmParameterSpec; overload; virtual;
    function getPSource(): JCSPSource; overload; virtual;
  end;

  JCSPBEParameterSpec = class external 'javax.crypto.spec' name 'PBEParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: Arr1jbyte; para2: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint); overload;
    function getSalt(): Arr1jbyte; overload; virtual;
    function getIterationCount(): jint; overload; virtual;
  end;

  JCSRC2ParameterSpec = class external 'javax.crypto.spec' name 'RC2ParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
    constructor create(para1: jint; para2: Arr1jbyte; para3: jint); overload;
    constructor create(para1: jint; const para2: array of jbyte; para3: jint); overload;
    function getEffectiveKeyBits(): jint; overload; virtual;
    function getIV(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JCSRC5ParameterSpec = class external 'javax.crypto.spec' name 'RC5ParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: Arr1jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: jint; const para4: array of jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; const para4: array of jbyte; para5: jint); overload;
    function getVersion(): jint; overload; virtual;
    function getRounds(): jint; overload; virtual;
    function getWordSize(): jint; overload; virtual;
    function getIV(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSECFieldF2m = class external 'java.security.spec' name 'ECFieldF2m' (JLObject, JSSECField)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JMBigInteger); overload;
    constructor create(para1: jint; para2: Arr1jint); overload;
    constructor create(para1: jint; const para2: array of jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getFieldSize(): jint; overload; virtual;
    function getM(): jint; overload; virtual;
    function getMidTermsOfReductionPolynomial(): Arr1jint; overload; virtual;
    function getReductionPolynomial(): JMBigInteger; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSECFieldFp = class external 'java.security.spec' name 'ECFieldFp' (JLObject, JSSECField)
  public
    constructor create(para1: JMBigInteger); overload;
    function getFieldSize(): jint; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSDSAPrivateKeySpec = class external 'java.security.spec' name 'DSAPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger); overload;
    function getG(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getQ(): JMBigInteger; overload; virtual;
    function getX(): JMBigInteger; overload; virtual;
  end;

  JSSDSAPublicKeySpec = class external 'java.security.spec' name 'DSAPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger); overload;
    function getG(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getQ(): JMBigInteger; overload; virtual;
    function getY(): JMBigInteger; overload; virtual;
  end;

  JSSECPrivateKeySpec = class external 'java.security.spec' name 'ECPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JSSECParameterSpec); overload;
    function getParams(): JSSECParameterSpec; overload; virtual;
    function getS(): JMBigInteger; overload; virtual;
  end;

  JSSECPublicKeySpec = class external 'java.security.spec' name 'ECPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JSSECPoint; para2: JSSECParameterSpec); overload;
    function getParams(): JSSECParameterSpec; overload; virtual;
    function getW(): JSSECPoint; overload; virtual;
  end;

  JSSEncodedKeySpec = class abstract external 'java.security.spec' name 'EncodedKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getFormat(): JLString; overload; virtual; abstract;
  end;

  JSSRSAPrivateKeySpec = class external 'java.security.spec' name 'RSAPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    function getModulus(): JMBigInteger; overload; virtual;
    function getPrivateExponent(): JMBigInteger; overload; virtual;
  end;

  JSSRSAPublicKeySpec = class external 'java.security.spec' name 'RSAPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    function getModulus(): JMBigInteger; overload; virtual;
    function getPublicExponent(): JMBigInteger; overload; virtual;
  end;

  JCSDESKeySpec = class external 'javax.crypto.spec' name 'DESKeySpec' (JLObject, JSSKeySpec)
  public
    const
      DES_KEY_LEN = 8;
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(para1: Arr1jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    function getKey(): Arr1jbyte; overload; virtual;
    class function isParityAdjusted(para1: Arr1jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isParityAdjusted(var para1: array of jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isWeak(para1: Arr1jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isWeak(var para1: array of jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
  end;

  JCSDESedeKeySpec = class external 'javax.crypto.spec' name 'DESedeKeySpec' (JLObject, JSSKeySpec)
  public
    const
      DES_EDE_KEY_LEN = 24;
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(para1: Arr1jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    function getKey(): Arr1jbyte; overload; virtual;
    class function isParityAdjusted(para1: Arr1jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isParityAdjusted(var para1: array of jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
  end;

  JCSDHPrivateKeySpec = class external 'javax.crypto.spec' name 'DHPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getX(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JCSDHPublicKeySpec = class external 'javax.crypto.spec' name 'DHPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getY(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JCSPBEKeySpec = class external 'javax.crypto.spec' name 'PBEKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    constructor create(para1: Arr1jchar; para2: Arr1jbyte; para3: jint; para4: jint); overload;
    constructor create(const para1: array of jchar; const para2: array of jbyte; para3: jint; para4: jint); overload;
    constructor create(para1: Arr1jchar; para2: Arr1jbyte; para3: jint); overload;
    constructor create(const para1: array of jchar; const para2: array of jbyte; para3: jint); overload;
    procedure clearPassword(); overload; virtual; final;
    function getPassword(): Arr1jchar; overload; virtual; final;
    function getSalt(): Arr1jbyte; overload; virtual; final;
    function getIterationCount(): jint; overload; virtual; final;
    function getKeyLength(): jint; overload; virtual; final;
  end;

  JSNClob = interface external 'java.sql' name 'NClob' (JSClob)
  end;

  JSConnection = interface external 'java.sql' name 'Connection' (JSWrapper)
    const
      TRANSACTION_NONE = 0;
      TRANSACTION_READ_COMMITTED = 2;
      TRANSACTION_READ_UNCOMMITTED = 1;
      TRANSACTION_REPEATABLE_READ = 4;
      TRANSACTION_SERIALIZABLE = 8;
    procedure clearWarnings(); overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    procedure commit(); overload;  // throws java.sql.SQLException
    function createStatement(): JSStatement; overload;  // throws java.sql.SQLException
    function createStatement(para1: jint; para2: jint): JSStatement; overload;  // throws java.sql.SQLException
    function createStatement(para1: jint; para2: jint; para3: jint): JSStatement; overload;  // throws java.sql.SQLException
    function getAutoCommit(): jboolean; overload;  // throws java.sql.SQLException
    function getCatalog(): JLString; overload;  // throws java.sql.SQLException
    function getHoldability(): jint; overload;  // throws java.sql.SQLException
    function getMetaData(): JSDatabaseMetaData; overload;  // throws java.sql.SQLException
    function getTransactionIsolation(): jint; overload;  // throws java.sql.SQLException
    function getTypeMap(): JUMap; overload;  // throws java.sql.SQLException
    function getWarnings(): JSSQLWarning; overload;  // throws java.sql.SQLException
    function isClosed(): jboolean; overload;  // throws java.sql.SQLException
    function isReadOnly(): jboolean; overload;  // throws java.sql.SQLException
    function nativeSQL(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function prepareCall(para1: JLString): JSCallableStatement; overload;  // throws java.sql.SQLException
    function prepareCall(para1: JLString; para2: jint; para3: jint): JSCallableStatement; overload;  // throws java.sql.SQLException
    function prepareCall(para1: JLString; para2: jint; para3: jint; para4: jint): JSCallableStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: Arr1jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; var para2: array of jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: jint; para3: jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: jint; para3: jint; para4: jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: Arr1JLString): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; var para2: array of JLString): JSPreparedStatement; overload;  // throws java.sql.SQLException
    procedure releaseSavepoint(para1: JSSavepoint); overload;  // throws java.sql.SQLException
    procedure rollback(); overload;  // throws java.sql.SQLException
    procedure rollback(para1: JSSavepoint); overload;  // throws java.sql.SQLException
    procedure setAutoCommit(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure setCatalog(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setHoldability(para1: jint); overload;  // throws java.sql.SQLException
    procedure setReadOnly(para1: jboolean); overload;  // throws java.sql.SQLException
    function setSavepoint(): JSSavepoint; overload;  // throws java.sql.SQLException
    function setSavepoint(para1: JLString): JSSavepoint; overload;  // throws java.sql.SQLException
    procedure setTransactionIsolation(para1: jint); overload;  // throws java.sql.SQLException
    procedure setTypeMap(para1: JUMap); overload;  // throws java.sql.SQLException
    function createClob(): JSClob; overload;  // throws java.sql.SQLException
    function createBlob(): JSBlob; overload;  // throws java.sql.SQLException
    function createNClob(): JSNClob; overload;  // throws java.sql.SQLException
    function createSQLXML(): JSSQLXML; overload;  // throws java.sql.SQLException
    function isValid(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    procedure setClientInfo(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLClientInfoException
    procedure setClientInfo(para1: JUProperties); overload;  // throws java.sql.SQLClientInfoException
    function getClientInfo(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getClientInfo(): JUProperties; overload;  // throws java.sql.SQLException
    function createArrayOf(para1: JLString; para2: Arr1JLObject): JSArray; overload;  // throws java.sql.SQLException
    function createArrayOf(para1: JLString; var para2: array of JLObject): JSArray; overload;  // throws java.sql.SQLException
    function createStruct(para1: JLString; para2: Arr1JLObject): JSStruct; overload;  // throws java.sql.SQLException
    function createStruct(para1: JLString; var para2: array of JLObject): JSStruct; overload;  // throws java.sql.SQLException
  end;

  JSDatabaseMetaData = interface external 'java.sql' name 'DatabaseMetaData' (JSWrapper)
    const
      attributeNoNulls = 0;
      attributeNullable = 1;
      attributeNullableUnknown = 2;
      bestRowNotPseudo = 1;
      bestRowPseudo = 2;
      bestRowSession = 2;
      bestRowTemporary = 0;
      bestRowTransaction = 1;
      bestRowUnknown = 0;
      columnNoNulls = 0;
      columnNullable = 1;
      columnNullableUnknown = 2;
      importedKeyCascade = 0;
      importedKeyInitiallyDeferred = 5;
      importedKeyInitiallyImmediate = 6;
      importedKeyNoAction = 3;
      importedKeyNotDeferrable = 7;
      importedKeyRestrict = 1;
      importedKeySetDefault = 4;
      importedKeySetNull = 2;
      procedureColumnIn = 1;
      procedureColumnInOut = 2;
      procedureColumnOut = 4;
      procedureColumnResult = 3;
      procedureColumnReturn = 5;
      procedureColumnUnknown = 0;
      procedureNoNulls = 0;
      procedureNoResult = 1;
      procedureNullable = 1;
      procedureNullableUnknown = 2;
      procedureResultUnknown = 0;
      procedureReturnsResult = 2;
      sqlStateSQL99 = 2;
      sqlStateXOpen = 1;
      tableIndexClustered = 1;
      tableIndexHashed = 2;
      tableIndexOther = 3;
      tableIndexStatistic = 0;
      typeNoNulls = 0;
      typeNullable = 1;
      typeNullableUnknown = 2;
      typePredBasic = 2;
      typePredChar = 1;
      typePredNone = 0;
      typeSearchable = 3;
      versionColumnNotPseudo = 1;
      versionColumnPseudo = 2;
      versionColumnUnknown = 0;
      sqlStateSQL = 2;
      functionColumnIn = 1;
      functionColumnInOut = 2;
      functionColumnOut = 3;
      functionReturn = 4;
      functionColumnUnknown = 0;
      functionColumnResult = 5;
      functionNoNulls = 0;
      functionNullable = 1;
      functionNullableUnknown = 2;
      functionResultUnknown = 0;
      functionNoTable = 1;
      functionReturnsTable = 2;
    function allProceduresAreCallable(): jboolean; overload;  // throws java.sql.SQLException
    function allTablesAreSelectable(): jboolean; overload;  // throws java.sql.SQLException
    function dataDefinitionCausesTransactionCommit(): jboolean; overload;  // throws java.sql.SQLException
    function dataDefinitionIgnoredInTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function deletesAreDetected(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function doesMaxRowSizeIncludeBlobs(): jboolean; overload;  // throws java.sql.SQLException
    function getAttributes(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getBestRowIdentifier(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: jboolean): JSResultSet; overload;  // throws java.sql.SQLException
    function getCatalogs(): JSResultSet; overload;  // throws java.sql.SQLException
    function getCatalogSeparator(): JLString; overload;  // throws java.sql.SQLException
    function getCatalogTerm(): JLString; overload;  // throws java.sql.SQLException
    function getColumnPrivileges(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getColumns(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function getCrossReference(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getDatabaseMajorVersion(): jint; overload;  // throws java.sql.SQLException
    function getDatabaseMinorVersion(): jint; overload;  // throws java.sql.SQLException
    function getDatabaseProductName(): JLString; overload;  // throws java.sql.SQLException
    function getDatabaseProductVersion(): JLString; overload;  // throws java.sql.SQLException
    function getDefaultTransactionIsolation(): jint; overload;  // throws java.sql.SQLException
    function getDriverMajorVersion(): jint; overload;
    function getDriverMinorVersion(): jint; overload;
    function getDriverName(): JLString; overload;  // throws java.sql.SQLException
    function getDriverVersion(): JLString; overload;  // throws java.sql.SQLException
    function getExportedKeys(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getExtraNameCharacters(): JLString; overload;  // throws java.sql.SQLException
    function getIdentifierQuoteString(): JLString; overload;  // throws java.sql.SQLException
    function getImportedKeys(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getIndexInfo(para1: JLString; para2: JLString; para3: JLString; para4: jboolean; para5: jboolean): JSResultSet; overload;  // throws java.sql.SQLException
    function getJDBCMajorVersion(): jint; overload;  // throws java.sql.SQLException
    function getJDBCMinorVersion(): jint; overload;  // throws java.sql.SQLException
    function getMaxBinaryLiteralLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxCatalogNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxCharLiteralLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInGroupBy(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInIndex(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInOrderBy(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInSelect(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInTable(): jint; overload;  // throws java.sql.SQLException
    function getMaxConnections(): jint; overload;  // throws java.sql.SQLException
    function getMaxCursorNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxIndexLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxProcedureNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxRowSize(): jint; overload;  // throws java.sql.SQLException
    function getMaxSchemaNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxStatementLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxStatements(): jint; overload;  // throws java.sql.SQLException
    function getMaxTableNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxTablesInSelect(): jint; overload;  // throws java.sql.SQLException
    function getMaxUserNameLength(): jint; overload;  // throws java.sql.SQLException
    function getNumericFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getPrimaryKeys(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getProcedureColumns(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getProcedures(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getProcedureTerm(): JLString; overload;  // throws java.sql.SQLException
    function getResultSetHoldability(): jint; overload;  // throws java.sql.SQLException
    function getSchemas(): JSResultSet; overload;  // throws java.sql.SQLException
    function getSchemaTerm(): JLString; overload;  // throws java.sql.SQLException
    function getSearchStringEscape(): JLString; overload;  // throws java.sql.SQLException
    function getSQLKeywords(): JLString; overload;  // throws java.sql.SQLException
    function getSQLStateType(): jint; overload;  // throws java.sql.SQLException
    function getStringFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getSuperTables(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getSuperTypes(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getSystemFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getTablePrivileges(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTables(para1: JLString; para2: JLString; para3: JLString; para4: Arr1JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTables(para1: JLString; para2: JLString; para3: JLString; var para4: array of JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTableTypes(): JSResultSet; overload;  // throws java.sql.SQLException
    function getTimeDateFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getTypeInfo(): JSResultSet; overload;  // throws java.sql.SQLException
    function getUDTs(para1: JLString; para2: JLString; para3: JLString; para4: Arr1jint): JSResultSet; overload;  // throws java.sql.SQLException
    function getUDTs(para1: JLString; para2: JLString; para3: JLString; var para4: array of jint): JSResultSet; overload;  // throws java.sql.SQLException
    function getURL(): JLString; overload;  // throws java.sql.SQLException
    function getUserName(): JLString; overload;  // throws java.sql.SQLException
    function getVersionColumns(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function insertsAreDetected(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isCatalogAtStart(): jboolean; overload;  // throws java.sql.SQLException
    function isReadOnly(): jboolean; overload;  // throws java.sql.SQLException
    function locatorsUpdateCopy(): jboolean; overload;  // throws java.sql.SQLException
    function nullPlusNonNullIsNull(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedAtEnd(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedAtStart(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedHigh(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedLow(): jboolean; overload;  // throws java.sql.SQLException
    function othersDeletesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function othersInsertsAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function othersUpdatesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function ownDeletesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function ownInsertsAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function ownUpdatesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function storesLowerCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesLowerCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesMixedCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesMixedCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesUpperCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesUpperCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function supportsAlterTableWithAddColumn(): jboolean; overload;  // throws java.sql.SQLException
    function supportsAlterTableWithDropColumn(): jboolean; overload;  // throws java.sql.SQLException
    function supportsANSI92EntryLevelSQL(): jboolean; overload;  // throws java.sql.SQLException
    function supportsANSI92FullSQL(): jboolean; overload;  // throws java.sql.SQLException
    function supportsANSI92IntermediateSQL(): jboolean; overload;  // throws java.sql.SQLException
    function supportsBatchUpdates(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInDataManipulation(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInIndexDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInPrivilegeDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInProcedureCalls(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInTableDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsColumnAliasing(): jboolean; overload;  // throws java.sql.SQLException
    function supportsConvert(): jboolean; overload;  // throws java.sql.SQLException
    function supportsConvert(para1: jint; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsCoreSQLGrammar(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCorrelatedSubqueries(): jboolean; overload;  // throws java.sql.SQLException
    function supportsDataDefinitionAndDataManipulationTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsDataManipulationTransactionsOnly(): jboolean; overload;  // throws java.sql.SQLException
    function supportsDifferentTableCorrelationNames(): jboolean; overload;  // throws java.sql.SQLException
    function supportsExpressionsInOrderBy(): jboolean; overload;  // throws java.sql.SQLException
    function supportsExtendedSQLGrammar(): jboolean; overload;  // throws java.sql.SQLException
    function supportsFullOuterJoins(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGetGeneratedKeys(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGroupBy(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGroupByBeyondSelect(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGroupByUnrelated(): jboolean; overload;  // throws java.sql.SQLException
    function supportsIntegrityEnhancementFacility(): jboolean; overload;  // throws java.sql.SQLException
    function supportsLikeEscapeClause(): jboolean; overload;  // throws java.sql.SQLException
    function supportsLimitedOuterJoins(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMinimumSQLGrammar(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMixedCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMixedCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMultipleOpenResults(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMultipleResultSets(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMultipleTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsNamedParameters(): jboolean; overload;  // throws java.sql.SQLException
    function supportsNonNullableColumns(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenCursorsAcrossCommit(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenCursorsAcrossRollback(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenStatementsAcrossCommit(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenStatementsAcrossRollback(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOrderByUnrelated(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOuterJoins(): jboolean; overload;  // throws java.sql.SQLException
    function supportsPositionedDelete(): jboolean; overload;  // throws java.sql.SQLException
    function supportsPositionedUpdate(): jboolean; overload;  // throws java.sql.SQLException
    function supportsResultSetConcurrency(para1: jint; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsResultSetHoldability(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsResultSetType(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsSavepoints(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInDataManipulation(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInIndexDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInPrivilegeDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInProcedureCalls(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInTableDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSelectForUpdate(): jboolean; overload;  // throws java.sql.SQLException
    function supportsStatementPooling(): jboolean; overload;  // throws java.sql.SQLException
    function supportsStoredProcedures(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInComparisons(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInExists(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInIns(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInQuantifieds(): jboolean; overload;  // throws java.sql.SQLException
    function supportsTableCorrelationNames(): jboolean; overload;  // throws java.sql.SQLException
    function supportsTransactionIsolationLevel(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsUnion(): jboolean; overload;  // throws java.sql.SQLException
    function supportsUnionAll(): jboolean; overload;  // throws java.sql.SQLException
    function updatesAreDetected(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function usesLocalFilePerTable(): jboolean; overload;  // throws java.sql.SQLException
    function usesLocalFiles(): jboolean; overload;  // throws java.sql.SQLException
    function autoCommitFailureClosesAllResultSets(): jboolean; overload;  // throws java.sql.SQLException
    function getClientInfoProperties(): JSResultSet; overload;  // throws java.sql.SQLException
    function getFunctionColumns(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getFunctions(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getRowIdLifetime(): JSRowIdLifetime; overload;  // throws java.sql.SQLException
    function getSchemas(para1: JLString; para2: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function supportsStoredFunctionsUsingCallSyntax(): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSParameterMetaData = interface external 'java.sql' name 'ParameterMetaData' (JSWrapper)
    const
      parameterModeIn = 1;
      parameterModeInOut = 2;
      parameterModeOut = 4;
      parameterModeUnknown = 0;
      parameterNoNulls = 0;
      parameterNullable = 1;
      parameterNullableUnknown = 2;
    function getParameterClassName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getParameterCount(): jint; overload;  // throws java.sql.SQLException
    function getParameterMode(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getParameterType(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getParameterTypeName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getPrecision(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getScale(para1: jint): jint; overload;  // throws java.sql.SQLException
    function isNullable(para1: jint): jint; overload;  // throws java.sql.SQLException
    function isSigned(para1: jint): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSResultSet = interface external 'java.sql' name 'ResultSet' (JSWrapper)
    const
      CLOSE_CURSORS_AT_COMMIT = 2;
      HOLD_CURSORS_OVER_COMMIT = 1;
      CONCUR_READ_ONLY = 1007;
      CONCUR_UPDATABLE = 1008;
      FETCH_FORWARD = 1000;
      FETCH_REVERSE = 1001;
      FETCH_UNKNOWN = 1002;
      TYPE_FORWARD_ONLY = 1003;
      TYPE_SCROLL_INSENSITIVE = 1004;
      TYPE_SCROLL_SENSITIVE = 1005;
    function absolute(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    procedure afterLast(); overload;  // throws java.sql.SQLException
    procedure beforeFirst(); overload;  // throws java.sql.SQLException
    procedure cancelRowUpdates(); overload;  // throws java.sql.SQLException
    procedure clearWarnings(); overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    procedure deleteRow(); overload;  // throws java.sql.SQLException
    function findColumn(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function first(): jboolean; overload;  // throws java.sql.SQLException
    function getArray(para1: jint): JSArray; overload;  // throws java.sql.SQLException
    function getArray(para1: JLString): JSArray; overload;  // throws java.sql.SQLException
    function getAsciiStream(para1: jint): JIInputStream; overload;  // throws java.sql.SQLException
    function getAsciiStream(para1: JLString): JIInputStream; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint; para2: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: JLString): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: JLString; para2: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBinaryStream(para1: jint): JIInputStream; overload;  // throws java.sql.SQLException
    function getBinaryStream(para1: JLString): JIInputStream; overload;  // throws java.sql.SQLException
    function getBlob(para1: jint): JSBlob; overload;  // throws java.sql.SQLException
    function getBlob(para1: JLString): JSBlob; overload;  // throws java.sql.SQLException
    function getBoolean(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getBoolean(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function getByte(para1: jint): jbyte; overload;  // throws java.sql.SQLException
    function getByte(para1: JLString): jbyte; overload;  // throws java.sql.SQLException
    function getBytes(para1: jint): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getBytes(para1: JLString): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    function getClob(para1: jint): JSClob; overload;  // throws java.sql.SQLException
    function getClob(para1: JLString): JSClob; overload;  // throws java.sql.SQLException
    function getConcurrency(): jint; overload;  // throws java.sql.SQLException
    function getCursorName(): JLString; overload;  // throws java.sql.SQLException
    function getDate(para1: jint): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: jint; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getDouble(para1: jint): jdouble; overload;  // throws java.sql.SQLException
    function getDouble(para1: JLString): jdouble; overload;  // throws java.sql.SQLException
    function getFetchDirection(): jint; overload;  // throws java.sql.SQLException
    function getFetchSize(): jint; overload;  // throws java.sql.SQLException
    function getFloat(para1: jint): jfloat; overload;  // throws java.sql.SQLException
    function getFloat(para1: JLString): jfloat; overload;  // throws java.sql.SQLException
    function getInt(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getInt(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function getLong(para1: jint): jlong; overload;  // throws java.sql.SQLException
    function getLong(para1: JLString): jlong; overload;  // throws java.sql.SQLException
    function getMetaData(): JSResultSetMetaData; overload;  // throws java.sql.SQLException
    function getObject(para1: jint): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: jint; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getRef(para1: jint): JSRef; overload;  // throws java.sql.SQLException
    function getRef(para1: JLString): JSRef; overload;  // throws java.sql.SQLException
    function getRow(): jint; overload;  // throws java.sql.SQLException
    function getShort(para1: jint): jshort; overload;  // throws java.sql.SQLException
    function getShort(para1: JLString): jshort; overload;  // throws java.sql.SQLException
    function getStatement(): JSStatement; overload;  // throws java.sql.SQLException
    function getString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getTime(para1: jint): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: jint; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getType(): jint; overload;  // throws java.sql.SQLException
    function getUnicodeStream(para1: jint): JIInputStream; overload;  // throws java.sql.SQLException
    function getUnicodeStream(para1: JLString): JIInputStream; overload;  // throws java.sql.SQLException
    function getURL(para1: jint): JNURL; overload;  // throws java.sql.SQLException
    function getURL(para1: JLString): JNURL; overload;  // throws java.sql.SQLException
    function getWarnings(): JSSQLWarning; overload;  // throws java.sql.SQLException
    procedure insertRow(); overload;  // throws java.sql.SQLException
    function isAfterLast(): jboolean; overload;  // throws java.sql.SQLException
    function isBeforeFirst(): jboolean; overload;  // throws java.sql.SQLException
    function isFirst(): jboolean; overload;  // throws java.sql.SQLException
    function isLast(): jboolean; overload;  // throws java.sql.SQLException
    function last(): jboolean; overload;  // throws java.sql.SQLException
    procedure moveToCurrentRow(); overload;  // throws java.sql.SQLException
    procedure moveToInsertRow(); overload;  // throws java.sql.SQLException
    function next(): jboolean; overload;  // throws java.sql.SQLException
    function previous(): jboolean; overload;  // throws java.sql.SQLException
    procedure refreshRow(); overload;  // throws java.sql.SQLException
    function relative(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function rowDeleted(): jboolean; overload;  // throws java.sql.SQLException
    function rowInserted(): jboolean; overload;  // throws java.sql.SQLException
    function rowUpdated(): jboolean; overload;  // throws java.sql.SQLException
    procedure setFetchDirection(para1: jint); overload;  // throws java.sql.SQLException
    procedure setFetchSize(para1: jint); overload;  // throws java.sql.SQLException
    procedure updateArray(para1: jint; para2: JSArray); overload;  // throws java.sql.SQLException
    procedure updateArray(para1: JLString; para2: JSArray); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateBigDecimal(para1: jint; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure updateBigDecimal(para1: JLString; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: jint; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: JLString; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure updateBoolean(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure updateBoolean(para1: JLString; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure updateByte(para1: jint; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure updateByte(para1: JLString; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: jint; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: jint; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: JLString; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: JLString; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: jint; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: jint; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: JLString; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure updateDate(para1: jint; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure updateDate(para1: JLString; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure updateDouble(para1: jint; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure updateDouble(para1: JLString; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure updateFloat(para1: jint; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure updateFloat(para1: JLString; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure updateInt(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure updateInt(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure updateLong(para1: jint; para2: jlong); overload;  // throws java.sql.SQLException
    procedure updateLong(para1: JLString; para2: jlong); overload;  // throws java.sql.SQLException
    procedure updateNull(para1: jint); overload;  // throws java.sql.SQLException
    procedure updateNull(para1: JLString); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: jint; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: JLString; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateRef(para1: jint; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure updateRef(para1: JLString; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure updateRow(); overload;  // throws java.sql.SQLException
    procedure updateShort(para1: jint; para2: jshort); overload;  // throws java.sql.SQLException
    procedure updateShort(para1: JLString; para2: jshort); overload;  // throws java.sql.SQLException
    procedure updateString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateTime(para1: jint; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure updateTime(para1: JLString; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure updateTimestamp(para1: jint; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure updateTimestamp(para1: JLString; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload;  // throws java.sql.SQLException
    function getRowId(para1: jint): JSRowId; overload;  // throws java.sql.SQLException
    function getRowId(para1: JLString): JSRowId; overload;  // throws java.sql.SQLException
    procedure updateRowId(para1: jint; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure updateRowId(para1: JLString; para2: JSRowId); overload;  // throws java.sql.SQLException
    function getHoldability(): jint; overload;  // throws java.sql.SQLException
    function isClosed(): jboolean; overload;  // throws java.sql.SQLException
    procedure updateNString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateNString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: jint; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: JLString; para2: JSNClob); overload;  // throws java.sql.SQLException
    function getNClob(para1: jint): JSNClob; overload;  // throws java.sql.SQLException
    function getNClob(para1: JLString): JSNClob; overload;  // throws java.sql.SQLException
    function getSQLXML(para1: jint): JSSQLXML; overload;  // throws java.sql.SQLException
    function getSQLXML(para1: JLString): JSSQLXML; overload;  // throws java.sql.SQLException
    procedure updateSQLXML(para1: jint; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure updateSQLXML(para1: JLString; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    function getNString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getNString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JSResultSetMetaData = interface external 'java.sql' name 'ResultSetMetaData' (JSWrapper)
    const
      columnNoNulls = 0;
      columnNullable = 1;
      columnNullableUnknown = 2;
    function getCatalogName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getColumnClassName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getColumnCount(): jint; overload;  // throws java.sql.SQLException
    function getColumnDisplaySize(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getColumnLabel(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getColumnName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getColumnType(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getColumnTypeName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getPrecision(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getScale(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getSchemaName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getTableName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function isAutoIncrement(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isCaseSensitive(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isCurrency(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isDefinitelyWritable(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isNullable(para1: jint): jint; overload;  // throws java.sql.SQLException
    function isReadOnly(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isSearchable(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isSigned(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isWritable(para1: jint): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSStatement = interface external 'java.sql' name 'Statement' (JSWrapper)
    const
      CLOSE_ALL_RESULTS = 3;
      CLOSE_CURRENT_RESULT = 1;
      EXECUTE_FAILED = -3;
      KEEP_CURRENT_RESULT = 2;
      NO_GENERATED_KEYS = 2;
      RETURN_GENERATED_KEYS = 1;
      SUCCESS_NO_INFO = -2;
    procedure addBatch(para1: JLString); overload;  // throws java.sql.SQLException
    procedure cancel(); overload;  // throws java.sql.SQLException
    procedure clearBatch(); overload;  // throws java.sql.SQLException
    procedure clearWarnings(); overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    function execute(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; para2: Arr1jint): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; var para2: array of jint): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; para2: Arr1JLString): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; var para2: array of JLString): jboolean; overload;  // throws java.sql.SQLException
    function executeBatch(): Arr1jint; overload;  // throws java.sql.SQLException
    function executeQuery(para1: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; para2: jint): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; para2: Arr1jint): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; var para2: array of jint): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; para2: Arr1JLString): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; var para2: array of JLString): jint; overload;  // throws java.sql.SQLException
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function getFetchDirection(): jint; overload;  // throws java.sql.SQLException
    function getFetchSize(): jint; overload;  // throws java.sql.SQLException
    function getGeneratedKeys(): JSResultSet; overload;  // throws java.sql.SQLException
    function getMaxFieldSize(): jint; overload;  // throws java.sql.SQLException
    function getMaxRows(): jint; overload;  // throws java.sql.SQLException
    function getMoreResults(): jboolean; overload;  // throws java.sql.SQLException
    function getMoreResults(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getQueryTimeout(): jint; overload;  // throws java.sql.SQLException
    function getResultSet(): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSetConcurrency(): jint; overload;  // throws java.sql.SQLException
    function getResultSetHoldability(): jint; overload;  // throws java.sql.SQLException
    function getResultSetType(): jint; overload;  // throws java.sql.SQLException
    function getUpdateCount(): jint; overload;  // throws java.sql.SQLException
    function getWarnings(): JSSQLWarning; overload;  // throws java.sql.SQLException
    procedure setCursorName(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setEscapeProcessing(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure setFetchDirection(para1: jint); overload;  // throws java.sql.SQLException
    procedure setFetchSize(para1: jint); overload;  // throws java.sql.SQLException
    procedure setMaxFieldSize(para1: jint); overload;  // throws java.sql.SQLException
    procedure setMaxRows(para1: jint); overload;  // throws java.sql.SQLException
    procedure setQueryTimeout(para1: jint); overload;  // throws java.sql.SQLException
    function isClosed(): jboolean; overload;  // throws java.sql.SQLException
    procedure setPoolable(para1: jboolean); overload;  // throws java.sql.SQLException
    function isPoolable(): jboolean; overload;  // throws java.sql.SQLException
  end;

  JUHashtable = class external 'java.util' name 'Hashtable' (JUDictionary, JUMap, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: JUMap); overload;
    function clone(): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
  strict protected
    procedure rehash(); overload; virtual;
  public
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keys(): JUEnumeration; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUStringTokenizer = class external 'java.util' name 'StringTokenizer' (JLObject, JUEnumeration)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jboolean); overload;
    function countTokens(): jint; overload; virtual;
    function hasMoreElements(): jboolean; overload; virtual;
    function hasMoreTokens(): jboolean; overload; virtual;
    function nextElement(): JLObject; overload; virtual;
    function nextToken(): JLString; overload; virtual;
    function nextToken(para1: JLString): JLString; overload; virtual;
  end;

  JBPropertyChangeListener = interface external 'java.beans' name 'PropertyChangeListener' (JUEventListener)
    procedure propertyChange(para1: JBPropertyChangeEvent); overload;
  end;

  JUEventListenerProxy = class abstract external 'java.util' name 'EventListenerProxy' (JLObject, JUEventListener)
  public
    constructor create(para1: JUEventListener); overload;
    function getListener(): JUEventListener; overload; virtual;
  end;

  JUPNodeChangeListener = interface external 'java.util.prefs' name 'NodeChangeListener' (JUEventListener)
    procedure childAdded(para1: JUPNodeChangeEvent); overload;
    procedure childRemoved(para1: JUPNodeChangeEvent); overload;
  end;

  JUPPreferenceChangeListener = interface external 'java.util.prefs' name 'PreferenceChangeListener' (JUEventListener)
    procedure preferenceChange(para1: JUPPreferenceChangeEvent); overload;
  end;

  JNSHandshakeCompletedListener = interface external 'javax.net.ssl' name 'HandshakeCompletedListener' (JUEventListener)
    procedure handshakeCompleted(para1: JNSHandshakeCompletedEvent); overload;
  end;

  JNSSSLSessionBindingListener = interface external 'javax.net.ssl' name 'SSLSessionBindingListener' (JUEventListener)
    procedure valueBound(para1: JNSSSLSessionBindingEvent); overload;
    procedure valueUnbound(para1: JNSSSLSessionBindingEvent); overload;
  end;

  JSConnectionEventListener = interface external 'javax.sql' name 'ConnectionEventListener' (JUEventListener)
    procedure connectionClosed(para1: JSConnectionEvent); overload;
    procedure connectionErrorOccurred(para1: JSConnectionEvent); overload;
  end;

  JSRowSetListener = interface external 'javax.sql' name 'RowSetListener' (JUEventListener)
    procedure cursorMoved(para1: JSRowSetEvent); overload;
    procedure rowChanged(para1: JSRowSetEvent); overload;
    procedure rowSetChanged(para1: JSRowSetEvent); overload;
  end;

  JSStatementEventListener = interface external 'javax.sql' name 'StatementEventListener' (JUEventListener)
    procedure statementClosed(para1: JSStatementEvent); overload;
    procedure statementErrorOccurred(para1: JSStatementEvent); overload;
  end;

  ACContentQueryMap = class external 'android.content' name 'ContentQueryMap' (JUObservable)
  public
    constructor create(para1: ADCursor; para2: JLString; para3: jboolean; para4: AOHandler); overload;
    procedure setKeepUpdated(para1: jboolean); overload; virtual;
    function getValues(para1: JLString): ACContentValues; overload; virtual;
    procedure requery(); overload; virtual;
    function getRows(): JUMap; overload; virtual;
    procedure close(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JUListResourceBundle = class abstract external 'java.util' name 'ListResourceBundle' (JUResourceBundle)
  public
    constructor create(); overload;
  strict protected
    function getContents(): Arr2JLObject; overload; virtual; abstract;
  public
    function getKeys(): JUEnumeration; overload; virtual;
    function handleGetObject(para1: JLString): JLObject; overload; virtual; final;
  strict protected
    function handleKeySet(): JUSet; overload; virtual;
  end;

  JUPropertyResourceBundle = class external 'java.util' name 'PropertyResourceBundle' (JUResourceBundle)
  public
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    constructor create(para1: JIReader); overload;  // throws java.io.IOException
  strict protected
    function handleKeySet(): JUSet; overload; virtual;
  public
    function getKeys(): JUEnumeration; overload; virtual;
    function handleGetObject(para1: JLString): JLObject; overload; virtual;
  end;

  JUCExecutorCompletionService = class external 'java.util.concurrent' name 'ExecutorCompletionService' (JLObject, JUCCompletionService)
  public
    constructor create(para1: JUCExecutor); overload;
    constructor create(para1: JUCExecutor; para2: JUCBlockingQueue); overload;
    function submit(para1: JUCCallable): JUCFuture; overload; virtual;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload; virtual;
    function take(): JUCFuture; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JUCFuture; overload; virtual;
    function poll(para1: jlong; para2: JUCTimeUnit): JUCFuture; overload; virtual;  // throws java.lang.InterruptedException
  end;

  JUCExecutorService = interface external 'java.util.concurrent' name 'ExecutorService' (JUCExecutor)
    procedure shutdown(); overload;
    function shutdownNow(): JUList; overload;
    function isShutdown(): jboolean; overload;
    function isTerminated(): jboolean; overload;
    function awaitTermination(para1: jlong; para2: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function submit(para1: JUCCallable): JUCFuture; overload;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload;
    function submit(para1: JLRunnable): JUCFuture; overload;
    function invokeAll(para1: JUCollection): JUList; overload;  // throws java.lang.InterruptedException
    function invokeAll(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JUList; overload;  // throws java.lang.InterruptedException
    function invokeAny(para1: JUCollection): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function invokeAny(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
  end;

  JUCRunnableFuture = interface external 'java.util.concurrent' name 'RunnableFuture' (JLRunnable, JUCFuture)
    procedure run(); overload;
  end;

  JUCLReentrantLock = class external 'java.util.concurrent.locks' name 'ReentrantLock' (JLObject, JUCLLock, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure lock(); overload; virtual;
    procedure lockInterruptibly(); overload; virtual;  // throws java.lang.InterruptedException
    function tryLock(): jboolean; overload; virtual;
    function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure unlock(); overload; virtual;
    function newCondition(): JUCLCondition; overload; virtual;
    function getHoldCount(): jint; overload; virtual;
    function isHeldByCurrentThread(): jboolean; overload; virtual;
    function isLocked(): jboolean; overload; virtual;
    function isFair(): jboolean; overload; virtual; final;
  strict protected
    function getOwner(): JLThread; overload; virtual;
  public
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasQueuedThread(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
  strict protected
    function getQueuedThreads(): JUCollection; overload; virtual;
  public
    function hasWaiters(para1: JUCLCondition): jboolean; overload; virtual;
    function getWaitQueueLength(para1: JUCLCondition): jint; overload; virtual;
  strict protected
    function getWaitingThreads(para1: JUCLCondition): JUCollection; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  end;

  JUCLReentrantReadWriteLock = class external 'java.util.concurrent.locks' name 'ReentrantReadWriteLock' (JLObject, JUCLReadWriteLock, JISerializable)
  public
    type
      InnerWriteLock = class;
      Arr1InnerWriteLock = array of InnerWriteLock;
      Arr2InnerWriteLock = array of Arr1InnerWriteLock;
      Arr3InnerWriteLock = array of Arr2InnerWriteLock;
      InnerReadLock = class;
      Arr1InnerReadLock = array of InnerReadLock;
      Arr2InnerReadLock = array of Arr1InnerReadLock;
      Arr3InnerReadLock = array of Arr2InnerReadLock;
      InnerWriteLock = class external 'java.util.concurrent.locks' name 'WriteLock' (JLObject, JUCLLock, JISerializable)
      strict protected
        constructor create(para1: JUCLReentrantReadWriteLock); overload;
      public
        procedure lock(); overload; virtual;
        procedure lockInterruptibly(); overload; virtual;  // throws java.lang.InterruptedException
        function tryLock(): jboolean; overload; virtual;
        function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
        procedure unlock(); overload; virtual;
        function newCondition(): JUCLCondition; overload; virtual;
        function toString(): JLString; overload; virtual;
        function isHeldByCurrentThread(): jboolean; overload; virtual;
        function getHoldCount(): jint; overload; virtual;
      end;

      InnerReadLock = class external 'java.util.concurrent.locks' name 'ReadLock' (JLObject, JUCLLock, JISerializable)
      strict protected
        constructor create(para1: JUCLReentrantReadWriteLock); overload;
      public
        procedure lock(); overload; virtual;
        procedure lockInterruptibly(); overload; virtual;  // throws java.lang.InterruptedException
        function tryLock(): jboolean; overload; virtual;
        function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
        procedure unlock(); overload; virtual;
        function newCondition(): JUCLCondition; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    function writeLock(): JUCLReentrantReadWriteLock.InnerWriteLock; overload; virtual;
    function readLock(): JUCLReentrantReadWriteLock.InnerReadLock; overload; virtual;
    function isFair(): jboolean; overload; virtual; final;
  strict protected
    function getOwner(): JLThread; overload; virtual;
  public
    function getReadLockCount(): jint; overload; virtual;
    function isWriteLocked(): jboolean; overload; virtual;
    function isWriteLockedByCurrentThread(): jboolean; overload; virtual;
    function getWriteHoldCount(): jint; overload; virtual;
    function getReadHoldCount(): jint; overload; virtual;
  strict protected
    function getQueuedWriterThreads(): JUCollection; overload; virtual;
    function getQueuedReaderThreads(): JUCollection; overload; virtual;
  public
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasQueuedThread(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
  strict protected
    function getQueuedThreads(): JUCollection; overload; virtual;
  public
    function hasWaiters(para1: JUCLCondition): jboolean; overload; virtual;
    function getWaitQueueLength(para1: JUCLCondition): jint; overload; virtual;
  strict protected
    function getWaitingThreads(para1: JUCLCondition): JUCollection; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    function writeLock(): JUCLLock; overload; virtual;
    function readLock(): JUCLLock; overload; virtual;
  end;

  JULSimpleFormatter = class external 'java.util.logging' name 'SimpleFormatter' (JULFormatter)
  public
    constructor create(); overload;
    function format(para1: JULLogRecord): JLString; overload; virtual;
  end;

  JULXMLFormatter = class external 'java.util.logging' name 'XMLFormatter' (JULFormatter)
  public
    constructor create(); overload;
    function format(para1: JULLogRecord): JLString; overload; virtual;
    function getHead(para1: JULHandler): JLString; overload; virtual;
    function getTail(para1: JULHandler): JLString; overload; virtual;
  end;

  JULMemoryHandler = class external 'java.util.logging' name 'MemoryHandler' (JULHandler)
  public
    constructor create(); overload;
    constructor create(para1: JULHandler; para2: jint; para3: JULLevel); overload;
    procedure close(); overload; virtual;
    procedure flush(); overload; virtual;
    procedure publish(para1: JULLogRecord); overload; virtual;
    function getPushLevel(): JULLevel; overload; virtual;
    function isLoggable(para1: JULLogRecord): jboolean; overload; virtual;
    procedure push(); overload; virtual;
    procedure setPushLevel(para1: JULLevel); overload; virtual;
  end;

  JULStreamHandler = class external 'java.util.logging' name 'StreamHandler' (JULHandler)
  public
    constructor create(); overload;
    constructor create(para1: JIOutputStream; para2: JULFormatter); overload;
  strict protected
    procedure setOutputStream(para1: JIOutputStream); overload; virtual;
  public
    procedure setEncoding(para1: JLString); overload; virtual;  // throws java.io.UnsupportedEncodingException
    procedure close(); overload; virtual;
    procedure flush(); overload; virtual;
    procedure publish(para1: JULLogRecord); overload; virtual;
    function isLoggable(para1: JULLogRecord): jboolean; overload; virtual;
  end;

  JUPAbstractPreferences = class abstract external 'java.util.prefs' name 'AbstractPreferences' (JUPPreferences)
  strict protected
    final var
      flock: JLObject; external name 'lock';
  strict protected
    var
      fnewNode: jboolean; external name 'newNode';
  strict protected
    constructor create(para1: JUPAbstractPreferences; para2: JLString); overload;
    function cachedChildren(): Arr1JUPAbstractPreferences; overload; virtual; final;
    function getChild(para1: JLString): JUPAbstractPreferences; overload; virtual;  // throws java.util.prefs.BackingStoreException
    function isRemoved(): jboolean; overload; virtual;
    procedure flushSpi(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function childrenNamesSpi(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function childSpi(para1: JLString): JUPAbstractPreferences; overload; virtual; abstract;
    procedure putSpi(para1: JLString; para2: JLString); overload; virtual; abstract;
    function getSpi(para1: JLString): JLString; overload; virtual; abstract;
    function keysSpi(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure removeNodeSpi(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure removeSpi(para1: JLString); overload; virtual; abstract;
    procedure syncSpi(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
  public
    function absolutePath(): JLString; overload; virtual;
    function childrenNames(): Arr1JLString; overload; virtual;  // throws java.util.prefs.BackingStoreException
    procedure clear(); overload; virtual;  // throws java.util.prefs.BackingStoreException
    procedure exportNode(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    procedure exportSubtree(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    procedure flush(); overload; virtual;  // throws java.util.prefs.BackingStoreException
    function get(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getBoolean(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    function getByteArray(para1: JLString; para2: Arr1jbyte): Arr1jbyte; overload; virtual;
    function getByteArray(para1: JLString; var para2: array of jbyte): Arr1jbyte; overload; virtual;
    function getDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    function getFloat(para1: JLString; para2: jfloat): jfloat; overload; virtual;
    function getInt(para1: JLString; para2: jint): jint; overload; virtual;
    function getLong(para1: JLString; para2: jlong): jlong; overload; virtual;
    function isUserNode(): jboolean; overload; virtual;
    function keys(): Arr1JLString; overload; virtual;  // throws java.util.prefs.BackingStoreException
    function name(): JLString; overload; virtual;
    function node(para1: JLString): JUPPreferences; overload; virtual;
    function nodeExists(para1: JLString): jboolean; overload; virtual;  // throws java.util.prefs.BackingStoreException
    function parent(): JUPPreferences; overload; virtual;
    procedure put(para1: JLString; para2: JLString); overload; virtual;
    procedure putBoolean(para1: JLString; para2: jboolean); overload; virtual;
    procedure putByteArray(para1: JLString; para2: Arr1jbyte); overload; virtual;
    procedure putByteArray(para1: JLString; var para2: array of jbyte); overload; virtual;
    procedure putDouble(para1: JLString; para2: jdouble); overload; virtual;
    procedure putFloat(para1: JLString; para2: jfloat); overload; virtual;
    procedure putInt(para1: JLString; para2: jint); overload; virtual;
    procedure putLong(para1: JLString; para2: jlong); overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    procedure removeNode(); overload; virtual;  // throws java.util.prefs.BackingStoreException
    procedure addNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual;
    procedure addPreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual;
    procedure removeNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual;
    procedure removePreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual;
    procedure sync(); overload; virtual;  // throws java.util.prefs.BackingStoreException
    function toString(): JLString; overload; virtual;
  end;

  JURMatcher = class sealed external 'java.util.regex' name 'Matcher' (JLObject, JURMatchResult)
  public
    function appendReplacement(para1: JLStringBuffer; para2: JLString): JURMatcher; overload; virtual;
    function reset(): JURMatcher; overload; virtual;
    function reset(para1: JLCharSequence): JURMatcher; overload; virtual;
    function usePattern(para1: JURPattern): JURMatcher; overload; virtual;
    function region(para1: jint; para2: jint): JURMatcher; overload; virtual;
    function appendTail(para1: JLStringBuffer): JLStringBuffer; overload; virtual;
    function replaceFirst(para1: JLString): JLString; overload; virtual;
    function replaceAll(para1: JLString): JLString; overload; virtual;
    function pattern(): JURPattern; overload; virtual;
    function group(para1: jint): JLString; overload; virtual;
    function group(): JLString; overload; virtual;
    function find(para1: jint): jboolean; overload; virtual;
    function find(): jboolean; overload; virtual;
    function lookingAt(): jboolean; overload; virtual;
    function matches(): jboolean; overload; virtual;
    function start(para1: jint): jint; overload; virtual;  // throws java.lang.IllegalStateException
    function &end(para1: jint): jint; overload; virtual;
    class function quoteReplacement(para1: JLString): JLString; static; overload;
    function start(): jint; overload; virtual;
    function groupCount(): jint; overload; virtual;
    function &end(): jint; overload; virtual;
    function toMatchResult(): JURMatchResult; overload; virtual;
    function useAnchoringBounds(para1: jboolean): JURMatcher; overload; virtual;
    function hasAnchoringBounds(): jboolean; overload; virtual;
    function useTransparentBounds(para1: jboolean): JURMatcher; overload; virtual;
    function hasTransparentBounds(): jboolean; overload; virtual;
    function regionStart(): jint; overload; virtual;
    function regionEnd(): jint; overload; virtual;
    function requireEnd(): jboolean; overload; virtual;
    function hitEnd(): jboolean; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JUZAdler32 = class external 'java.util.zip' name 'Adler32' (JLObject, JUZChecksum)
  public
    constructor create(); overload;
    function getValue(): jlong; overload; virtual;
    procedure reset(); overload; virtual;
    procedure update(para1: jint); overload; virtual;
    procedure update(para1: Arr1jbyte); overload; virtual;
    procedure update(var para1: array of jbyte); overload; virtual;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
  end;

  JUZCRC32 = class external 'java.util.zip' name 'CRC32' (JLObject, JUZChecksum)
  public
    constructor create(); overload;
    function getValue(): jlong; overload; virtual;
    procedure reset(); overload; virtual;
    procedure update(para1: jint); overload; virtual;
    procedure update(para1: Arr1jbyte); overload; virtual;
    procedure update(var para1: array of jbyte); overload; virtual;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
  end;

  JUJJarFile = class external 'java.util.jar' name 'JarFile' (JUZZipFile)
  public
    const
      MANIFEST_NAME = 'META-INF/MANIFEST.MF';
  public
    constructor create(para1: JIFile); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jboolean; para3: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException
    function entries(): JUEnumeration; overload; virtual;
    function getJarEntry(para1: JLString): JUJJarEntry; overload; virtual;
    function getManifest(): JUJManifest; overload; virtual;  // throws java.io.IOException
    function getInputStream(para1: JUZZipEntry): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getEntry(para1: JLString): JUZZipEntry; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JCNullCipher = class external 'javax.crypto' name 'NullCipher' (JCCipher)
  public
    constructor create(); overload;
  end;

  JMKEEGL10 = interface external 'javax.microedition.khronos.egl' name 'EGL10' (JMKEEGL)
    const
      EGL_SUCCESS = 12288;
      EGL_NOT_INITIALIZED = 12289;
      EGL_BAD_ACCESS = 12290;
      EGL_BAD_ALLOC = 12291;
      EGL_BAD_ATTRIBUTE = 12292;
      EGL_BAD_CONFIG = 12293;
      EGL_BAD_CONTEXT = 12294;
      EGL_BAD_CURRENT_SURFACE = 12295;
      EGL_BAD_DISPLAY = 12296;
      EGL_BAD_MATCH = 12297;
      EGL_BAD_NATIVE_PIXMAP = 12298;
      EGL_BAD_NATIVE_WINDOW = 12299;
      EGL_BAD_PARAMETER = 12300;
      EGL_BAD_SURFACE = 12301;
      EGL_BUFFER_SIZE = 12320;
      EGL_ALPHA_SIZE = 12321;
      EGL_BLUE_SIZE = 12322;
      EGL_GREEN_SIZE = 12323;
      EGL_RED_SIZE = 12324;
      EGL_DEPTH_SIZE = 12325;
      EGL_STENCIL_SIZE = 12326;
      EGL_CONFIG_CAVEAT = 12327;
      EGL_CONFIG_ID = 12328;
      EGL_LEVEL = 12329;
      EGL_MAX_PBUFFER_HEIGHT = 12330;
      EGL_MAX_PBUFFER_PIXELS = 12331;
      EGL_MAX_PBUFFER_WIDTH = 12332;
      EGL_NATIVE_RENDERABLE = 12333;
      EGL_NATIVE_VISUAL_ID = 12334;
      EGL_NATIVE_VISUAL_TYPE = 12335;
      EGL_SAMPLES = 12337;
      EGL_SAMPLE_BUFFERS = 12338;
      EGL_SURFACE_TYPE = 12339;
      EGL_TRANSPARENT_TYPE = 12340;
      EGL_TRANSPARENT_BLUE_VALUE = 12341;
      EGL_TRANSPARENT_GREEN_VALUE = 12342;
      EGL_TRANSPARENT_RED_VALUE = 12343;
      EGL_NONE = 12344;
      EGL_LUMINANCE_SIZE = 12349;
      EGL_ALPHA_MASK_SIZE = 12350;
      EGL_COLOR_BUFFER_TYPE = 12351;
      EGL_RENDERABLE_TYPE = 12352;
      EGL_SLOW_CONFIG = 12368;
      EGL_NON_CONFORMANT_CONFIG = 12369;
      EGL_TRANSPARENT_RGB = 12370;
      EGL_RGB_BUFFER = 12430;
      EGL_LUMINANCE_BUFFER = 12431;
      EGL_VENDOR = 12371;
      EGL_VERSION = 12372;
      EGL_EXTENSIONS = 12373;
      EGL_HEIGHT = 12374;
      EGL_WIDTH = 12375;
      EGL_LARGEST_PBUFFER = 12376;
      EGL_RENDER_BUFFER = 12422;
      EGL_COLORSPACE = 12423;
      EGL_ALPHA_FORMAT = 12424;
      EGL_HORIZONTAL_RESOLUTION = 12432;
      EGL_VERTICAL_RESOLUTION = 12433;
      EGL_PIXEL_ASPECT_RATIO = 12434;
      EGL_SINGLE_BUFFER = 12421;
      EGL_CORE_NATIVE_ENGINE = 12379;
      EGL_DRAW = 12377;
      EGL_READ = 12378;
      EGL_DONT_CARE = -1;
      EGL_PBUFFER_BIT = 1;
      EGL_PIXMAP_BIT = 2;
      EGL_WINDOW_BIT = 4;
    final class var
      fEGL_DEFAULT_DISPLAY: JLObject; external name 'EGL_DEFAULT_DISPLAY';
      fEGL_NO_DISPLAY: JMKEEGLDisplay; external name 'EGL_NO_DISPLAY';
      fEGL_NO_CONTEXT: JMKEEGLContext; external name 'EGL_NO_CONTEXT';
      fEGL_NO_SURFACE: JMKEEGLSurface; external name 'EGL_NO_SURFACE';
    function eglChooseConfig(para1: JMKEEGLDisplay; para2: Arr1jint; para3: Arr1JMKEEGLConfig; para4: jint; para5: Arr1jint): jboolean; overload;
    function eglChooseConfig(para1: JMKEEGLDisplay; var para2: array of jint; var para3: array of JMKEEGLConfig; para4: jint; var para5: array of jint): jboolean; overload;
    function eglCopyBuffers(para1: JMKEEGLDisplay; para2: JMKEEGLSurface; para3: JLObject): jboolean; overload;
    function eglCreateContext(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: JMKEEGLContext; para4: Arr1jint): JMKEEGLContext; overload;
    function eglCreateContext(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: JMKEEGLContext; var para4: array of jint): JMKEEGLContext; overload;
    function eglCreatePbufferSurface(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: Arr1jint): JMKEEGLSurface; overload;
    function eglCreatePbufferSurface(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; var para3: array of jint): JMKEEGLSurface; overload;
    function eglCreatePixmapSurface(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: JLObject; para4: Arr1jint): JMKEEGLSurface; overload;
    function eglCreatePixmapSurface(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: JLObject; var para4: array of jint): JMKEEGLSurface; overload;
    function eglCreateWindowSurface(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: JLObject; para4: Arr1jint): JMKEEGLSurface; overload;
    function eglCreateWindowSurface(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: JLObject; var para4: array of jint): JMKEEGLSurface; overload;
    function eglDestroyContext(para1: JMKEEGLDisplay; para2: JMKEEGLContext): jboolean; overload;
    function eglDestroySurface(para1: JMKEEGLDisplay; para2: JMKEEGLSurface): jboolean; overload;
    function eglGetConfigAttrib(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: jint; para4: Arr1jint): jboolean; overload;
    function eglGetConfigAttrib(para1: JMKEEGLDisplay; para2: JMKEEGLConfig; para3: jint; var para4: array of jint): jboolean; overload;
    function eglGetConfigs(para1: JMKEEGLDisplay; para2: Arr1JMKEEGLConfig; para3: jint; para4: Arr1jint): jboolean; overload;
    function eglGetConfigs(para1: JMKEEGLDisplay; var para2: array of JMKEEGLConfig; para3: jint; var para4: array of jint): jboolean; overload;
    function eglGetCurrentContext(): JMKEEGLContext; overload;
    function eglGetCurrentDisplay(): JMKEEGLDisplay; overload;
    function eglGetCurrentSurface(para1: jint): JMKEEGLSurface; overload;
    function eglGetDisplay(para1: JLObject): JMKEEGLDisplay; overload;
    function eglGetError(): jint; overload;
    function eglInitialize(para1: JMKEEGLDisplay; para2: Arr1jint): jboolean; overload;
    function eglInitialize(para1: JMKEEGLDisplay; var para2: array of jint): jboolean; overload;
    function eglMakeCurrent(para1: JMKEEGLDisplay; para2: JMKEEGLSurface; para3: JMKEEGLSurface; para4: JMKEEGLContext): jboolean; overload;
    function eglQueryContext(para1: JMKEEGLDisplay; para2: JMKEEGLContext; para3: jint; para4: Arr1jint): jboolean; overload;
    function eglQueryContext(para1: JMKEEGLDisplay; para2: JMKEEGLContext; para3: jint; var para4: array of jint): jboolean; overload;
    function eglQueryString(para1: JMKEEGLDisplay; para2: jint): JLString; overload;
    function eglQuerySurface(para1: JMKEEGLDisplay; para2: JMKEEGLSurface; para3: jint; para4: Arr1jint): jboolean; overload;
    function eglQuerySurface(para1: JMKEEGLDisplay; para2: JMKEEGLSurface; para3: jint; var para4: array of jint): jboolean; overload;
    function eglSwapBuffers(para1: JMKEEGLDisplay; para2: JMKEEGLSurface): jboolean; overload;
    function eglTerminate(para1: JMKEEGLDisplay): jboolean; overload;
    function eglWaitGL(): jboolean; overload;
    function eglWaitNative(para1: jint; para2: JLObject): jboolean; overload;
  end;

  JMKOGL10 = interface external 'javax.microedition.khronos.opengles' name 'GL10' (JMKOGL)
    const
      GL_ADD = 260;
      GL_ALIASED_LINE_WIDTH_RANGE = 33902;
      GL_ALIASED_POINT_SIZE_RANGE = 33901;
      GL_ALPHA = 6406;
      GL_ALPHA_BITS = 3413;
      GL_ALPHA_TEST = 3008;
      GL_ALWAYS = 519;
      GL_AMBIENT = 4608;
      GL_AMBIENT_AND_DIFFUSE = 5634;
      GL_AND = 5377;
      GL_AND_INVERTED = 5380;
      GL_AND_REVERSE = 5378;
      GL_BACK = 1029;
      GL_BLEND = 3042;
      GL_BLUE_BITS = 3412;
      GL_BYTE = 5120;
      GL_CCW = 2305;
      GL_CLAMP_TO_EDGE = 33071;
      GL_CLEAR = 5376;
      GL_COLOR_ARRAY = 32886;
      GL_COLOR_BUFFER_BIT = 16384;
      GL_COLOR_LOGIC_OP = 3058;
      GL_COLOR_MATERIAL = 2903;
      GL_COMPRESSED_TEXTURE_FORMATS = 34467;
      GL_CONSTANT_ATTENUATION = 4615;
      GL_COPY = 5379;
      GL_COPY_INVERTED = 5388;
      GL_CULL_FACE = 2884;
      GL_CW = 2304;
      GL_DECAL = 8449;
      GL_DECR = 7683;
      GL_DEPTH_BITS = 3414;
      GL_DEPTH_BUFFER_BIT = 256;
      GL_DEPTH_TEST = 2929;
      GL_DIFFUSE = 4609;
      GL_DITHER = 3024;
      GL_DONT_CARE = 4352;
      GL_DST_ALPHA = 772;
      GL_DST_COLOR = 774;
      GL_EMISSION = 5632;
      GL_EQUAL = 514;
      GL_EQUIV = 5385;
      GL_EXP = 2048;
      GL_EXP2 = 2049;
      GL_EXTENSIONS = 7939;
      GL_FALSE = 0;
      GL_FASTEST = 4353;
      GL_FIXED = 5132;
      GL_FLAT = 7424;
      GL_FLOAT = 5126;
      GL_FOG = 2912;
      GL_FOG_COLOR = 2918;
      GL_FOG_DENSITY = 2914;
      GL_FOG_END = 2916;
      GL_FOG_HINT = 3156;
      GL_FOG_MODE = 2917;
      GL_FOG_START = 2915;
      GL_FRONT = 1028;
      GL_FRONT_AND_BACK = 1032;
      GL_GEQUAL = 518;
      GL_GREATER = 516;
      GL_GREEN_BITS = 3411;
      GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 35739;
      GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 35738;
      GL_INCR = 7682;
      GL_INVALID_ENUM = 1280;
      GL_INVALID_OPERATION = 1282;
      GL_INVALID_VALUE = 1281;
      GL_INVERT = 5386;
      GL_KEEP = 7680;
      GL_LEQUAL = 515;
      GL_LESS = 513;
      GL_LIGHT_MODEL_AMBIENT = 2899;
      GL_LIGHT_MODEL_TWO_SIDE = 2898;
      GL_LIGHT0 = 16384;
      GL_LIGHT1 = 16385;
      GL_LIGHT2 = 16386;
      GL_LIGHT3 = 16387;
      GL_LIGHT4 = 16388;
      GL_LIGHT5 = 16389;
      GL_LIGHT6 = 16390;
      GL_LIGHT7 = 16391;
      GL_LIGHTING = 2896;
      GL_LINE_LOOP = 2;
      GL_LINE_SMOOTH = 2848;
      GL_LINE_SMOOTH_HINT = 3154;
      GL_LINE_STRIP = 3;
      GL_LINEAR = 9729;
      GL_LINEAR_ATTENUATION = 4616;
      GL_LINEAR_MIPMAP_LINEAR = 9987;
      GL_LINEAR_MIPMAP_NEAREST = 9985;
      GL_LINES = 1;
      GL_LUMINANCE = 6409;
      GL_LUMINANCE_ALPHA = 6410;
      GL_MAX_ELEMENTS_INDICES = 33001;
      GL_MAX_ELEMENTS_VERTICES = 33000;
      GL_MAX_LIGHTS = 3377;
      GL_MAX_MODELVIEW_STACK_DEPTH = 3382;
      GL_MAX_PROJECTION_STACK_DEPTH = 3384;
      GL_MAX_TEXTURE_SIZE = 3379;
      GL_MAX_TEXTURE_STACK_DEPTH = 3385;
      GL_MAX_TEXTURE_UNITS = 34018;
      GL_MAX_VIEWPORT_DIMS = 3386;
      GL_MODELVIEW = 5888;
      GL_MODULATE = 8448;
      GL_MULTISAMPLE = 32925;
      GL_NAND = 5390;
      GL_NEAREST = 9728;
      GL_NEAREST_MIPMAP_LINEAR = 9986;
      GL_NEAREST_MIPMAP_NEAREST = 9984;
      GL_NEVER = 512;
      GL_NICEST = 4354;
      GL_NO_ERROR = 0;
      GL_NOOP = 5381;
      GL_NOR = 5384;
      GL_NORMAL_ARRAY = 32885;
      GL_NORMALIZE = 2977;
      GL_NOTEQUAL = 517;
      GL_NUM_COMPRESSED_TEXTURE_FORMATS = 34466;
      GL_ONE = 1;
      GL_ONE_MINUS_DST_ALPHA = 773;
      GL_ONE_MINUS_DST_COLOR = 775;
      GL_ONE_MINUS_SRC_ALPHA = 771;
      GL_ONE_MINUS_SRC_COLOR = 769;
      GL_OR = 5383;
      GL_OR_INVERTED = 5389;
      GL_OR_REVERSE = 5387;
      GL_OUT_OF_MEMORY = 1285;
      GL_PACK_ALIGNMENT = 3333;
      GL_PALETTE4_R5_G6_B5_OES = 35730;
      GL_PALETTE4_RGB5_A1_OES = 35732;
      GL_PALETTE4_RGB8_OES = 35728;
      GL_PALETTE4_RGBA4_OES = 35731;
      GL_PALETTE4_RGBA8_OES = 35729;
      GL_PALETTE8_R5_G6_B5_OES = 35735;
      GL_PALETTE8_RGB5_A1_OES = 35737;
      GL_PALETTE8_RGB8_OES = 35733;
      GL_PALETTE8_RGBA4_OES = 35736;
      GL_PALETTE8_RGBA8_OES = 35734;
      GL_PERSPECTIVE_CORRECTION_HINT = 3152;
      GL_POINT_SMOOTH = 2832;
      GL_POINT_SMOOTH_HINT = 3153;
      GL_POINTS = 0;
      GL_POINT_FADE_THRESHOLD_SIZE = 33064;
      GL_POINT_SIZE = 2833;
      GL_POLYGON_OFFSET_FILL = 32823;
      GL_POLYGON_SMOOTH_HINT = 3155;
      GL_POSITION = 4611;
      GL_PROJECTION = 5889;
      GL_QUADRATIC_ATTENUATION = 4617;
      GL_RED_BITS = 3410;
      GL_RENDERER = 7937;
      GL_REPEAT = 10497;
      GL_REPLACE = 7681;
      GL_RESCALE_NORMAL = 32826;
      GL_RGB = 6407;
      GL_RGBA = 6408;
      GL_SAMPLE_ALPHA_TO_COVERAGE = 32926;
      GL_SAMPLE_ALPHA_TO_ONE = 32927;
      GL_SAMPLE_COVERAGE = 32928;
      GL_SCISSOR_TEST = 3089;
      GL_SET = 5391;
      GL_SHININESS = 5633;
      GL_SHORT = 5122;
      GL_SMOOTH = 7425;
      GL_SMOOTH_LINE_WIDTH_RANGE = 2850;
      GL_SMOOTH_POINT_SIZE_RANGE = 2834;
      GL_SPECULAR = 4610;
      GL_SPOT_CUTOFF = 4614;
      GL_SPOT_DIRECTION = 4612;
      GL_SPOT_EXPONENT = 4613;
      GL_SRC_ALPHA = 770;
      GL_SRC_ALPHA_SATURATE = 776;
      GL_SRC_COLOR = 768;
      GL_STACK_OVERFLOW = 1283;
      GL_STACK_UNDERFLOW = 1284;
      GL_STENCIL_BITS = 3415;
      GL_STENCIL_BUFFER_BIT = 1024;
      GL_STENCIL_TEST = 2960;
      GL_SUBPIXEL_BITS = 3408;
      GL_TEXTURE = 5890;
      GL_TEXTURE_2D = 3553;
      GL_TEXTURE_COORD_ARRAY = 32888;
      GL_TEXTURE_ENV = 8960;
      GL_TEXTURE_ENV_COLOR = 8705;
      GL_TEXTURE_ENV_MODE = 8704;
      GL_TEXTURE_MAG_FILTER = 10240;
      GL_TEXTURE_MIN_FILTER = 10241;
      GL_TEXTURE_WRAP_S = 10242;
      GL_TEXTURE_WRAP_T = 10243;
      GL_TEXTURE0 = 33984;
      GL_TEXTURE1 = 33985;
      GL_TEXTURE2 = 33986;
      GL_TEXTURE3 = 33987;
      GL_TEXTURE4 = 33988;
      GL_TEXTURE5 = 33989;
      GL_TEXTURE6 = 33990;
      GL_TEXTURE7 = 33991;
      GL_TEXTURE8 = 33992;
      GL_TEXTURE9 = 33993;
      GL_TEXTURE10 = 33994;
      GL_TEXTURE11 = 33995;
      GL_TEXTURE12 = 33996;
      GL_TEXTURE13 = 33997;
      GL_TEXTURE14 = 33998;
      GL_TEXTURE15 = 33999;
      GL_TEXTURE16 = 34000;
      GL_TEXTURE17 = 34001;
      GL_TEXTURE18 = 34002;
      GL_TEXTURE19 = 34003;
      GL_TEXTURE20 = 34004;
      GL_TEXTURE21 = 34005;
      GL_TEXTURE22 = 34006;
      GL_TEXTURE23 = 34007;
      GL_TEXTURE24 = 34008;
      GL_TEXTURE25 = 34009;
      GL_TEXTURE26 = 34010;
      GL_TEXTURE27 = 34011;
      GL_TEXTURE28 = 34012;
      GL_TEXTURE29 = 34013;
      GL_TEXTURE30 = 34014;
      GL_TEXTURE31 = 34015;
      GL_TRIANGLE_FAN = 6;
      GL_TRIANGLE_STRIP = 5;
      GL_TRIANGLES = 4;
      GL_TRUE = 1;
      GL_UNPACK_ALIGNMENT = 3317;
      GL_UNSIGNED_BYTE = 5121;
      GL_UNSIGNED_SHORT = 5123;
      GL_UNSIGNED_SHORT_4_4_4_4 = 32819;
      GL_UNSIGNED_SHORT_5_5_5_1 = 32820;
      GL_UNSIGNED_SHORT_5_6_5 = 33635;
      GL_VENDOR = 7936;
      GL_VERSION = 7938;
      GL_VERTEX_ARRAY = 32884;
      GL_XOR = 5382;
      GL_ZERO = 0;
    procedure glActiveTexture(para1: jint); overload;
    procedure glAlphaFunc(para1: jint; para2: jfloat); overload;
    procedure glAlphaFuncx(para1: jint; para2: jint); overload;
    procedure glBindTexture(para1: jint; para2: jint); overload;
    procedure glBlendFunc(para1: jint; para2: jint); overload;
    procedure glClear(para1: jint); overload;
    procedure glClearColor(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    procedure glClearColorx(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glClearDepthf(para1: jfloat); overload;
    procedure glClearDepthx(para1: jint); overload;
    procedure glClearStencil(para1: jint); overload;
    procedure glClientActiveTexture(para1: jint); overload;
    procedure glColor4f(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    procedure glColor4x(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glColorMask(para1: jboolean; para2: jboolean; para3: jboolean; para4: jboolean); overload;
    procedure glColorPointer(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glCompressedTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JNBuffer); overload;
    procedure glCompressedTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); overload;
    procedure glCopyTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload;
    procedure glCopyTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload;
    procedure glCullFace(para1: jint); overload;
    procedure glDeleteTextures(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glDeleteTextures(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glDeleteTextures(para1: jint; para2: JNIntBuffer); overload;
    procedure glDepthFunc(para1: jint); overload;
    procedure glDepthMask(para1: jboolean); overload;
    procedure glDepthRangef(para1: jfloat; para2: jfloat); overload;
    procedure glDepthRangex(para1: jint; para2: jint); overload;
    procedure glDisable(para1: jint); overload;
    procedure glDisableClientState(para1: jint); overload;
    procedure glDrawArrays(para1: jint; para2: jint; para3: jint); overload;
    procedure glDrawElements(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glEnable(para1: jint); overload;
    procedure glEnableClientState(para1: jint); overload;
    procedure glFinish(); overload;
    procedure glFlush(); overload;
    procedure glFogf(para1: jint; para2: jfloat); overload;
    procedure glFogfv(para1: jint; para2: Arr1jfloat; para3: jint); overload;
    procedure glFogfv(para1: jint; var para2: array of jfloat; para3: jint); overload;
    procedure glFogfv(para1: jint; para2: JNFloatBuffer); overload;
    procedure glFogx(para1: jint; para2: jint); overload;
    procedure glFogxv(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glFogxv(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glFogxv(para1: jint; para2: JNIntBuffer); overload;
    procedure glFrontFace(para1: jint); overload;
    procedure glFrustumf(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload;
    procedure glFrustumx(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    procedure glGenTextures(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGenTextures(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGenTextures(para1: jint; para2: JNIntBuffer); overload;
    function glGetError(): jint; overload;
    procedure glGetIntegerv(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGetIntegerv(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGetIntegerv(para1: jint; para2: JNIntBuffer); overload;
    function glGetString(para1: jint): JLString; overload;
    procedure glHint(para1: jint; para2: jint); overload;
    procedure glLightModelf(para1: jint; para2: jfloat); overload;
    procedure glLightModelfv(para1: jint; para2: Arr1jfloat; para3: jint); overload;
    procedure glLightModelfv(para1: jint; var para2: array of jfloat; para3: jint); overload;
    procedure glLightModelfv(para1: jint; para2: JNFloatBuffer); overload;
    procedure glLightModelx(para1: jint; para2: jint); overload;
    procedure glLightModelxv(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glLightModelxv(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glLightModelxv(para1: jint; para2: JNIntBuffer); overload;
    procedure glLightf(para1: jint; para2: jint; para3: jfloat); overload;
    procedure glLightfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glLightfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glLightfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glLightx(para1: jint; para2: jint; para3: jint); overload;
    procedure glLightxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glLightxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glLightxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glLineWidth(para1: jfloat); overload;
    procedure glLineWidthx(para1: jint); overload;
    procedure glLoadIdentity(); overload;
    procedure glLoadMatrixf(para1: Arr1jfloat; para2: jint); overload;
    procedure glLoadMatrixf(var para1: array of jfloat; para2: jint); overload;
    procedure glLoadMatrixf(para1: JNFloatBuffer); overload;
    procedure glLoadMatrixx(para1: Arr1jint; para2: jint); overload;
    procedure glLoadMatrixx(var para1: array of jint; para2: jint); overload;
    procedure glLoadMatrixx(para1: JNIntBuffer); overload;
    procedure glLogicOp(para1: jint); overload;
    procedure glMaterialf(para1: jint; para2: jint; para3: jfloat); overload;
    procedure glMaterialfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glMaterialfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glMaterialfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glMaterialx(para1: jint; para2: jint; para3: jint); overload;
    procedure glMaterialxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glMaterialxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glMaterialxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glMatrixMode(para1: jint); overload;
    procedure glMultMatrixf(para1: Arr1jfloat; para2: jint); overload;
    procedure glMultMatrixf(var para1: array of jfloat; para2: jint); overload;
    procedure glMultMatrixf(para1: JNFloatBuffer); overload;
    procedure glMultMatrixx(para1: Arr1jint; para2: jint); overload;
    procedure glMultMatrixx(var para1: array of jint; para2: jint); overload;
    procedure glMultMatrixx(para1: JNIntBuffer); overload;
    procedure glMultiTexCoord4f(para1: jint; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); overload;
    procedure glMultiTexCoord4x(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure glNormal3f(para1: jfloat; para2: jfloat; para3: jfloat); overload;
    procedure glNormal3x(para1: jint; para2: jint; para3: jint); overload;
    procedure glNormalPointer(para1: jint; para2: jint; para3: JNBuffer); overload;
    procedure glOrthof(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload;
    procedure glOrthox(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    procedure glPixelStorei(para1: jint; para2: jint); overload;
    procedure glPointSize(para1: jfloat); overload;
    procedure glPointSizex(para1: jint); overload;
    procedure glPolygonOffset(para1: jfloat; para2: jfloat); overload;
    procedure glPolygonOffsetx(para1: jint; para2: jint); overload;
    procedure glPopMatrix(); overload;
    procedure glPushMatrix(); overload;
    procedure glReadPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: JNBuffer); overload;
    procedure glRotatef(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    procedure glRotatex(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glSampleCoverage(para1: jfloat; para2: jboolean); overload;
    procedure glSampleCoveragex(para1: jint; para2: jboolean); overload;
    procedure glScalef(para1: jfloat; para2: jfloat; para3: jfloat); overload;
    procedure glScalex(para1: jint; para2: jint; para3: jint); overload;
    procedure glScissor(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glShadeModel(para1: jint); overload;
    procedure glStencilFunc(para1: jint; para2: jint; para3: jint); overload;
    procedure glStencilMask(para1: jint); overload;
    procedure glStencilOp(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexCoordPointer(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glTexEnvf(para1: jint; para2: jint; para3: jfloat); overload;
    procedure glTexEnvfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glTexEnvfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glTexEnvfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glTexEnvx(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexEnvxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexEnvxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexEnvxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); overload;
    procedure glTexParameterf(para1: jint; para2: jint; para3: jfloat); overload;
    procedure glTexParameterx(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexSubImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: JNBuffer); overload;
    procedure glTranslatef(para1: jfloat; para2: jfloat; para3: jfloat); overload;
    procedure glTranslatex(para1: jint; para2: jint; para3: jint); overload;
    procedure glVertexPointer(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glViewport(para1: jint; para2: jint; para3: jint; para4: jint); overload;
  end;

  JMKOGL10Ext = interface external 'javax.microedition.khronos.opengles' name 'GL10Ext' (JMKOGL)
    function glQueryMatrixxOES(para1: Arr1jint; para2: jint; para3: Arr1jint; para4: jint): jint; overload;
    function glQueryMatrixxOES(var para1: array of jint; para2: jint; var para3: array of jint; para4: jint): jint; overload;
    function glQueryMatrixxOES(para1: JNIntBuffer; para2: JNIntBuffer): jint; overload;
  end;

  JMKOGL11Ext = interface external 'javax.microedition.khronos.opengles' name 'GL11Ext' (JMKOGL)
    const
      GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 35742;
      GL_MATRIX_INDEX_ARRAY_OES = 34884;
      GL_MATRIX_INDEX_ARRAY_POINTER_OES = 34889;
      GL_MATRIX_INDEX_ARRAY_SIZE_OES = 34886;
      GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 34888;
      GL_MATRIX_INDEX_ARRAY_TYPE_OES = 34887;
      GL_MATRIX_PALETTE_OES = 34880;
      GL_MAX_PALETTE_MATRICES_OES = 34882;
      GL_MAX_VERTEX_UNITS_OES = 34468;
      GL_TEXTURE_CROP_RECT_OES = 35741;
      GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 34974;
      GL_WEIGHT_ARRAY_OES = 34477;
      GL_WEIGHT_ARRAY_POINTER_OES = 34476;
      GL_WEIGHT_ARRAY_SIZE_OES = 34475;
      GL_WEIGHT_ARRAY_STRIDE_OES = 34474;
      GL_WEIGHT_ARRAY_TYPE_OES = 34473;
    procedure glTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glCurrentPaletteMatrixOES(para1: jint); overload;
    procedure glDrawTexfOES(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat); overload;
    procedure glDrawTexfvOES(para1: Arr1jfloat; para2: jint); overload;
    procedure glDrawTexfvOES(var para1: array of jfloat; para2: jint); overload;
    procedure glDrawTexfvOES(para1: JNFloatBuffer); overload;
    procedure glDrawTexiOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure glDrawTexivOES(para1: Arr1jint; para2: jint); overload;
    procedure glDrawTexivOES(var para1: array of jint; para2: jint); overload;
    procedure glDrawTexivOES(para1: JNIntBuffer); overload;
    procedure glDrawTexsOES(para1: jshort; para2: jshort; para3: jshort; para4: jshort; para5: jshort); overload;
    procedure glDrawTexsvOES(para1: Arr1jshort; para2: jint); overload;
    procedure glDrawTexsvOES(var para1: array of jshort; para2: jint); overload;
    procedure glDrawTexsvOES(para1: JNShortBuffer); overload;
    procedure glDrawTexxOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure glDrawTexxvOES(para1: Arr1jint; para2: jint); overload;
    procedure glDrawTexxvOES(var para1: array of jint; para2: jint); overload;
    procedure glDrawTexxvOES(para1: JNIntBuffer); overload;
    procedure glEnable(para1: jint); overload;
    procedure glEnableClientState(para1: jint); overload;
    procedure glLoadPaletteFromModelViewMatrixOES(); overload;
    procedure glMatrixIndexPointerOES(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glMatrixIndexPointerOES(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glWeightPointerOES(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glWeightPointerOES(para1: jint; para2: jint; para3: jint; para4: jint); overload;
  end;

  JMKOGL11ExtensionPack = interface external 'javax.microedition.khronos.opengles' name 'GL11ExtensionPack' (JMKOGL)
    const
      GL_BLEND_DST_ALPHA = 32970;
      GL_BLEND_DST_RGB = 32968;
      GL_BLEND_EQUATION = 32777;
      GL_BLEND_EQUATION_ALPHA = 34877;
      GL_BLEND_EQUATION_RGB = 32777;
      GL_BLEND_SRC_ALPHA = 32971;
      GL_BLEND_SRC_RGB = 32969;
      GL_COLOR_ATTACHMENT0_OES = 36064;
      GL_COLOR_ATTACHMENT1_OES = 36065;
      GL_COLOR_ATTACHMENT2_OES = 36066;
      GL_COLOR_ATTACHMENT3_OES = 36067;
      GL_COLOR_ATTACHMENT4_OES = 36068;
      GL_COLOR_ATTACHMENT5_OES = 36069;
      GL_COLOR_ATTACHMENT6_OES = 36070;
      GL_COLOR_ATTACHMENT7_OES = 36071;
      GL_COLOR_ATTACHMENT8_OES = 36072;
      GL_COLOR_ATTACHMENT9_OES = 36073;
      GL_COLOR_ATTACHMENT10_OES = 36074;
      GL_COLOR_ATTACHMENT11_OES = 36075;
      GL_COLOR_ATTACHMENT12_OES = 36076;
      GL_COLOR_ATTACHMENT13_OES = 36077;
      GL_COLOR_ATTACHMENT14_OES = 36078;
      GL_COLOR_ATTACHMENT15_OES = 36079;
      GL_DECR_WRAP = 34056;
      GL_DEPTH_ATTACHMENT_OES = 36096;
      GL_DEPTH_COMPONENT = 6402;
      GL_DEPTH_COMPONENT16 = 33189;
      GL_DEPTH_COMPONENT24 = 33190;
      GL_DEPTH_COMPONENT32 = 33191;
      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 36049;
      GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 36048;
      GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 36051;
      GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 36050;
      GL_FRAMEBUFFER_BINDING_OES = 36006;
      GL_FRAMEBUFFER_COMPLETE_OES = 36053;
      GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 36054;
      GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 36057;
      GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 36059;
      GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 36058;
      GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 36055;
      GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 36060;
      GL_FRAMEBUFFER_OES = 36160;
      GL_FRAMEBUFFER_UNSUPPORTED_OES = 36061;
      GL_FUNC_ADD = 32774;
      GL_FUNC_REVERSE_SUBTRACT = 32779;
      GL_FUNC_SUBTRACT = 32778;
      GL_INCR_WRAP = 34055;
      GL_INVALID_FRAMEBUFFER_OPERATION_OES = 1286;
      GL_MAX_COLOR_ATTACHMENTS_OES = 36063;
      GL_MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
      GL_MAX_RENDERBUFFER_SIZE_OES = 34024;
      GL_MIRRORED_REPEAT = 33648;
      GL_NORMAL_MAP = 34065;
      GL_REFLECTION_MAP = 34066;
      GL_RENDERBUFFER_ALPHA_SIZE_OES = 36179;
      GL_RENDERBUFFER_BINDING_OES = 36007;
      GL_RENDERBUFFER_BLUE_SIZE_OES = 36178;
      GL_RENDERBUFFER_DEPTH_SIZE_OES = 36180;
      GL_RENDERBUFFER_GREEN_SIZE_OES = 36177;
      GL_RENDERBUFFER_HEIGHT_OES = 36163;
      GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 36164;
      GL_RENDERBUFFER_OES = 36161;
      GL_RENDERBUFFER_RED_SIZE_OES = 36176;
      GL_RENDERBUFFER_STENCIL_SIZE_OES = 36181;
      GL_RENDERBUFFER_WIDTH_OES = 36162;
      GL_RGB5_A1 = 32855;
      GL_RGB565_OES = 36194;
      GL_RGB8 = 32849;
      GL_RGBA4 = 32854;
      GL_RGBA8 = 32856;
      GL_STENCIL_ATTACHMENT_OES = 36128;
      GL_STENCIL_INDEX = 6401;
      GL_STENCIL_INDEX1_OES = 36166;
      GL_STENCIL_INDEX4_OES = 36167;
      GL_STENCIL_INDEX8_OES = 36168;
      GL_STR = -1;
      GL_TEXTURE_BINDING_CUBE_MAP = 34068;
      GL_TEXTURE_CUBE_MAP = 34067;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
      GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
      GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
      GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
      GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
      GL_TEXTURE_GEN_MODE = 9472;
      GL_TEXTURE_GEN_STR = 36192;
    procedure glBindFramebufferOES(para1: jint; para2: jint); overload;
    procedure glBindRenderbufferOES(para1: jint; para2: jint); overload;
    procedure glBindTexture(para1: jint; para2: jint); overload;
    procedure glBlendEquation(para1: jint); overload;
    procedure glBlendEquationSeparate(para1: jint; para2: jint); overload;
    procedure glBlendFuncSeparate(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    function glCheckFramebufferStatusOES(para1: jint): jint; overload;
    procedure glCompressedTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JNBuffer); overload;
    procedure glCopyTexImage2D(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload;
    procedure glDeleteFramebuffersOES(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glDeleteFramebuffersOES(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glDeleteFramebuffersOES(para1: jint; para2: JNIntBuffer); overload;
    procedure glDeleteRenderbuffersOES(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glDeleteRenderbuffersOES(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glDeleteRenderbuffersOES(para1: jint; para2: JNIntBuffer); overload;
    procedure glEnable(para1: jint); overload;
    procedure glFramebufferRenderbufferOES(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glFramebufferTexture2DOES(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure glGenerateMipmapOES(para1: jint); overload;
    procedure glGenFramebuffersOES(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGenFramebuffersOES(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGenFramebuffersOES(para1: jint; para2: JNIntBuffer); overload;
    procedure glGenRenderbuffersOES(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGenRenderbuffersOES(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGenRenderbuffersOES(para1: jint; para2: JNIntBuffer); overload;
    procedure glGetFramebufferAttachmentParameterivOES(para1: jint; para2: jint; para3: jint; para4: Arr1jint; para5: jint); overload;
    procedure glGetFramebufferAttachmentParameterivOES(para1: jint; para2: jint; para3: jint; var para4: array of jint; para5: jint); overload;
    procedure glGetFramebufferAttachmentParameterivOES(para1: jint; para2: jint; para3: jint; para4: JNIntBuffer); overload;
    procedure glGetIntegerv(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGetIntegerv(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGetIntegerv(para1: jint; para2: JNIntBuffer); overload;
    procedure glGetRenderbufferParameterivOES(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetRenderbufferParameterivOES(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetRenderbufferParameterivOES(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetTexGenfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glGetTexGenfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glGetTexGenfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glGetTexGeniv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetTexGeniv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetTexGeniv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetTexGenxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetTexGenxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetTexGenxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    function glIsFramebufferOES(para1: jint): jboolean; overload;
    function glIsRenderbufferOES(para1: jint): jboolean; overload;
    procedure glRenderbufferStorageOES(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glStencilOp(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexEnvf(para1: jint; para2: jint; para3: jfloat); overload;
    procedure glTexEnvfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glTexEnvfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glTexEnvfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glTexEnvx(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexEnvxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexEnvxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexEnvxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glTexGenf(para1: jint; para2: jint; para3: jfloat); overload;
    procedure glTexGenfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glTexGenfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glTexGenfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glTexGeni(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexGeniv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexGeniv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexGeniv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glTexGenx(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexGenxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexGenxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexGenxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glTexParameterf(para1: jint; para2: jint; para3: jfloat); overload;
  end;

  JNSSSLServerSocketFactory = class abstract external 'javax.net.ssl' name 'SSLServerSocketFactory' (JNServerSocketFactory)
  strict protected
    constructor create(); overload;
  public
    class function getDefault(): JNServerSocketFactory; static; overload;
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
  end;

  JNSSSLSocketFactory = class abstract external 'javax.net.ssl' name 'SSLSocketFactory' (JNSocketFactory)
  public
    constructor create(); overload;
    class function getDefault(): JNSocketFactory; static; overload;
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function createSocket(para1: JNSocket; para2: JLString; para3: jint; para4: jboolean): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
  end;

  OAHCSX509HostnameVerifier = interface external 'org.apache.http.conn.ssl' name 'X509HostnameVerifier' (JNSHostnameVerifier)
    function verify(para1: JLString; para2: JNSSSLSession): jboolean; overload;
    procedure verify(para1: JLString; para2: JNSSSLSocket); overload;  // throws java.io.IOException
    procedure verify(para1: JLString; para2: JSCX509Certificate); overload;  // throws javax.net.ssl.SSLException
    procedure verify(para1: JLString; para2: Arr1JLString; para3: Arr1JLString); overload;  // throws javax.net.ssl.SSLException
    procedure verify(para1: JLString; var para2: array of JLString; var para3: array of JLString); overload;  // throws javax.net.ssl.SSLException
  end;

  JNSX509KeyManager = interface external 'javax.net.ssl' name 'X509KeyManager' (JNSKeyManager)
    function chooseClientAlias(para1: Arr1JLString; para2: Arr1JSPrincipal; para3: JNSocket): JLString; overload;
    function chooseClientAlias(var para1: array of JLString; var para2: array of JSPrincipal; para3: JNSocket): JLString; overload;
    function chooseServerAlias(para1: JLString; para2: Arr1JSPrincipal; para3: JNSocket): JLString; overload;
    function chooseServerAlias(para1: JLString; var para2: array of JSPrincipal; para3: JNSocket): JLString; overload;
    function getCertificateChain(para1: JLString): Arr1JSCX509Certificate; overload;
    function getClientAliases(para1: JLString; para2: Arr1JSPrincipal): Arr1JLString; overload;
    function getClientAliases(para1: JLString; var para2: array of JSPrincipal): Arr1JLString; overload;
    function getServerAliases(para1: JLString; para2: Arr1JSPrincipal): Arr1JLString; overload;
    function getServerAliases(para1: JLString; var para2: array of JSPrincipal): Arr1JLString; overload;
    function getPrivateKey(para1: JLString): JSPrivateKey; overload;
  end;

  JNSCertPathTrustManagerParameters = class external 'javax.net.ssl' name 'CertPathTrustManagerParameters' (JLObject, JNSManagerFactoryParameters)
  public
    constructor create(para1: JSCCertPathParameters); overload;
    function getParameters(): JSCCertPathParameters; overload; virtual;
  end;

  JNSX509TrustManager = interface external 'javax.net.ssl' name 'X509TrustManager' (JNSTrustManager)
    procedure checkClientTrusted(para1: Arr1JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    procedure checkClientTrusted(var para1: array of JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    procedure checkServerTrusted(para1: Arr1JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    procedure checkServerTrusted(var para1: array of JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    function getAcceptedIssuers(): Arr1JSCX509Certificate; overload;
  end;

  JSKeyStore = class external 'java.security' name 'KeyStore' (JLObject)
  public
    type
      InnerProtectionParameter = interface;
      Arr1InnerProtectionParameter = array of InnerProtectionParameter;
      Arr2InnerProtectionParameter = array of Arr1InnerProtectionParameter;
      Arr3InnerProtectionParameter = array of Arr2InnerProtectionParameter;
      InnerEntry = interface;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerPasswordProtection = class;
      Arr1InnerPasswordProtection = array of InnerPasswordProtection;
      Arr2InnerPasswordProtection = array of Arr1InnerPasswordProtection;
      Arr3InnerPasswordProtection = array of Arr2InnerPasswordProtection;
      InnerLoadStoreParameter = interface;
      Arr1InnerLoadStoreParameter = array of InnerLoadStoreParameter;
      Arr2InnerLoadStoreParameter = array of Arr1InnerLoadStoreParameter;
      Arr3InnerLoadStoreParameter = array of Arr2InnerLoadStoreParameter;
      InnerCallbackHandlerProtection = class;
      Arr1InnerCallbackHandlerProtection = array of InnerCallbackHandlerProtection;
      Arr2InnerCallbackHandlerProtection = array of Arr1InnerCallbackHandlerProtection;
      Arr3InnerCallbackHandlerProtection = array of Arr2InnerCallbackHandlerProtection;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerTrustedCertificateEntry = class;
      Arr1InnerTrustedCertificateEntry = array of InnerTrustedCertificateEntry;
      Arr2InnerTrustedCertificateEntry = array of Arr1InnerTrustedCertificateEntry;
      Arr3InnerTrustedCertificateEntry = array of Arr2InnerTrustedCertificateEntry;
      InnerSecretKeyEntry = class;
      Arr1InnerSecretKeyEntry = array of InnerSecretKeyEntry;
      Arr2InnerSecretKeyEntry = array of Arr1InnerSecretKeyEntry;
      Arr3InnerSecretKeyEntry = array of Arr2InnerSecretKeyEntry;
      InnerPrivateKeyEntry = class;
      Arr1InnerPrivateKeyEntry = array of InnerPrivateKeyEntry;
      Arr2InnerPrivateKeyEntry = array of Arr1InnerPrivateKeyEntry;
      Arr3InnerPrivateKeyEntry = array of Arr2InnerPrivateKeyEntry;
      InnerProtectionParameter = interface external 'java.security' name 'ProtectionParameter' 
      end;

      InnerEntry = interface external 'java.security' name 'Entry' 
      end;

      InnerPasswordProtection = class external 'java.security' name 'PasswordProtection' (JLObject, JSKeyStore.InnerProtectionParameter, JSADestroyable)
      public
        constructor create(para1: Arr1jchar); overload;
        constructor create(const para1: array of jchar); overload;
        function getPassword(): Arr1jchar; overload; virtual;
        procedure destroy(); overload; virtual;  // throws javax.security.auth.DestroyFailedException
        function isDestroyed(): jboolean; overload; virtual;
      end;

      InnerLoadStoreParameter = interface external 'java.security' name 'LoadStoreParameter' 
        function getProtectionParameter(): JSKeyStore.InnerProtectionParameter; overload;
      end;

      InnerCallbackHandlerProtection = class external 'java.security' name 'CallbackHandlerProtection' (JLObject, JSKeyStore.InnerProtectionParameter)
      public
        constructor create(para1: JSACCallbackHandler); overload;
        function getCallbackHandler(): JSACCallbackHandler; overload; virtual;
      end;

      InnerBuilder = class abstract external 'java.security' name 'Builder' (JLObject)
      strict protected
        constructor create(); overload;
      public
        function getKeyStore(): JSKeyStore; overload; virtual; abstract;  // throws java.security.KeyStoreException
        function getProtectionParameter(para1: JLString): JSKeyStore.InnerProtectionParameter; overload; virtual; abstract;  // throws java.security.KeyStoreException
        class function newInstance(para1: JSKeyStore; para2: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerBuilder; static; overload;
        class function newInstance(para1: JLString; para2: JSProvider; para3: JIFile; para4: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerBuilder; static; overload;
        class function newInstance(para1: JLString; para2: JSProvider; para3: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerBuilder; static; overload;
      end;

      InnerTrustedCertificateEntry = class sealed external 'java.security' name 'TrustedCertificateEntry' (JLObject, JSKeyStore.InnerEntry)
      public
        constructor create(para1: JSCCertificate); overload;
        function getTrustedCertificate(): JSCCertificate; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerSecretKeyEntry = class sealed external 'java.security' name 'SecretKeyEntry' (JLObject, JSKeyStore.InnerEntry)
      public
        constructor create(para1: JCSecretKey); overload;
        function getSecretKey(): JCSecretKey; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerPrivateKeyEntry = class sealed external 'java.security' name 'PrivateKeyEntry' (JLObject, JSKeyStore.InnerEntry)
      public
        constructor create(para1: JSPrivateKey; para2: Arr1JSCCertificate); overload;
        constructor create(para1: JSPrivateKey; const para2: array of JSCCertificate); overload;
        function getPrivateKey(): JSPrivateKey; overload; virtual;
        function getCertificateChain(): Arr1JSCCertificate; overload; virtual;
        function getCertificate(): JSCCertificate; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(para1: JSKeyStoreSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSKeyStore; static; overload;  // throws java.security.KeyStoreException
    class function getInstance(para1: JLString; para2: JLString): JSKeyStore; static; overload;  // throws java.security.KeyStoreException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSKeyStore; static; overload;  // throws java.security.KeyStoreException
    class function getDefaultType(): JLString; static; overload; final;
    function getProvider(): JSProvider; overload; virtual; final;
    function getType(): JLString; overload; virtual; final;
    function getKey(para1: JLString; para2: Arr1jchar): JSKey; overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function getKey(para1: JLString; var para2: array of jchar): JSKey; overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function getCertificateChain(para1: JLString): Arr1JSCCertificate; overload; virtual; final;  // throws java.security.KeyStoreException
    function getCertificate(para1: JLString): JSCCertificate; overload; virtual; final;  // throws java.security.KeyStoreException
    function getCreationDate(para1: JLString): JUDate; overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; para2: JSKey; para3: Arr1jchar; para4: Arr1JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; para2: JSKey; var para3: array of jchar; var para4: array of JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; para2: Arr1jbyte; para3: Arr1JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; var para2: array of jbyte; var para3: array of JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setCertificateEntry(para1: JLString; para2: JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure deleteEntry(para1: JLString); overload; virtual; final;  // throws java.security.KeyStoreException
    function aliases(): JUEnumeration; overload; virtual; final;  // throws java.security.KeyStoreException
    function containsAlias(para1: JLString): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
    function size(): jint; overload; virtual; final;  // throws java.security.KeyStoreException
    function isKeyEntry(para1: JLString): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
    function isCertificateEntry(para1: JLString): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
    function getCertificateAlias(para1: JSCCertificate): JLString; overload; virtual; final;  // throws java.security.KeyStoreException
    procedure store(para1: JIOutputStream; para2: Arr1jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure store(para1: JIOutputStream; var para2: array of jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure store(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual; final;  // throws java.security.KeyStoreException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure load(para1: JIInputStream; para2: Arr1jchar); overload; virtual; final;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure load(para1: JIInputStream; var para2: array of jchar); overload; virtual; final;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure load(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual; final;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    function getEntry(para1: JLString; para2: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerEntry; overload; virtual; final;  // throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException, java.security.KeyStoreException
    procedure setEntry(para1: JLString; para2: JSKeyStore.InnerEntry; para3: JSKeyStore.InnerProtectionParameter); overload; virtual; final;  // throws java.security.KeyStoreException
    function entryInstanceOf(para1: JLString; para2: JLClass): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
  end;

  JSACPasswordCallback = class external 'javax.security.auth.callback' name 'PasswordCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(para1: JLString; para2: jboolean); overload;
    function getPrompt(): JLString; overload; virtual;
    function isEchoOn(): jboolean; overload; virtual;
    procedure setPassword(para1: Arr1jchar); overload; virtual;
    procedure setPassword(var para1: array of jchar); overload; virtual;
    function getPassword(): Arr1jchar; overload; virtual;
    procedure clearPassword(); overload; virtual;
  end;

  JxSCX509Certificate = class abstract external 'javax.security.cert' name 'X509Certificate' (JxSCCertificate)
  public
    constructor create(); overload;
    class function getInstance(para1: JIInputStream): JxSCX509Certificate; static; overload; final;  // throws javax.security.cert.CertificateException
    class function getInstance(para1: Arr1jbyte): JxSCX509Certificate; static; overload; final;  // throws javax.security.cert.CertificateException
    class function getInstance(var para1: array of jbyte): JxSCX509Certificate; static; overload; final;  // throws javax.security.cert.CertificateException
    procedure checkValidity(); overload; virtual; abstract;  // throws javax.security.cert.CertificateExpiredException, javax.security.cert.CertificateNotYetValidException
    procedure checkValidity(para1: JUDate); overload; virtual; abstract;  // throws javax.security.cert.CertificateExpiredException, javax.security.cert.CertificateNotYetValidException
    function getVersion(): jint; overload; virtual; abstract;
    function getSerialNumber(): JMBigInteger; overload; virtual; abstract;
    function getIssuerDN(): JSPrincipal; overload; virtual; abstract;
    function getSubjectDN(): JSPrincipal; overload; virtual; abstract;
    function getNotBefore(): JUDate; overload; virtual; abstract;
    function getNotAfter(): JUDate; overload; virtual; abstract;
    function getSigAlgName(): JLString; overload; virtual; abstract;
    function getSigAlgOID(): JLString; overload; virtual; abstract;
    function getSigAlgParams(): Arr1jbyte; overload; virtual; abstract;
  end;

  JSConnectionPoolDataSource = interface external 'javax.sql' name 'ConnectionPoolDataSource' (JSCommonDataSource)
    function getPooledConnection(): JSPooledConnection; overload;  // throws java.sql.SQLException
    function getPooledConnection(para1: JLString; para2: JLString): JSPooledConnection; overload;  // throws java.sql.SQLException
  end;

  JSDataSource = interface external 'javax.sql' name 'DataSource' (JSCommonDataSource, JSWrapper)
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function getConnection(para1: JLString; para2: JLString): JSConnection; overload;  // throws java.sql.SQLException
  end;

  JXDDuration = class abstract external 'javax.xml.datatype' name 'Duration' (JLObject)
  public
    constructor create(); overload;
    function getXMLSchemaType(): JXNQName; overload; virtual;
    function getSign(): jint; overload; virtual; abstract;
    function getYears(): jint; overload; virtual;
    function getMonths(): jint; overload; virtual;
    function getDays(): jint; overload; virtual;
    function getHours(): jint; overload; virtual;
    function getMinutes(): jint; overload; virtual;
    function getSeconds(): jint; overload; virtual;
    function getTimeInMillis(para1: JUCalendar): jlong; overload; virtual;
    function getTimeInMillis(para1: JUDate): jlong; overload; virtual;
    function getField(para1: JXDDatatypeConstants.InnerField): JLNumber; overload; virtual; abstract;
    function isSet(para1: JXDDatatypeConstants.InnerField): jboolean; overload; virtual; abstract;
    function add(para1: JXDDuration): JXDDuration; overload; virtual; abstract;
    procedure addTo(para1: JUCalendar); overload; virtual; abstract;
    procedure addTo(para1: JUDate); overload; virtual;
    function subtract(para1: JXDDuration): JXDDuration; overload; virtual;
    function multiply(para1: jint): JXDDuration; overload; virtual;
    function multiply(para1: JMBigDecimal): JXDDuration; overload; virtual; abstract;
    function negate(): JXDDuration; overload; virtual; abstract;
    function normalizeWith(para1: JUCalendar): JXDDuration; overload; virtual; abstract;
    function compare(para1: JXDDuration): jint; overload; virtual; abstract;
    function isLongerThan(para1: JXDDuration): jboolean; overload; virtual;
    function isShorterThan(para1: JXDDuration): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
  end;

  JXTDDOMResult = class external 'javax.xml.transform.dom' name 'DOMResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.dom.DOMResult/feature';
  public
    constructor create(); overload;
    constructor create(para1: OWDNode); overload;
    constructor create(para1: OWDNode; para2: JLString); overload;
    constructor create(para1: OWDNode; para2: OWDNode); overload;
    constructor create(para1: OWDNode; para2: OWDNode; para3: JLString); overload;
    procedure setNode(para1: OWDNode); overload; virtual;
    function getNode(): OWDNode; overload; virtual;
    procedure setNextSibling(para1: OWDNode); overload; virtual;
    function getNextSibling(): OWDNode; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSSAXResult = class external 'javax.xml.transform.sax' name 'SAXResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.sax.SAXResult/feature';
  public
    constructor create(); overload;
    constructor create(para1: OXSContentHandler); overload;
    procedure setHandler(para1: OXSContentHandler); overload; virtual;
    function getHandler(): OXSContentHandler; overload; virtual;
    procedure setLexicalHandler(para1: OXSELexicalHandler); overload; virtual;
    function getLexicalHandler(): OXSELexicalHandler; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSStreamResult = class external 'javax.xml.transform.stream' name 'StreamResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.stream.StreamResult/feature';
  public
    constructor create(); overload;
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIWriter); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIFile); overload;
    procedure setOutputStream(para1: JIOutputStream); overload; virtual;
    function getOutputStream(): JIOutputStream; overload; virtual;
    procedure setWriter(para1: JIWriter); overload; virtual;
    function getWriter(): JIWriter; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    procedure setSystemId(para1: JIFile); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTDDOMSource = class external 'javax.xml.transform.dom' name 'DOMSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.dom.DOMSource/feature';
  public
    constructor create(); overload;
    constructor create(para1: OWDNode); overload;
    constructor create(para1: OWDNode; para2: JLString); overload;
    procedure setNode(para1: OWDNode); overload; virtual;
    function getNode(): OWDNode; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSSAXSource = class external 'javax.xml.transform.sax' name 'SAXSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.sax.SAXSource/feature';
  public
    constructor create(); overload;
    constructor create(para1: OXSXMLReader; para2: OXSInputSource); overload;
    constructor create(para1: OXSInputSource); overload;
    procedure setXMLReader(para1: OXSXMLReader); overload; virtual;
    function getXMLReader(): OXSXMLReader; overload; virtual;
    procedure setInputSource(para1: OXSInputSource); overload; virtual;
    function getInputSource(): OXSInputSource; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    class function sourceToInputSource(para1: JXTSource): OXSInputSource; static; overload;
  end;

  JXTSStreamSource = class external 'javax.xml.transform.stream' name 'StreamSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.stream.StreamSource/feature';
  public
    constructor create(); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString); overload;
    constructor create(para1: JIReader); overload;
    constructor create(para1: JIReader; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIFile); overload;
    procedure setInputStream(para1: JIInputStream); overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;
    procedure setReader(para1: JIReader); overload; virtual;
    function getReader(): JIReader; overload; virtual;
    procedure setPublicId(para1: JLString); overload; virtual;
    function getPublicId(): JLString; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    procedure setSystemId(para1: JIFile); overload; virtual;
  end;

  JXTDDOMLocator = interface external 'javax.xml.transform.dom' name 'DOMLocator' (JXTSourceLocator)
    function getOriginatingNode(): OWDNode; overload;
  end;

  JXTSSAXTransformerFactory = class abstract external 'javax.xml.transform.sax' name 'SAXTransformerFactory' (JXTTransformerFactory)
  public
    const
      FEATURE = 'http://javax.xml.transform.sax.SAXTransformerFactory/feature';
      FEATURE_XMLFILTER = 'http://javax.xml.transform.sax.SAXTransformerFactory/feature/xmlfilter';
  strict protected
    constructor create(); overload;
  public
    function newTransformerHandler(para1: JXTSource): JXTSTransformerHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTransformerHandler(para1: JXTTemplates): JXTSTransformerHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTransformerHandler(): JXTSTransformerHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTemplatesHandler(): JXTSTemplatesHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newXMLFilter(para1: JXTSource): OXSXMLFilter; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newXMLFilter(para1: JXTTemplates): OXSXMLFilter; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
  end;

  JFTestCase = class abstract external 'junit.framework' name 'TestCase' (JFAssert, JFTest)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function countTestCases(): jint; overload; virtual;
  strict protected
    function createResult(): JFTestResult; overload; virtual;
  public
    function run(): JFTestResult; overload; virtual;
    procedure run(para1: JFTestResult); overload; virtual;
    procedure runBare(); overload; virtual;  // throws java.lang.Throwable
  strict protected
    procedure runTest(); overload; virtual;  // throws java.lang.Throwable
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    function toString(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
  end;

  JFTestSuite = class external 'junit.framework' name 'TestSuite' (JLObject, JFTest)
  public
    constructor create(); overload;
    constructor create(para1: JLClass; para2: JLString); overload;
    constructor create(para1: JLClass); overload;
    constructor create(para1: JLString); overload;
    procedure addTest(para1: JFTest); overload; virtual;
    procedure addTestSuite(para1: JLClass); overload; virtual;
    class function createTest(para1: JLClass; para2: JLString): JFTest; static; overload;
    function countTestCases(): jint; overload; virtual;
    class function getTestConstructor(para1: JLClass): JLRConstructor; static; overload;  // throws java.lang.NoSuchMethodException
    procedure run(para1: JFTestResult); overload; virtual;
    procedure runTest(para1: JFTest; para2: JFTestResult); overload; virtual;
    function testAt(para1: jint): JFTest; overload; virtual;
    function testCount(): jint; overload; virtual;
    function tests(): JUEnumeration; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    function getName(): JLString; overload; virtual;
  end;

  JRBaseTestRunner = class abstract external 'junit.runner' name 'BaseTestRunner' (JLObject, JFTestListener)
  public
    const
      SUITE_METHODNAME = 'suite';
  public
    constructor create(); overload;
    procedure startTest(para1: JFTest); overload; virtual;
  strict protected
    class procedure setPreferences(para1: JUProperties); static; overload;
    class function getPreferences(): JUProperties; static; overload;
  public
    class procedure savePreferences(); static; overload;  // throws java.io.IOException
    procedure setPreference(para1: JLString; para2: JLString); overload; virtual;
    procedure endTest(para1: JFTest); overload; virtual;
    procedure addError(para1: JFTest; para2: JLThrowable); overload; virtual;
    procedure addFailure(para1: JFTest; para2: JFAssertionFailedError); overload; virtual;
    procedure testStarted(para1: JLString); overload; virtual; abstract;
    procedure testEnded(para1: JLString); overload; virtual; abstract;
    procedure testFailed(para1: jint; para2: JFTest; para3: JLThrowable); overload; virtual; abstract;
    function getTest(para1: JLString): JFTest; overload; virtual;
    function elapsedTimeAsString(para1: jlong): JLString; overload; virtual;
  strict protected
    function processArguments(para1: Arr1JLString): JLString; overload; virtual;
    function processArguments(var para1: array of JLString): JLString; overload; virtual;
  public
    procedure setLoading(para1: jboolean); overload; virtual;
    function extractClassName(para1: JLString): JLString; overload; virtual;
    class function truncate(para1: JLString): JLString; static; overload;
  strict protected
    procedure runFailed(para1: JLString); overload; virtual; abstract;
    function loadSuiteClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    procedure clearStatus(); overload; virtual;
  public
    function getLoader(): JRTestSuiteLoader; overload; virtual;
  strict protected
    function useReloadingTestSuiteLoader(): jboolean; overload; virtual;
  public
    class function getPreference(para1: JLString): JLString; static; overload;
    class function getPreference(para1: JLString; para2: jint): jint; static; overload;
    class function inVAJava(): jboolean; static; overload;
    class function getFilteredTrace(para1: JLThrowable): JLString; static; overload;
    class function getFilteredTrace(para1: JLString): JLString; static; overload;
  strict protected
    class function showStackRaw(): jboolean; static; overload;
  end;

  OAHIDefaultConnectionReuseStrategy = class external 'org.apache.http.impl' name 'DefaultConnectionReuseStrategy' (JLObject, OAHConnectionReuseStrategy)
  public
    constructor create(); overload;
    function keepAlive(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload; virtual;
  strict protected
    function createTokenIterator(para1: OAHHeaderIterator): OAHTokenIterator; overload; virtual;
  end;

  OAHINoConnectionReuseStrategy = class external 'org.apache.http.impl' name 'NoConnectionReuseStrategy' (JLObject, OAHConnectionReuseStrategy)
  public
    constructor create(); overload;
    function keepAlive(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload; virtual;
  end;

  OAHFormattedHeader = interface external 'org.apache.http' name 'FormattedHeader' (OAHHeader)
    function getBuffer(): OAHUCharArrayBuffer; overload;
    function getValuePos(): jint; overload;
  end;

  OAHMBasicHeader = class external 'org.apache.http.message' name 'BasicHeader' (JLObject, OAHHeader, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getElements(): Arr1OAHHeaderElement; overload; virtual;  // throws org.apache.http.ParseException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHMBasicHeaderElement = class external 'org.apache.http.message' name 'BasicHeaderElement' (JLObject, OAHHeaderElement, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1OAHNameValuePair); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of OAHNameValuePair); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getParameters(): Arr1OAHNameValuePair; overload; virtual;
    function getParameterCount(): jint; overload; virtual;
    function getParameter(para1: jint): OAHNameValuePair; overload; virtual;
    function getParameterByName(para1: JLString): OAHNameValuePair; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHHttpClientConnection = interface external 'org.apache.http' name 'HttpClientConnection' (OAHHttpConnection)
    function isResponseAvailable(para1: jint): jboolean; overload;  // throws java.io.IOException
    procedure sendRequestHeader(para1: OAHHttpRequest); overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendRequestEntity(para1: OAHHttpEntityEnclosingRequest); overload;  // throws org.apache.http.HttpException, java.io.IOException
    function receiveResponseHeader(): OAHHttpResponse; overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure receiveResponseEntity(para1: OAHHttpResponse); overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
  end;

  OAHHttpInetConnection = interface external 'org.apache.http' name 'HttpInetConnection' (OAHHttpConnection)
    function getLocalAddress(): JNInetAddress; overload;
    function getLocalPort(): jint; overload;
    function getRemoteAddress(): JNInetAddress; overload;
    function getRemotePort(): jint; overload;
  end;

  OAHHttpServerConnection = interface external 'org.apache.http' name 'HttpServerConnection' (OAHHttpConnection)
    function receiveRequestHeader(): OAHHttpRequest; overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure receiveRequestEntity(para1: OAHHttpEntityEnclosingRequest); overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendResponseHeader(para1: OAHHttpResponse); overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendResponseEntity(para1: OAHHttpResponse); overload;  // throws org.apache.http.HttpException, java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
  end;

  OAHIHttpConnectionMetricsImpl = class external 'org.apache.http.impl' name 'HttpConnectionMetricsImpl' (JLObject, OAHHttpConnectionMetrics)
  public
    const
      REQUEST_COUNT = 'http.request-count';
      RESPONSE_COUNT = 'http.response-count';
      SENT_BYTES_COUNT = 'http.sent-bytes-count';
      RECEIVED_BYTES_COUNT = 'http.received-bytes-count';
  public
    constructor create(para1: OAHIHttpTransportMetrics; para2: OAHIHttpTransportMetrics); overload;
    function getReceivedBytesCount(): jlong; overload; virtual;
    function getSentBytesCount(): jlong; overload; virtual;
    function getRequestCount(): jlong; overload; virtual;
    procedure incrementRequestCount(); overload; virtual;
    function getResponseCount(): jlong; overload; virtual;
    procedure incrementResponseCount(); overload; virtual;
    function getMetric(para1: JLString): JLObject; overload; virtual;
    procedure setMetric(para1: JLString; para2: JLObject); overload; virtual;
    procedure reset(); overload; virtual;
  end;

  OAHEAbstractHttpEntity = class abstract external 'org.apache.http.entity' name 'AbstractHttpEntity' (JLObject, OAHHttpEntity)
  strict protected
    var
      fcontentType: OAHHeader; external name 'contentType';
      fcontentEncoding: OAHHeader; external name 'contentEncoding';
      fchunked: jboolean; external name 'chunked';
  strict protected
    constructor create(); overload;
  public
    function getContentType(): OAHHeader; overload; virtual;
    function getContentEncoding(): OAHHeader; overload; virtual;
    function isChunked(): jboolean; overload; virtual;
    procedure setContentType(para1: OAHHeader); overload; virtual;
    procedure setContentType(para1: JLString); overload; virtual;
    procedure setContentEncoding(para1: OAHHeader); overload; virtual;
    procedure setContentEncoding(para1: JLString); overload; virtual;
    procedure setChunked(para1: jboolean); overload; virtual;
    procedure consumeContent(); overload; virtual;  // throws java.io.IOException, java.lang.UnsupportedOperationException
  end;

  OAHEHttpEntityWrapper = class external 'org.apache.http.entity' name 'HttpEntityWrapper' (JLObject, OAHHttpEntity)
  strict protected
    var
      fwrappedEntity: OAHHttpEntity; external name 'wrappedEntity';
  public
    constructor create(para1: OAHHttpEntity); overload;
    function isRepeatable(): jboolean; overload; virtual;
    function isChunked(): jboolean; overload; virtual;
    function getContentLength(): jlong; overload; virtual;
    function getContentType(): OAHHeader; overload; virtual;
    function getContentEncoding(): OAHHeader; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    procedure consumeContent(); overload; virtual;  // throws java.io.IOException
  end;

  OAHHttpRequest = interface external 'org.apache.http' name 'HttpRequest' (OAHHttpMessage)
    function getRequestLine(): OAHRequestLine; overload;
  end;

  OAHHttpResponse = interface external 'org.apache.http' name 'HttpResponse' (OAHHttpMessage)
    function getStatusLine(): OAHStatusLine; overload;
    procedure setStatusLine(para1: OAHStatusLine); overload;
    procedure setStatusLine(para1: OAHProtocolVersion; para2: jint); overload;
    procedure setStatusLine(para1: OAHProtocolVersion; para2: jint; para3: JLString); overload;
    procedure setStatusCode(para1: jint); overload;  // throws java.lang.IllegalStateException
    procedure setReasonPhrase(para1: JLString); overload;  // throws java.lang.IllegalStateException
    function getEntity(): OAHHttpEntity; overload;
    procedure setEntity(para1: OAHHttpEntity); overload;
    function getLocale(): JULocale; overload;
    procedure setLocale(para1: JULocale); overload;
  end;

  OAHMAbstractHttpMessage = class abstract external 'org.apache.http.message' name 'AbstractHttpMessage' (JLObject, OAHHttpMessage)
  strict protected
    var
      fheadergroup: OAHMHeaderGroup; external name 'headergroup';
      fparams: OAHPHttpParams; external name 'params';
  strict protected
    constructor create(para1: OAHPHttpParams); overload;
    constructor create(); overload;
  public
    function containsHeader(para1: JLString): jboolean; overload; virtual;
    function getHeaders(para1: JLString): Arr1OAHHeader; overload; virtual;
    function getFirstHeader(para1: JLString): OAHHeader; overload; virtual;
    function getLastHeader(para1: JLString): OAHHeader; overload; virtual;
    function getAllHeaders(): Arr1OAHHeader; overload; virtual;
    procedure addHeader(para1: OAHHeader); overload; virtual;
    procedure addHeader(para1: JLString; para2: JLString); overload; virtual;
    procedure setHeader(para1: OAHHeader); overload; virtual;
    procedure setHeader(para1: JLString; para2: JLString); overload; virtual;
    procedure setHeaders(para1: Arr1OAHHeader); overload; virtual;
    procedure setHeaders(var para1: array of OAHHeader); overload; virtual;
    procedure removeHeader(para1: OAHHeader); overload; virtual;
    procedure removeHeaders(para1: JLString); overload; virtual;
    function headerIterator(): OAHHeaderIterator; overload; virtual;
    function headerIterator(para1: JLString): OAHHeaderIterator; overload; virtual;
    function getParams(): OAHPHttpParams; overload; virtual;
    procedure setParams(para1: OAHPHttpParams); overload; virtual;
  end;

  OAHIDefaultHttpRequestFactory = class external 'org.apache.http.impl' name 'DefaultHttpRequestFactory' (JLObject, OAHHttpRequestFactory)
  public
    constructor create(); overload;
    function newHttpRequest(para1: OAHRequestLine): OAHHttpRequest; overload; virtual;  // throws org.apache.http.MethodNotSupportedException
    function newHttpRequest(para1: JLString; para2: JLString): OAHHttpRequest; overload; virtual;  // throws org.apache.http.MethodNotSupportedException
  end;

  OAHCPRequestAddCookies = class external 'org.apache.http.client.protocol' name 'RequestAddCookies' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHCPRequestDefaultHeaders = class external 'org.apache.http.client.protocol' name 'RequestDefaultHeaders' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHCPRequestProxyAuthentication = class external 'org.apache.http.client.protocol' name 'RequestProxyAuthentication' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHCPRequestTargetAuthentication = class external 'org.apache.http.client.protocol' name 'RequestTargetAuthentication' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPRequestConnControl = class external 'org.apache.http.protocol' name 'RequestConnControl' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPRequestContent = class external 'org.apache.http.protocol' name 'RequestContent' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPRequestDate = class external 'org.apache.http.protocol' name 'RequestDate' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPRequestExpectContinue = class external 'org.apache.http.protocol' name 'RequestExpectContinue' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPRequestTargetHost = class external 'org.apache.http.protocol' name 'RequestTargetHost' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPRequestUserAgent = class external 'org.apache.http.protocol' name 'RequestUserAgent' (JLObject, OAHHttpRequestInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHIDefaultHttpResponseFactory = class external 'org.apache.http.impl' name 'DefaultHttpResponseFactory' (JLObject, OAHHttpResponseFactory)
  strict protected
    final var
      freasonCatalog: OAHReasonPhraseCatalog; external name 'reasonCatalog';
  public
    constructor create(para1: OAHReasonPhraseCatalog); overload;
    constructor create(); overload;
    function newHttpResponse(para1: OAHProtocolVersion; para2: jint; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual;
    function newHttpResponse(para1: OAHStatusLine; para2: OAHPHttpContext): OAHHttpResponse; overload; virtual;
  strict protected
    function determineLocale(para1: OAHPHttpContext): JULocale; overload; virtual;
  end;

  OAHCPResponseProcessCookies = class external 'org.apache.http.client.protocol' name 'ResponseProcessCookies' (JLObject, OAHHttpResponseInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPHttpProcessor = interface external 'org.apache.http.protocol' name 'HttpProcessor' (OAHHttpRequestInterceptor, OAHHttpResponseInterceptor)
  end;

  OAHPResponseConnControl = class external 'org.apache.http.protocol' name 'ResponseConnControl' (JLObject, OAHHttpResponseInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPResponseContent = class external 'org.apache.http.protocol' name 'ResponseContent' (JLObject, OAHHttpResponseInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPResponseDate = class external 'org.apache.http.protocol' name 'ResponseDate' (JLObject, OAHHttpResponseInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHPResponseServer = class external 'org.apache.http.protocol' name 'ResponseServer' (JLObject, OAHHttpResponseInterceptor)
  public
    constructor create(); overload;
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHMBasicNameValuePair = class external 'org.apache.http.message' name 'BasicNameValuePair' (JLObject, OAHNameValuePair, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHIEnglishReasonPhraseCatalog = class external 'org.apache.http.impl' name 'EnglishReasonPhraseCatalog' (JLObject, OAHReasonPhraseCatalog)
  public
    final class var
      fINSTANCE: OAHIEnglishReasonPhraseCatalog; external name 'INSTANCE';
  strict protected
    constructor create(); overload;
  public
    function getReason(para1: jint; para2: JULocale): JLString; overload; virtual;
  end;

  OAHMBasicRequestLine = class external 'org.apache.http.message' name 'BasicRequestLine' (JLObject, OAHRequestLine, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString; para3: OAHProtocolVersion); overload;
    function getMethod(): JLString; overload; virtual;
    function getProtocolVersion(): OAHProtocolVersion; overload; virtual;
    function getUri(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHMBasicStatusLine = class external 'org.apache.http.message' name 'BasicStatusLine' (JLObject, OAHStatusLine, JLCloneable)
  public
    constructor create(para1: OAHProtocolVersion; para2: jint; para3: JLString); overload;
    function getStatusCode(): jint; overload; virtual;
    function getProtocolVersion(): OAHProtocolVersion; overload; virtual;
    function getReasonPhrase(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHIAAuthSchemeBase = class abstract external 'org.apache.http.impl.auth' name 'AuthSchemeBase' (JLObject, OAHAAuthScheme)
  public
    constructor create(); overload;
    procedure processChallenge(para1: OAHHeader); overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
  strict protected
    procedure parseChallenge(para1: OAHUCharArrayBuffer; para2: jint; para3: jint); overload; virtual; abstract;  // throws org.apache.http.auth.MalformedChallengeException
  public
    function isProxy(): jboolean; overload; virtual;
  end;

  OAHIABasicSchemeFactory = class external 'org.apache.http.impl.auth' name 'BasicSchemeFactory' (JLObject, OAHAAuthSchemeFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHAAuthScheme; overload; virtual;
  end;

  OAHIADigestSchemeFactory = class external 'org.apache.http.impl.auth' name 'DigestSchemeFactory' (JLObject, OAHAAuthSchemeFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHAAuthScheme; overload; virtual;
  end;

  OAHANTCredentials = class external 'org.apache.http.auth' name 'NTCredentials' (JLObject, OAHACredentials)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;
    function getUserPrincipal(): JSPrincipal; overload; virtual;
    function getUserName(): JLString; overload; virtual;
    function getPassword(): JLString; overload; virtual;
    function getDomain(): JLString; overload; virtual;
    function getWorkstation(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHAUsernamePasswordCredentials = class external 'org.apache.http.auth' name 'UsernamePasswordCredentials' (JLObject, OAHACredentials)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getUserPrincipal(): JSPrincipal; overload; virtual;
    function getUserName(): JLString; overload; virtual;
    function getPassword(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  OAHICAbstractAuthenticationHandler = class abstract external 'org.apache.http.impl.client' name 'AbstractAuthenticationHandler' (JLObject, OAHCAuthenticationHandler)
  public
    constructor create(); overload;
  strict protected
    function parseChallenges(para1: Arr1OAHHeader): JUMap; overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
    function parseChallenges(var para1: array of OAHHeader): JUMap; overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
    function getAuthPreferences(): JUList; overload; virtual;
  public
    function selectScheme(para1: JUMap; para2: OAHHttpResponse; para3: OAHPHttpContext): OAHAAuthScheme; overload; virtual;  // throws org.apache.http.auth.AuthenticationException
  end;

  OAHICBasicCookieStore = class external 'org.apache.http.impl.client' name 'BasicCookieStore' (JLObject, OAHCCookieStore)
  public
    constructor create(); overload;
    procedure addCookie(para1: OAHCCookie); overload; virtual;
    procedure addCookies(para1: Arr1OAHCCookie); overload; virtual;
    procedure addCookies(var para1: array of OAHCCookie); overload; virtual;
    function getCookies(): JUList; overload; virtual;
    function clearExpired(para1: JUDate): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
  end;

  OAHICBasicCredentialsProvider = class external 'org.apache.http.impl.client' name 'BasicCredentialsProvider' (JLObject, OAHCCredentialsProvider)
  public
    constructor create(); overload;
    procedure setCredentials(para1: OAHAAuthScope; para2: OAHACredentials); overload; virtual;
    function getCredentials(para1: OAHAAuthScope): OAHACredentials; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
  end;

  ANHAndroidHttpClient = class sealed external 'android.net.http' name 'AndroidHttpClient' (JLObject, OAHCHttpClient)
  public
    class var
      fDEFAULT_SYNC_MIN_GZIP_BYTES: jlong; external name 'DEFAULT_SYNC_MIN_GZIP_BYTES';
  public
    class function newInstance(para1: JLString; para2: ACContext): ANHAndroidHttpClient; static; overload;
    class function newInstance(para1: JLString): ANHAndroidHttpClient; static; overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    class procedure modifyRequestToAcceptGzipResponse(para1: OAHHttpRequest); static; overload;
    class function getUngzippedContent(para1: OAHHttpEntity): JIInputStream; static; overload;  // throws java.io.IOException
    procedure close(); overload; virtual;
    function getParams(): OAHPHttpParams; overload; virtual;
    function getConnectionManager(): OAHCClientConnectionManager; overload; virtual;
    function execute(para1: OAHCMHttpUriRequest): OAHHttpResponse; overload; virtual;  // throws java.io.IOException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHPHttpContext): OAHHttpResponse; overload; virtual;  // throws java.io.IOException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest): OAHHttpResponse; overload; virtual;  // throws java.io.IOException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual;  // throws java.io.IOException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHCResponseHandler): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHCResponseHandler; para3: OAHPHttpContext): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHCResponseHandler): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHCResponseHandler; para4: OAHPHttpContext): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    class function getCompressedEntity(para1: Arr1jbyte; para2: ACContentResolver): OAHEAbstractHttpEntity; static; overload;  // throws java.io.IOException
    class function getCompressedEntity(var para1: array of jbyte; para2: ACContentResolver): OAHEAbstractHttpEntity; static; overload;  // throws java.io.IOException
    class function getMinGzipSize(para1: ACContentResolver): jlong; static; overload;
    procedure enableCurlLogging(para1: JLString; para2: jint); overload; virtual;
    procedure disableCurlLogging(); overload; virtual;
    class function parseDate(para1: JLString): jlong; static; overload;
  end;

  OAHICAbstractHttpClient = class abstract external 'org.apache.http.impl.client' name 'AbstractHttpClient' (JLObject, OAHCHttpClient)
  strict protected
    constructor create(para1: OAHCClientConnectionManager; para2: OAHPHttpParams); overload;
    function createHttpParams(): OAHPHttpParams; overload; virtual; abstract;
    function createHttpContext(): OAHPHttpContext; overload; virtual; abstract;
    function createRequestExecutor(): OAHPHttpRequestExecutor; overload; virtual; abstract;
    function createClientConnectionManager(): OAHCClientConnectionManager; overload; virtual; abstract;
    function createAuthSchemeRegistry(): OAHAAuthSchemeRegistry; overload; virtual; abstract;
    function createCookieSpecRegistry(): OAHCCookieSpecRegistry; overload; virtual; abstract;
    function createConnectionReuseStrategy(): OAHConnectionReuseStrategy; overload; virtual; abstract;
    function createConnectionKeepAliveStrategy(): OAHCConnectionKeepAliveStrategy; overload; virtual; abstract;
    function createHttpProcessor(): OAHPBasicHttpProcessor; overload; virtual; abstract;
    function createHttpRequestRetryHandler(): OAHCHttpRequestRetryHandler; overload; virtual; abstract;
    function createRedirectHandler(): OAHCRedirectHandler; overload; virtual; abstract;
    function createTargetAuthenticationHandler(): OAHCAuthenticationHandler; overload; virtual; abstract;
    function createProxyAuthenticationHandler(): OAHCAuthenticationHandler; overload; virtual; abstract;
    function createCookieStore(): OAHCCookieStore; overload; virtual; abstract;
    function createCredentialsProvider(): OAHCCredentialsProvider; overload; virtual; abstract;
    function createHttpRoutePlanner(): OAHCRHttpRoutePlanner; overload; virtual; abstract;
    function createUserTokenHandler(): OAHCUserTokenHandler; overload; virtual; abstract;
  public
    function getParams(): OAHPHttpParams; overload; virtual; final;
    procedure setParams(para1: OAHPHttpParams); overload; virtual;
    function getConnectionManager(): OAHCClientConnectionManager; overload; virtual; final;
    function getRequestExecutor(): OAHPHttpRequestExecutor; overload; virtual; final;
    function getAuthSchemes(): OAHAAuthSchemeRegistry; overload; virtual; final;
    procedure setAuthSchemes(para1: OAHAAuthSchemeRegistry); overload; virtual;
    function getCookieSpecs(): OAHCCookieSpecRegistry; overload; virtual; final;
    procedure setCookieSpecs(para1: OAHCCookieSpecRegistry); overload; virtual;
    function getConnectionReuseStrategy(): OAHConnectionReuseStrategy; overload; virtual; final;
    procedure setReuseStrategy(para1: OAHConnectionReuseStrategy); overload; virtual;
    function getConnectionKeepAliveStrategy(): OAHCConnectionKeepAliveStrategy; overload; virtual; final;
    procedure setKeepAliveStrategy(para1: OAHCConnectionKeepAliveStrategy); overload; virtual;
    function getHttpRequestRetryHandler(): OAHCHttpRequestRetryHandler; overload; virtual; final;
    procedure setHttpRequestRetryHandler(para1: OAHCHttpRequestRetryHandler); overload; virtual;
    function getRedirectHandler(): OAHCRedirectHandler; overload; virtual; final;
    procedure setRedirectHandler(para1: OAHCRedirectHandler); overload; virtual;
    function getTargetAuthenticationHandler(): OAHCAuthenticationHandler; overload; virtual; final;
    procedure setTargetAuthenticationHandler(para1: OAHCAuthenticationHandler); overload; virtual;
    function getProxyAuthenticationHandler(): OAHCAuthenticationHandler; overload; virtual; final;
    procedure setProxyAuthenticationHandler(para1: OAHCAuthenticationHandler); overload; virtual;
    function getCookieStore(): OAHCCookieStore; overload; virtual; final;
    procedure setCookieStore(para1: OAHCCookieStore); overload; virtual;
    function getCredentialsProvider(): OAHCCredentialsProvider; overload; virtual; final;
    procedure setCredentialsProvider(para1: OAHCCredentialsProvider); overload; virtual;
    function getRoutePlanner(): OAHCRHttpRoutePlanner; overload; virtual; final;
    procedure setRoutePlanner(para1: OAHCRHttpRoutePlanner); overload; virtual;
    function getUserTokenHandler(): OAHCUserTokenHandler; overload; virtual; final;
    procedure setUserTokenHandler(para1: OAHCUserTokenHandler); overload; virtual;
  strict protected
    function getHttpProcessor(): OAHPBasicHttpProcessor; overload; virtual; final;
  public
    procedure addResponseInterceptor(para1: OAHHttpResponseInterceptor); overload; virtual;
    procedure addResponseInterceptor(para1: OAHHttpResponseInterceptor; para2: jint); overload; virtual;
    function getResponseInterceptor(para1: jint): OAHHttpResponseInterceptor; overload; virtual;
    function getResponseInterceptorCount(): jint; overload; virtual;
    procedure clearResponseInterceptors(); overload; virtual;
    procedure removeResponseInterceptorByClass(para1: JLClass); overload; virtual;
    procedure addRequestInterceptor(para1: OAHHttpRequestInterceptor); overload; virtual;
    procedure addRequestInterceptor(para1: OAHHttpRequestInterceptor; para2: jint); overload; virtual;
    function getRequestInterceptor(para1: jint): OAHHttpRequestInterceptor; overload; virtual;
    function getRequestInterceptorCount(): jint; overload; virtual;
    procedure clearRequestInterceptors(); overload; virtual;
    procedure removeRequestInterceptorByClass(para1: JLClass); overload; virtual;
    function execute(para1: OAHCMHttpUriRequest): OAHHttpResponse; overload; virtual; final;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHPHttpContext): OAHHttpResponse; overload; virtual; final;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest): OAHHttpResponse; overload; virtual; final;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual; final;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
  strict protected
    function createClientRequestDirector(para1: OAHPHttpRequestExecutor; para2: OAHCClientConnectionManager; para3: OAHConnectionReuseStrategy; para4: OAHCConnectionKeepAliveStrategy; para5: OAHCRHttpRoutePlanner; para6: OAHPHttpProcessor; para7: OAHCHttpRequestRetryHandler; para8: OAHCRedirectHandler; para9: OAHCAuthenticationHandler; para10: OAHCAuthenticationHandler; para11: OAHCUserTokenHandler; para12: OAHPHttpParams): OAHCRequestDirector; overload; virtual;
    function determineParams(para1: OAHHttpRequest): OAHPHttpParams; overload; virtual;
  public
    function execute(para1: OAHCMHttpUriRequest; para2: OAHCResponseHandler): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHCMHttpUriRequest; para2: OAHCResponseHandler; para3: OAHPHttpContext): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHCResponseHandler): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHCResponseHandler; para4: OAHPHttpContext): JLObject; overload; virtual;  // throws java.io.IOException, org.apache.http.client.ClientProtocolException
  end;

  OAHICDefaultHttpRequestRetryHandler = class external 'org.apache.http.impl.client' name 'DefaultHttpRequestRetryHandler' (JLObject, OAHCHttpRequestRetryHandler)
  public
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(); overload;
    function retryRequest(para1: JIIOException; para2: jint; para3: OAHPHttpContext): jboolean; overload; virtual;
    function isRequestSentRetryEnabled(): jboolean; overload; virtual;
    function getRetryCount(): jint; overload; virtual;
  end;

  OAHICDefaultRedirectHandler = class external 'org.apache.http.impl.client' name 'DefaultRedirectHandler' (JLObject, OAHCRedirectHandler)
  public
    constructor create(); overload;
    function isRedirectRequested(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload; virtual;
    function getLocationURI(para1: OAHHttpResponse; para2: OAHPHttpContext): JNURI; overload; virtual;  // throws org.apache.http.ProtocolException
  end;

  OAHICDefaultRequestDirector = class external 'org.apache.http.impl.client' name 'DefaultRequestDirector' (JLObject, OAHCRequestDirector)
  strict protected
    final var
      fconnManager: OAHCClientConnectionManager; external name 'connManager';
      froutePlanner: OAHCRHttpRoutePlanner; external name 'routePlanner';
      freuseStrategy: OAHConnectionReuseStrategy; external name 'reuseStrategy';
      fkeepAliveStrategy: OAHCConnectionKeepAliveStrategy; external name 'keepAliveStrategy';
      frequestExec: OAHPHttpRequestExecutor; external name 'requestExec';
      fhttpProcessor: OAHPHttpProcessor; external name 'httpProcessor';
      fretryHandler: OAHCHttpRequestRetryHandler; external name 'retryHandler';
      fredirectHandler: OAHCRedirectHandler; external name 'redirectHandler';
      fparams: OAHPHttpParams; external name 'params';
  strict protected
    var
      fmanagedConn: OAHCManagedClientConnection; external name 'managedConn';
  public
    constructor create(para1: OAHPHttpRequestExecutor; para2: OAHCClientConnectionManager; para3: OAHConnectionReuseStrategy; para4: OAHCConnectionKeepAliveStrategy; para5: OAHCRHttpRoutePlanner; para6: OAHPHttpProcessor; para7: OAHCHttpRequestRetryHandler; para8: OAHCRedirectHandler; para9: OAHCAuthenticationHandler; para10: OAHCAuthenticationHandler; para11: OAHCUserTokenHandler; para12: OAHPHttpParams); overload;
  strict protected
    procedure rewriteRequestURI(para1: OAHICRequestWrapper; para2: OAHCRHttpRoute); overload; virtual;  // throws org.apache.http.ProtocolException
  public
    function execute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHHttpResponse; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  strict protected
    procedure releaseConnection(); overload; virtual;
    function determineRoute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHCRHttpRoute; overload; virtual;  // throws org.apache.http.HttpException
    procedure establishRoute(para1: OAHCRHttpRoute; para2: OAHPHttpContext); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function createTunnelToTarget(para1: OAHCRHttpRoute; para2: OAHPHttpContext): jboolean; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function createTunnelToProxy(para1: OAHCRHttpRoute; para2: jint; para3: OAHPHttpContext): jboolean; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function createConnectRequest(para1: OAHCRHttpRoute; para2: OAHPHttpContext): OAHHttpRequest; overload; virtual;
    function handleResponse(para1: OAHICRoutedRequest; para2: OAHHttpResponse; para3: OAHPHttpContext): OAHICRoutedRequest; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHICBasicResponseHandler = class external 'org.apache.http.impl.client' name 'BasicResponseHandler' (JLObject, OAHCResponseHandler)
  public
    constructor create(); overload;
    function handleResponse(para1: OAHHttpResponse): JLString; overload; virtual;  // throws org.apache.http.client.HttpResponseException, java.io.IOException
    function handleResponse(para1: OAHHttpResponse): JLObject; overload; virtual;  // throws org.apache.http.client.ClientProtocolException, java.io.IOException
  end;

  OAHICDefaultUserTokenHandler = class external 'org.apache.http.impl.client' name 'DefaultUserTokenHandler' (JLObject, OAHCUserTokenHandler)
  public
    constructor create(); overload;
    function getUserToken(para1: OAHPHttpContext): JLObject; overload; virtual;
  end;

  OAHCPClientContextConfigurer = class external 'org.apache.http.client.protocol' name 'ClientContextConfigurer' (JLObject, OAHCPClientContext)
  public
    constructor create(para1: OAHPHttpContext); overload;
    procedure setCookieSpecRegistry(para1: OAHCCookieSpecRegistry); overload; virtual;
    procedure setAuthSchemeRegistry(para1: OAHAAuthSchemeRegistry); overload; virtual;
    procedure setCookieStore(para1: OAHCCookieStore); overload; virtual;
    procedure setCredentialsProvider(para1: OAHCCredentialsProvider); overload; virtual;
    procedure setAuthSchemePref(para1: JUList); overload; virtual;
  end;

  OAHICSingleClientConnManager = class external 'org.apache.http.impl.conn' name 'SingleClientConnManager' (JLObject, OAHCClientConnectionManager)
  public
    type
      InnerPoolEntry = class;
      Arr1InnerPoolEntry = array of InnerPoolEntry;
      Arr2InnerPoolEntry = array of Arr1InnerPoolEntry;
      Arr3InnerPoolEntry = array of Arr2InnerPoolEntry;
      InnerConnAdapter = class;
      Arr1InnerConnAdapter = array of InnerConnAdapter;
      Arr2InnerConnAdapter = array of Arr1InnerConnAdapter;
      Arr3InnerConnAdapter = array of Arr2InnerConnAdapter;
      InnerPoolEntry = class external 'org.apache.http.impl.conn' name 'PoolEntry' 
      end;

      InnerConnAdapter = class external 'org.apache.http.impl.conn' name 'ConnAdapter' 
      end;

  public
    const
      MISUSE_MESSAGE = 'Invalid use of SingleClientConnManager: connection still allocated.'#$000a'Make sure to release the connection before allocating another one.';
  strict protected
    var
      fschemeRegistry: OAHCSSchemeRegistry; external name 'schemeRegistry';
      fconnOperator: OAHCClientConnectionOperator; external name 'connOperator';
      funiquePoolEntry: OAHICSingleClientConnManager.InnerPoolEntry; external name 'uniquePoolEntry';
      fmanagedConn: OAHICSingleClientConnManager.InnerConnAdapter; external name 'managedConn';
      flastReleaseTime: jlong; external name 'lastReleaseTime';
      fconnectionExpiresTime: jlong; external name 'connectionExpiresTime';
      falwaysShutDown: jboolean; external name 'alwaysShutDown';
      fisShutDown: jboolean; external name 'isShutDown';
  public
    constructor create(para1: OAHPHttpParams; para2: OAHCSSchemeRegistry); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function getSchemeRegistry(): OAHCSSchemeRegistry; overload; virtual;
  strict protected
    function createConnectionOperator(para1: OAHCSSchemeRegistry): OAHCClientConnectionOperator; overload; virtual;
    procedure assertStillUp(); overload; virtual; final;  // throws java.lang.IllegalStateException
  public
    function requestConnection(para1: OAHCRHttpRoute; para2: JLObject): OAHCClientConnectionRequest; overload; virtual; final;
    function getConnection(para1: OAHCRHttpRoute; para2: JLObject): OAHCManagedClientConnection; overload; virtual;
    procedure releaseConnection(para1: OAHCManagedClientConnection; para2: jlong; para3: JUCTimeUnit); overload; virtual;
    procedure closeExpiredConnections(); overload; virtual;
    procedure closeIdleConnections(para1: jlong; para2: JUCTimeUnit); overload; virtual;
    procedure shutdown(); overload; virtual;
  strict protected
    procedure revokeConnection(); overload; virtual;
  end;

  OAHICTThreadSafeClientConnManager = class external 'org.apache.http.impl.conn.tsccm' name 'ThreadSafeClientConnManager' (JLObject, OAHCClientConnectionManager)
  strict protected
    var
      fschemeRegistry: OAHCSSchemeRegistry; external name 'schemeRegistry';
  strict protected
    final var
      fconnectionPool: OAHICTAbstractConnPool; external name 'connectionPool';
  strict protected
    var
      fconnOperator: OAHCClientConnectionOperator; external name 'connOperator';
  public
    constructor create(para1: OAHPHttpParams; para2: OAHCSSchemeRegistry); overload;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
    function createConnectionPool(para1: OAHPHttpParams): OAHICTAbstractConnPool; overload; virtual;
    function createConnectionOperator(para1: OAHCSSchemeRegistry): OAHCClientConnectionOperator; overload; virtual;
  public
    function getSchemeRegistry(): OAHCSSchemeRegistry; overload; virtual;
    function requestConnection(para1: OAHCRHttpRoute; para2: JLObject): OAHCClientConnectionRequest; overload; virtual;
    procedure releaseConnection(para1: OAHCManagedClientConnection; para2: jlong; para3: JUCTimeUnit); overload; virtual;
    procedure shutdown(); overload; virtual;
    function getConnectionsInPool(para1: OAHCRHttpRoute): jint; overload; virtual;
    function getConnectionsInPool(): jint; overload; virtual;
    procedure closeIdleConnections(para1: jlong; para2: JUCTimeUnit); overload; virtual;
    procedure closeExpiredConnections(); overload; virtual;
  end;

  OAHICDefaultClientConnectionOperator = class external 'org.apache.http.impl.conn' name 'DefaultClientConnectionOperator' (JLObject, OAHCClientConnectionOperator)
  strict protected
    var
      fschemeRegistry: OAHCSSchemeRegistry; external name 'schemeRegistry';
  public
    constructor create(para1: OAHCSSchemeRegistry); overload;
    function createConnection(): OAHCOperatedClientConnection; overload; virtual;
    procedure openConnection(para1: OAHCOperatedClientConnection; para2: OAHHttpHost; para3: JNInetAddress; para4: OAHPHttpContext; para5: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure updateSecureConnection(para1: OAHCOperatedClientConnection; para2: OAHHttpHost; para3: OAHPHttpContext; para4: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure prepareSocket(para1: JNSocket; para2: OAHPHttpContext; para3: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
  end;

  OAHICDefaultConnectionKeepAliveStrategy = class external 'org.apache.http.impl.client' name 'DefaultConnectionKeepAliveStrategy' (JLObject, OAHCConnectionKeepAliveStrategy)
  public
    constructor create(); overload;
    function getKeepAliveDuration(para1: OAHHttpResponse; para2: OAHPHttpContext): jlong; overload; virtual;
  end;

  OAHCBasicEofSensorWatcher = class external 'org.apache.http.conn' name 'BasicEofSensorWatcher' (JLObject, OAHCEofSensorWatcher)
  strict protected
    var
      fmanagedConn: OAHCManagedClientConnection; external name 'managedConn';
      fattemptReuse: jboolean; external name 'attemptReuse';
  public
    constructor create(para1: OAHCManagedClientConnection; para2: jboolean); overload;
    function eofDetected(para1: JIInputStream): jboolean; overload; virtual;  // throws java.io.IOException
    function streamClosed(para1: JIInputStream): jboolean; overload; virtual;  // throws java.io.IOException
    function streamAbort(para1: JIInputStream): jboolean; overload; virtual;  // throws java.io.IOException
  end;

  OAHCPConnManagerParams = class sealed external 'org.apache.http.conn.params' name 'ConnManagerParams' (JLObject, OAHCPConnManagerPNames)
  public
    const
      DEFAULT_MAX_TOTAL_CONNECTIONS = 20;
  public
    constructor create(); overload;
    class function getTimeout(para1: OAHPHttpParams): jlong; static; overload;
    class procedure setTimeout(para1: OAHPHttpParams; para2: jlong); static; overload;
    class procedure setMaxConnectionsPerRoute(para1: OAHPHttpParams; para2: OAHCPConnPerRoute); static; overload;
    class function getMaxConnectionsPerRoute(para1: OAHPHttpParams): OAHCPConnPerRoute; static; overload;
    class procedure setMaxTotalConnections(para1: OAHPHttpParams; para2: jint); static; overload;
    class function getMaxTotalConnections(para1: OAHPHttpParams): jint; static; overload;
  end;

  OAHCPConnPerRouteBean = class sealed external 'org.apache.http.conn.params' name 'ConnPerRouteBean' (JLObject, OAHCPConnPerRoute)
  public
    const
      DEFAULT_MAX_CONNECTIONS_PER_ROUTE = 2;
  public
    constructor create(para1: jint); overload;
    constructor create(); overload;
    function getDefaultMax(): jint; overload; virtual;
    procedure setDefaultMaxPerRoute(para1: jint); overload; virtual;
    procedure setMaxForRoute(para1: OAHCRHttpRoute; para2: jint); overload; virtual;
    function getMaxForRoute(para1: OAHCRHttpRoute): jint; overload; virtual;
    procedure setMaxForRoutes(para1: JUMap); overload; virtual;
  end;

  OAHCPConnRouteParams = class external 'org.apache.http.conn.params' name 'ConnRouteParams' (JLObject, OAHCPConnRoutePNames)
  public
    final class var
      fNO_HOST: OAHHttpHost; external name 'NO_HOST';
      fNO_ROUTE: OAHCRHttpRoute; external name 'NO_ROUTE';
  public
    class function getDefaultProxy(para1: OAHPHttpParams): OAHHttpHost; static; overload;
    class procedure setDefaultProxy(para1: OAHPHttpParams; para2: OAHHttpHost); static; overload;
    class function getForcedRoute(para1: OAHPHttpParams): OAHCRHttpRoute; static; overload;
    class procedure setForcedRoute(para1: OAHPHttpParams; para2: OAHCRHttpRoute); static; overload;
    class function getLocalAddress(para1: OAHPHttpParams): JNInetAddress; static; overload;
    class procedure setLocalAddress(para1: OAHPHttpParams; para2: JNInetAddress); static; overload;
  end;

  OAHCRBasicRouteDirector = class external 'org.apache.http.conn.routing' name 'BasicRouteDirector' (JLObject, OAHCRHttpRouteDirector)
  public
    constructor create(); overload;
    function nextStep(para1: OAHCRRouteInfo; para2: OAHCRRouteInfo): jint; overload; virtual;
  strict protected
    function firstStep(para1: OAHCRRouteInfo): jint; overload; virtual;
    function directStep(para1: OAHCRRouteInfo; para2: OAHCRRouteInfo): jint; overload; virtual;
    function proxiedStep(para1: OAHCRRouteInfo; para2: OAHCRRouteInfo): jint; overload; virtual;
  end;

  OAHICDefaultHttpRoutePlanner = class external 'org.apache.http.impl.conn' name 'DefaultHttpRoutePlanner' (JLObject, OAHCRHttpRoutePlanner)
  strict protected
    var
      fschemeRegistry: OAHCSSchemeRegistry; external name 'schemeRegistry';
  public
    constructor create(para1: OAHCSSchemeRegistry); overload;
    function determineRoute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHCRHttpRoute; overload; virtual;  // throws org.apache.http.HttpException
  end;

  OAHICProxySelectorRoutePlanner = class external 'org.apache.http.impl.conn' name 'ProxySelectorRoutePlanner' (JLObject, OAHCRHttpRoutePlanner)
  strict protected
    var
      fschemeRegistry: OAHCSSchemeRegistry; external name 'schemeRegistry';
      fproxySelector: JNProxySelector; external name 'proxySelector';
  public
    constructor create(para1: OAHCSSchemeRegistry; para2: JNProxySelector); overload;
    function getProxySelector(): JNProxySelector; overload; virtual;
    procedure setProxySelector(para1: JNProxySelector); overload; virtual;
    function determineRoute(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHCRHttpRoute; overload; virtual;  // throws org.apache.http.HttpException
  strict protected
    function determineProxy(para1: OAHHttpHost; para2: OAHHttpRequest; para3: OAHPHttpContext): OAHHttpHost; overload; virtual;  // throws org.apache.http.HttpException
    function getHost(para1: JNInetSocketAddress): JLString; overload; virtual;
    function chooseProxy(para1: JUList; para2: OAHHttpHost; para3: OAHHttpRequest; para4: OAHPHttpContext): JNProxy; overload; virtual;
  end;

  OAHCMultihomePlainSocketFactory = class sealed external 'org.apache.http.conn' name 'MultihomePlainSocketFactory' (JLObject, OAHCSSocketFactory)
  public
    class function getSocketFactory(): OAHCMultihomePlainSocketFactory; static; overload;
    function createSocket(): JNSocket; overload; virtual;
    function connectSocket(para1: JNSocket; para2: JLString; para3: jint; para4: JNInetAddress; para5: jint; para6: OAHPHttpParams): JNSocket; overload; virtual;  // throws java.io.IOException
    function isSecure(para1: JNSocket): jboolean; overload; virtual; final;  // throws java.lang.IllegalArgumentException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  OAHCSLayeredSocketFactory = interface external 'org.apache.http.conn.scheme' name 'LayeredSocketFactory' (OAHCSSocketFactory)
    function createSocket(para1: JNSocket; para2: JLString; para3: jint; para4: jboolean): JNSocket; overload;  // throws java.io.IOException, java.net.UnknownHostException
  end;

  OAHCSPlainSocketFactory = class sealed external 'org.apache.http.conn.scheme' name 'PlainSocketFactory' (JLObject, OAHCSSocketFactory)
  public
    constructor create(para1: OAHCSHostNameResolver); overload;
    constructor create(); overload;
    class function getSocketFactory(): OAHCSPlainSocketFactory; static; overload;
    function createSocket(): JNSocket; overload; virtual;
    function connectSocket(para1: JNSocket; para2: JLString; para3: jint; para4: JNInetAddress; para5: jint; para6: OAHPHttpParams): JNSocket; overload; virtual;  // throws java.io.IOException
    function isSecure(para1: JNSocket): jboolean; overload; virtual; final;  // throws java.lang.IllegalArgumentException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  OAHCClientCookie = interface external 'org.apache.http.cookie' name 'ClientCookie' (OAHCCookie)
    const
      VERSION_ATTR = 'version';
      PATH_ATTR = 'path';
      DOMAIN_ATTR = 'domain';
      MAX_AGE_ATTR = 'max-age';
      SECURE_ATTR = 'secure';
      COMMENT_ATTR = 'comment';
      EXPIRES_ATTR = 'expires';
      PORT_ATTR = 'port';
      COMMENTURL_ATTR = 'commenturl';
      DISCARD_ATTR = 'discard';
    function getAttribute(para1: JLString): JLString; overload;
    function containsAttribute(para1: JLString): jboolean; overload;
  end;

  OAHCSetCookie = interface external 'org.apache.http.cookie' name 'SetCookie' (OAHCCookie)
    procedure setValue(para1: JLString); overload;
    procedure setComment(para1: JLString); overload;
    procedure setExpiryDate(para1: JUDate); overload;
    procedure setDomain(para1: JLString); overload;
    procedure setPath(para1: JLString); overload;
    procedure setSecure(para1: jboolean); overload;
    procedure setVersion(para1: jint); overload;
  end;

  OAHICAbstractCookieAttributeHandler = class abstract external 'org.apache.http.impl.cookie' name 'AbstractCookieAttributeHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICBasicDomainHandler = class external 'org.apache.http.impl.cookie' name 'BasicDomainHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICBasicPathHandler = class external 'org.apache.http.impl.cookie' name 'BasicPathHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2109DomainHandler = class external 'org.apache.http.impl.cookie' name 'RFC2109DomainHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2965CommentUrlAttributeHandler = class external 'org.apache.http.impl.cookie' name 'RFC2965CommentUrlAttributeHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2965DiscardAttributeHandler = class external 'org.apache.http.impl.cookie' name 'RFC2965DiscardAttributeHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2965DomainAttributeHandler = class external 'org.apache.http.impl.cookie' name 'RFC2965DomainAttributeHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function domainMatch(para1: JLString; para2: JLString): jboolean; overload; virtual;
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2965PortAttributeHandler = class external 'org.apache.http.impl.cookie' name 'RFC2965PortAttributeHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2965VersionAttributeHandler = class external 'org.apache.http.impl.cookie' name 'RFC2965VersionAttributeHandler' (JLObject, OAHCCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICAbstractCookieSpec = class abstract external 'org.apache.http.impl.cookie' name 'AbstractCookieSpec' (JLObject, OAHCCookieSpec)
  public
    constructor create(); overload;
    procedure registerAttribHandler(para1: JLString; para2: OAHCCookieAttributeHandler); overload; virtual;
  strict protected
    function findAttribHandler(para1: JLString): OAHCCookieAttributeHandler; overload; virtual;
    function getAttribHandler(para1: JLString): OAHCCookieAttributeHandler; overload; virtual;
    function getAttribHandlers(): JUCollection; overload; virtual;
  end;

  OAHICBestMatchSpec = class external 'org.apache.http.impl.cookie' name 'BestMatchSpec' (JLObject, OAHCCookieSpec)
  public
    constructor create(para1: Arr1JLString; para2: jboolean); overload;
    constructor create(const para1: array of JLString; para2: jboolean); overload;
    constructor create(); overload;
    function parse(para1: OAHHeader; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
    function formatCookies(para1: JUList): JUList; overload; virtual;
    function getVersion(): jint; overload; virtual;
    function getVersionHeader(): OAHHeader; overload; virtual;
  end;

  OAHICBestMatchSpecFactory = class external 'org.apache.http.impl.cookie' name 'BestMatchSpecFactory' (JLObject, OAHCCookieSpecFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHCCookieSpec; overload; virtual;
  end;

  OAHICBrowserCompatSpecFactory = class external 'org.apache.http.impl.cookie' name 'BrowserCompatSpecFactory' (JLObject, OAHCCookieSpecFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHCCookieSpec; overload; virtual;
  end;

  OAHICNetscapeDraftSpecFactory = class external 'org.apache.http.impl.cookie' name 'NetscapeDraftSpecFactory' (JLObject, OAHCCookieSpecFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHCCookieSpec; overload; virtual;
  end;

  OAHICRFC2109SpecFactory = class external 'org.apache.http.impl.cookie' name 'RFC2109SpecFactory' (JLObject, OAHCCookieSpecFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHCCookieSpec; overload; virtual;
  end;

  OAHICRFC2965SpecFactory = class external 'org.apache.http.impl.cookie' name 'RFC2965SpecFactory' (JLObject, OAHCCookieSpecFactory)
  public
    constructor create(); overload;
    function newInstance(para1: OAHPHttpParams): OAHCCookieSpec; overload; virtual;
  end;

  OAHIELaxContentLengthStrategy = class external 'org.apache.http.impl.entity' name 'LaxContentLengthStrategy' (JLObject, OAHEContentLengthStrategy)
  public
    constructor create(); overload;
    function determineLength(para1: OAHHttpMessage): jlong; overload; virtual;  // throws org.apache.http.HttpException
  end;

  OAHIEStrictContentLengthStrategy = class external 'org.apache.http.impl.entity' name 'StrictContentLengthStrategy' (JLObject, OAHEContentLengthStrategy)
  public
    constructor create(); overload;
    function determineLength(para1: OAHHttpMessage): jlong; overload; virtual;  // throws org.apache.http.HttpException
  end;

  OAHICTBasicPoolEntry = class external 'org.apache.http.impl.conn.tsccm' name 'BasicPoolEntry' (OAHICAbstractPoolEntry)
  public
    constructor create(para1: OAHCClientConnectionOperator; para2: OAHCRHttpRoute; para3: JLRReferenceQueue); overload;
  strict protected
    function getConnection(): OAHCOperatedClientConnection; overload; virtual; final;
    function getPlannedRoute(): OAHCRHttpRoute; overload; virtual; final;
    function getWeakRef(): OAHICTBasicPoolEntryRef; overload; virtual; final;
  end;

  OAHICTAbstractConnPool = class abstract external 'org.apache.http.impl.conn.tsccm' name 'AbstractConnPool' (JLObject, OAHICTRefQueueHandler)
  strict protected
    final var
      fpoolLock: JUCLLock; external name 'poolLock';
  strict protected
    var
      fissuedConnections: JUSet; external name 'issuedConnections';
      fidleConnHandler: OAHICIdleConnectionHandler; external name 'idleConnHandler';
      fnumConnections: jint; external name 'numConnections';
      frefQueue: JLRReferenceQueue; external name 'refQueue';
      fisShutDown: jboolean; external name 'isShutDown';
  strict protected
    constructor create(); overload;
  public
    procedure enableConnectionGC(); overload; virtual;  // throws java.lang.IllegalStateException
    function getEntry(para1: OAHCRHttpRoute; para2: JLObject; para3: jlong; para4: JUCTimeUnit): OAHICTBasicPoolEntry; overload; virtual; final;  // throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException
    function requestPoolEntry(para1: OAHCRHttpRoute; para2: JLObject): OAHICTPoolEntryRequest; overload; virtual; abstract;
    procedure freeEntry(para1: OAHICTBasicPoolEntry; para2: jboolean; para3: jlong; para4: JUCTimeUnit); overload; virtual; abstract;
    procedure handleReference(para1: JLRReference); overload; virtual;
  strict protected
    procedure handleLostEntry(para1: OAHCRHttpRoute); overload; virtual; abstract;
  public
    procedure closeIdleConnections(para1: jlong; para2: JUCTimeUnit); overload; virtual;
    procedure closeExpiredConnections(); overload; virtual;
    procedure deleteClosedConnections(); overload; virtual; abstract;
    procedure shutdown(); overload; virtual;
  strict protected
    procedure closeConnection(para1: OAHCOperatedClientConnection); overload; virtual;
  end;

  OAHIIAbstractMessageParser = class abstract external 'org.apache.http.impl.io' name 'AbstractMessageParser' (JLObject, OAHIHttpMessageParser)
  strict protected
    final var
      flineParser: OAHMLineParser; external name 'lineParser';
  public
    constructor create(para1: OAHISessionInputBuffer; para2: OAHMLineParser; para3: OAHPHttpParams); overload;
    class function parseHeaders(para1: OAHISessionInputBuffer; para2: jint; para3: jint; para4: OAHMLineParser): Arr1OAHHeader; static; overload;  // throws org.apache.http.HttpException, java.io.IOException
  strict protected
    function parseHead(para1: OAHISessionInputBuffer): OAHHttpMessage; overload; virtual; abstract;  // throws java.io.IOException, org.apache.http.HttpException, org.apache.http.ParseException
  public
    function parse(): OAHHttpMessage; overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
  end;

  OAHIIAbstractMessageWriter = class abstract external 'org.apache.http.impl.io' name 'AbstractMessageWriter' (JLObject, OAHIHttpMessageWriter)
  strict protected
    final var
      fsessionBuffer: OAHISessionOutputBuffer; external name 'sessionBuffer';
      flineBuf: OAHUCharArrayBuffer; external name 'lineBuf';
      flineFormatter: OAHMLineFormatter; external name 'lineFormatter';
  public
    constructor create(para1: OAHISessionOutputBuffer; para2: OAHMLineFormatter; para3: OAHPHttpParams); overload;
  strict protected
    procedure writeHeadLine(para1: OAHHttpMessage); overload; virtual; abstract;  // throws java.io.IOException
  public
    procedure write(para1: OAHHttpMessage); overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
  end;

  OAHIIHttpTransportMetricsImpl = class external 'org.apache.http.impl.io' name 'HttpTransportMetricsImpl' (JLObject, OAHIHttpTransportMetrics)
  public
    constructor create(); overload;
    function getBytesTransferred(): jlong; overload; virtual;
    procedure setBytesTransferred(para1: jlong); overload; virtual;
    procedure incrementBytesTransferred(para1: jlong); overload; virtual;
    procedure reset(); overload; virtual;
  end;

  OAHICLoggingSessionInputBuffer = class external 'org.apache.http.impl.conn' name 'LoggingSessionInputBuffer' (JLObject, OAHISessionInputBuffer)
  public
    constructor create(para1: OAHISessionInputBuffer; para2: OAHICWire); overload;
    function isDataAvailable(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function readLine(para1: OAHUCharArrayBuffer): jint; overload; virtual;  // throws java.io.IOException
    function getMetrics(): OAHIHttpTransportMetrics; overload; virtual;
  end;

  OAHIIAbstractSessionInputBuffer = class abstract external 'org.apache.http.impl.io' name 'AbstractSessionInputBuffer' (JLObject, OAHISessionInputBuffer)
  public
    constructor create(); overload;
  strict protected
    procedure init(para1: JIInputStream; para2: jint; para3: OAHPHttpParams); overload; virtual;
    function fillBuffer(): jint; overload; virtual;  // throws java.io.IOException
    function hasBufferedData(): jboolean; overload; virtual;
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function readLine(para1: OAHUCharArrayBuffer): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function getMetrics(): OAHIHttpTransportMetrics; overload; virtual;
  end;

  OAHICLoggingSessionOutputBuffer = class external 'org.apache.http.impl.conn' name 'LoggingSessionOutputBuffer' (JLObject, OAHISessionOutputBuffer)
  public
    constructor create(para1: OAHISessionOutputBuffer; para2: OAHICWire); overload;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure writeLine(para1: OAHUCharArrayBuffer); overload; virtual;  // throws java.io.IOException
    procedure writeLine(para1: JLString); overload; virtual;  // throws java.io.IOException
    function getMetrics(): OAHIHttpTransportMetrics; overload; virtual;
  end;

  OAHIIAbstractSessionOutputBuffer = class abstract external 'org.apache.http.impl.io' name 'AbstractSessionOutputBuffer' (JLObject, OAHISessionOutputBuffer)
  public
    constructor create(); overload;
  strict protected
    procedure init(para1: JIOutputStream; para2: jint; para3: OAHPHttpParams); overload; virtual;
    procedure flushBuffer(); overload; virtual;  // throws java.io.IOException
  public
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeLine(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeLine(para1: OAHUCharArrayBuffer); overload; virtual;  // throws java.io.IOException
    function getMetrics(): OAHIHttpTransportMetrics; overload; virtual;
  end;

  OAHMBasicHeaderValueFormatter = class external 'org.apache.http.message' name 'BasicHeaderValueFormatter' (JLObject, OAHMHeaderValueFormatter)
  public
    final class var
      fDEFAULT: OAHMBasicHeaderValueFormatter; external name 'DEFAULT';
  public
    const
      SEPARATORS = ' ;,:@()<>\"/[]?={}'#$0009'';
      UNSAFE_CHARS = '"\';
  public
    constructor create(); overload;
    class function formatElements(para1: Arr1OAHHeaderElement; para2: jboolean; para3: OAHMHeaderValueFormatter): JLString; static; overload; final;
    class function formatElements(var para1: array of OAHHeaderElement; para2: jboolean; para3: OAHMHeaderValueFormatter): JLString; static; overload; final;
    function formatElements(para1: OAHUCharArrayBuffer; para2: Arr1OAHHeaderElement; para3: jboolean): OAHUCharArrayBuffer; overload; virtual;
    function formatElements(para1: OAHUCharArrayBuffer; var para2: array of OAHHeaderElement; para3: jboolean): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    function estimateElementsLen(para1: Arr1OAHHeaderElement): jint; overload; virtual;
    function estimateElementsLen(var para1: array of OAHHeaderElement): jint; overload; virtual;
  public
    class function formatHeaderElement(para1: OAHHeaderElement; para2: jboolean; para3: OAHMHeaderValueFormatter): JLString; static; overload; final;
    function formatHeaderElement(para1: OAHUCharArrayBuffer; para2: OAHHeaderElement; para3: jboolean): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    function estimateHeaderElementLen(para1: OAHHeaderElement): jint; overload; virtual;
  public
    class function formatParameters(para1: Arr1OAHNameValuePair; para2: jboolean; para3: OAHMHeaderValueFormatter): JLString; static; overload; final;
    class function formatParameters(var para1: array of OAHNameValuePair; para2: jboolean; para3: OAHMHeaderValueFormatter): JLString; static; overload; final;
    function formatParameters(para1: OAHUCharArrayBuffer; para2: Arr1OAHNameValuePair; para3: jboolean): OAHUCharArrayBuffer; overload; virtual;
    function formatParameters(para1: OAHUCharArrayBuffer; var para2: array of OAHNameValuePair; para3: jboolean): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    function estimateParametersLen(para1: Arr1OAHNameValuePair): jint; overload; virtual;
    function estimateParametersLen(var para1: array of OAHNameValuePair): jint; overload; virtual;
  public
    class function formatNameValuePair(para1: OAHNameValuePair; para2: jboolean; para3: OAHMHeaderValueFormatter): JLString; static; overload; final;
    function formatNameValuePair(para1: OAHUCharArrayBuffer; para2: OAHNameValuePair; para3: jboolean): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    function estimateNameValuePairLen(para1: OAHNameValuePair): jint; overload; virtual;
    procedure doFormatValue(para1: OAHUCharArrayBuffer; para2: JLString; para3: jboolean); overload; virtual;
    function isSeparator(para1: jchar): jboolean; overload; virtual;
    function isUnsafe(para1: jchar): jboolean; overload; virtual;
  end;

  OAHMBasicHeaderValueParser = class external 'org.apache.http.message' name 'BasicHeaderValueParser' (JLObject, OAHMHeaderValueParser)
  public
    final class var
      fDEFAULT: OAHMBasicHeaderValueParser; external name 'DEFAULT';
  public
    constructor create(); overload;
    class function parseElements(para1: JLString; para2: OAHMHeaderValueParser): Arr1OAHHeaderElement; static; overload; final;  // throws org.apache.http.ParseException
    function parseElements(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): Arr1OAHHeaderElement; overload; virtual;
    class function parseHeaderElement(para1: JLString; para2: OAHMHeaderValueParser): OAHHeaderElement; static; overload; final;  // throws org.apache.http.ParseException
    function parseHeaderElement(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHHeaderElement; overload; virtual;
  strict protected
    function createHeaderElement(para1: JLString; para2: JLString; para3: Arr1OAHNameValuePair): OAHHeaderElement; overload; virtual;
    function createHeaderElement(para1: JLString; para2: JLString; var para3: array of OAHNameValuePair): OAHHeaderElement; overload; virtual;
  public
    class function parseParameters(para1: JLString; para2: OAHMHeaderValueParser): Arr1OAHNameValuePair; static; overload; final;  // throws org.apache.http.ParseException
    function parseParameters(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): Arr1OAHNameValuePair; overload; virtual;
    class function parseNameValuePair(para1: JLString; para2: OAHMHeaderValueParser): OAHNameValuePair; static; overload; final;  // throws org.apache.http.ParseException
    function parseNameValuePair(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHNameValuePair; overload; virtual;
    function parseNameValuePair(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor; para3: Arr1jchar): OAHNameValuePair; overload; virtual;
    function parseNameValuePair(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor; var para3: array of jchar): OAHNameValuePair; overload; virtual;
  strict protected
    function createNameValuePair(para1: JLString; para2: JLString): OAHNameValuePair; overload; virtual;
  end;

  OAHMBasicLineFormatter = class external 'org.apache.http.message' name 'BasicLineFormatter' (JLObject, OAHMLineFormatter)
  public
    final class var
      fDEFAULT: OAHMBasicLineFormatter; external name 'DEFAULT';
  public
    constructor create(); overload;
  strict protected
    function initBuffer(para1: OAHUCharArrayBuffer): OAHUCharArrayBuffer; overload; virtual;
  public
    class function formatProtocolVersion(para1: OAHProtocolVersion; para2: OAHMLineFormatter): JLString; static; overload; final;
    function appendProtocolVersion(para1: OAHUCharArrayBuffer; para2: OAHProtocolVersion): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    function estimateProtocolVersionLen(para1: OAHProtocolVersion): jint; overload; virtual;
  public
    class function formatRequestLine(para1: OAHRequestLine; para2: OAHMLineFormatter): JLString; static; overload; final;
    function formatRequestLine(para1: OAHUCharArrayBuffer; para2: OAHRequestLine): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    procedure doFormatRequestLine(para1: OAHUCharArrayBuffer; para2: OAHRequestLine); overload; virtual;
  public
    class function formatStatusLine(para1: OAHStatusLine; para2: OAHMLineFormatter): JLString; static; overload; final;
    function formatStatusLine(para1: OAHUCharArrayBuffer; para2: OAHStatusLine): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    procedure doFormatStatusLine(para1: OAHUCharArrayBuffer; para2: OAHStatusLine); overload; virtual;
  public
    class function formatHeader(para1: OAHHeader; para2: OAHMLineFormatter): JLString; static; overload; final;
    function formatHeader(para1: OAHUCharArrayBuffer; para2: OAHHeader): OAHUCharArrayBuffer; overload; virtual;
  strict protected
    procedure doFormatHeader(para1: OAHUCharArrayBuffer; para2: OAHHeader); overload; virtual;
  end;

  OAHMBasicLineParser = class external 'org.apache.http.message' name 'BasicLineParser' (JLObject, OAHMLineParser)
  public
    final class var
      fDEFAULT: OAHMBasicLineParser; external name 'DEFAULT';
  strict protected
    final var
      fprotocol: OAHProtocolVersion; external name 'protocol';
  public
    constructor create(para1: OAHProtocolVersion); overload;
    constructor create(); overload;
    class function parseProtocolVersion(para1: JLString; para2: OAHMLineParser): OAHProtocolVersion; static; overload; final;  // throws org.apache.http.ParseException
    function parseProtocolVersion(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHProtocolVersion; overload; virtual;  // throws org.apache.http.ParseException
  strict protected
    function createProtocolVersion(para1: jint; para2: jint): OAHProtocolVersion; overload; virtual;
  public
    function hasProtocolVersion(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): jboolean; overload; virtual;
    class function parseRequestLine(para1: JLString; para2: OAHMLineParser): OAHRequestLine; static; overload; final;  // throws org.apache.http.ParseException
    function parseRequestLine(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHRequestLine; overload; virtual;  // throws org.apache.http.ParseException
  strict protected
    function createRequestLine(para1: JLString; para2: JLString; para3: OAHProtocolVersion): OAHRequestLine; overload; virtual;
  public
    class function parseStatusLine(para1: JLString; para2: OAHMLineParser): OAHStatusLine; static; overload; final;  // throws org.apache.http.ParseException
    function parseStatusLine(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor): OAHStatusLine; overload; virtual;  // throws org.apache.http.ParseException
  strict protected
    function createStatusLine(para1: OAHProtocolVersion; para2: jint; para3: JLString): OAHStatusLine; overload; virtual;
  public
    class function parseHeader(para1: JLString; para2: OAHMLineParser): OAHHeader; static; overload; final;  // throws org.apache.http.ParseException
    function parseHeader(para1: OAHUCharArrayBuffer): OAHHeader; overload; virtual;  // throws org.apache.http.ParseException
  strict protected
    procedure skipWhitespace(para1: OAHUCharArrayBuffer; para2: OAHMParserCursor); overload; virtual;
  end;

  OAHPHttpConnectionParams = class sealed external 'org.apache.http.params' name 'HttpConnectionParams' (JLObject, OAHPCoreConnectionPNames)
  public
    class function getSoTimeout(para1: OAHPHttpParams): jint; static; overload;
    class procedure setSoTimeout(para1: OAHPHttpParams; para2: jint); static; overload;
    class function getTcpNoDelay(para1: OAHPHttpParams): jboolean; static; overload;
    class procedure setTcpNoDelay(para1: OAHPHttpParams; para2: jboolean); static; overload;
    class function getSocketBufferSize(para1: OAHPHttpParams): jint; static; overload;
    class procedure setSocketBufferSize(para1: OAHPHttpParams; para2: jint); static; overload;
    class function getLinger(para1: OAHPHttpParams): jint; static; overload;
    class procedure setLinger(para1: OAHPHttpParams; para2: jint); static; overload;
    class function getConnectionTimeout(para1: OAHPHttpParams): jint; static; overload;
    class procedure setConnectionTimeout(para1: OAHPHttpParams; para2: jint); static; overload;
    class function isStaleCheckingEnabled(para1: OAHPHttpParams): jboolean; static; overload;
    class procedure setStaleCheckingEnabled(para1: OAHPHttpParams; para2: jboolean); static; overload;
  end;

  OAHCPAllClientPNames = interface external 'org.apache.http.client.params' name 'AllClientPNames' (OAHPCoreConnectionPNames, OAHPCoreProtocolPNames, OAHCPClientPNames, OAHAPAuthPNames, OAHCPCookieSpecPNames, OAHCPConnConnectionPNames, OAHCPConnManagerPNames, OAHCPConnRoutePNames)
  end;

  OAHPHttpProtocolParams = class sealed external 'org.apache.http.params' name 'HttpProtocolParams' (JLObject, OAHPCoreProtocolPNames)
  public
    class function getHttpElementCharset(para1: OAHPHttpParams): JLString; static; overload;
    class procedure setHttpElementCharset(para1: OAHPHttpParams; para2: JLString); static; overload;
    class function getContentCharset(para1: OAHPHttpParams): JLString; static; overload;
    class procedure setContentCharset(para1: OAHPHttpParams; para2: JLString); static; overload;
    class function getVersion(para1: OAHPHttpParams): OAHProtocolVersion; static; overload;
    class procedure setVersion(para1: OAHPHttpParams; para2: OAHProtocolVersion); static; overload;
    class function getUserAgent(para1: OAHPHttpParams): JLString; static; overload;
    class procedure setUserAgent(para1: OAHPHttpParams; para2: JLString); static; overload;
    class function useExpectContinue(para1: OAHPHttpParams): jboolean; static; overload;
    class procedure setUseExpectContinue(para1: OAHPHttpParams; para2: jboolean); static; overload;
  end;

  OAHAPAuthParamBean = class external 'org.apache.http.auth.params' name 'AuthParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setCredentialCharset(para1: JLString); overload; virtual;
  end;

  OAHCPClientParamBean = class external 'org.apache.http.client.params' name 'ClientParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setConnectionManagerFactoryClassName(para1: JLString); overload; virtual;
    procedure setConnectionManagerFactory(para1: OAHCClientConnectionManagerFactory); overload; virtual;
    procedure setHandleRedirects(para1: jboolean); overload; virtual;
    procedure setRejectRelativeRedirect(para1: jboolean); overload; virtual;
    procedure setMaxRedirects(para1: jint); overload; virtual;
    procedure setAllowCircularRedirects(para1: jboolean); overload; virtual;
    procedure setHandleAuthentication(para1: jboolean); overload; virtual;
    procedure setCookiePolicy(para1: JLString); overload; virtual;
    procedure setVirtualHost(para1: OAHHttpHost); overload; virtual;
    procedure setDefaultHeaders(para1: JUCollection); overload; virtual;
    procedure setDefaultHost(para1: OAHHttpHost); overload; virtual;
  end;

  OAHCPConnConnectionParamBean = class external 'org.apache.http.conn.params' name 'ConnConnectionParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setMaxStatusLineGarbage(para1: jint); overload; virtual;
  end;

  OAHCPConnManagerParamBean = class external 'org.apache.http.conn.params' name 'ConnManagerParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setTimeout(para1: jlong); overload; virtual;
    procedure setMaxTotalConnections(para1: jint); overload; virtual;
    procedure setConnectionsPerRoute(para1: OAHCPConnPerRouteBean); overload; virtual;
  end;

  OAHCPConnRouteParamBean = class external 'org.apache.http.conn.params' name 'ConnRouteParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setDefaultProxy(para1: OAHHttpHost); overload; virtual;
    procedure setLocalAddress(para1: JNInetAddress); overload; virtual;
    procedure setForcedRoute(para1: OAHCRHttpRoute); overload; virtual;
  end;

  OAHCPCookieSpecParamBean = class external 'org.apache.http.cookie.params' name 'CookieSpecParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setDatePatterns(para1: JUCollection); overload; virtual;
    procedure setSingleHeader(para1: jboolean); overload; virtual;
  end;

  OAHPHttpConnectionParamBean = class external 'org.apache.http.params' name 'HttpConnectionParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setSoTimeout(para1: jint); overload; virtual;
    procedure setTcpNoDelay(para1: jboolean); overload; virtual;
    procedure setSocketBufferSize(para1: jint); overload; virtual;
    procedure setLinger(para1: jint); overload; virtual;
    procedure setConnectionTimeout(para1: jint); overload; virtual;
    procedure setStaleCheckingEnabled(para1: jboolean); overload; virtual;
  end;

  OAHPHttpProtocolParamBean = class external 'org.apache.http.params' name 'HttpProtocolParamBean' (OAHPHttpAbstractParamBean)
  public
    constructor create(para1: OAHPHttpParams); overload;
    procedure setHttpElementCharset(para1: JLString); overload; virtual;
    procedure setContentCharset(para1: JLString); overload; virtual;
    procedure setVersion(para1: OAHHttpVersion); overload; virtual;
    procedure setUserAgent(para1: JLString); overload; virtual;
    procedure setUseExpectContinue(para1: jboolean); overload; virtual;
  end;

  OAHPAbstractHttpParams = class abstract external 'org.apache.http.params' name 'AbstractHttpParams' (JLObject, OAHPHttpParams)
  strict protected
    constructor create(); overload;
  public
    function getLongParameter(para1: JLString; para2: jlong): jlong; overload; virtual;
    function setLongParameter(para1: JLString; para2: jlong): OAHPHttpParams; overload; virtual;
    function getIntParameter(para1: JLString; para2: jint): jint; overload; virtual;
    function setIntParameter(para1: JLString; para2: jint): OAHPHttpParams; overload; virtual;
    function getDoubleParameter(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    function setDoubleParameter(para1: JLString; para2: jdouble): OAHPHttpParams; overload; virtual;
    function getBooleanParameter(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    function setBooleanParameter(para1: JLString; para2: jboolean): OAHPHttpParams; overload; virtual;
    function isParameterTrue(para1: JLString): jboolean; overload; virtual;
    function isParameterFalse(para1: JLString): jboolean; overload; virtual;
  end;

  OAHPBasicHttpContext = class external 'org.apache.http.protocol' name 'BasicHttpContext' (JLObject, OAHPHttpContext)
  public
    constructor create(); overload;
    constructor create(para1: OAHPHttpContext); overload;
    function getAttribute(para1: JLString): JLObject; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual;
    function removeAttribute(para1: JLString): JLObject; overload; virtual;
  end;

  OAHPDefaultedHttpContext = class sealed external 'org.apache.http.protocol' name 'DefaultedHttpContext' (JLObject, OAHPHttpContext)
  public
    constructor create(para1: OAHPHttpContext; para2: OAHPHttpContext); overload;
    function getAttribute(para1: JLString): JLObject; overload; virtual;
    function removeAttribute(para1: JLString): JLObject; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual;
    function getDefaults(): OAHPHttpContext; overload; virtual;
  end;

  OAHPHttpRequestHandlerRegistry = class external 'org.apache.http.protocol' name 'HttpRequestHandlerRegistry' (JLObject, OAHPHttpRequestHandlerResolver)
  public
    constructor create(); overload;
    procedure register(para1: JLString; para2: OAHPHttpRequestHandler); overload; virtual;
    procedure unregister(para1: JLString); overload; virtual;
    procedure setHandlers(para1: JUMap); overload; virtual;
    function lookup(para1: JLString): OAHPHttpRequestHandler; overload; virtual;
  strict protected
    function matchUriRequestPattern(para1: JLString; para2: JLString): jboolean; overload; virtual;
  end;

  OWDAttr = interface external 'org.w3c.dom' name 'Attr' (OWDNode)
    function getName(): JLString; overload;
    function getSpecified(): jboolean; overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOwnerElement(): OWDElement; overload;
    function getSchemaTypeInfo(): OWDTypeInfo; overload;
    function isId(): jboolean; overload;
  end;

  OWDCharacterData = interface external 'org.w3c.dom' name 'CharacterData' (OWDNode)
    function getData(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setData(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLength(): jint; overload;
    function substringData(para1: jint; para2: jint): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure appendData(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure insertData(para1: jint; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure deleteData(para1: jint; para2: jint); overload;  // throws org.w3c.dom.DOMException
    procedure replaceData(para1: jint; para2: jint; para3: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDDocument = interface external 'org.w3c.dom' name 'Document' (OWDNode)
    function getDoctype(): OWDDocumentType; overload;
    function getImplementation(): OWDDOMImplementation; overload;
    function getDocumentElement(): OWDElement; overload;
    function createElement(para1: JLString): OWDElement; overload;  // throws org.w3c.dom.DOMException
    function createDocumentFragment(): OWDDocumentFragment; overload;
    function createTextNode(para1: JLString): OWDText; overload;
    function createComment(para1: JLString): OWDComment; overload;
    function createCDATASection(para1: JLString): OWDCDATASection; overload;  // throws org.w3c.dom.DOMException
    function createProcessingInstruction(para1: JLString; para2: JLString): OWDProcessingInstruction; overload;  // throws org.w3c.dom.DOMException
    function createAttribute(para1: JLString): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function createEntityReference(para1: JLString): OWDEntityReference; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagName(para1: JLString): OWDNodeList; overload;
    function importNode(para1: OWDNode; para2: jboolean): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function createElementNS(para1: JLString; para2: JLString): OWDElement; overload;  // throws org.w3c.dom.DOMException
    function createAttributeNS(para1: JLString; para2: JLString): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagNameNS(para1: JLString; para2: JLString): OWDNodeList; overload;
    function getElementById(para1: JLString): OWDElement; overload;
    function getInputEncoding(): JLString; overload;
    function getXmlEncoding(): JLString; overload;
    function getXmlStandalone(): jboolean; overload;
    procedure setXmlStandalone(para1: jboolean); overload;  // throws org.w3c.dom.DOMException
    function getXmlVersion(): JLString; overload;
    procedure setXmlVersion(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getStrictErrorChecking(): jboolean; overload;
    procedure setStrictErrorChecking(para1: jboolean); overload;
    function getDocumentURI(): JLString; overload;
    procedure setDocumentURI(para1: JLString); overload;
    function adoptNode(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function getDomConfig(): OWDDOMConfiguration; overload;
    procedure normalizeDocument(); overload;
    function renameNode(para1: OWDNode; para2: JLString; para3: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDDocumentFragment = interface external 'org.w3c.dom' name 'DocumentFragment' (OWDNode)
  end;

  OWDDocumentType = interface external 'org.w3c.dom' name 'DocumentType' (OWDNode)
    function getName(): JLString; overload;
    function getEntities(): OWDNamedNodeMap; overload;
    function getNotations(): OWDNamedNodeMap; overload;
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getInternalSubset(): JLString; overload;
  end;

  OWDElement = interface external 'org.w3c.dom' name 'Element' (OWDNode)
    function getTagName(): JLString; overload;
    function getAttribute(para1: JLString): JLString; overload;
    procedure setAttribute(para1: JLString; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure removeAttribute(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getAttributeNode(para1: JLString): OWDAttr; overload;
    function setAttributeNode(para1: OWDAttr): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function removeAttributeNode(para1: OWDAttr): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagName(para1: JLString): OWDNodeList; overload;
    function getAttributeNS(para1: JLString; para2: JLString): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setAttributeNS(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure removeAttributeNS(para1: JLString; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    function getAttributeNodeNS(para1: JLString; para2: JLString): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function setAttributeNodeNS(para1: OWDAttr): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagNameNS(para1: JLString; para2: JLString): OWDNodeList; overload;  // throws org.w3c.dom.DOMException
    function hasAttribute(para1: JLString): jboolean; overload;
    function hasAttributeNS(para1: JLString; para2: JLString): jboolean; overload;  // throws org.w3c.dom.DOMException
    function getSchemaTypeInfo(): OWDTypeInfo; overload;
    procedure setIdAttribute(para1: JLString; para2: jboolean); overload;  // throws org.w3c.dom.DOMException
    procedure setIdAttributeNS(para1: JLString; para2: JLString; para3: jboolean); overload;  // throws org.w3c.dom.DOMException
    procedure setIdAttributeNode(para1: OWDAttr; para2: jboolean); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDEntity = interface external 'org.w3c.dom' name 'Entity' (OWDNode)
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getNotationName(): JLString; overload;
    function getInputEncoding(): JLString; overload;
    function getXmlEncoding(): JLString; overload;
    function getXmlVersion(): JLString; overload;
  end;

  OWDEntityReference = interface external 'org.w3c.dom' name 'EntityReference' (OWDNode)
  end;

  OWDNotation = interface external 'org.w3c.dom' name 'Notation' (OWDNode)
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
  end;

  OWDProcessingInstruction = interface external 'org.w3c.dom' name 'ProcessingInstruction' (OWDNode)
    function getTarget(): JLString; overload;
    function getData(): JLString; overload;
    procedure setData(para1: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OXSHAttributeListImpl = class external 'org.xml.sax.helpers' name 'AttributeListImpl' (JLObject, OXSAttributeList)
  public
    constructor create(); overload;
    constructor create(para1: OXSAttributeList); overload;
    procedure setAttributeList(para1: OXSAttributeList); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure removeAttribute(para1: JLString); overload; virtual;
    procedure clear(); overload; virtual;
    function getLength(): jint; overload; virtual;
    function getName(para1: jint): JLString; overload; virtual;
    function getType(para1: jint): JLString; overload; virtual;
    function getValue(para1: jint): JLString; overload; virtual;
    function getType(para1: JLString): JLString; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
  end;

  OXSEAttributes2 = interface external 'org.xml.sax.ext' name 'Attributes2' (OXSAttributes)
    function isDeclared(para1: jint): jboolean; overload;
    function isDeclared(para1: JLString): jboolean; overload;
    function isDeclared(para1: JLString; para2: JLString): jboolean; overload;
    function isSpecified(para1: jint): jboolean; overload;
    function isSpecified(para1: JLString; para2: JLString): jboolean; overload;
    function isSpecified(para1: JLString): jboolean; overload;
  end;

  OXSHAttributesImpl = class external 'org.xml.sax.helpers' name 'AttributesImpl' (JLObject, OXSAttributes)
  public
    constructor create(); overload;
    constructor create(para1: OXSAttributes); overload;
    function getLength(): jint; overload; virtual;
    function getURI(para1: jint): JLString; overload; virtual;
    function getLocalName(para1: jint): JLString; overload; virtual;
    function getQName(para1: jint): JLString; overload; virtual;
    function getType(para1: jint): JLString; overload; virtual;
    function getValue(para1: jint): JLString; overload; virtual;
    function getIndex(para1: JLString; para2: JLString): jint; overload; virtual;
    function getIndex(para1: JLString): jint; overload; virtual;
    function getType(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getType(para1: JLString): JLString; overload; virtual;
    function getValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    procedure setAttributes(para1: OXSAttributes); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure setAttribute(para1: jint; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString); overload; virtual;
    procedure removeAttribute(para1: jint); overload; virtual;
    procedure setURI(para1: jint; para2: JLString); overload; virtual;
    procedure setLocalName(para1: jint; para2: JLString); overload; virtual;
    procedure setQName(para1: jint; para2: JLString); overload; virtual;
    procedure setType(para1: jint; para2: JLString); overload; virtual;
    procedure setValue(para1: jint; para2: JLString); overload; virtual;
  end;

  JXTSTemplatesHandler = interface external 'javax.xml.transform.sax' name 'TemplatesHandler' (OXSContentHandler)
    function getTemplates(): JXTTemplates; overload;
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
  end;

  JXVValidatorHandler = class abstract external 'javax.xml.validation' name 'ValidatorHandler' (JLObject, OXSContentHandler)
  strict protected
    constructor create(); overload;
  public
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual; abstract;
    function getContentHandler(): OXSContentHandler; overload; virtual; abstract;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function getErrorHandler(): OXSErrorHandler; overload; virtual; abstract;
    procedure setResourceResolver(para1: OWDLLSResourceResolver); overload; virtual; abstract;
    function getResourceResolver(): OWDLLSResourceResolver; overload; virtual; abstract;
    function getTypeInfoProvider(): JXVTypeInfoProvider; overload; virtual; abstract;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
  end;

  OXSEEntityResolver2 = interface external 'org.xml.sax.ext' name 'EntityResolver2' (OXSEntityResolver)
    function getExternalSubset(para1: JLString; para2: JLString): OXSInputSource; overload;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString; para3: JLString; para4: JLString): OXSInputSource; overload;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSHandlerBase = class external 'org.xml.sax' name 'HandlerBase' (JLObject, OXSEntityResolver, OXSDTDHandler, OXSDocumentHandler, OXSErrorHandler)
  public
    constructor create(); overload;
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSHDefaultHandler = class external 'org.xml.sax.helpers' name 'DefaultHandler' (JLObject, OXSEntityResolver, OXSDTDHandler, OXSContentHandler, OXSErrorHandler)
  public
    constructor create(); overload;
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endPrefixMapping(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSELocator2 = interface external 'org.xml.sax.ext' name 'Locator2' (OXSLocator)
    function getXMLVersion(): JLString; overload;
    function getEncoding(): JLString; overload;
  end;

  OXSHLocatorImpl = class external 'org.xml.sax.helpers' name 'LocatorImpl' (JLObject, OXSLocator)
  public
    constructor create(); overload;
    constructor create(para1: OXSLocator); overload;
    function getPublicId(): JLString; overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
    procedure setPublicId(para1: JLString); overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    procedure setLineNumber(para1: jint); overload; virtual;
    procedure setColumnNumber(para1: jint); overload; virtual;
  end;

  OXSHXMLReaderAdapter = class external 'org.xml.sax.helpers' name 'XMLReaderAdapter' (JLObject, OXSParser, OXSContentHandler)
  public
    constructor create(); overload;  // throws org.xml.sax.SAXException
    constructor create(para1: OXSXMLReader); overload;
    procedure setLocale(para1: JULocale); overload; virtual;  // throws org.xml.sax.SAXException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    procedure setDocumentHandler(para1: OXSDocumentHandler); overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    procedure parse(para1: JLString); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload; virtual;
    procedure endPrefixMapping(para1: JLString); overload; virtual;
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSXMLFilter = interface external 'org.xml.sax' name 'XMLFilter' (OXSXMLReader)
    procedure setParent(para1: OXSXMLReader); overload;
    function getParent(): OXSXMLReader; overload;
  end;

  OXSHParserAdapter = class external 'org.xml.sax.helpers' name 'ParserAdapter' (JLObject, OXSXMLReader, OXSDocumentHandler)
  public
    constructor create(); overload;  // throws org.xml.sax.SAXException
    constructor create(para1: OXSParser); overload;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    function getEntityResolver(): OXSEntityResolver; overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    function getDTDHandler(): OXSDTDHandler; overload; virtual;
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual;
    function getContentHandler(): OXSContentHandler; overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    function getErrorHandler(): OXSErrorHandler; overload; virtual;
    procedure parse(para1: JLString); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXVSDriver = class external 'org.xmlpull.v1.sax2' name 'Driver' (JLObject, OXSLocator, OXSXMLReader, OXSAttributes)
  strict protected
    const
      DECLARATION_HANDLER_PROPERTY = 'http://xml.org/sax/properties/declaration-handler';
      LEXICAL_HANDLER_PROPERTY = 'http://xml.org/sax/properties/lexical-handler';
      NAMESPACES_FEATURE = 'http://xml.org/sax/features/namespaces';
      NAMESPACE_PREFIXES_FEATURE = 'http://xml.org/sax/features/namespace-prefixes';
      VALIDATION_FEATURE = 'http://xml.org/sax/features/validation';
      APACHE_SCHEMA_VALIDATION_FEATURE = 'http://apache.org/xml/features/validation/schema';
      APACHE_DYNAMIC_VALIDATION_FEATURE = 'http://apache.org/xml/features/validation/dynamic';
  strict protected
    var
      fcontentHandler: OXSContentHandler; external name 'contentHandler';
      ferrorHandler: OXSErrorHandler; external name 'errorHandler';
      fsystemId: JLString; external name 'systemId';
      fpp: OXVXmlPullParser; external name 'pp';
  public
    constructor create(); overload;  // throws org.xmlpull.v1.XmlPullParserException
    constructor create(para1: OXVXmlPullParser); overload;  // throws org.xmlpull.v1.XmlPullParserException
    function getLength(): jint; overload; virtual;
    function getURI(para1: jint): JLString; overload; virtual;
    function getLocalName(para1: jint): JLString; overload; virtual;
    function getQName(para1: jint): JLString; overload; virtual;
    function getType(para1: jint): JLString; overload; virtual;
    function getValue(para1: jint): JLString; overload; virtual;
    function getIndex(para1: JLString; para2: JLString): jint; overload; virtual;
    function getIndex(para1: JLString): jint; overload; virtual;
    function getType(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getType(para1: JLString): JLString; overload; virtual;
    function getValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
    function getPublicId(): JLString; overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    function getEntityResolver(): OXSEntityResolver; overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    function getDTDHandler(): OXSDTDHandler; overload; virtual;
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual;
    function getContentHandler(): OXSContentHandler; overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    function getErrorHandler(): OXSErrorHandler; overload; virtual;
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parseSubTree(para1: OXVXmlPullParser); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
  strict protected
    procedure startElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  JXTSTransformerHandler = interface external 'javax.xml.transform.sax' name 'TransformerHandler' (OXSContentHandler, OXSELexicalHandler, OXSDTDHandler)
    procedure setResult(para1: JXTResult); overload;  // throws java.lang.IllegalArgumentException
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
    function getTransformer(): JXTTransformer; overload;
  end;

  ACRXmlResourceParser = interface external 'android.content.res' name 'XmlResourceParser' (OXVXmlPullParser, AUAttributeSet)
    procedure close(); overload;
  end;

  AAAuthenticatorException = class external 'android.accounts' name 'AuthenticatorException' (AAAccountsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  AANetworkErrorException = class external 'android.accounts' name 'NetworkErrorException' (AAAccountsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  AAOperationCanceledException = class external 'android.accounts' name 'OperationCanceledException' (AAAccountsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  AAPendingIntent = class sealed external 'android.app' name 'PendingIntent' (JLObject, AOParcelable)
  public
    type
      InnerOnFinished = interface;
      Arr1InnerOnFinished = array of InnerOnFinished;
      Arr2InnerOnFinished = array of Arr1InnerOnFinished;
      Arr3InnerOnFinished = array of Arr2InnerOnFinished;
      InnerCanceledException = class;
      Arr1InnerCanceledException = array of InnerCanceledException;
      Arr2InnerCanceledException = array of Arr1InnerCanceledException;
      Arr3InnerCanceledException = array of Arr2InnerCanceledException;
      InnerOnFinished = interface external 'android.app' name 'OnFinished' 
        procedure onSendFinished(para1: AAPendingIntent; para2: ACIntent; para3: jint; para4: JLString; para5: AOBundle); overload;
      end;

      InnerCanceledException = class external 'android.app' name 'CanceledException' (AUAndroidException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        constructor create(para1: JLException); overload;
      end;

  public
    const
      FLAG_ONE_SHOT = 1073741824;
      FLAG_NO_CREATE = 536870912;
      FLAG_CANCEL_CURRENT = 268435456;
      FLAG_UPDATE_CURRENT = 134217728;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    class function getActivity(para1: ACContext; para2: jint; para3: ACIntent; para4: jint): AAPendingIntent; static; overload;
    class function getActivities(para1: ACContext; para2: jint; para3: Arr1ACIntent; para4: jint): AAPendingIntent; static; overload;
    class function getActivities(para1: ACContext; para2: jint; var para3: array of ACIntent; para4: jint): AAPendingIntent; static; overload;
    class function getBroadcast(para1: ACContext; para2: jint; para3: ACIntent; para4: jint): AAPendingIntent; static; overload;
    class function getService(para1: ACContext; para2: jint; para3: ACIntent; para4: jint): AAPendingIntent; static; overload;
    function getIntentSender(): ACIntentSender; overload; virtual;
    procedure cancel(); overload; virtual;
    procedure send(); overload; virtual;  // throws android.app.PendingIntent$CanceledException
    procedure send(para1: jint); overload; virtual;  // throws android.app.PendingIntent$CanceledException
    procedure send(para1: ACContext; para2: jint; para3: ACIntent); overload; virtual;  // throws android.app.PendingIntent$CanceledException
    procedure send(para1: jint; para2: AAPendingIntent.InnerOnFinished; para3: AOHandler); overload; virtual;  // throws android.app.PendingIntent$CanceledException
    procedure send(para1: ACContext; para2: jint; para3: ACIntent; para4: AAPendingIntent.InnerOnFinished; para5: AOHandler); overload; virtual;  // throws android.app.PendingIntent$CanceledException
    procedure send(para1: ACContext; para2: jint; para3: ACIntent; para4: AAPendingIntent.InnerOnFinished; para5: AOHandler; para6: JLString); overload; virtual;  // throws android.app.PendingIntent$CanceledException
    function getTargetPackage(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    class procedure writePendingIntentOrNullToParcel(para1: AAPendingIntent; para2: AOParcel); static; overload;
    class function readPendingIntentOrNullFromParcel(para1: AOParcel): AAPendingIntent; static; overload;
  end;

  ACIntentFilter = class external 'android.content' name 'IntentFilter' (JLObject, AOParcelable)
  public
    type
      InnerAuthorityEntry = class;
      Arr1InnerAuthorityEntry = array of InnerAuthorityEntry;
      Arr2InnerAuthorityEntry = array of Arr1InnerAuthorityEntry;
      Arr3InnerAuthorityEntry = array of Arr2InnerAuthorityEntry;
      InnerMalformedMimeTypeException = class;
      Arr1InnerMalformedMimeTypeException = array of InnerMalformedMimeTypeException;
      Arr2InnerMalformedMimeTypeException = array of Arr1InnerMalformedMimeTypeException;
      Arr3InnerMalformedMimeTypeException = array of Arr2InnerMalformedMimeTypeException;
      InnerAuthorityEntry = class sealed external 'android.content' name 'AuthorityEntry' (JLObject)
      public
        constructor create(para1: JLString; para2: JLString); overload;
        function getHost(): JLString; overload; virtual;
        function getPort(): jint; overload; virtual;
        function match(para1: ANUri): jint; overload; virtual;
      end;

      InnerMalformedMimeTypeException = class external 'android.content' name 'MalformedMimeTypeException' (AUAndroidException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

  public
    const
      SYSTEM_HIGH_PRIORITY = 1000;
      SYSTEM_LOW_PRIORITY = -1000;
      MATCH_CATEGORY_MASK = 268369920;
      MATCH_ADJUSTMENT_MASK = 65535;
      MATCH_ADJUSTMENT_NORMAL = 32768;
      MATCH_CATEGORY_EMPTY = 1048576;
      MATCH_CATEGORY_SCHEME = 2097152;
      MATCH_CATEGORY_HOST = 3145728;
      MATCH_CATEGORY_PORT = 4194304;
      MATCH_CATEGORY_PATH = 5242880;
      MATCH_CATEGORY_TYPE = 6291456;
      NO_MATCH_TYPE = -1;
      NO_MATCH_DATA = -2;
      NO_MATCH_ACTION = -3;
      NO_MATCH_CATEGORY = -4;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;  // throws android.content.IntentFilter$MalformedMimeTypeException
    constructor create(para1: ACIntentFilter); overload;
    class function create_(para1: JLString; para2: JLString): ACIntentFilter; static; external name 'create'; overload;
    procedure setPriority(para1: jint); overload; virtual; final;
    function getPriority(): jint; overload; virtual; final;
    procedure addAction(para1: JLString); overload; virtual; final;
    function countActions(): jint; overload; virtual; final;
    function getAction(para1: jint): JLString; overload; virtual; final;
    function hasAction(para1: JLString): jboolean; overload; virtual; final;
    function matchAction(para1: JLString): jboolean; overload; virtual; final;
    function actionsIterator(): JUIterator; overload; virtual; final;
    procedure addDataType(para1: JLString); overload; virtual; final;  // throws android.content.IntentFilter$MalformedMimeTypeException
    function hasDataType(para1: JLString): jboolean; overload; virtual; final;
    function countDataTypes(): jint; overload; virtual; final;
    function getDataType(para1: jint): JLString; overload; virtual; final;
    function typesIterator(): JUIterator; overload; virtual; final;
    procedure addDataScheme(para1: JLString); overload; virtual; final;
    function countDataSchemes(): jint; overload; virtual; final;
    function getDataScheme(para1: jint): JLString; overload; virtual; final;
    function hasDataScheme(para1: JLString): jboolean; overload; virtual; final;
    function schemesIterator(): JUIterator; overload; virtual; final;
    procedure addDataAuthority(para1: JLString; para2: JLString); overload; virtual; final;
    function countDataAuthorities(): jint; overload; virtual; final;
    function getDataAuthority(para1: jint): ACIntentFilter.InnerAuthorityEntry; overload; virtual; final;
    function hasDataAuthority(para1: ANUri): jboolean; overload; virtual; final;
    function authoritiesIterator(): JUIterator; overload; virtual; final;
    procedure addDataPath(para1: JLString; para2: jint); overload; virtual; final;
    function countDataPaths(): jint; overload; virtual; final;
    function getDataPath(para1: jint): AOPatternMatcher; overload; virtual; final;
    function hasDataPath(para1: JLString): jboolean; overload; virtual; final;
    function pathsIterator(): JUIterator; overload; virtual; final;
    function matchDataAuthority(para1: ANUri): jint; overload; virtual; final;
    function matchData(para1: JLString; para2: JLString; para3: ANUri): jint; overload; virtual; final;
    procedure addCategory(para1: JLString); overload; virtual; final;
    function countCategories(): jint; overload; virtual; final;
    function getCategory(para1: jint): JLString; overload; virtual; final;
    function hasCategory(para1: JLString): jboolean; overload; virtual; final;
    function categoriesIterator(): JUIterator; overload; virtual; final;
    function matchCategories(para1: JUSet): JLString; overload; virtual; final;
    function match(para1: ACContentResolver; para2: ACIntent; para3: jboolean; para4: JLString): jint; overload; virtual; final;
    function match(para1: JLString; para2: JLString; para3: JLString; para4: ANUri; para5: JUSet; para6: JLString): jint; overload; virtual; final;
    procedure writeToXml(para1: OXVXmlSerializer); overload; virtual;  // throws java.io.IOException
    procedure readFromXml(para1: OXVXmlPullParser); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function describeContents(): jint; overload; virtual; final;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual; final;
  end;

  ACIntentSender = class external 'android.content' name 'IntentSender' (JLObject, AOParcelable)
  public
    type
      InnerOnFinished = interface;
      Arr1InnerOnFinished = array of InnerOnFinished;
      Arr2InnerOnFinished = array of Arr1InnerOnFinished;
      Arr3InnerOnFinished = array of Arr2InnerOnFinished;
      InnerSendIntentException = class;
      Arr1InnerSendIntentException = array of InnerSendIntentException;
      Arr2InnerSendIntentException = array of Arr1InnerSendIntentException;
      Arr3InnerSendIntentException = array of Arr2InnerSendIntentException;
      InnerOnFinished = interface external 'android.content' name 'OnFinished' 
        procedure onSendFinished(para1: ACIntentSender; para2: ACIntent; para3: jint; para4: JLString; para5: AOBundle); overload;
      end;

      InnerSendIntentException = class external 'android.content' name 'SendIntentException' (AUAndroidException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
        constructor create(para1: JLException); overload;
      end;

  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    procedure sendIntent(para1: ACContext; para2: jint; para3: ACIntent; para4: ACIntentSender.InnerOnFinished; para5: AOHandler); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    procedure sendIntent(para1: ACContext; para2: jint; para3: ACIntent; para4: ACIntentSender.InnerOnFinished; para5: AOHandler; para6: JLString); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    function getTargetPackage(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    class procedure writeIntentSenderOrNullToParcel(para1: ACIntentSender; para2: AOParcel); static; overload;
    class function readIntentSenderOrNullFromParcel(para1: AOParcel): ACIntentSender; static; overload;
  end;

  ACPPackageManager = class abstract external 'android.content.pm' name 'PackageManager' (JLObject)
  public
    type
      InnerNameNotFoundException = class;
      Arr1InnerNameNotFoundException = array of InnerNameNotFoundException;
      Arr2InnerNameNotFoundException = array of Arr1InnerNameNotFoundException;
      Arr3InnerNameNotFoundException = array of Arr2InnerNameNotFoundException;
      InnerNameNotFoundException = class external 'android.content.pm' name 'NameNotFoundException' (AUAndroidException)
      public
        constructor create(); overload;
        constructor create(para1: JLString); overload;
      end;

  public
    const
      GET_ACTIVITIES = 1;
      GET_RECEIVERS = 2;
      GET_SERVICES = 4;
      GET_PROVIDERS = 8;
      GET_INSTRUMENTATION = 16;
      GET_INTENT_FILTERS = 32;
      GET_SIGNATURES = 64;
      GET_RESOLVED_FILTER = 64;
      GET_META_DATA = 128;
      GET_GIDS = 256;
      GET_DISABLED_COMPONENTS = 512;
      GET_SHARED_LIBRARY_FILES = 1024;
      GET_URI_PERMISSION_PATTERNS = 2048;
      GET_PERMISSIONS = 4096;
      GET_UNINSTALLED_PACKAGES = 8192;
      GET_CONFIGURATIONS = 16384;
      MATCH_DEFAULT_ONLY = 65536;
      PERMISSION_GRANTED = 0;
      PERMISSION_DENIED = -1;
      SIGNATURE_MATCH = 0;
      SIGNATURE_NEITHER_SIGNED = 1;
      SIGNATURE_FIRST_NOT_SIGNED = -1;
      SIGNATURE_SECOND_NOT_SIGNED = -2;
      SIGNATURE_NO_MATCH = -3;
      SIGNATURE_UNKNOWN_PACKAGE = -4;
      COMPONENT_ENABLED_STATE_DEFAULT = 0;
      COMPONENT_ENABLED_STATE_ENABLED = 1;
      COMPONENT_ENABLED_STATE_DISABLED = 2;
      COMPONENT_ENABLED_STATE_DISABLED_USER = 3;
      DONT_KILL_APP = 1;
      VERIFICATION_ALLOW = 1;
      VERIFICATION_REJECT = -1;
      FEATURE_AUDIO_LOW_LATENCY = 'android.hardware.audio.low_latency';
      FEATURE_BLUETOOTH = 'android.hardware.bluetooth';
      FEATURE_CAMERA = 'android.hardware.camera';
      FEATURE_CAMERA_AUTOFOCUS = 'android.hardware.camera.autofocus';
      FEATURE_CAMERA_FLASH = 'android.hardware.camera.flash';
      FEATURE_CAMERA_FRONT = 'android.hardware.camera.front';
      FEATURE_LOCATION = 'android.hardware.location';
      FEATURE_LOCATION_GPS = 'android.hardware.location.gps';
      FEATURE_LOCATION_NETWORK = 'android.hardware.location.network';
      FEATURE_MICROPHONE = 'android.hardware.microphone';
      FEATURE_NFC = 'android.hardware.nfc';
      FEATURE_SENSOR_ACCELEROMETER = 'android.hardware.sensor.accelerometer';
      FEATURE_SENSOR_BAROMETER = 'android.hardware.sensor.barometer';
      FEATURE_SENSOR_COMPASS = 'android.hardware.sensor.compass';
      FEATURE_SENSOR_GYROSCOPE = 'android.hardware.sensor.gyroscope';
      FEATURE_SENSOR_LIGHT = 'android.hardware.sensor.light';
      FEATURE_SENSOR_PROXIMITY = 'android.hardware.sensor.proximity';
      FEATURE_TELEPHONY = 'android.hardware.telephony';
      FEATURE_TELEPHONY_CDMA = 'android.hardware.telephony.cdma';
      FEATURE_TELEPHONY_GSM = 'android.hardware.telephony.gsm';
      FEATURE_USB_HOST = 'android.hardware.usb.host';
      FEATURE_USB_ACCESSORY = 'android.hardware.usb.accessory';
      FEATURE_SIP = 'android.software.sip';
      FEATURE_SIP_VOIP = 'android.software.sip.voip';
      FEATURE_TOUCHSCREEN = 'android.hardware.touchscreen';
      FEATURE_TOUCHSCREEN_MULTITOUCH = 'android.hardware.touchscreen.multitouch';
      FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT = 'android.hardware.touchscreen.multitouch.distinct';
      FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND = 'android.hardware.touchscreen.multitouch.jazzhand';
      FEATURE_FAKETOUCH = 'android.hardware.faketouch';
      FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT = 'android.hardware.faketouch.multitouch.distinct';
      FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND = 'android.hardware.faketouch.multitouch.jazzhand';
      FEATURE_SCREEN_PORTRAIT = 'android.hardware.screen.portrait';
      FEATURE_SCREEN_LANDSCAPE = 'android.hardware.screen.landscape';
      FEATURE_LIVE_WALLPAPER = 'android.software.live_wallpaper';
      FEATURE_WIFI = 'android.hardware.wifi';
      FEATURE_WIFI_DIRECT = 'android.hardware.wifi.direct';
      EXTRA_VERIFICATION_ID = 'android.content.pm.extra.VERIFICATION_ID';
  public
    constructor create(); overload;
    function getPackageInfo(para1: JLString; para2: jint): ACPPackageInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function currentToCanonicalPackageNames(para1: Arr1JLString): Arr1JLString; overload; virtual; abstract;
    function currentToCanonicalPackageNames(var para1: array of JLString): Arr1JLString; overload; virtual; abstract;
    function canonicalToCurrentPackageNames(para1: Arr1JLString): Arr1JLString; overload; virtual; abstract;
    function canonicalToCurrentPackageNames(var para1: array of JLString): Arr1JLString; overload; virtual; abstract;
    function getLaunchIntentForPackage(para1: JLString): ACIntent; overload; virtual; abstract;
    function getPackageGids(para1: JLString): Arr1jint; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getPermissionInfo(para1: JLString; para2: jint): ACPPermissionInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function queryPermissionsByGroup(para1: JLString; para2: jint): JUList; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getPermissionGroupInfo(para1: JLString; para2: jint): ACPPermissionGroupInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getAllPermissionGroups(para1: jint): JUList; overload; virtual; abstract;
    function getApplicationInfo(para1: JLString; para2: jint): ACPApplicationInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityInfo(para1: ACComponentName; para2: jint): ACPActivityInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getReceiverInfo(para1: ACComponentName; para2: jint): ACPActivityInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getServiceInfo(para1: ACComponentName; para2: jint): ACPServiceInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getProviderInfo(para1: ACComponentName; para2: jint): ACPProviderInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getInstalledPackages(para1: jint): JUList; overload; virtual; abstract;
    function checkPermission(para1: JLString; para2: JLString): jint; overload; virtual; abstract;
    function addPermission(para1: ACPPermissionInfo): jboolean; overload; virtual; abstract;
    function addPermissionAsync(para1: ACPPermissionInfo): jboolean; overload; virtual; abstract;
    procedure removePermission(para1: JLString); overload; virtual; abstract;
    function checkSignatures(para1: JLString; para2: JLString): jint; overload; virtual; abstract;
    function checkSignatures(para1: jint; para2: jint): jint; overload; virtual; abstract;
    function getPackagesForUid(para1: jint): Arr1JLString; overload; virtual; abstract;
    function getNameForUid(para1: jint): JLString; overload; virtual; abstract;
    function getInstalledApplications(para1: jint): JUList; overload; virtual; abstract;
    function getSystemSharedLibraryNames(): Arr1JLString; overload; virtual; abstract;
    function getSystemAvailableFeatures(): Arr1ACPFeatureInfo; overload; virtual; abstract;
    function hasSystemFeature(para1: JLString): jboolean; overload; virtual; abstract;
    function resolveActivity(para1: ACIntent; para2: jint): ACPResolveInfo; overload; virtual; abstract;
    function queryIntentActivities(para1: ACIntent; para2: jint): JUList; overload; virtual; abstract;
    function queryIntentActivityOptions(para1: ACComponentName; para2: Arr1ACIntent; para3: ACIntent; para4: jint): JUList; overload; virtual; abstract;
    function queryIntentActivityOptions(para1: ACComponentName; var para2: array of ACIntent; para3: ACIntent; para4: jint): JUList; overload; virtual; abstract;
    function queryBroadcastReceivers(para1: ACIntent; para2: jint): JUList; overload; virtual; abstract;
    function resolveService(para1: ACIntent; para2: jint): ACPResolveInfo; overload; virtual; abstract;
    function queryIntentServices(para1: ACIntent; para2: jint): JUList; overload; virtual; abstract;
    function resolveContentProvider(para1: JLString; para2: jint): ACPProviderInfo; overload; virtual; abstract;
    function queryContentProviders(para1: JLString; para2: jint; para3: jint): JUList; overload; virtual; abstract;
    function getInstrumentationInfo(para1: ACComponentName; para2: jint): ACPInstrumentationInfo; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function queryInstrumentation(para1: JLString; para2: jint): JUList; overload; virtual; abstract;
    function getDrawable(para1: JLString; para2: jint; para3: ACPApplicationInfo): AGDDrawable; overload; virtual; abstract;
    function getActivityIcon(para1: ACComponentName): AGDDrawable; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityIcon(para1: ACIntent): AGDDrawable; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getDefaultActivityIcon(): AGDDrawable; overload; virtual; abstract;
    function getApplicationIcon(para1: ACPApplicationInfo): AGDDrawable; overload; virtual; abstract;
    function getApplicationIcon(para1: JLString): AGDDrawable; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityLogo(para1: ACComponentName): AGDDrawable; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityLogo(para1: ACIntent): AGDDrawable; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getApplicationLogo(para1: ACPApplicationInfo): AGDDrawable; overload; virtual; abstract;
    function getApplicationLogo(para1: JLString): AGDDrawable; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getText(para1: JLString; para2: jint; para3: ACPApplicationInfo): JLCharSequence; overload; virtual; abstract;
    function getXml(para1: JLString; para2: jint; para3: ACPApplicationInfo): ACRXmlResourceParser; overload; virtual; abstract;
    function getApplicationLabel(para1: ACPApplicationInfo): JLCharSequence; overload; virtual; abstract;
    function getResourcesForActivity(para1: ACComponentName): ACRResources; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getResourcesForApplication(para1: ACPApplicationInfo): ACRResources; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getResourcesForApplication(para1: JLString): ACRResources; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getPackageArchiveInfo(para1: JLString; para2: jint): ACPPackageInfo; overload; virtual;
    procedure verifyPendingInstall(para1: jint; para2: jint); overload; virtual; abstract;
    procedure setInstallerPackageName(para1: JLString; para2: JLString); overload; virtual; abstract;
    function getInstallerPackageName(para1: JLString): JLString; overload; virtual; abstract;
    procedure addPackageToPreferred(para1: JLString); overload; virtual; abstract;
    procedure removePackageFromPreferred(para1: JLString); overload; virtual; abstract;
    function getPreferredPackages(para1: jint): JUList; overload; virtual; abstract;
    procedure addPreferredActivity(para1: ACIntentFilter; para2: jint; para3: Arr1ACComponentName; para4: ACComponentName); overload; virtual; abstract;
    procedure addPreferredActivity(para1: ACIntentFilter; para2: jint; var para3: array of ACComponentName; para4: ACComponentName); overload; virtual; abstract;
    procedure clearPackagePreferredActivities(para1: JLString); overload; virtual; abstract;
    function getPreferredActivities(para1: JUList; para2: JUList; para3: JLString): jint; overload; virtual; abstract;
    procedure setComponentEnabledSetting(para1: ACComponentName; para2: jint; para3: jint); overload; virtual; abstract;
    function getComponentEnabledSetting(para1: ACComponentName): jint; overload; virtual; abstract;
    procedure setApplicationEnabledSetting(para1: JLString; para2: jint; para3: jint); overload; virtual; abstract;
    function getApplicationEnabledSetting(para1: JLString): jint; overload; virtual; abstract;
    function isSafeMode(): jboolean; overload; virtual; abstract;
  end;

  AORemoteException = class external 'android.os' name 'RemoteException' (AUAndroidException)
  public
    constructor create(); overload;
  end;

  APSettings = class sealed external 'android.provider' name 'Settings' (JLObject)
  public
    type
      InnerNameValueTable = class;
      Arr1InnerNameValueTable = array of InnerNameValueTable;
      Arr2InnerNameValueTable = array of Arr1InnerNameValueTable;
      Arr3InnerNameValueTable = array of Arr2InnerNameValueTable;
      InnerSettingNotFoundException = class;
      Arr1InnerSettingNotFoundException = array of InnerSettingNotFoundException;
      Arr2InnerSettingNotFoundException = array of Arr1InnerSettingNotFoundException;
      Arr3InnerSettingNotFoundException = array of Arr2InnerSettingNotFoundException;
      InnerSecure = class;
      Arr1InnerSecure = array of InnerSecure;
      Arr2InnerSecure = array of Arr1InnerSecure;
      Arr3InnerSecure = array of Arr2InnerSecure;
      InnerSystem = class;
      Arr1InnerSystem = array of InnerSystem;
      Arr2InnerSystem = array of Arr1InnerSystem;
      Arr3InnerSystem = array of Arr2InnerSystem;
      InnerNameValueTable = class external 'android.provider' name 'NameValueTable' (JLObject, APBaseColumns)
      public
        const
          NAME = 'name';
          VALUE = 'value';
      public
        constructor create(); overload;
      strict protected
        class function putString(para1: ACContentResolver; para2: ANUri; para3: JLString; para4: JLString): jboolean; static; overload;
      public
        class function getUriFor(para1: ANUri; para2: JLString): ANUri; static; overload;
      end;

      InnerSettingNotFoundException = class external 'android.provider' name 'SettingNotFoundException' (AUAndroidException)
      public
        constructor create(para1: JLString); overload;
      end;

      InnerSecure = class sealed external 'android.provider' name 'Secure' (InnerNameValueTable)
      public
        const
          SYS_PROP_SETTING_VERSION = 'sys.settings_secure_version';
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          ADB_ENABLED = 'adb_enabled';
          ALLOW_MOCK_LOCATION = 'mock_location';
          ANDROID_ID = 'android_id';
          BLUETOOTH_ON = 'bluetooth_on';
          DATA_ROAMING = 'data_roaming';
          DEFAULT_INPUT_METHOD = 'default_input_method';
          SELECTED_INPUT_METHOD_SUBTYPE = 'selected_input_method_subtype';
          INPUT_METHOD_SELECTOR_VISIBILITY = 'input_method_selector_visibility';
          DEVICE_PROVISIONED = 'device_provisioned';
          ENABLED_INPUT_METHODS = 'enabled_input_methods';
          HTTP_PROXY = 'http_proxy';
          INSTALL_NON_MARKET_APPS = 'install_non_market_apps';
          LOCATION_PROVIDERS_ALLOWED = 'location_providers_allowed';
          LOCK_PATTERN_ENABLED = 'lock_pattern_autolock';
          LOCK_PATTERN_VISIBLE = 'lock_pattern_visible_pattern';
          LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = 'lock_pattern_tactile_feedback_enabled';
          LOGGING_ID = 'logging_id';
          NETWORK_PREFERENCE = 'network_preference';
          PARENTAL_CONTROL_ENABLED = 'parental_control_enabled';
          PARENTAL_CONTROL_LAST_UPDATE = 'parental_control_last_update';
          PARENTAL_CONTROL_REDIRECT_URL = 'parental_control_redirect_url';
          SETTINGS_CLASSNAME = 'settings_classname';
          USB_MASS_STORAGE_ENABLED = 'usb_mass_storage_enabled';
          USE_GOOGLE_MAIL = 'use_google_mail';
          ACCESSIBILITY_ENABLED = 'accessibility_enabled';
          TOUCH_EXPLORATION_ENABLED = 'touch_exploration_enabled';
          ENABLED_ACCESSIBILITY_SERVICES = 'enabled_accessibility_services';
          TTS_USE_DEFAULTS = 'tts_use_defaults';
          TTS_DEFAULT_RATE = 'tts_default_rate';
          TTS_DEFAULT_PITCH = 'tts_default_pitch';
          TTS_DEFAULT_SYNTH = 'tts_default_synth';
          TTS_DEFAULT_LANG = 'tts_default_lang';
          TTS_DEFAULT_COUNTRY = 'tts_default_country';
          TTS_DEFAULT_VARIANT = 'tts_default_variant';
          TTS_ENABLED_PLUGINS = 'tts_enabled_plugins';
          WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = 'wifi_networks_available_notification_on';
          WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = 'wifi_networks_available_repeat_delay';
          WIFI_NUM_OPEN_NETWORKS_KEPT = 'wifi_num_open_networks_kept';
          WIFI_ON = 'wifi_on';
          WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = 'wifi_watchdog_acceptable_packet_loss_percentage';
          WIFI_WATCHDOG_AP_COUNT = 'wifi_watchdog_ap_count';
          WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = 'wifi_watchdog_background_check_delay_ms';
          WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED = 'wifi_watchdog_background_check_enabled';
          WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS = 'wifi_watchdog_background_check_timeout_ms';
          WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT = 'wifi_watchdog_initial_ignored_ping_count';
          WIFI_WATCHDOG_MAX_AP_CHECKS = 'wifi_watchdog_max_ap_checks';
          WIFI_WATCHDOG_ON = 'wifi_watchdog_on';
          WIFI_WATCHDOG_WATCH_LIST = 'wifi_watchdog_watch_list';
          WIFI_WATCHDOG_PING_COUNT = 'wifi_watchdog_ping_count';
          WIFI_WATCHDOG_PING_DELAY_MS = 'wifi_watchdog_ping_delay_ms';
          WIFI_WATCHDOG_PING_TIMEOUT_MS = 'wifi_watchdog_ping_timeout_ms';
          WIFI_MAX_DHCP_RETRY_COUNT = 'wifi_max_dhcp_retry_count';
          WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = 'wifi_mobile_data_transition_wakelock_timeout_ms';
          BACKGROUND_DATA = 'background_data';
          ALLOWED_GEOLOCATION_ORIGINS = 'allowed_geolocation_origins';
      public
        constructor create(); overload;
        class function getString(para1: ACContentResolver; para2: JLString): JLString; static; overload;
        class function putString(para1: ACContentResolver; para2: JLString; para3: JLString): jboolean; static; overload;
        class function getUriFor(para1: JLString): ANUri; static; overload;
        class function getInt(para1: ACContentResolver; para2: JLString; para3: jint): jint; static; overload;
        class function getInt(para1: ACContentResolver; para2: JLString): jint; static; overload;  // throws android.provider.Settings$SettingNotFoundException
        class function putInt(para1: ACContentResolver; para2: JLString; para3: jint): jboolean; static; overload;
        class function getLong(para1: ACContentResolver; para2: JLString; para3: jlong): jlong; static; overload;
        class function getLong(para1: ACContentResolver; para2: JLString): jlong; static; overload;  // throws android.provider.Settings$SettingNotFoundException
        class function putLong(para1: ACContentResolver; para2: JLString; para3: jlong): jboolean; static; overload;
        class function getFloat(para1: ACContentResolver; para2: JLString; para3: jfloat): jfloat; static; overload;
        class function getFloat(para1: ACContentResolver; para2: JLString): jfloat; static; overload;  // throws android.provider.Settings$SettingNotFoundException
        class function putFloat(para1: ACContentResolver; para2: JLString; para3: jfloat): jboolean; static; overload;
        class function isLocationProviderEnabled(para1: ACContentResolver; para2: JLString): jboolean; static; overload; final;
        class procedure setLocationProviderEnabled(para1: ACContentResolver; para2: JLString; para3: jboolean); static; overload; final;
      end;

      InnerSystem = class sealed external 'android.provider' name 'System' (InnerNameValueTable)
      public
        const
          SYS_PROP_SETTING_VERSION = 'sys.settings_system_version';
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          STAY_ON_WHILE_PLUGGED_IN = 'stay_on_while_plugged_in';
          END_BUTTON_BEHAVIOR = 'end_button_behavior';
          AIRPLANE_MODE_ON = 'airplane_mode_on';
          RADIO_BLUETOOTH = 'bluetooth';
          RADIO_WIFI = 'wifi';
          RADIO_CELL = 'cell';
          RADIO_NFC = 'nfc';
          AIRPLANE_MODE_RADIOS = 'airplane_mode_radios';
          WIFI_SLEEP_POLICY = 'wifi_sleep_policy';
          WIFI_SLEEP_POLICY_DEFAULT = 0;
          WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1;
          WIFI_SLEEP_POLICY_NEVER = 2;
          WIFI_USE_STATIC_IP = 'wifi_use_static_ip';
          WIFI_STATIC_IP = 'wifi_static_ip';
          WIFI_STATIC_GATEWAY = 'wifi_static_gateway';
          WIFI_STATIC_NETMASK = 'wifi_static_netmask';
          WIFI_STATIC_DNS1 = 'wifi_static_dns1';
          WIFI_STATIC_DNS2 = 'wifi_static_dns2';
          BLUETOOTH_DISCOVERABILITY = 'bluetooth_discoverability';
          BLUETOOTH_DISCOVERABILITY_TIMEOUT = 'bluetooth_discoverability_timeout';
          LOCK_PATTERN_ENABLED = 'lock_pattern_autolock';
          LOCK_PATTERN_VISIBLE = 'lock_pattern_visible_pattern';
          LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = 'lock_pattern_tactile_feedback_enabled';
          NEXT_ALARM_FORMATTED = 'next_alarm_formatted';
          FONT_SCALE = 'font_scale';
          DEBUG_APP = 'debug_app';
          WAIT_FOR_DEBUGGER = 'wait_for_debugger';
          DIM_SCREEN = 'dim_screen';
          SCREEN_OFF_TIMEOUT = 'screen_off_timeout';
          SCREEN_BRIGHTNESS = 'screen_brightness';
          SCREEN_BRIGHTNESS_MODE = 'screen_brightness_mode';
          SCREEN_BRIGHTNESS_MODE_MANUAL = 0;
          SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1;
          SHOW_PROCESSES = 'show_processes';
          ALWAYS_FINISH_ACTIVITIES = 'always_finish_activities';
          MODE_RINGER = 'mode_ringer';
          MODE_RINGER_STREAMS_AFFECTED = 'mode_ringer_streams_affected';
          MUTE_STREAMS_AFFECTED = 'mute_streams_affected';
          VIBRATE_ON = 'vibrate_on';
          VOLUME_RING = 'volume_ring';
          VOLUME_SYSTEM = 'volume_system';
          VOLUME_VOICE = 'volume_voice';
          VOLUME_MUSIC = 'volume_music';
          VOLUME_ALARM = 'volume_alarm';
          VOLUME_NOTIFICATION = 'volume_notification';
          VOLUME_BLUETOOTH_SCO = 'volume_bluetooth_sco';
      public
        final class var
          fVOLUME_SETTINGS: Arr1JLString; external name 'VOLUME_SETTINGS';
      public
        const
          APPEND_FOR_LAST_AUDIBLE = '_last_audible';
          RINGTONE = 'ringtone';
      public
        final class var
          fDEFAULT_RINGTONE_URI: ANUri; external name 'DEFAULT_RINGTONE_URI';
      public
        const
          NOTIFICATION_SOUND = 'notification_sound';
      public
        final class var
          fDEFAULT_NOTIFICATION_URI: ANUri; external name 'DEFAULT_NOTIFICATION_URI';
      public
        const
          ALARM_ALERT = 'alarm_alert';
      public
        final class var
          fDEFAULT_ALARM_ALERT_URI: ANUri; external name 'DEFAULT_ALARM_ALERT_URI';
      public
        const
          TEXT_AUTO_REPLACE = 'auto_replace';
          TEXT_AUTO_CAPS = 'auto_caps';
          TEXT_AUTO_PUNCTUATE = 'auto_punctuate';
          TEXT_SHOW_PASSWORD = 'show_password';
          SHOW_GTALK_SERVICE_STATUS = 'SHOW_GTALK_SERVICE_STATUS';
          WALLPAPER_ACTIVITY = 'wallpaper_activity';
          AUTO_TIME = 'auto_time';
          AUTO_TIME_ZONE = 'auto_time_zone';
          TIME_12_24 = 'time_12_24';
          DATE_FORMAT = 'date_format';
          SETUP_WIZARD_HAS_RUN = 'setup_wizard_has_run';
          WINDOW_ANIMATION_SCALE = 'window_animation_scale';
          TRANSITION_ANIMATION_SCALE = 'transition_animation_scale';
          ACCELEROMETER_ROTATION = 'accelerometer_rotation';
          USER_ROTATION = 'user_rotation';
          DTMF_TONE_WHEN_DIALING = 'dtmf_tone';
          SOUND_EFFECTS_ENABLED = 'sound_effects_enabled';
          HAPTIC_FEEDBACK_ENABLED = 'haptic_feedback_enabled';
          SHOW_WEB_SUGGESTIONS = 'show_web_suggestions';
          ADB_ENABLED = 'adb_enabled';
          ANDROID_ID = 'android_id';
          BLUETOOTH_ON = 'bluetooth_on';
          DATA_ROAMING = 'data_roaming';
          DEVICE_PROVISIONED = 'device_provisioned';
          HTTP_PROXY = 'http_proxy';
          INSTALL_NON_MARKET_APPS = 'install_non_market_apps';
          LOCATION_PROVIDERS_ALLOWED = 'location_providers_allowed';
          LOGGING_ID = 'logging_id';
          NETWORK_PREFERENCE = 'network_preference';
          PARENTAL_CONTROL_ENABLED = 'parental_control_enabled';
          PARENTAL_CONTROL_LAST_UPDATE = 'parental_control_last_update';
          PARENTAL_CONTROL_REDIRECT_URL = 'parental_control_redirect_url';
          SETTINGS_CLASSNAME = 'settings_classname';
          USB_MASS_STORAGE_ENABLED = 'usb_mass_storage_enabled';
          USE_GOOGLE_MAIL = 'use_google_mail';
          WIFI_MAX_DHCP_RETRY_COUNT = 'wifi_max_dhcp_retry_count';
          WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = 'wifi_mobile_data_transition_wakelock_timeout_ms';
          WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = 'wifi_networks_available_notification_on';
          WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = 'wifi_networks_available_repeat_delay';
          WIFI_NUM_OPEN_NETWORKS_KEPT = 'wifi_num_open_networks_kept';
          WIFI_ON = 'wifi_on';
          WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = 'wifi_watchdog_acceptable_packet_loss_percentage';
          WIFI_WATCHDOG_AP_COUNT = 'wifi_watchdog_ap_count';
          WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = 'wifi_watchdog_background_check_delay_ms';
          WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED = 'wifi_watchdog_background_check_enabled';
          WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS = 'wifi_watchdog_background_check_timeout_ms';
          WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT = 'wifi_watchdog_initial_ignored_ping_count';
          WIFI_WATCHDOG_MAX_AP_CHECKS = 'wifi_watchdog_max_ap_checks';
          WIFI_WATCHDOG_ON = 'wifi_watchdog_on';
          WIFI_WATCHDOG_PING_COUNT = 'wifi_watchdog_ping_count';
          WIFI_WATCHDOG_PING_DELAY_MS = 'wifi_watchdog_ping_delay_ms';
          WIFI_WATCHDOG_PING_TIMEOUT_MS = 'wifi_watchdog_ping_timeout_ms';
      public
        constructor create(); overload;
        class function getString(para1: ACContentResolver; para2: JLString): JLString; static; overload;
        class function putString(para1: ACContentResolver; para2: JLString; para3: JLString): jboolean; static; overload;
        class function getUriFor(para1: JLString): ANUri; static; overload;
        class function getInt(para1: ACContentResolver; para2: JLString; para3: jint): jint; static; overload;
        class function getInt(para1: ACContentResolver; para2: JLString): jint; static; overload;  // throws android.provider.Settings$SettingNotFoundException
        class function putInt(para1: ACContentResolver; para2: JLString; para3: jint): jboolean; static; overload;
        class function getLong(para1: ACContentResolver; para2: JLString; para3: jlong): jlong; static; overload;
        class function getLong(para1: ACContentResolver; para2: JLString): jlong; static; overload;  // throws android.provider.Settings$SettingNotFoundException
        class function putLong(para1: ACContentResolver; para2: JLString; para3: jlong): jboolean; static; overload;
        class function getFloat(para1: ACContentResolver; para2: JLString; para3: jfloat): jfloat; static; overload;
        class function getFloat(para1: ACContentResolver; para2: JLString): jfloat; static; overload;  // throws android.provider.Settings$SettingNotFoundException
        class function putFloat(para1: ACContentResolver; para2: JLString; para3: jfloat): jboolean; static; overload;
        class procedure getConfiguration(para1: ACContentResolver; para2: ACRConfiguration); static; overload;
        class function putConfiguration(para1: ACContentResolver; para2: ACRConfiguration): jboolean; static; overload;
        class function getShowGTalkServiceStatus(para1: ACContentResolver): jboolean; static; overload;
        class procedure setShowGTalkServiceStatus(para1: ACContentResolver; para2: jboolean); static; overload;
      end;

  public
    const
      ACTION_SETTINGS = 'android.settings.SETTINGS';
      ACTION_APN_SETTINGS = 'android.settings.APN_SETTINGS';
      ACTION_LOCATION_SOURCE_SETTINGS = 'android.settings.LOCATION_SOURCE_SETTINGS';
      ACTION_WIRELESS_SETTINGS = 'android.settings.WIRELESS_SETTINGS';
      ACTION_AIRPLANE_MODE_SETTINGS = 'android.settings.AIRPLANE_MODE_SETTINGS';
      ACTION_ACCESSIBILITY_SETTINGS = 'android.settings.ACCESSIBILITY_SETTINGS';
      ACTION_SECURITY_SETTINGS = 'android.settings.SECURITY_SETTINGS';
      ACTION_PRIVACY_SETTINGS = 'android.settings.PRIVACY_SETTINGS';
      ACTION_WIFI_SETTINGS = 'android.settings.WIFI_SETTINGS';
      ACTION_WIFI_IP_SETTINGS = 'android.settings.WIFI_IP_SETTINGS';
      ACTION_BLUETOOTH_SETTINGS = 'android.settings.BLUETOOTH_SETTINGS';
      ACTION_DATE_SETTINGS = 'android.settings.DATE_SETTINGS';
      ACTION_SOUND_SETTINGS = 'android.settings.SOUND_SETTINGS';
      ACTION_DISPLAY_SETTINGS = 'android.settings.DISPLAY_SETTINGS';
      ACTION_LOCALE_SETTINGS = 'android.settings.LOCALE_SETTINGS';
      ACTION_INPUT_METHOD_SETTINGS = 'android.settings.INPUT_METHOD_SETTINGS';
      ACTION_INPUT_METHOD_SUBTYPE_SETTINGS = 'android.settings.INPUT_METHOD_SUBTYPE_SETTINGS';
      ACTION_USER_DICTIONARY_SETTINGS = 'android.settings.USER_DICTIONARY_SETTINGS';
      ACTION_APPLICATION_SETTINGS = 'android.settings.APPLICATION_SETTINGS';
      ACTION_APPLICATION_DEVELOPMENT_SETTINGS = 'android.settings.APPLICATION_DEVELOPMENT_SETTINGS';
      ACTION_QUICK_LAUNCH_SETTINGS = 'android.settings.QUICK_LAUNCH_SETTINGS';
      ACTION_MANAGE_APPLICATIONS_SETTINGS = 'android.settings.MANAGE_APPLICATIONS_SETTINGS';
      ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS = 'android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS';
      ACTION_APPLICATION_DETAILS_SETTINGS = 'android.settings.APPLICATION_DETAILS_SETTINGS';
      ACTION_SYNC_SETTINGS = 'android.settings.SYNC_SETTINGS';
      ACTION_ADD_ACCOUNT = 'android.settings.ADD_ACCOUNT_SETTINGS';
      ACTION_NETWORK_OPERATOR_SETTINGS = 'android.settings.NETWORK_OPERATOR_SETTINGS';
      ACTION_DATA_ROAMING_SETTINGS = 'android.settings.DATA_ROAMING_SETTINGS';
      ACTION_INTERNAL_STORAGE_SETTINGS = 'android.settings.INTERNAL_STORAGE_SETTINGS';
      ACTION_MEMORY_CARD_SETTINGS = 'android.settings.MEMORY_CARD_SETTINGS';
      ACTION_SEARCH_SETTINGS = 'android.search.action.SEARCH_SETTINGS';
      ACTION_DEVICE_INFO_SETTINGS = 'android.settings.DEVICE_INFO_SETTINGS';
      ACTION_NFCSHARING_SETTINGS = 'android.settings.NFCSHARING_SETTINGS';
      EXTRA_AUTHORITIES = 'authorities';
      EXTRA_INPUT_METHOD_ID = 'input_method_id';
      AUTHORITY = 'settings';
  public
    constructor create(); overload;
  end;

  JSDigestException = class external 'java.security' name 'DigestException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSInvalidAlgorithmParameterException = class external 'java.security' name 'InvalidAlgorithmParameterException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSKeyException = class external 'java.security' name 'KeyException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSKeyStoreException = class external 'java.security' name 'KeyStoreException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSNoSuchAlgorithmException = class external 'java.security' name 'NoSuchAlgorithmException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSNoSuchProviderException = class external 'java.security' name 'NoSuchProviderException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSSignatureException = class external 'java.security' name 'SignatureException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSUnrecoverableEntryException = class external 'java.security' name 'UnrecoverableEntryException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCCRLException = class external 'java.security.cert' name 'CRLException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSCCertPathBuilderException = class external 'java.security.cert' name 'CertPathBuilderException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSCCertPathValidatorException = class external 'java.security.cert' name 'CertPathValidatorException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString; para2: JLThrowable; para3: JSCCertPath; para4: jint); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    function getCertPath(): JSCCertPath; overload; virtual;
    function getIndex(): jint; overload; virtual;
  end;

  JSCCertStoreException = class external 'java.security.cert' name 'CertStoreException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSCCertificateException = class external 'java.security.cert' name 'CertificateException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSSInvalidKeySpecException = class external 'java.security.spec' name 'InvalidKeySpecException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSSInvalidParameterSpecException = class external 'java.security.spec' name 'InvalidParameterSpecException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JCBadPaddingException = class external 'javax.crypto' name 'BadPaddingException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JCExemptionMechanismException = class external 'javax.crypto' name 'ExemptionMechanismException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JCIllegalBlockSizeException = class external 'javax.crypto' name 'IllegalBlockSizeException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JCNoSuchPaddingException = class external 'javax.crypto' name 'NoSuchPaddingException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JCShortBufferException = class external 'javax.crypto' name 'ShortBufferException' (JSGeneralSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSALLoginException = class external 'javax.security.auth.login' name 'LoginException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JxSCCertificateEncodingException = class external 'javax.security.cert' name 'CertificateEncodingException' (JxSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JxSCCertificateExpiredException = class external 'javax.security.cert' name 'CertificateExpiredException' (JxSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JxSCCertificateNotYetValidException = class external 'javax.security.cert' name 'CertificateNotYetValidException' (JxSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JxSCCertificateParsingException = class external 'javax.security.cert' name 'CertificateParsingException' (JxSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JXTTransformerConfigurationException = class external 'javax.xml.transform' name 'TransformerConfigurationException' (JXTTransformerException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator; para3: JLThrowable); overload;
  end;

  JXXXPathExpressionException = class external 'javax.xml.xpath' name 'XPathExpressionException' (JXXXPathException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JXXXPathFactoryConfigurationException = class external 'javax.xml.xpath' name 'XPathFactoryConfigurationException' (JXXXPathException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OAHMethodNotSupportedException = class external 'org.apache.http' name 'MethodNotSupportedException' (OAHHttpException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHProtocolException = class external 'org.apache.http' name 'ProtocolException' (OAHHttpException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHICTunnelRefusedException = class external 'org.apache.http.impl.client' name 'TunnelRefusedException' (OAHHttpException)
  public
    constructor create(para1: JLString; para2: OAHHttpResponse); overload;
    function getResponse(): OAHHttpResponse; overload; virtual;
  end;

  OXSSAXNotRecognizedException = class external 'org.xml.sax' name 'SAXNotRecognizedException' (OXSSAXException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OXSSAXNotSupportedException = class external 'org.xml.sax' name 'SAXNotSupportedException' (OXSSAXException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OXSSAXParseException = class external 'org.xml.sax' name 'SAXParseException' (OXSSAXException)
  public
    constructor create(para1: JLString; para2: OXSLocator); overload;
    constructor create(para1: JLString; para2: OXSLocator; para3: JLException); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: JLException); overload;
    function getPublicId(): JLString; overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
  end;

  AAAnimatorListenerAdapter = class abstract external 'android.animation' name 'AnimatorListenerAdapter' (JLObject, AAAnimator.InnerAnimatorListener)
  public
    constructor create(); overload;
    procedure onAnimationCancel(para1: AAAnimator); overload; virtual;
    procedure onAnimationEnd(para1: AAAnimator); overload; virtual;
    procedure onAnimationRepeat(para1: AAAnimator); overload; virtual;
    procedure onAnimationStart(para1: AAAnimator); overload; virtual;
  end;

  AAAnimatorSet = class sealed external 'android.animation' name 'AnimatorSet' (AAAnimator)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.animation' name 'Builder' 
      end;

  public
    constructor create(); overload;
    procedure playTogether(para1: Arr1AAAnimator); overload; virtual;
    procedure playTogether(const para1: array of AAAnimator); overload; virtual;
    procedure playTogether(para1: JUCollection); overload; virtual;
    procedure playSequentially(para1: Arr1AAAnimator); overload; virtual;
    procedure playSequentially(const para1: array of AAAnimator); overload; virtual;
    procedure playSequentially(para1: JUList); overload; virtual;
    function getChildAnimations(): JUArrayList; overload; virtual;
    procedure setTarget(para1: JLObject); overload; virtual;
    procedure setInterpolator(para1: AATimeInterpolator); overload; virtual;
    function play(para1: AAAnimator): AAAnimatorSet.InnerBuilder; overload; virtual;
    procedure cancel(); overload; virtual;
    procedure &end(); overload; virtual;
    function isRunning(): jboolean; overload; virtual;
    function isStarted(): jboolean; overload; virtual;
    function getStartDelay(): jlong; overload; virtual;
    procedure setStartDelay(para1: jlong); overload; virtual;
    function getDuration(): jlong; overload; virtual;
    function setDuration(para1: jlong): AAAnimatorSet; overload; virtual;
    procedure setupStartValues(); overload; virtual;
    procedure setupEndValues(); overload; virtual;
    procedure start(); overload; virtual;
    function clone(): AAAnimatorSet; overload; virtual;
    function clone(): AAAnimator; overload; virtual;
    function setDuration(para1: jlong): AAAnimator; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AAValueAnimator = class external 'android.animation' name 'ValueAnimator' (AAAnimator)
  public
    type
      InnerAnimatorUpdateListener = interface;
      Arr1InnerAnimatorUpdateListener = array of InnerAnimatorUpdateListener;
      Arr2InnerAnimatorUpdateListener = array of Arr1InnerAnimatorUpdateListener;
      Arr3InnerAnimatorUpdateListener = array of Arr2InnerAnimatorUpdateListener;
      InnerAnimatorUpdateListener = interface external 'android.animation' name 'AnimatorUpdateListener' 
        procedure onAnimationUpdate(para1: AAValueAnimator); overload;
      end;

  public
    const
      RESTART = 1;
      REVERSE = 2;
      INFINITE = -1;
  public
    constructor create(); overload;
    class function ofInt(para1: Arr1jint): AAValueAnimator; static; overload;
    class function ofInt(const para1: array of jint): AAValueAnimator; static; overload;
    class function ofFloat(para1: Arr1jfloat): AAValueAnimator; static; overload;
    class function ofFloat(const para1: array of jfloat): AAValueAnimator; static; overload;
    class function ofPropertyValuesHolder(para1: Arr1AAPropertyValuesHolder): AAValueAnimator; static; overload;
    class function ofPropertyValuesHolder(const para1: array of AAPropertyValuesHolder): AAValueAnimator; static; overload;
    class function ofObject(para1: AATypeEvaluator; para2: Arr1JLObject): AAValueAnimator; static; overload;
    class function ofObject(para1: AATypeEvaluator; const para2: array of JLObject): AAValueAnimator; static; overload;
    procedure setIntValues(para1: Arr1jint); overload; virtual;
    procedure setIntValues(const para1: array of jint); overload; virtual;
    procedure setFloatValues(para1: Arr1jfloat); overload; virtual;
    procedure setFloatValues(const para1: array of jfloat); overload; virtual;
    procedure setObjectValues(para1: Arr1JLObject); overload; virtual;
    procedure setObjectValues(const para1: array of JLObject); overload; virtual;
    procedure setValues(para1: Arr1AAPropertyValuesHolder); overload; virtual;
    procedure setValues(const para1: array of AAPropertyValuesHolder); overload; virtual;
    function getValues(): Arr1AAPropertyValuesHolder; overload; virtual;
    function setDuration(para1: jlong): AAValueAnimator; overload; virtual;
    function getDuration(): jlong; overload; virtual;
    procedure setCurrentPlayTime(para1: jlong); overload; virtual;
    function getCurrentPlayTime(): jlong; overload; virtual;
    function getStartDelay(): jlong; overload; virtual;
    procedure setStartDelay(para1: jlong); overload; virtual;
    class function getFrameDelay(): jlong; static; overload;
    class procedure setFrameDelay(para1: jlong); static; overload;
    function getAnimatedValue(): JLObject; overload; virtual;
    function getAnimatedValue(para1: JLString): JLObject; overload; virtual;
    procedure setRepeatCount(para1: jint); overload; virtual;
    function getRepeatCount(): jint; overload; virtual;
    procedure setRepeatMode(para1: jint); overload; virtual;
    function getRepeatMode(): jint; overload; virtual;
    procedure addUpdateListener(para1: AAValueAnimator.InnerAnimatorUpdateListener); overload; virtual;
    procedure removeAllUpdateListeners(); overload; virtual;
    procedure removeUpdateListener(para1: AAValueAnimator.InnerAnimatorUpdateListener); overload; virtual;
    procedure setInterpolator(para1: AATimeInterpolator); overload; virtual;
    function getInterpolator(): AATimeInterpolator; overload; virtual;
    procedure setEvaluator(para1: AATypeEvaluator); overload; virtual;
    procedure start(); overload; virtual;
    procedure cancel(); overload; virtual;
    procedure &end(); overload; virtual;
    function isRunning(): jboolean; overload; virtual;
    function isStarted(): jboolean; overload; virtual;
    procedure reverse_(); external name 'reverse'; overload; virtual;
    function getAnimatedFraction(): jfloat; overload; virtual;
    function clone(): AAValueAnimator; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): AAAnimator; overload; virtual;
    function setDuration(para1: jlong): AAAnimator; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AVViewPropertyAnimator = class external 'android.view' name 'ViewPropertyAnimator' (JLObject)
  public
    function setDuration(para1: jlong): AVViewPropertyAnimator; overload; virtual;
    function getDuration(): jlong; overload; virtual;
    function getStartDelay(): jlong; overload; virtual;
    function setStartDelay(para1: jlong): AVViewPropertyAnimator; overload; virtual;
    function setInterpolator(para1: AATimeInterpolator): AVViewPropertyAnimator; overload; virtual;
    function setListener(para1: AAAnimator.InnerAnimatorListener): AVViewPropertyAnimator; overload; virtual;
    procedure start(); overload; virtual;
    procedure cancel(); overload; virtual;
    function x(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function xBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function y(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function yBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function rotation(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function rotationBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function rotationX(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function rotationXBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function rotationY(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function rotationYBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function translationX(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function translationXBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function translationY(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function translationYBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function scaleX(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function scaleXBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function scaleY(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function scaleYBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function alpha(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
    function alphaBy(para1: jfloat): AVViewPropertyAnimator; overload; virtual;
  end;

  AGDSPathShape = class external 'android.graphics.drawable.shapes' name 'PathShape' (AGDSShape)
  public
    constructor create(para1: AGPath; para2: jfloat; para3: jfloat); overload;
    procedure draw(para1: AGCanvas; para2: AGPaint); overload; virtual;
  strict protected
    procedure onResize(para1: jfloat; para2: jfloat); overload; virtual;
  public
    function clone(): AGDSPathShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): AGDSShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AGDSRectShape = class external 'android.graphics.drawable.shapes' name 'RectShape' (AGDSShape)
  public
    constructor create(); overload;
    procedure draw(para1: AGCanvas; para2: AGPaint); overload; virtual;
  strict protected
    procedure onResize(para1: jfloat; para2: jfloat); overload; virtual;
    function rect(): AGRectF; overload; virtual; final;
  public
    function clone(): AGDSRectShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): AGDSShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AVAAlphaAnimation = class external 'android.view.animation' name 'AlphaAnimation' (AVAAnimation)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: jfloat; para2: jfloat); overload;
  strict protected
    procedure applyTransformation(para1: jfloat; para2: AVATransformation); overload; virtual;
  public
    function willChangeTransformationMatrix(): jboolean; overload; virtual;
    function willChangeBounds(): jboolean; overload; virtual;
  end;

  AVAAnimationSet = class external 'android.view.animation' name 'AnimationSet' (AVAAnimation)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: jboolean); overload;
  strict protected
    function clone(): AVAAnimationSet; overload; virtual;  // throws java.lang.CloneNotSupportedException
  public
    procedure setFillAfter(para1: jboolean); overload; virtual;
    procedure setFillBefore(para1: jboolean); overload; virtual;
    procedure setRepeatMode(para1: jint); overload; virtual;
    procedure setStartOffset(para1: jlong); overload; virtual;
    procedure setDuration(para1: jlong); overload; virtual;
    procedure addAnimation(para1: AVAAnimation); overload; virtual;
    procedure setStartTime(para1: jlong); overload; virtual;
    function getStartTime(): jlong; overload; virtual;
    procedure restrictDuration(para1: jlong); overload; virtual;
    function getDuration(): jlong; overload; virtual;
    function computeDurationHint(): jlong; overload; virtual;
    function getTransformation(para1: jlong; para2: AVATransformation): jboolean; overload; virtual;
    procedure scaleCurrentDuration(para1: jfloat); overload; virtual;
    procedure initialize(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure reset(); overload; virtual;
    function getAnimations(): JUList; overload; virtual;
    function willChangeTransformationMatrix(): jboolean; overload; virtual;
    function willChangeBounds(): jboolean; overload; virtual;
  strict protected
    function clone(): AVAAnimation; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AVARotateAnimation = class external 'android.view.animation' name 'RotateAnimation' (AVAAnimation)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: jfloat; para2: jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jint; para4: jfloat; para5: jint; para6: jfloat); overload;
  strict protected
    procedure applyTransformation(para1: jfloat; para2: AVATransformation); overload; virtual;
  public
    procedure initialize(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  end;

  AVAScaleAnimation = class external 'android.view.animation' name 'ScaleAnimation' (AVAAnimation)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jint; para6: jfloat; para7: jint; para8: jfloat); overload;
  strict protected
    procedure applyTransformation(para1: jfloat; para2: AVATransformation); overload; virtual;
  public
    procedure initialize(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  end;

  AVATranslateAnimation = class external 'android.view.animation' name 'TranslateAnimation' (AVAAnimation)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    constructor create(para1: jint; para2: jfloat; para3: jint; para4: jfloat; para5: jint; para6: jfloat; para7: jint; para8: jfloat); overload;
  strict protected
    procedure applyTransformation(para1: jfloat; para2: AVATransformation); overload; virtual;
  public
    procedure initialize(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  end;

  JSCX509CRLSelector = class external 'java.security.cert' name 'X509CRLSelector' (JLObject, JSCCRLSelector)
  public
    constructor create(); overload;
    procedure setIssuers(para1: JUCollection); overload; virtual;
    procedure setIssuerNames(para1: JUCollection); overload; virtual;  // throws java.io.IOException
    procedure addIssuer(para1: JSAXX500Principal); overload; virtual;
    procedure addIssuerName(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure addIssuerName(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure addIssuerName(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setMinCRLNumber(para1: JMBigInteger); overload; virtual;
    procedure setMaxCRLNumber(para1: JMBigInteger); overload; virtual;
    procedure setDateAndTime(para1: JUDate); overload; virtual;
    procedure setCertificateChecking(para1: JSCX509Certificate); overload; virtual;
    function getIssuers(): JUCollection; overload; virtual;
    function getIssuerNames(): JUCollection; overload; virtual;
    function getMinCRL(): JMBigInteger; overload; virtual;
    function getMaxCRL(): JMBigInteger; overload; virtual;
    function getDateAndTime(): JUDate; overload; virtual;
    function getCertificateChecking(): JSCX509Certificate; overload; virtual;
    function toString(): JLString; overload; virtual;
    function match(para1: JSCCRL): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSCPKIXParameters = class external 'java.security.cert' name 'PKIXParameters' (JLObject, JSCCertPathParameters)
  public
    constructor create(para1: JUSet); overload;  // throws java.security.InvalidAlgorithmParameterException
    constructor create(para1: JSKeyStore); overload;  // throws java.security.KeyStoreException, java.security.InvalidAlgorithmParameterException
    function getTrustAnchors(): JUSet; overload; virtual;
    procedure setTrustAnchors(para1: JUSet); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function isAnyPolicyInhibited(): jboolean; overload; virtual;
    procedure setAnyPolicyInhibited(para1: jboolean); overload; virtual;
    function getCertPathCheckers(): JUList; overload; virtual;
    procedure setCertPathCheckers(para1: JUList); overload; virtual;
    procedure addCertPathChecker(para1: JSCPKIXCertPathChecker); overload; virtual;
    function getCertStores(): JUList; overload; virtual;
    procedure setCertStores(para1: JUList); overload; virtual;
    procedure addCertStore(para1: JSCCertStore); overload; virtual;
    function getDate(): JUDate; overload; virtual;
    procedure setDate(para1: JUDate); overload; virtual;
    function isExplicitPolicyRequired(): jboolean; overload; virtual;
    procedure setExplicitPolicyRequired(para1: jboolean); overload; virtual;
    function getInitialPolicies(): JUSet; overload; virtual;
    procedure setInitialPolicies(para1: JUSet); overload; virtual;
    function isPolicyMappingInhibited(): jboolean; overload; virtual;
    procedure setPolicyMappingInhibited(para1: jboolean); overload; virtual;
    function getPolicyQualifiersRejected(): jboolean; overload; virtual;
    procedure setPolicyQualifiersRejected(para1: jboolean); overload; virtual;
    function isRevocationEnabled(): jboolean; overload; virtual;
    procedure setRevocationEnabled(para1: jboolean); overload; virtual;
    function getSigProvider(): JLString; overload; virtual;
    procedure setSigProvider(para1: JLString); overload; virtual;
    function getTargetCertConstraints(): JSCCertSelector; overload; virtual;
    procedure setTargetCertConstraints(para1: JSCCertSelector); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCPKIXCertPathValidatorResult = class external 'java.security.cert' name 'PKIXCertPathValidatorResult' (JLObject, JSCCertPathValidatorResult)
  public
    constructor create(para1: JSCTrustAnchor; para2: JSCPolicyNode; para3: JSPublicKey); overload;
    function getPolicyTree(): JSCPolicyNode; overload; virtual;
    function getPublicKey(): JSPublicKey; overload; virtual;
    function getTrustAnchor(): JSCTrustAnchor; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCX509CertSelector = class external 'java.security.cert' name 'X509CertSelector' (JLObject, JSCCertSelector)
  public
    constructor create(); overload;
    procedure setCertificate(para1: JSCX509Certificate); overload; virtual;
    function getCertificate(): JSCX509Certificate; overload; virtual;
    procedure setSerialNumber(para1: JMBigInteger); overload; virtual;
    function getSerialNumber(): JMBigInteger; overload; virtual;
    procedure setIssuer(para1: JSAXX500Principal); overload; virtual;
    function getIssuer(): JSAXX500Principal; overload; virtual;
    procedure setIssuer(para1: JLString); overload; virtual;  // throws java.io.IOException
    function getIssuerAsString(): JLString; overload; virtual;
    procedure setIssuer(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setIssuer(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getIssuerAsBytes(): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    procedure setSubject(para1: JSAXX500Principal); overload; virtual;
    function getSubject(): JSAXX500Principal; overload; virtual;
    procedure setSubject(para1: JLString); overload; virtual;  // throws java.io.IOException
    function getSubjectAsString(): JLString; overload; virtual;
    procedure setSubject(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setSubject(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getSubjectAsBytes(): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    procedure setSubjectKeyIdentifier(para1: Arr1jbyte); overload; virtual;
    procedure setSubjectKeyIdentifier(var para1: array of jbyte); overload; virtual;
    function getSubjectKeyIdentifier(): Arr1jbyte; overload; virtual;
    procedure setAuthorityKeyIdentifier(para1: Arr1jbyte); overload; virtual;
    procedure setAuthorityKeyIdentifier(var para1: array of jbyte); overload; virtual;
    function getAuthorityKeyIdentifier(): Arr1jbyte; overload; virtual;
    procedure setCertificateValid(para1: JUDate); overload; virtual;
    function getCertificateValid(): JUDate; overload; virtual;
    procedure setPrivateKeyValid(para1: JUDate); overload; virtual;
    function getPrivateKeyValid(): JUDate; overload; virtual;
    procedure setSubjectPublicKeyAlgID(para1: JLString); overload; virtual;  // throws java.io.IOException
    function getSubjectPublicKeyAlgID(): JLString; overload; virtual;
    procedure setSubjectPublicKey(para1: JSPublicKey); overload; virtual;
    procedure setSubjectPublicKey(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setSubjectPublicKey(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getSubjectPublicKey(): JSPublicKey; overload; virtual;
    procedure setKeyUsage(para1: Arr1jboolean); overload; virtual;
    procedure setKeyUsage(var para1: array of jboolean); overload; virtual;
    function getKeyUsage(): Arr1jboolean; overload; virtual;
    procedure setExtendedKeyUsage(para1: JUSet); overload; virtual;  // throws java.io.IOException
    function getExtendedKeyUsage(): JUSet; overload; virtual;
    procedure setMatchAllSubjectAltNames(para1: jboolean); overload; virtual;
    function getMatchAllSubjectAltNames(): jboolean; overload; virtual;
    procedure setSubjectAlternativeNames(para1: JUCollection); overload; virtual;  // throws java.io.IOException
    procedure addSubjectAlternativeName(para1: jint; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure addSubjectAlternativeName(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure addSubjectAlternativeName(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getSubjectAlternativeNames(): JUCollection; overload; virtual;
    procedure setNameConstraints(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setNameConstraints(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getNameConstraints(): Arr1jbyte; overload; virtual;
    procedure setBasicConstraints(para1: jint); overload; virtual;
    function getBasicConstraints(): jint; overload; virtual;
    procedure setPolicy(para1: JUSet); overload; virtual;  // throws java.io.IOException
    function getPolicy(): JUSet; overload; virtual;
    procedure addPathToName(para1: jint; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure setPathToNames(para1: JUCollection); overload; virtual;  // throws java.io.IOException
    procedure addPathToName(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure addPathToName(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getPathToNames(): JUCollection; overload; virtual;
    function toString(): JLString; overload; virtual;
    function match(para1: JSCCertificate): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSCCollectionCertStoreParameters = class external 'java.security.cert' name 'CollectionCertStoreParameters' (JLObject, JSCCertStoreParameters)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function clone(): JLObject; overload; virtual;
    function getCollection(): JUCollection; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCLDAPCertStoreParameters = class external 'java.security.cert' name 'LDAPCertStoreParameters' (JLObject, JSCCertStoreParameters)
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function clone(): JLObject; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getServerName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTAttributedCharacterIterator = interface external 'java.text' name 'AttributedCharacterIterator' (JTCharacterIterator)
    type
      InnerAttribute = class;
      Arr1InnerAttribute = array of InnerAttribute;
      Arr2InnerAttribute = array of Arr1InnerAttribute;
      Arr3InnerAttribute = array of Arr2InnerAttribute;
      InnerAttribute = class external 'java.text' name 'Attribute' (JLObject, JISerializable)
      public
        final class var
          fINPUT_METHOD_SEGMENT: JTAttributedCharacterIterator.InnerAttribute; external name 'INPUT_METHOD_SEGMENT';
          fLANGUAGE: JTAttributedCharacterIterator.InnerAttribute; external name 'LANGUAGE';
          fREADING: JTAttributedCharacterIterator.InnerAttribute; external name 'READING';
      strict protected
        constructor create(para1: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
      strict protected
        function getName(): JLString; overload; virtual;
      public
        function hashCode(): jint; overload; virtual; final;
      strict protected
        function readResolve(): JLObject; overload; virtual;  // throws java.io.InvalidObjectException
      public
        function toString(): JLString; overload; virtual;
      end;

    function getAllAttributeKeys(): JUSet; overload;
    function getAttribute(para1: JTAttributedCharacterIterator.InnerAttribute): JLObject; overload;
    function getAttributes(): JUMap; overload;
    function getRunLimit(): jint; overload;
    function getRunLimit(para1: JTAttributedCharacterIterator.InnerAttribute): jint; overload;
    function getRunLimit(para1: JUSet): jint; overload;
    function getRunStart(): jint; overload;
    function getRunStart(para1: JTAttributedCharacterIterator.InnerAttribute): jint; overload;
    function getRunStart(para1: JUSet): jint; overload;
  end;

  JTStringCharacterIterator = class sealed external 'java.text' name 'StringCharacterIterator' (JLObject, JTCharacterIterator)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint; para4: jint); overload;
    function clone(): JLObject; overload; virtual;
    function current(): jchar; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function first(): jchar; overload; virtual;
    function getBeginIndex(): jint; overload; virtual;
    function getEndIndex(): jint; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function last(): jchar; overload; virtual;
    function next(): jchar; overload; virtual;
    function previous(): jchar; overload; virtual;
    function setIndex(para1: jint): jchar; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
  end;

  JUJJarEntry = class external 'java.util.jar' name 'JarEntry' (JUZZipEntry)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JUZZipEntry); overload;
    constructor create(para1: JUJJarEntry); overload;
    function getAttributes(): JUJAttributes; overload; virtual;  // throws java.io.IOException
    function getCertificates(): Arr1JSCCertificate; overload; virtual;
    function getCodeSigners(): Arr1JSCodeSigner; overload; virtual;
  end;

  ATMMockResources = class external 'android.test.mock' name 'MockResources' (ACRResources)
  public
    constructor create(); overload;
    procedure updateConfiguration(para1: ACRConfiguration; para2: AUDisplayMetrics); overload; virtual;
    function getText(para1: jint): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityText(para1: jint; para2: jint): JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getString(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getString(para1: jint; para2: Arr1JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getString(para1: jint; const para2: array of JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityString(para1: jint; para2: jint; para3: Arr1JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityString(para1: jint; para2: jint; const para3: array of JLObject): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getQuantityString(para1: jint; para2: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getText(para1: jint; para2: JLCharSequence): JLCharSequence; overload; virtual;
    function getTextArray(para1: jint): Arr1JLCharSequence; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getStringArray(para1: jint): Arr1JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getIntArray(para1: jint): Arr1jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function obtainTypedArray(para1: jint): ACRTypedArray; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDimension(para1: jint): jfloat; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDimensionPixelOffset(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDimensionPixelSize(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getDrawable(para1: jint): AGDDrawable; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getMovie(para1: jint): AGMovie; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getColor(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getColorStateList(para1: jint): ACRColorStateList; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getInteger(para1: jint): jint; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getLayout(para1: jint): ACRXmlResourceParser; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getAnimation(para1: jint): ACRXmlResourceParser; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getXml(para1: jint): ACRXmlResourceParser; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function openRawResource(para1: jint): JIInputStream; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function openRawResourceFd(para1: jint): ACRAssetFileDescriptor; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    procedure getValue(para1: jint; para2: AUTypedValue; para3: jboolean); overload; virtual;  // throws android.content.res.Resources$NotFoundException
    procedure getValue(para1: JLString; para2: AUTypedValue; para3: jboolean); overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function obtainAttributes(para1: AUAttributeSet; para2: Arr1jint): ACRTypedArray; overload; virtual;
    function obtainAttributes(para1: AUAttributeSet; var para2: array of jint): ACRTypedArray; overload; virtual;
    function getDisplayMetrics(): AUDisplayMetrics; overload; virtual;
    function getConfiguration(): ACRConfiguration; overload; virtual;
    function getIdentifier(para1: JLString; para2: JLString; para3: JLString): jint; overload; virtual;
    function getResourceName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getResourcePackageName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getResourceTypeName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
    function getResourceEntryName(para1: jint): JLString; overload; virtual;  // throws android.content.res.Resources$NotFoundException
  end;

  ADSSQLiteException = class external 'android.database.sqlite' name 'SQLiteException' (ADSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ARRSDriverException = class external 'android.renderscript' name 'RSDriverException' (ARRSRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  ARRSIllegalArgumentException = class external 'android.renderscript' name 'RSIllegalArgumentException' (ARRSRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  ARRSInvalidStateException = class external 'android.renderscript' name 'RSInvalidStateException' (ARRSRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  ACReceiverCallNotAllowedException = class external 'android.content' name 'ReceiverCallNotAllowedException' (AUAndroidRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  AOBadParcelableException = class external 'android.os' name 'BadParcelableException' (AUAndroidRuntimeException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
  end;

  AVKeyCharacterMap = class external 'android.view' name 'KeyCharacterMap' (JLObject)
  public
    type
      InnerUnavailableException = class;
      Arr1InnerUnavailableException = array of InnerUnavailableException;
      Arr2InnerUnavailableException = array of Arr1InnerUnavailableException;
      Arr3InnerUnavailableException = array of Arr2InnerUnavailableException;
      InnerKeyData = class;
      Arr1InnerKeyData = array of InnerKeyData;
      Arr2InnerKeyData = array of Arr1InnerKeyData;
      Arr3InnerKeyData = array of Arr2InnerKeyData;
      InnerUnavailableException = class external 'android.view' name 'UnavailableException' (AUAndroidRuntimeException)
      public
        constructor create(para1: JLString); overload;
      end;

      InnerKeyData = class external 'android.view' name 'KeyData' (JLObject)
      public
        const
          META_LENGTH = 4;
      public
        var
          fdisplayLabel: jchar; external name 'displayLabel';
          fnumber: jchar; external name 'number';
          fmeta: Arr1jchar; external name 'meta';
      public
        constructor create(); overload;
      end;

  public
    const
      BUILT_IN_KEYBOARD = 0;
      VIRTUAL_KEYBOARD = -1;
      NUMERIC = 1;
      PREDICTIVE = 2;
      ALPHA = 3;
      FULL = 4;
      SPECIAL_FUNCTION = 5;
      HEX_INPUT = 61184;
      PICKER_DIALOG_INPUT = 61185;
      MODIFIER_BEHAVIOR_CHORDED = 0;
      MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED = 1;
      COMBINING_ACCENT = -2147483648;
      COMBINING_ACCENT_MASK = 2147483647;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    class function load(para1: jint): AVKeyCharacterMap; static; overload;
    function get(para1: jint; para2: jint): jint; overload; virtual;
    function getNumber(para1: jint): jchar; overload; virtual;
    function getMatch(para1: jint; para2: Arr1jchar): jchar; overload; virtual;
    function getMatch(para1: jint; var para2: array of jchar): jchar; overload; virtual;
    function getMatch(para1: jint; para2: Arr1jchar; para3: jint): jchar; overload; virtual;
    function getMatch(para1: jint; var para2: array of jchar; para3: jint): jchar; overload; virtual;
    function getDisplayLabel(para1: jint): jchar; overload; virtual;
    class function getDeadChar(para1: jint; para2: jint): jint; static; overload;
    function getKeyData(para1: jint; para2: AVKeyCharacterMap.InnerKeyData): jboolean; overload; virtual;
    function getEvents(para1: Arr1jchar): Arr1AVKeyEvent; overload; virtual;
    function getEvents(var para1: array of jchar): Arr1AVKeyEvent; overload; virtual;
    function isPrintingKey(para1: jint): jboolean; overload; virtual;
    function getKeyboardType(): jint; overload; virtual;
    function getModifierBehavior(): jint; overload; virtual;
    class function deviceHasKey(para1: jint): jboolean; static; overload;
    class function deviceHasKeys(para1: Arr1jint): Arr1jboolean; static; overload;
    class function deviceHasKeys(var para1: array of jint): Arr1jboolean; static; overload;
  end;

  JSAccessControlException = class external 'java.security' name 'AccessControlException' (JLSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSPermission); overload;
    function getPermission(): JSPermission; overload; virtual;
  end;

  JUInputMismatchException = class external 'java.util' name 'InputMismatchException' (JUNoSuchElementException, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCScheduledFuture = interface external 'java.util.concurrent' name 'ScheduledFuture' (JUCDelayed, JUCFuture)
  end;

  OAHMBasicHeaderElementIterator = class external 'org.apache.http.message' name 'BasicHeaderElementIterator' (JLObject, OAHHeaderElementIterator)
  public
    constructor create(para1: OAHHeaderIterator; para2: OAHMHeaderValueParser); overload;
    constructor create(para1: OAHHeaderIterator); overload;
    function hasNext(): jboolean; overload; virtual;
    function nextElement(): OAHHeaderElement; overload; virtual;  // throws java.util.NoSuchElementException
    function next(): JLObject; overload; virtual; final;  // throws java.util.NoSuchElementException
    procedure remove(); overload; virtual;  // throws java.lang.UnsupportedOperationException
  end;

  OAHMBasicHeaderIterator = class external 'org.apache.http.message' name 'BasicHeaderIterator' (JLObject, OAHHeaderIterator)
  strict protected
    final var
      fallHeaders: Arr1OAHHeader; external name 'allHeaders';
  strict protected
    var
      fcurrentIndex: jint; external name 'currentIndex';
      fheaderName: JLString; external name 'headerName';
  public
    constructor create(para1: Arr1OAHHeader; para2: JLString); overload;
    constructor create(const para1: array of OAHHeader; para2: JLString); overload;
  strict protected
    function findNext(para1: jint): jint; overload; virtual;
    function filterHeader(para1: jint): jboolean; overload; virtual;
  public
    function hasNext(): jboolean; overload; virtual;
    function nextHeader(): OAHHeader; overload; virtual;  // throws java.util.NoSuchElementException
    function next(): JLObject; overload; virtual; final;  // throws java.util.NoSuchElementException
    procedure remove(); overload; virtual;  // throws java.lang.UnsupportedOperationException
  end;

  OAHMBasicListHeaderIterator = class external 'org.apache.http.message' name 'BasicListHeaderIterator' (JLObject, OAHHeaderIterator)
  strict protected
    final var
      fallHeaders: JUList; external name 'allHeaders';
  strict protected
    var
      fcurrentIndex: jint; external name 'currentIndex';
      flastIndex: jint; external name 'lastIndex';
      fheaderName: JLString; external name 'headerName';
  public
    constructor create(para1: JUList; para2: JLString); overload;
  strict protected
    function findNext(para1: jint): jint; overload; virtual;
    function filterHeader(para1: jint): jboolean; overload; virtual;
  public
    function hasNext(): jboolean; overload; virtual;
    function nextHeader(): OAHHeader; overload; virtual;  // throws java.util.NoSuchElementException
    function next(): JLObject; overload; virtual; final;  // throws java.util.NoSuchElementException
    procedure remove(); overload; virtual;  // throws java.lang.UnsupportedOperationException
  end;

  OAHMBasicTokenIterator = class external 'org.apache.http.message' name 'BasicTokenIterator' (JLObject, OAHTokenIterator)
  public
    const
      HTTP_SEPARATORS = ' ,;=()<>@:\"/[]?{}'#$0009'';
  strict protected
    final var
      fheaderIt: OAHHeaderIterator; external name 'headerIt';
  strict protected
    var
      fcurrentHeader: JLString; external name 'currentHeader';
      fcurrentToken: JLString; external name 'currentToken';
      fsearchPos: jint; external name 'searchPos';
  public
    constructor create(para1: OAHHeaderIterator); overload;
    function hasNext(): jboolean; overload; virtual;
    function nextToken(): JLString; overload; virtual;  // throws java.util.NoSuchElementException, org.apache.http.ParseException
    function next(): JLObject; overload; virtual; final;  // throws java.util.NoSuchElementException, org.apache.http.ParseException
    procedure remove(); overload; virtual; final;  // throws java.lang.UnsupportedOperationException
  strict protected
    function findNext(para1: jint): jint; overload; virtual;  // throws org.apache.http.ParseException
    function createToken(para1: JLString; para2: jint; para3: jint): JLString; overload; virtual;
    function findTokenStart(para1: jint): jint; overload; virtual;
    function findTokenSeparator(para1: jint): jint; overload; virtual;
    function findTokenEnd(para1: jint): jint; overload; virtual;
    function isTokenSeparator(para1: jchar): jboolean; overload; virtual;
    function isWhitespace(para1: jchar): jboolean; overload; virtual;
    function isTokenChar(para1: jchar): jboolean; overload; virtual;
    function isHttpSeparator(para1: jchar): jboolean; overload; virtual;
  end;

  ACPApplicationInfo = class external 'android.content.pm' name 'ApplicationInfo' (ACPPackageItemInfo, AOParcelable)
  public
    type
      InnerDisplayNameComparator = class;
      Arr1InnerDisplayNameComparator = array of InnerDisplayNameComparator;
      Arr2InnerDisplayNameComparator = array of Arr1InnerDisplayNameComparator;
      Arr3InnerDisplayNameComparator = array of Arr2InnerDisplayNameComparator;
      InnerDisplayNameComparator = class external 'android.content.pm' name 'DisplayNameComparator' (JLObject, JUComparator)
      public
        constructor create(para1: ACPPackageManager); overload;
        function compare(para1: ACPApplicationInfo; para2: ACPApplicationInfo): jint; overload; virtual; final;
        function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
      end;

  public
    var
      ftaskAffinity: JLString; external name 'taskAffinity';
      fpermission: JLString; external name 'permission';
      fprocessName: JLString; external name 'processName';
      fclassName: JLString; external name 'className';
      fdescriptionRes: jint; external name 'descriptionRes';
      ftheme: jint; external name 'theme';
      fmanageSpaceActivityName: JLString; external name 'manageSpaceActivityName';
      fbackupAgentName: JLString; external name 'backupAgentName';
      fuiOptions: jint; external name 'uiOptions';
  public
    const
      FLAG_SYSTEM = 1;
      FLAG_DEBUGGABLE = 2;
      FLAG_HAS_CODE = 4;
      FLAG_PERSISTENT = 8;
      FLAG_FACTORY_TEST = 16;
      FLAG_ALLOW_TASK_REPARENTING = 32;
      FLAG_ALLOW_CLEAR_USER_DATA = 64;
      FLAG_UPDATED_SYSTEM_APP = 128;
      FLAG_TEST_ONLY = 256;
      FLAG_SUPPORTS_SMALL_SCREENS = 512;
      FLAG_SUPPORTS_NORMAL_SCREENS = 1024;
      FLAG_SUPPORTS_LARGE_SCREENS = 2048;
      FLAG_RESIZEABLE_FOR_SCREENS = 4096;
      FLAG_SUPPORTS_SCREEN_DENSITIES = 8192;
      FLAG_VM_SAFE_MODE = 16384;
      FLAG_ALLOW_BACKUP = 32768;
      FLAG_KILL_AFTER_RESTORE = 65536;
      FLAG_RESTORE_ANY_VERSION = 131072;
      FLAG_EXTERNAL_STORAGE = 262144;
      FLAG_SUPPORTS_XLARGE_SCREENS = 524288;
      FLAG_LARGE_HEAP = 1048576;
      FLAG_STOPPED = 2097152;
  public
    var
      fflags: jint; external name 'flags';
      frequiresSmallestWidthDp: jint; external name 'requiresSmallestWidthDp';
      fcompatibleWidthLimitDp: jint; external name 'compatibleWidthLimitDp';
      flargestWidthLimitDp: jint; external name 'largestWidthLimitDp';
      fsourceDir: JLString; external name 'sourceDir';
      fpublicSourceDir: JLString; external name 'publicSourceDir';
      fsharedLibraryFiles: Arr1JLString; external name 'sharedLibraryFiles';
      fdataDir: JLString; external name 'dataDir';
      fnativeLibraryDir: JLString; external name 'nativeLibraryDir';
      fuid: jint; external name 'uid';
      ftargetSdkVersion: jint; external name 'targetSdkVersion';
      fenabled: jboolean; external name 'enabled';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPApplicationInfo); overload;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function loadDescription(para1: ACPPackageManager): JLCharSequence; overload; virtual;
  end;

  ACPComponentInfo = class external 'android.content.pm' name 'ComponentInfo' (ACPPackageItemInfo)
  public
    var
      fapplicationInfo: ACPApplicationInfo; external name 'applicationInfo';
      fprocessName: JLString; external name 'processName';
      fdescriptionRes: jint; external name 'descriptionRes';
      fenabled: jboolean; external name 'enabled';
      fexported: jboolean; external name 'exported';
  public
    constructor create(); overload;
    constructor create(para1: ACPComponentInfo); overload;
  strict protected
    constructor create(para1: AOParcel); overload;
  public
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    function getIconResource(): jint; overload; virtual; final;
  strict protected
    procedure dumpFront(para1: AUPrinter; para2: JLString); overload; virtual;
    procedure dumpBack(para1: AUPrinter; para2: JLString); overload; virtual;
  public
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPInstrumentationInfo = class external 'android.content.pm' name 'InstrumentationInfo' (ACPPackageItemInfo, AOParcelable)
  public
    var
      ftargetPackage: JLString; external name 'targetPackage';
      fsourceDir: JLString; external name 'sourceDir';
      fpublicSourceDir: JLString; external name 'publicSourceDir';
      fdataDir: JLString; external name 'dataDir';
      fhandleProfiling: jboolean; external name 'handleProfiling';
      ffunctionalTest: jboolean; external name 'functionalTest';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPInstrumentationInfo); overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPPermissionGroupInfo = class external 'android.content.pm' name 'PermissionGroupInfo' (ACPPackageItemInfo, AOParcelable)
  public
    var
      fdescriptionRes: jint; external name 'descriptionRes';
      fnonLocalizedDescription: JLCharSequence; external name 'nonLocalizedDescription';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPPermissionGroupInfo); overload;
    function loadDescription(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPPermissionInfo = class external 'android.content.pm' name 'PermissionInfo' (ACPPackageItemInfo, AOParcelable)
  public
    const
      PROTECTION_NORMAL = 0;
      PROTECTION_DANGEROUS = 1;
      PROTECTION_SIGNATURE = 2;
      PROTECTION_SIGNATURE_OR_SYSTEM = 3;
  public
    var
      fgroup: JLString; external name 'group';
      fdescriptionRes: jint; external name 'descriptionRes';
      fnonLocalizedDescription: JLCharSequence; external name 'nonLocalizedDescription';
      fprotectionLevel: jint; external name 'protectionLevel';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPPermissionInfo); overload;
    function loadDescription(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ATTextPaint = class external 'android.text' name 'TextPaint' (AGPaint)
  public
    var
      fbgColor: jint; external name 'bgColor';
      fbaselineShift: jint; external name 'baselineShift';
      flinkColor: jint; external name 'linkColor';
      fdrawableState: Arr1jint; external name 'drawableState';
      fdensity: jfloat; external name 'density';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: AGPaint); overload;
    procedure &set(para1: ATTextPaint); overload; virtual;
  end;

  AGPorterDuffColorFilter = class external 'android.graphics' name 'PorterDuffColorFilter' (AGColorFilter)
  public
    constructor create(para1: jint; para2: AGPorterDuff.InnerMode); overload;
  end;

  AGPorterDuffXfermode = class external 'android.graphics' name 'PorterDuffXfermode' (AGXfermode)
  public
    constructor create(para1: AGPorterDuff.InnerMode); overload;
  end;

  AGBitmapShader = class external 'android.graphics' name 'BitmapShader' (AGShader)
  public
    constructor create(para1: AGBitmap; para2: AGShader.InnerTileMode; para3: AGShader.InnerTileMode); overload;
  end;

  AGComposeShader = class external 'android.graphics' name 'ComposeShader' (AGShader)
  public
    constructor create(para1: AGShader; para2: AGShader; para3: AGXfermode); overload;
    constructor create(para1: AGShader; para2: AGShader; para3: AGPorterDuff.InnerMode); overload;
  end;

  AGLinearGradient = class external 'android.graphics' name 'LinearGradient' (AGShader)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: Arr1jint; para6: Arr1jfloat; para7: AGShader.InnerTileMode); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; const para5: array of jint; const para6: array of jfloat; para7: AGShader.InnerTileMode); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jint; para6: jint; para7: AGShader.InnerTileMode); overload;
  end;

  AGRadialGradient = class external 'android.graphics' name 'RadialGradient' (AGShader)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: Arr1jint; para5: Arr1jfloat; para6: AGShader.InnerTileMode); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; const para4: array of jint; const para5: array of jfloat; para6: AGShader.InnerTileMode); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jint; para5: jint; para6: AGShader.InnerTileMode); overload;
  end;

  AGSweepGradient = class external 'android.graphics' name 'SweepGradient' (AGShader)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: Arr1jint; para4: Arr1jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; const para3: array of jint; const para4: array of jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jint; para4: jint); overload;
  end;

  JNSSSLEngine = class abstract external 'javax.net.ssl' name 'SSLEngine' (JLObject)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString; para2: jint); overload;
  public
    function getPeerHost(): JLString; overload; virtual;
    function getPeerPort(): jint; overload; virtual;
    procedure beginHandshake(); overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    procedure closeInbound(); overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    procedure closeOutbound(); overload; virtual; abstract;
    function getDelegatedTask(): JLRunnable; overload; virtual; abstract;
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; abstract;
    function getEnableSessionCreation(): jboolean; overload; virtual; abstract;
    function getHandshakeStatus(): JNSSSLEngineResult.InnerHandshakeStatus; overload; virtual; abstract;
    function getNeedClientAuth(): jboolean; overload; virtual; abstract;
    function getSession(): JNSSSLSession; overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedProtocols(): Arr1JLString; overload; virtual; abstract;
    function getUseClientMode(): jboolean; overload; virtual; abstract;
    function getWantClientAuth(): jboolean; overload; virtual; abstract;
    function isInboundDone(): jboolean; overload; virtual; abstract;
    function isOutboundDone(): jboolean; overload; virtual; abstract;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(var para1: array of JLString); overload; virtual; abstract;
    procedure setEnableSessionCreation(para1: jboolean); overload; virtual; abstract;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual; abstract;
    procedure setUseClientMode(para1: jboolean); overload; virtual; abstract;
    procedure setWantClientAuth(para1: jboolean); overload; virtual; abstract;
    function unwrap(para1: JNByteBuffer; para2: Arr1JNByteBuffer; para3: jint; para4: jint): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; var para2: array of JNByteBuffer; para3: jint; para4: jint): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function wrap(para1: Arr1JNByteBuffer; para2: jint; para3: jint; para4: JNByteBuffer): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function wrap(var para1: array of JNByteBuffer; para2: jint; para3: jint; para4: JNByteBuffer): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; para2: Arr1JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; var para2: array of JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function wrap(para1: Arr1JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function wrap(var para1: array of JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function wrap(para1: JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function getSSLParameters(): JNSSSLParameters; overload; virtual;
    procedure setSSLParameters(para1: JNSSSLParameters); overload; virtual;
  end;

  OAHCRHttpRoute = class sealed external 'org.apache.http.conn.routing' name 'HttpRoute' (JLObject, OAHCRRouteInfo, JLCloneable)
  public
    constructor create(para1: OAHHttpHost; para2: JNInetAddress; para3: Arr1OAHHttpHost; para4: jboolean; para5: OAHCRRouteInfo.InnerTunnelType; para6: OAHCRRouteInfo.InnerLayerType); overload;
    constructor create(para1: OAHHttpHost; para2: JNInetAddress; const para3: array of OAHHttpHost; para4: jboolean; para5: OAHCRRouteInfo.InnerTunnelType; para6: OAHCRRouteInfo.InnerLayerType); overload;
    constructor create(para1: OAHHttpHost; para2: JNInetAddress; para3: OAHHttpHost; para4: jboolean; para5: OAHCRRouteInfo.InnerTunnelType; para6: OAHCRRouteInfo.InnerLayerType); overload;
    constructor create(para1: OAHHttpHost; para2: JNInetAddress; para3: jboolean); overload;
    constructor create(para1: OAHHttpHost); overload;
    constructor create(para1: OAHHttpHost; para2: JNInetAddress; para3: OAHHttpHost; para4: jboolean); overload;
    function getTargetHost(): OAHHttpHost; overload; virtual; final;
    function getLocalAddress(): JNInetAddress; overload; virtual; final;
    function getHopCount(): jint; overload; virtual; final;
    function getHopTarget(para1: jint): OAHHttpHost; overload; virtual; final;
    function getProxyHost(): OAHHttpHost; overload; virtual; final;
    function getTunnelType(): OAHCRRouteInfo.InnerTunnelType; overload; virtual; final;
    function isTunnelled(): jboolean; overload; virtual; final;
    function getLayerType(): OAHCRRouteInfo.InnerLayerType; overload; virtual; final;
    function isLayered(): jboolean; overload; virtual; final;
    function isSecure(): jboolean; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHCRRouteTracker = class sealed external 'org.apache.http.conn.routing' name 'RouteTracker' (JLObject, OAHCRRouteInfo, JLCloneable)
  public
    constructor create(para1: OAHHttpHost; para2: JNInetAddress); overload;
    constructor create(para1: OAHCRHttpRoute); overload;
    procedure connectTarget(para1: jboolean); overload; virtual; final;
    procedure connectProxy(para1: OAHHttpHost; para2: jboolean); overload; virtual; final;
    procedure tunnelTarget(para1: jboolean); overload; virtual; final;
    procedure tunnelProxy(para1: OAHHttpHost; para2: jboolean); overload; virtual; final;
    procedure layerProtocol(para1: jboolean); overload; virtual; final;
    function getTargetHost(): OAHHttpHost; overload; virtual; final;
    function getLocalAddress(): JNInetAddress; overload; virtual; final;
    function getHopCount(): jint; overload; virtual; final;
    function getHopTarget(para1: jint): OAHHttpHost; overload; virtual; final;
    function getProxyHost(): OAHHttpHost; overload; virtual; final;
    function isConnected(): jboolean; overload; virtual; final;
    function getTunnelType(): OAHCRRouteInfo.InnerTunnelType; overload; virtual; final;
    function isTunnelled(): jboolean; overload; virtual; final;
    function getLayerType(): OAHCRRouteInfo.InnerLayerType; overload; virtual; final;
    function isLayered(): jboolean; overload; virtual; final;
    function isSecure(): jboolean; overload; virtual; final;
    function toRoute(): OAHCRHttpRoute; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JNInet4Address = class sealed external 'java.net' name 'Inet4Address' (JNInetAddress)
  public
    function isAnyLocalAddress(): jboolean; overload; virtual;
    function isLinkLocalAddress(): jboolean; overload; virtual;
    function isLoopbackAddress(): jboolean; overload; virtual;
    function isMCGlobal(): jboolean; overload; virtual;
    function isMCLinkLocal(): jboolean; overload; virtual;
    function isMCNodeLocal(): jboolean; overload; virtual;
    function isMCOrgLocal(): jboolean; overload; virtual;
    function isMCSiteLocal(): jboolean; overload; virtual;
    function isMulticastAddress(): jboolean; overload; virtual;
    function isSiteLocalAddress(): jboolean; overload; virtual;
  end;

  JNInet6Address = class sealed external 'java.net' name 'Inet6Address' (JNInetAddress)
  public
    class function getByAddress(para1: JLString; para2: Arr1jbyte; para3: jint): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; var para2: array of jbyte; para3: jint): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; para2: Arr1jbyte; para3: JNNetworkInterface): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; var para2: array of jbyte; para3: JNNetworkInterface): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    function isAnyLocalAddress(): jboolean; overload; virtual;
    function isIPv4CompatibleAddress(): jboolean; overload; virtual;
    function isLinkLocalAddress(): jboolean; overload; virtual;
    function isLoopbackAddress(): jboolean; overload; virtual;
    function isMCGlobal(): jboolean; overload; virtual;
    function isMCLinkLocal(): jboolean; overload; virtual;
    function isMCNodeLocal(): jboolean; overload; virtual;
    function isMCOrgLocal(): jboolean; overload; virtual;
    function isMCSiteLocal(): jboolean; overload; virtual;
    function isMulticastAddress(): jboolean; overload; virtual;
    function isSiteLocalAddress(): jboolean; overload; virtual;
    function getScopeId(): jint; overload; virtual;
    function getScopedInterface(): JNNetworkInterface; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNInetSocketAddress = class external 'java.net' name 'InetSocketAddress' (JNSocketAddress)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: JNInetAddress; para2: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    class function createUnresolved(para1: JLString; para2: jint): JNInetSocketAddress; static; overload;
    function getPort(): jint; overload; virtual; final;
    function getAddress(): JNInetAddress; overload; virtual; final;
    function getHostName(): JLString; overload; virtual; final;
    function isUnresolved(): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
  end;

  JSPrivateKey = interface external 'java.security' name 'PrivateKey' (JSKey)
    const
      serialVersionUID = jlong(6034044314589513430);
  end;

  JSPublicKey = interface external 'java.security' name 'PublicKey' (JSKey)
    const
      serialVersionUID = jlong(7187392471159151072);
  end;

  JCSecretKey = interface external 'javax.crypto' name 'SecretKey' (JSKey)
    const
      serialVersionUID = jlong(-4795878709595146952);
  end;

  JSPermissions = class sealed external 'java.security' name 'Permissions' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSCX509Certificate = class abstract external 'java.security.cert' name 'X509Certificate' (JSCCertificate, JSCX509Extension)
  strict protected
    constructor create(); overload;
  public
    procedure checkValidity(); overload; virtual; abstract;  // throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException
    procedure checkValidity(para1: JUDate); overload; virtual; abstract;  // throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException
    function getVersion(): jint; overload; virtual; abstract;
    function getSerialNumber(): JMBigInteger; overload; virtual; abstract;
    function getIssuerDN(): JSPrincipal; overload; virtual; abstract;
    function getIssuerX500Principal(): JSAXX500Principal; overload; virtual;
    function getSubjectDN(): JSPrincipal; overload; virtual; abstract;
    function getSubjectX500Principal(): JSAXX500Principal; overload; virtual;
    function getNotBefore(): JUDate; overload; virtual; abstract;
    function getNotAfter(): JUDate; overload; virtual; abstract;
    function getTBSCertificate(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    function getSignature(): Arr1jbyte; overload; virtual; abstract;
    function getSigAlgName(): JLString; overload; virtual; abstract;
    function getSigAlgOID(): JLString; overload; virtual; abstract;
    function getSigAlgParams(): Arr1jbyte; overload; virtual; abstract;
    function getIssuerUniqueID(): Arr1jboolean; overload; virtual; abstract;
    function getSubjectUniqueID(): Arr1jboolean; overload; virtual; abstract;
    function getKeyUsage(): Arr1jboolean; overload; virtual; abstract;
    function getExtendedKeyUsage(): JUList; overload; virtual;  // throws java.security.cert.CertificateParsingException
    function getBasicConstraints(): jint; overload; virtual; abstract;
    function getSubjectAlternativeNames(): JUCollection; overload; virtual;  // throws java.security.cert.CertificateParsingException
    function getIssuerAlternativeNames(): JUCollection; overload; virtual;  // throws java.security.cert.CertificateParsingException
  end;

  JSBatchUpdateException = class external 'java.sql' name 'BatchUpdateException' (JSSQLException, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: Arr1jint; para2: JLThrowable); overload;
    constructor create(const para1: array of jint; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: Arr1jint; para3: JLThrowable); overload;
    constructor create(para1: JLString; const para2: array of jint; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1jint; para4: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of jint; para4: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: Arr1jint; para5: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; const para4: array of jint; para5: JLThrowable); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    constructor create(para1: JLString; para2: Arr1jint); overload;
    constructor create(para1: JLString; const para2: array of jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1jint); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: Arr1jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; const para4: array of jint); overload;
    function getUpdateCounts(): Arr1jint; overload; virtual;
  end;

  JSSQLClientInfoException = class external 'java.sql' name 'SQLClientInfoException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: JUMap; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    constructor create(para1: JLString; para2: JUMap; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JUMap); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JUMap; para5: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JUMap); overload;
    constructor create(para1: JLString; para2: JLString; para3: JUMap; para4: JLThrowable); overload;
    function getFailedProperties(): JUMap; overload; virtual;
  end;

  JSSQLNonTransientException = class external 'java.sql' name 'SQLNonTransientException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLRecoverableException = class external 'java.sql' name 'SQLRecoverableException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTransientException = class external 'java.sql' name 'SQLTransientException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLWarning = class external 'java.sql' name 'SQLWarning' (JSSQLException, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
    function getNextWarning(): JSSQLWarning; overload; virtual;
    procedure setNextWarning(para1: JSSQLWarning); overload; virtual;
  end;

  JSDate = class external 'java.sql' name 'Date' (JUDate)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jlong); overload;
    function getHours(): jint; overload; virtual;
    function getMinutes(): jint; overload; virtual;
    function getSeconds(): jint; overload; virtual;
    procedure setHours(para1: jint); overload; virtual;
    procedure setMinutes(para1: jint); overload; virtual;
    procedure setSeconds(para1: jint); overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    function toString(): JLString; overload; virtual;
    class function valueOf(para1: JLString): JSDate; static; overload;
  end;

  JSTime = class external 'java.sql' name 'Time' (JUDate)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jlong); overload;
    function getDate(): jint; overload; virtual;
    function getDay(): jint; overload; virtual;
    function getMonth(): jint; overload; virtual;
    function getYear(): jint; overload; virtual;
    procedure setDate(para1: jint); overload; virtual;
    procedure setMonth(para1: jint); overload; virtual;
    procedure setYear(para1: jint); overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    function toString(): JLString; overload; virtual;
    class function valueOf(para1: JLString): JSTime; static; overload;
  end;

  JSqlTimestamp = class external 'java.sql' name 'Timestamp' (JUDate)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload;  // throws java.lang.IllegalArgumentException
    constructor create(para1: jlong); overload;
    function after(para1: JSqlTimestamp): jboolean; overload; virtual;
    function before(para1: JSqlTimestamp): jboolean; overload; virtual;
    function compareTo(para1: JUDate): jint; overload; virtual;  // throws java.lang.ClassCastException
    function compareTo(para1: JSqlTimestamp): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JSqlTimestamp): jboolean; overload; virtual;
    function getNanos(): jint; overload; virtual;
    function getTime(): jlong; overload; virtual;
    procedure setNanos(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setTime(para1: jlong); overload; virtual;
    function toString(): JLString; overload; virtual;
    class function valueOf(para1: JLString): JSqlTimestamp; static; overload;  // throws java.lang.IllegalArgumentException
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JBPropertyChangeEvent = class external 'java.beans' name 'PropertyChangeEvent' (JUEventObject)
  public
    constructor create(para1: JLObject; para2: JLString; para3: JLObject; para4: JLObject); overload;
    function getPropertyName(): JLString; overload; virtual;
    procedure setPropagationId(para1: JLObject); overload; virtual;
    function getPropagationId(): JLObject; overload; virtual;
    function getOldValue(): JLObject; overload; virtual;
    function getNewValue(): JLObject; overload; virtual;
  end;

  JUPNodeChangeEvent = class external 'java.util.prefs' name 'NodeChangeEvent' (JUEventObject, JISerializable)
  public
    constructor create(para1: JUPPreferences; para2: JUPPreferences); overload;
    function getParent(): JUPPreferences; overload; virtual;
    function getChild(): JUPPreferences; overload; virtual;
  end;

  JUPPreferenceChangeEvent = class external 'java.util.prefs' name 'PreferenceChangeEvent' (JUEventObject, JISerializable)
  public
    constructor create(para1: JUPPreferences; para2: JLString; para3: JLString); overload;
    function getKey(): JLString; overload; virtual;
    function getNewValue(): JLString; overload; virtual;
    function getNode(): JUPPreferences; overload; virtual;
  end;

  JNSHandshakeCompletedEvent = class external 'javax.net.ssl' name 'HandshakeCompletedEvent' (JUEventObject)
  public
    constructor create(para1: JNSSSLSocket; para2: JNSSSLSession); overload;
    function getSession(): JNSSSLSession; overload; virtual;
    function getCipherSuite(): JLString; overload; virtual;
    function getLocalCertificates(): Arr1JSCCertificate; overload; virtual;
    function getPeerCertificates(): Arr1JSCCertificate; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerCertificateChain(): Arr1JxSCX509Certificate; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload; virtual;
    function getSocket(): JNSSSLSocket; overload; virtual;
  end;

  JNSSSLSessionBindingEvent = class external 'javax.net.ssl' name 'SSLSessionBindingEvent' (JUEventObject)
  public
    constructor create(para1: JNSSSLSession; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getSession(): JNSSSLSession; overload; virtual;
  end;

  JSConnectionEvent = class external 'javax.sql' name 'ConnectionEvent' (JUEventObject, JISerializable)
  public
    constructor create(para1: JSPooledConnection); overload;
    constructor create(para1: JSPooledConnection; para2: JSSQLException); overload;
    function getSQLException(): JSSQLException; overload; virtual;
  end;

  JSRowSetEvent = class external 'javax.sql' name 'RowSetEvent' (JUEventObject, JISerializable)
  public
    constructor create(para1: JSRowSet); overload;
  end;

  JSStatementEvent = class external 'javax.sql' name 'StatementEvent' (JUEventObject)
  public
    constructor create(para1: JSPooledConnection; para2: JSPreparedStatement; para3: JSSQLException); overload;
    constructor create(para1: JSPooledConnection; para2: JSPreparedStatement); overload;
    function getStatement(): JSPreparedStatement; overload; virtual;
    function getSQLException(): JSSQLException; overload; virtual;
  end;

  JSSecureRandom = class external 'java.security' name 'SecureRandom' (JURandom)
  public
    constructor create(); overload;
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
  strict protected
    constructor create(para1: JSSecureRandomSpi; para2: JSProvider); overload;
  public
    class function getInstance(para1: JLString): JSSecureRandom; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSSecureRandom; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSSecureRandom; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual;
    procedure setSeed(para1: Arr1jbyte); overload; virtual;
    procedure setSeed(var para1: array of jbyte); overload; virtual;
    procedure setSeed(para1: jlong); overload; virtual;
    procedure nextBytes(para1: Arr1jbyte); overload; virtual;
    procedure nextBytes(var para1: array of jbyte); overload; virtual;
  strict protected
    function next(para1: jint): jint; overload; virtual; final;
  public
    class function getSeed(para1: jint): Arr1jbyte; static; overload;
    function generateSeed(para1: jint): Arr1jbyte; overload; virtual;
  end;

  JUSimpleTimeZone = class external 'java.util' name 'SimpleTimeZone' (JUTimeZone)
  public
    const
      UTC_TIME = 2;
      STANDARD_TIME = 1;
      WALL_TIME = 0;
  public
    constructor create(para1: jint; para2: JLString); overload;
    constructor create(para1: jint; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint); overload;
    constructor create(para1: jint; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint; para11: jint); overload;
    constructor create(para1: jint; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint; para11: jint; para12: jint; para13: jint); overload;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getDSTSavings(): jint; overload; virtual;
    function getOffset(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jint; overload; virtual;
    function getOffset(para1: jlong): jint; overload; virtual;
    function getRawOffset(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function hasSameRules(para1: JUTimeZone): jboolean; overload; virtual;
    function inDaylightTime(para1: JUDate): jboolean; overload; virtual;
    procedure setDSTSavings(para1: jint); overload; virtual;
    procedure setEndRule(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setEndRule(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setEndRule(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure setRawOffset(para1: jint); overload; virtual;
    procedure setStartRule(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setStartRule(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setStartRule(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure setStartYear(para1: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
    function useDaylightTime(): jboolean; overload; virtual;
  end;

  JUCLAbstractQueuedLongSynchronizer = class abstract external 'java.util.concurrent.locks' name 'AbstractQueuedLongSynchronizer' (JUCLAbstractOwnableSynchronizer, JISerializable)
  public
    type
      InnerConditionObject = class;
      Arr1InnerConditionObject = array of InnerConditionObject;
      Arr2InnerConditionObject = array of Arr1InnerConditionObject;
      Arr3InnerConditionObject = array of Arr2InnerConditionObject;
      InnerConditionObject = class external 'java.util.concurrent.locks' name 'ConditionObject' 
      end;

  strict protected
    constructor create(); overload;
    function getState(): jlong; overload; virtual; final;
    procedure setState(para1: jlong); overload; virtual; final;
    function compareAndSetState(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function tryAcquire(para1: jlong): jboolean; overload; virtual;
    function tryRelease(para1: jlong): jboolean; overload; virtual;
    function tryAcquireShared(para1: jlong): jlong; overload; virtual;
    function tryReleaseShared(para1: jlong): jboolean; overload; virtual;
    function isHeldExclusively(): jboolean; overload; virtual;
  public
    procedure acquire(para1: jlong); overload; virtual; final;
    procedure acquireInterruptibly(para1: jlong); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireNanos(para1: jlong; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function release(para1: jlong): jboolean; overload; virtual; final;
    procedure acquireShared(para1: jlong); overload; virtual; final;
    procedure acquireSharedInterruptibly(para1: jlong); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireSharedNanos(para1: jlong; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function releaseShared(para1: jlong): jboolean; overload; virtual; final;
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasContended(): jboolean; overload; virtual; final;
    function getFirstQueuedThread(): JLThread; overload; virtual; final;
    function isQueued(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
    function getQueuedThreads(): JUCollection; overload; virtual; final;
    function getExclusiveQueuedThreads(): JUCollection; overload; virtual; final;
    function getSharedQueuedThreads(): JUCollection; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function owns(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function hasWaiters(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function getWaitQueueLength(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): jint; overload; virtual; final;
    function getWaitingThreads(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): JUCollection; overload; virtual; final;
  end;

  JUCLAbstractQueuedSynchronizer = class abstract external 'java.util.concurrent.locks' name 'AbstractQueuedSynchronizer' (JUCLAbstractOwnableSynchronizer, JISerializable)
  public
    type
      InnerConditionObject = class;
      Arr1InnerConditionObject = array of InnerConditionObject;
      Arr2InnerConditionObject = array of Arr1InnerConditionObject;
      Arr3InnerConditionObject = array of Arr2InnerConditionObject;
      InnerConditionObject = class external 'java.util.concurrent.locks' name 'ConditionObject' 
      end;

  strict protected
    constructor create(); overload;
    function getState(): jint; overload; virtual; final;
    procedure setState(para1: jint); overload; virtual; final;
    function compareAndSetState(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function tryAcquire(para1: jint): jboolean; overload; virtual;
    function tryRelease(para1: jint): jboolean; overload; virtual;
    function tryAcquireShared(para1: jint): jint; overload; virtual;
    function tryReleaseShared(para1: jint): jboolean; overload; virtual;
    function isHeldExclusively(): jboolean; overload; virtual;
  public
    procedure acquire(para1: jint); overload; virtual; final;
    procedure acquireInterruptibly(para1: jint); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireNanos(para1: jint; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function release(para1: jint): jboolean; overload; virtual; final;
    procedure acquireShared(para1: jint); overload; virtual; final;
    procedure acquireSharedInterruptibly(para1: jint); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireSharedNanos(para1: jint; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function releaseShared(para1: jint): jboolean; overload; virtual; final;
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasContended(): jboolean; overload; virtual; final;
    function getFirstQueuedThread(): JLThread; overload; virtual; final;
    function isQueued(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
    function getQueuedThreads(): JUCollection; overload; virtual; final;
    function getExclusiveQueuedThreads(): JUCollection; overload; virtual; final;
    function getSharedQueuedThreads(): JUCollection; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function owns(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function hasWaiters(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function getWaitQueueLength(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): jint; overload; virtual; final;
    function getWaitingThreads(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): JUCollection; overload; virtual; final;
  end;

  OAHHttpVersion = class sealed external 'org.apache.http' name 'HttpVersion' (OAHProtocolVersion, JISerializable)
  public
    const
      HTTP = 'HTTP';
  public
    final class var
      fHTTP_0_9: OAHHttpVersion; external name 'HTTP_0_9';
      fHTTP_1_0: OAHHttpVersion; external name 'HTTP_1_0';
      fHTTP_1_1: OAHHttpVersion; external name 'HTTP_1_1';
  public
    constructor create(para1: jint; para2: jint); overload;
    function forVersion(para1: jint; para2: jint): OAHProtocolVersion; overload; virtual;
  end;

  JNSocketTimeoutException = class external 'java.net' name 'SocketTimeoutException' (JIInterruptedIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OAHCConnectTimeoutException = class external 'org.apache.http.conn' name 'ConnectTimeoutException' (JIInterruptedIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIInvalidClassException = class external 'java.io' name 'InvalidClassException' (JIObjectStreamException)
  public
    var
      fclassname: JLString; external name 'classname';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getMessage(): JLString; overload; virtual;
  end;

  JIInvalidObjectException = class external 'java.io' name 'InvalidObjectException' (JIObjectStreamException)
  public
    constructor create(para1: JLString); overload;
  end;

  JINotActiveException = class external 'java.io' name 'NotActiveException' (JIObjectStreamException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JINotSerializableException = class external 'java.io' name 'NotSerializableException' (JIObjectStreamException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIOptionalDataException = class external 'java.io' name 'OptionalDataException' (JIObjectStreamException)
  public
    var
      feof: jboolean; external name 'eof';
      flength: jint; external name 'length';
  end;

  JIStreamCorruptedException = class external 'java.io' name 'StreamCorruptedException' (JIObjectStreamException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIWriteAbortedException = class external 'java.io' name 'WriteAbortedException' (JIObjectStreamException)
  public
    var
      fdetail: JLException; external name 'detail';
  public
    constructor create(para1: JLString; para2: JLException); overload;
    function getMessage(): JLString; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JNBindException = class external 'java.net' name 'BindException' (JNSocketException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNConnectException = class external 'java.net' name 'ConnectException' (JNSocketException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNNoRouteToHostException = class external 'java.net' name 'NoRouteToHostException' (JNSocketException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNPortUnreachableException = class external 'java.net' name 'PortUnreachableException' (JNSocketException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNCAsynchronousCloseException = class external 'java.nio.channels' name 'AsynchronousCloseException' (JNCClosedChannelException)
  public
    constructor create(); overload;
  end;

  JUJJarException = class external 'java.util.jar' name 'JarException' (JUZZipException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNSSSLHandshakeException = class external 'javax.net.ssl' name 'SSLHandshakeException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JNSSSLKeyException = class external 'javax.net.ssl' name 'SSLKeyException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JNSSSLPeerUnverifiedException = class external 'javax.net.ssl' name 'SSLPeerUnverifiedException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JNSSSLProtocolException = class external 'javax.net.ssl' name 'SSLProtocolException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  OAHCHttpResponseException = class external 'org.apache.http.client' name 'HttpResponseException' (OAHCClientProtocolException)
  public
    constructor create(para1: jint; para2: JLString); overload;
    function getStatusCode(): jint; overload; virtual;
  end;

  ATComparisonFailure = class external 'android.test' name 'ComparisonFailure' (ATAssertionFailedError)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    function getMessage(): JLString; overload; virtual;
  end;

  JLInternalError = class external 'java.lang' name 'InternalError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLOutOfMemoryError = class external 'java.lang' name 'OutOfMemoryError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLStackOverflowError = class external 'java.lang' name 'StackOverflowError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLUnknownError = class external 'java.lang' name 'UnknownError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JFComparisonFailure = class external 'junit.framework' name 'ComparisonFailure' (JFAssertionFailedError)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    function getMessage(): JLString; overload; virtual;
  end;

  ATAlteredCharSequence = class external 'android.text' name 'AlteredCharSequence' (JLObject, JLCharSequence, ATGetChars)
  public
    class function make(para1: JLCharSequence; para2: Arr1jchar; para3: jint; para4: jint): ATAlteredCharSequence; static; overload;
    class function make(para1: JLCharSequence; var para2: array of jchar; para3: jint; para4: jint): ATAlteredCharSequence; static; overload;
    function charAt(para1: jint): jchar; overload; virtual;
    function length(): jint; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    procedure getChars(para1: jint; para2: jint; para3: Arr1jchar; para4: jint); overload; virtual;
    procedure getChars(para1: jint; para2: jint; var para3: array of jchar; para4: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ATSpannable = interface external 'android.text' name 'Spannable' (ATSpanned)
    type
      InnerFactory = class;
      Arr1InnerFactory = array of InnerFactory;
      Arr2InnerFactory = array of Arr1InnerFactory;
      Arr3InnerFactory = array of Arr2InnerFactory;
      InnerFactory = class external 'android.text' name 'Factory' (JLObject)
      public
        constructor create(); overload;
        class function getInstance(): ATSpannable.InnerFactory; static; overload;
        function newSpannable(para1: JLCharSequence): ATSpannable; overload; virtual;
      end;

    procedure setSpan(para1: JLObject; para2: jint; para3: jint; para4: jint); overload;
    procedure removeSpan(para1: JLObject); overload;
  end;

  ATSpannedString = class sealed external 'android.text' name 'SpannedString' (ATSpannableStringInternal, JLCharSequence, ATGetChars, ATSpanned)
  public
    constructor create(para1: JLCharSequence); overload;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    class function valueOf(para1: JLCharSequence): ATSpannedString; static; overload;
    function nextSpanTransition(para1: jint; para2: jint; para3: JLClass): jint; overload; virtual;
    function getSpans(para1: jint; para2: jint; para3: JLClass): Arr1JLObject; overload; virtual;
    function getSpanFlags(para1: JLObject): jint; overload; virtual;
    function getSpanEnd(para1: JLObject): jint; overload; virtual;
    function getSpanStart(para1: JLObject): jint; overload; virtual;
  end;

  JLUnsupportedClassVersionError = class external 'java.lang' name 'UnsupportedClassVersionError' (JLClassFormatError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLRGenericSignatureFormatError = class external 'java.lang.reflect' name 'GenericSignatureFormatError' (JLClassFormatError)
  public
    constructor create(); overload;
  end;

  JLAbstractMethodError = class external 'java.lang' name 'AbstractMethodError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIllegalAccessError = class external 'java.lang' name 'IllegalAccessError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInstantiationError = class external 'java.lang' name 'InstantiationError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchFieldError = class external 'java.lang' name 'NoSuchFieldError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchMethodError = class external 'java.lang' name 'NoSuchMethodError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUDuplicateFormatFlagsException = class external 'java.util' name 'DuplicateFormatFlagsException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFlags(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUFormatFlagsConversionMismatchException = class external 'java.util' name 'FormatFlagsConversionMismatchException' (JUIllegalFormatException, JISerializable)
  public
    constructor create(para1: JLString; para2: jchar); overload;
    function getFlags(): JLString; overload; virtual;
    function getConversion(): jchar; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatCodePointException = class external 'java.util' name 'IllegalFormatCodePointException' (JUIllegalFormatException, JISerializable)
  public
    constructor create(para1: jint); overload;
    function getCodePoint(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatConversionException = class external 'java.util' name 'IllegalFormatConversionException' (JUIllegalFormatException, JISerializable)
  public
    constructor create(para1: jchar; para2: JLClass); overload;
    function getArgumentClass(): JLClass; overload; virtual;
    function getConversion(): jchar; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatFlagsException = class external 'java.util' name 'IllegalFormatFlagsException' (JUIllegalFormatException, JISerializable)
  public
    constructor create(para1: JLString); overload;
    function getFlags(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatPrecisionException = class external 'java.util' name 'IllegalFormatPrecisionException' (JUIllegalFormatException)
  public
    constructor create(para1: jint); overload;
    function getPrecision(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatWidthException = class external 'java.util' name 'IllegalFormatWidthException' (JUIllegalFormatException)
  public
    constructor create(para1: jint); overload;
    function getWidth(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUMissingFormatArgumentException = class external 'java.util' name 'MissingFormatArgumentException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFormatSpecifier(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUMissingFormatWidthException = class external 'java.util' name 'MissingFormatWidthException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFormatSpecifier(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUUnknownFormatConversionException = class external 'java.util' name 'UnknownFormatConversionException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getConversion(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUUnknownFormatFlagsException = class external 'java.util' name 'UnknownFormatFlagsException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFlags(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUNavigableMap = interface external 'java.util' name 'NavigableMap' (JUSortedMap)
    function lowerEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function lowerKey(para1: JLObject): JLObject; overload;
    function floorEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function floorKey(para1: JLObject): JLObject; overload;
    function ceilingEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function ceilingKey(para1: JLObject): JLObject; overload;
    function higherEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function higherKey(para1: JLObject): JLObject; overload;
    function firstEntry(): JUMap.InnerEntry; overload;
    function lastEntry(): JUMap.InnerEntry; overload;
    function pollFirstEntry(): JUMap.InnerEntry; overload;
    function pollLastEntry(): JUMap.InnerEntry; overload;
    function descendingMap(): JUNavigableMap; overload;
    function navigableKeySet(): JUNavigableSet; overload;
    function descendingKeySet(): JUNavigableSet; overload;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableMap; overload;
    function headMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload;
    function tailMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload;
    function headMap(para1: JLObject): JUSortedMap; overload;
    function tailMap(para1: JLObject): JUSortedMap; overload;
  end;

  JUCConcurrentHashMap = class external 'java.util.concurrent' name 'ConcurrentHashMap' (JUAbstractMap, JUCConcurrentMap, JISerializable)
  public
    constructor create(para1: jint; para2: jfloat; para3: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function putIfAbsent(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keys(): JUEnumeration; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JULinkedHashSet = class external 'java.util' name 'LinkedHashSet' (JUHashSet, JUSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: JUCollection); overload;
  end;

  JUNavigableSet = interface external 'java.util' name 'NavigableSet' (JUSortedSet)
    function lower(para1: JLObject): JLObject; overload;
    function floor(para1: JLObject): JLObject; overload;
    function ceiling(para1: JLObject): JLObject; overload;
    function higher(para1: JLObject): JLObject; overload;
    function pollFirst(): JLObject; overload;
    function pollLast(): JLObject; overload;
    function iterator(): JUIterator; overload;
    function descendingSet(): JUNavigableSet; overload;
    function descendingIterator(): JUIterator; overload;
    function subSet(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableSet; overload;
    function headSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload;
    function tailSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload;
    function headSet(para1: JLObject): JUSortedSet; overload;
    function tailSet(para1: JLObject): JUSortedSet; overload;
  end;

  JUAbstractList = class abstract external 'java.util' name 'AbstractList' (JUAbstractCollection, JUList)
  strict protected
    var
      fmodCount: jint; external name 'modCount';
  strict protected
    constructor create(); overload;
  public
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual; abstract;
    function hashCode(): jint; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function listIterator(): JUListIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  public
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
  end;

  JUCCopyOnWriteArrayList = class external 'java.util.concurrent' name 'CopyOnWriteArrayList' (JLObject, JUList, JURandomAccess, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    function clone(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function indexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function listIterator(): JUListIterator; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function addAllAbsent(para1: JUCollection): jint; overload; virtual;
    function addIfAbsent(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
  end;

  JUAbstractQueue = class abstract external 'java.util' name 'AbstractQueue' (JUAbstractCollection, JUQueue)
  strict protected
    constructor create(); overload;
  public
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(): JLObject; overload; virtual;
    function element(): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
  end;

  JUDeque = interface external 'java.util' name 'Deque' (JUQueue)
    procedure addFirst(para1: JLObject); overload;
    procedure addLast(para1: JLObject); overload;
    function offerFirst(para1: JLObject): jboolean; overload;
    function offerLast(para1: JLObject): jboolean; overload;
    function removeFirst(): JLObject; overload;
    function removeLast(): JLObject; overload;
    function pollFirst(): JLObject; overload;
    function pollLast(): JLObject; overload;
    function getFirst(): JLObject; overload;
    function getLast(): JLObject; overload;
    function peekFirst(): JLObject; overload;
    function peekLast(): JLObject; overload;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload;
    function removeLastOccurrence(para1: JLObject): jboolean; overload;
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    function remove(): JLObject; overload;
    function poll(): JLObject; overload;
    function element(): JLObject; overload;
    function peek(): JLObject; overload;
    procedure push(para1: JLObject); overload;
    function pop(): JLObject; overload;
    function remove(para1: JLObject): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function size(): jint; overload;
    function iterator(): JUIterator; overload;
    function descendingIterator(): JUIterator; overload;
  end;

  JUCBlockingQueue = interface external 'java.util.concurrent' name 'BlockingQueue' (JUQueue)
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    procedure put(para1: JLObject); overload;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function take(): JLObject; overload;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function remainingCapacity(): jint; overload;
    function remove(para1: JLObject): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function drainTo(para1: JUCollection): jint; overload;
    function drainTo(para1: JUCollection; para2: jint): jint; overload;
  end;

  AVAAccelerateDecelerateInterpolator = class external 'android.view.animation' name 'AccelerateDecelerateInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVAAccelerateInterpolator = class external 'android.view.animation' name 'AccelerateInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: jfloat); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVAAnticipateInterpolator = class external 'android.view.animation' name 'AnticipateInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: jfloat); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVAAnticipateOvershootInterpolator = class external 'android.view.animation' name 'AnticipateOvershootInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVABounceInterpolator = class external 'android.view.animation' name 'BounceInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVACycleInterpolator = class external 'android.view.animation' name 'CycleInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(para1: jfloat); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVADecelerateInterpolator = class external 'android.view.animation' name 'DecelerateInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: jfloat); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVALinearInterpolator = class external 'android.view.animation' name 'LinearInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  AVAOvershootInterpolator = class external 'android.view.animation' name 'OvershootInterpolator' (JLObject, AVAInterpolator)
  public
    constructor create(); overload;
    constructor create(para1: jfloat); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function getInterpolation(para1: jfloat): jfloat; overload; virtual;
  end;

  ACContentProvider = class abstract external 'android.content' name 'ContentProvider' (JLObject, ACComponentCallbacks2)
  public
    type
      InnerPipeDataWriter = interface;
      Arr1InnerPipeDataWriter = array of InnerPipeDataWriter;
      Arr2InnerPipeDataWriter = array of Arr1InnerPipeDataWriter;
      Arr3InnerPipeDataWriter = array of Arr2InnerPipeDataWriter;
      InnerPipeDataWriter = interface external 'android.content' name 'PipeDataWriter' 
        procedure writeDataToPipe(para1: AOParcelFileDescriptor; para2: ANUri; para3: JLString; para4: AOBundle; para5: JLObject); overload;
      end;

  public
    constructor create(); overload;
    function getContext(): ACContext; overload; virtual; final;
  strict protected
    procedure setReadPermission(para1: JLString); overload; virtual; final;
  public
    function getReadPermission(): JLString; overload; virtual; final;
  strict protected
    procedure setWritePermission(para1: JLString); overload; virtual; final;
  public
    function getWritePermission(): JLString; overload; virtual; final;
  strict protected
    procedure setPathPermissions(para1: Arr1ACPPathPermission); overload; virtual; final;
    procedure setPathPermissions(var para1: array of ACPPathPermission); overload; virtual; final;
  public
    function getPathPermissions(): Arr1ACPPathPermission; overload; virtual; final;
    function onCreate(): jboolean; overload; virtual; abstract;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    procedure onLowMemory(); overload; virtual;
    procedure onTrimMemory(para1: jint); overload; virtual;
    function query(para1: ANUri; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString): ADCursor; overload; virtual; abstract;
    function query(para1: ANUri; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString): ADCursor; overload; virtual; abstract;
    function getType(para1: ANUri): JLString; overload; virtual; abstract;
    function insert(para1: ANUri; para2: ACContentValues): ANUri; overload; virtual; abstract;
    function bulkInsert(para1: ANUri; para2: Arr1ACContentValues): jint; overload; virtual;
    function bulkInsert(para1: ANUri; var para2: array of ACContentValues): jint; overload; virtual;
    function delete(para1: ANUri; para2: JLString; para3: Arr1JLString): jint; overload; virtual; abstract;
    function delete(para1: ANUri; para2: JLString; var para3: array of JLString): jint; overload; virtual; abstract;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; para4: Arr1JLString): jint; overload; virtual; abstract;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; var para4: array of JLString): jint; overload; virtual; abstract;
    function openFile(para1: ANUri; para2: JLString): AOParcelFileDescriptor; overload; virtual;  // throws java.io.FileNotFoundException
    function openAssetFile(para1: ANUri; para2: JLString): ACRAssetFileDescriptor; overload; virtual;  // throws java.io.FileNotFoundException
  strict protected
    function openFileHelper(para1: ANUri; para2: JLString): AOParcelFileDescriptor; overload; virtual; final;  // throws java.io.FileNotFoundException
  public
    function getStreamTypes(para1: ANUri; para2: JLString): Arr1JLString; overload; virtual;
    function openTypedAssetFile(para1: ANUri; para2: JLString; para3: AOBundle): ACRAssetFileDescriptor; overload; virtual;  // throws java.io.FileNotFoundException
    function openPipeHelper(para1: ANUri; para2: JLString; para3: AOBundle; para4: JLObject; para5: ACContentProvider.InnerPipeDataWriter): AOParcelFileDescriptor; overload; virtual;  // throws java.io.FileNotFoundException
  strict protected
    function isTemporary(): jboolean; overload; virtual;
  public
    procedure attachInfo(para1: ACContext; para2: ACPProviderInfo); overload; virtual;
    function applyBatch(para1: JUArrayList): Arr1ACContentProviderResult; overload; virtual;  // throws android.content.OperationApplicationException
    function call(para1: JLString; para2: JLString; para3: AOBundle): AOBundle; overload; virtual;
    procedure shutdown(); overload; virtual;
  end;

  ACCursorLoader = class external 'android.content' name 'CursorLoader' (ACAsyncTaskLoader)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: ANUri; para3: Arr1JLString; para4: JLString; para5: Arr1JLString; para6: JLString); overload;
    constructor create(para1: ACContext; para2: ANUri; const para3: array of JLString; para4: JLString; const para5: array of JLString; para6: JLString); overload;
    function loadInBackground(): ADCursor; overload; virtual;
    procedure deliverResult(para1: ADCursor); overload; virtual;
  strict protected
    procedure onStartLoading(); overload; virtual;
    procedure onStopLoading(); overload; virtual;
  public
    procedure onCanceled(para1: ADCursor); overload; virtual;
  strict protected
    procedure onReset(); overload; virtual;
  public
    function getUri(): ANUri; overload; virtual;
    procedure setUri(para1: ANUri); overload; virtual;
    function getProjection(): Arr1JLString; overload; virtual;
    procedure setProjection(para1: Arr1JLString); overload; virtual;
    procedure setProjection(var para1: array of JLString); overload; virtual;
    function getSelection(): JLString; overload; virtual;
    procedure setSelection(para1: JLString); overload; virtual;
    function getSelectionArgs(): Arr1JLString; overload; virtual;
    procedure setSelectionArgs(para1: Arr1JLString); overload; virtual;
    procedure setSelectionArgs(var para1: array of JLString); overload; virtual;
    function getSortOrder(): JLString; overload; virtual;
    procedure setSortOrder(para1: JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual;
    function loadInBackground(): JLObject; overload; virtual;
    procedure onCanceled(para1: JLObject); overload; virtual;
    procedure deliverResult(para1: JLObject); overload; virtual;
  end;

  ADAbstractCursor = class abstract external 'android.database' name 'AbstractCursor' (JLObject, ADCrossProcessCursor)
  public
    type
      InnerSelfContentObserver = class;
      Arr1InnerSelfContentObserver = array of InnerSelfContentObserver;
      Arr2InnerSelfContentObserver = array of Arr1InnerSelfContentObserver;
      Arr3InnerSelfContentObserver = array of Arr2InnerSelfContentObserver;
      InnerSelfContentObserver = class external 'android.database' name 'SelfContentObserver' (ADContentObserver)
      public
        constructor create(para1: ADAbstractCursor); overload;
        function deliverSelfNotifications(): jboolean; overload; virtual;
        procedure onChange(para1: jboolean); overload; virtual;
      end;

  strict protected
    var
      fmUpdatedRows: JUHashMap; external name 'mUpdatedRows';
      fmRowIdColumnIndex: jint; external name 'mRowIdColumnIndex';
      fmPos: jint; external name 'mPos';
      fmCurrentRowID: JLLong; external name 'mCurrentRowID';
      fmContentResolver: ACContentResolver; external name 'mContentResolver';
      fmClosed: jboolean; external name 'mClosed';
  public
    constructor create(); overload;
    function getCount(): jint; overload; virtual; abstract;
    function getColumnNames(): Arr1JLString; overload; virtual; abstract;
    function getString(para1: jint): JLString; overload; virtual; abstract;
    function getShort(para1: jint): jshort; overload; virtual; abstract;
    function getInt(para1: jint): jint; overload; virtual; abstract;
    function getLong(para1: jint): jlong; overload; virtual; abstract;
    function getFloat(para1: jint): jfloat; overload; virtual; abstract;
    function getDouble(para1: jint): jdouble; overload; virtual; abstract;
    function isNull(para1: jint): jboolean; overload; virtual; abstract;
    function getType(para1: jint): jint; overload; virtual;
    function getBlob(para1: jint): Arr1jbyte; overload; virtual;
    function getWindow(): ADCursorWindow; overload; virtual;
    function getColumnCount(): jint; overload; virtual;
    procedure deactivate(); overload; virtual;
    function requery(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    procedure close(); overload; virtual;
    function onMove(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure copyStringToBuffer(para1: jint; para2: ADCharArrayBuffer); overload; virtual;
    function getPosition(): jint; overload; virtual; final;
    function moveToPosition(para1: jint): jboolean; overload; virtual; final;
    procedure fillWindow(para1: jint; para2: ADCursorWindow); overload; virtual;
    function move(para1: jint): jboolean; overload; virtual; final;
    function moveToFirst(): jboolean; overload; virtual; final;
    function moveToLast(): jboolean; overload; virtual; final;
    function moveToNext(): jboolean; overload; virtual; final;
    function moveToPrevious(): jboolean; overload; virtual; final;
    function isFirst(): jboolean; overload; virtual; final;
    function isLast(): jboolean; overload; virtual; final;
    function isBeforeFirst(): jboolean; overload; virtual; final;
    function isAfterLast(): jboolean; overload; virtual; final;
    function getColumnIndex(para1: JLString): jint; overload; virtual;
    function getColumnIndexOrThrow(para1: JLString): jint; overload; virtual;
    function getColumnName(para1: jint): JLString; overload; virtual;
    procedure registerContentObserver(para1: ADContentObserver); overload; virtual;
    procedure unregisterContentObserver(para1: ADContentObserver); overload; virtual;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
  strict protected
    procedure onChange(para1: jboolean); overload; virtual;
  public
    procedure setNotificationUri(para1: ACContentResolver; para2: ANUri); overload; virtual;
    function getNotificationUri(): ANUri; overload; virtual;
    function getWantsAllOnMoveCalls(): jboolean; overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    function respond(para1: AOBundle): AOBundle; overload; virtual;
  strict protected
    function isFieldUpdated(para1: jint): jboolean; overload; virtual;
    function getUpdatedField(para1: jint): JLObject; overload; virtual;
    procedure checkPosition(); overload; virtual;
    procedure finalize(); overload; virtual;
  end;

  ACContext = class abstract external 'android.content' name 'Context' (JLObject)
  public
    const
      MODE_PRIVATE = 0;
      MODE_WORLD_READABLE = 1;
      MODE_WORLD_WRITEABLE = 2;
      MODE_APPEND = 32768;
      MODE_MULTI_PROCESS = 4;
      BIND_AUTO_CREATE = 1;
      BIND_DEBUG_UNBIND = 2;
      BIND_NOT_FOREGROUND = 4;
      BIND_ABOVE_CLIENT = 8;
      BIND_ALLOW_OOM_MANAGEMENT = 16;
      BIND_WAIVE_PRIORITY = 32;
      BIND_IMPORTANT = 64;
      BIND_ADJUST_WITH_ACTIVITY = 64;
      POWER_SERVICE = 'power';
      WINDOW_SERVICE = 'window';
      LAYOUT_INFLATER_SERVICE = 'layout_inflater';
      ACCOUNT_SERVICE = 'account';
      ACTIVITY_SERVICE = 'activity';
      ALARM_SERVICE = 'alarm';
      NOTIFICATION_SERVICE = 'notification';
      ACCESSIBILITY_SERVICE = 'accessibility';
      KEYGUARD_SERVICE = 'keyguard';
      LOCATION_SERVICE = 'location';
      SEARCH_SERVICE = 'search';
      SENSOR_SERVICE = 'sensor';
      STORAGE_SERVICE = 'storage';
      WALLPAPER_SERVICE = 'wallpaper';
      VIBRATOR_SERVICE = 'vibrator';
      CONNECTIVITY_SERVICE = 'connectivity';
      WIFI_SERVICE = 'wifi';
      WIFI_P2P_SERVICE = 'wifip2p';
      AUDIO_SERVICE = 'audio';
      TELEPHONY_SERVICE = 'phone';
      CLIPBOARD_SERVICE = 'clipboard';
      INPUT_METHOD_SERVICE = 'input_method';
      TEXT_SERVICES_MANAGER_SERVICE = 'textservices';
      DROPBOX_SERVICE = 'dropbox';
      DEVICE_POLICY_SERVICE = 'device_policy';
      UI_MODE_SERVICE = 'uimode';
      DOWNLOAD_SERVICE = 'download';
      NFC_SERVICE = 'nfc';
      USB_SERVICE = 'usb';
      CONTEXT_INCLUDE_CODE = 1;
      CONTEXT_IGNORE_SECURITY = 2;
      CONTEXT_RESTRICTED = 4;
  public
    constructor create(); overload;
    function getAssets(): ACRAssetManager; overload; virtual; abstract;
    function getResources(): ACRResources; overload; virtual; abstract;
    function getPackageManager(): ACPPackageManager; overload; virtual; abstract;
    function getContentResolver(): ACContentResolver; overload; virtual; abstract;
    function getMainLooper(): AOLooper; overload; virtual; abstract;
    function getApplicationContext(): ACContext; overload; virtual; abstract;
    procedure registerComponentCallbacks(para1: ACComponentCallbacks); overload; virtual;
    procedure unregisterComponentCallbacks(para1: ACComponentCallbacks); overload; virtual;
    function getText(para1: jint): JLCharSequence; overload; virtual; final;
    function getString(para1: jint): JLString; overload; virtual; final;
    function getString(para1: jint; para2: Arr1JLObject): JLString; overload; virtual; final;
    function getString(para1: jint; const para2: array of JLObject): JLString; overload; virtual; final;
    procedure setTheme(para1: jint); overload; virtual; abstract;
    function getTheme(): ACRResources.InnerTheme; overload; virtual; abstract;
    function obtainStyledAttributes(para1: Arr1jint): ACRTypedArray; overload; virtual; final;
    function obtainStyledAttributes(var para1: array of jint): ACRTypedArray; overload; virtual; final;
    function obtainStyledAttributes(para1: jint; para2: Arr1jint): ACRTypedArray; overload; virtual; final;  // throws android.content.res.Resources$NotFoundException
    function obtainStyledAttributes(para1: jint; var para2: array of jint): ACRTypedArray; overload; virtual; final;  // throws android.content.res.Resources$NotFoundException
    function obtainStyledAttributes(para1: AUAttributeSet; para2: Arr1jint): ACRTypedArray; overload; virtual; final;
    function obtainStyledAttributes(para1: AUAttributeSet; var para2: array of jint): ACRTypedArray; overload; virtual; final;
    function obtainStyledAttributes(para1: AUAttributeSet; para2: Arr1jint; para3: jint; para4: jint): ACRTypedArray; overload; virtual; final;
    function obtainStyledAttributes(para1: AUAttributeSet; var para2: array of jint; para3: jint; para4: jint): ACRTypedArray; overload; virtual; final;
    function getClassLoader(): JLClassLoader; overload; virtual; abstract;
    function getPackageName(): JLString; overload; virtual; abstract;
    function getApplicationInfo(): ACPApplicationInfo; overload; virtual; abstract;
    function getPackageResourcePath(): JLString; overload; virtual; abstract;
    function getPackageCodePath(): JLString; overload; virtual; abstract;
    function getSharedPreferences(para1: JLString; para2: jint): ACSharedPreferences; overload; virtual; abstract;
    function openFileInput(para1: JLString): JIFileInputStream; overload; virtual; abstract;  // throws java.io.FileNotFoundException
    function openFileOutput(para1: JLString; para2: jint): JIFileOutputStream; overload; virtual; abstract;  // throws java.io.FileNotFoundException
    function deleteFile(para1: JLString): jboolean; overload; virtual; abstract;
    function getFileStreamPath(para1: JLString): JIFile; overload; virtual; abstract;
    function getFilesDir(): JIFile; overload; virtual; abstract;
    function getExternalFilesDir(para1: JLString): JIFile; overload; virtual; abstract;
    function getObbDir(): JIFile; overload; virtual; abstract;
    function getCacheDir(): JIFile; overload; virtual; abstract;
    function getExternalCacheDir(): JIFile; overload; virtual; abstract;
    function fileList(): Arr1JLString; overload; virtual; abstract;
    function getDir(para1: JLString; para2: jint): JIFile; overload; virtual; abstract;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; overload; virtual; abstract;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory; para4: ADDatabaseErrorHandler): ADSSQLiteDatabase; overload; virtual; abstract;
    function deleteDatabase(para1: JLString): jboolean; overload; virtual; abstract;
    function getDatabasePath(para1: JLString): JIFile; overload; virtual; abstract;
    function databaseList(): Arr1JLString; overload; virtual; abstract;
    function getWallpaper(): AGDDrawable; overload; virtual; abstract;
    function peekWallpaper(): AGDDrawable; overload; virtual; abstract;
    function getWallpaperDesiredMinimumWidth(): jint; overload; virtual; abstract;
    function getWallpaperDesiredMinimumHeight(): jint; overload; virtual; abstract;
    procedure setWallpaper(para1: AGBitmap); overload; virtual; abstract;  // throws java.io.IOException
    procedure setWallpaper(para1: JIInputStream); overload; virtual; abstract;  // throws java.io.IOException
    procedure clearWallpaper(); overload; virtual; abstract;  // throws java.io.IOException
    procedure startActivity(para1: ACIntent); overload; virtual; abstract;
    procedure startActivities(para1: Arr1ACIntent); overload; virtual; abstract;
    procedure startActivities(var para1: array of ACIntent); overload; virtual; abstract;
    procedure startIntentSender(para1: ACIntentSender; para2: ACIntent; para3: jint; para4: jint; para5: jint); overload; virtual; abstract;  // throws android.content.IntentSender$SendIntentException
    procedure sendBroadcast(para1: ACIntent); overload; virtual; abstract;
    procedure sendBroadcast(para1: ACIntent; para2: JLString); overload; virtual; abstract;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString); overload; virtual; abstract;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString; para3: ACBroadcastReceiver; para4: AOHandler; para5: jint; para6: JLString; para7: AOBundle); overload; virtual; abstract;
    procedure sendStickyBroadcast(para1: ACIntent); overload; virtual; abstract;
    procedure sendStickyOrderedBroadcast(para1: ACIntent; para2: ACBroadcastReceiver; para3: AOHandler; para4: jint; para5: JLString; para6: AOBundle); overload; virtual; abstract;
    procedure removeStickyBroadcast(para1: ACIntent); overload; virtual; abstract;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter): ACIntent; overload; virtual; abstract;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter; para3: JLString; para4: AOHandler): ACIntent; overload; virtual; abstract;
    procedure unregisterReceiver(para1: ACBroadcastReceiver); overload; virtual; abstract;
    function startService(para1: ACIntent): ACComponentName; overload; virtual; abstract;
    function stopService(para1: ACIntent): jboolean; overload; virtual; abstract;
    function bindService(para1: ACIntent; para2: ACServiceConnection; para3: jint): jboolean; overload; virtual; abstract;
    procedure unbindService(para1: ACServiceConnection); overload; virtual; abstract;
    function startInstrumentation(para1: ACComponentName; para2: JLString; para3: AOBundle): jboolean; overload; virtual; abstract;
    function getSystemService(para1: JLString): JLObject; overload; virtual; abstract;
    function checkPermission(para1: JLString; para2: jint; para3: jint): jint; overload; virtual; abstract;
    function checkCallingPermission(para1: JLString): jint; overload; virtual; abstract;
    function checkCallingOrSelfPermission(para1: JLString): jint; overload; virtual; abstract;
    procedure enforcePermission(para1: JLString; para2: jint; para3: jint; para4: JLString); overload; virtual; abstract;
    procedure enforceCallingPermission(para1: JLString; para2: JLString); overload; virtual; abstract;
    procedure enforceCallingOrSelfPermission(para1: JLString; para2: JLString); overload; virtual; abstract;
    procedure grantUriPermission(para1: JLString; para2: ANUri; para3: jint); overload; virtual; abstract;
    procedure revokeUriPermission(para1: ANUri; para2: jint); overload; virtual; abstract;
    function checkUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint): jint; overload; virtual; abstract;
    function checkCallingUriPermission(para1: ANUri; para2: jint): jint; overload; virtual; abstract;
    function checkCallingOrSelfUriPermission(para1: ANUri; para2: jint): jint; overload; virtual; abstract;
    function checkUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint): jint; overload; virtual; abstract;
    procedure enforceUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint; para5: JLString); overload; virtual; abstract;
    procedure enforceCallingUriPermission(para1: ANUri; para2: jint; para3: JLString); overload; virtual; abstract;
    procedure enforceCallingOrSelfUriPermission(para1: ANUri; para2: jint; para3: JLString); overload; virtual; abstract;
    procedure enforceUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint; para7: JLString); overload; virtual; abstract;
    function createPackageContext(para1: JLString; para2: jint): ACContext; overload; virtual; abstract;  // throws android.content.pm.PackageManager$NameNotFoundException
    function isRestricted(): jboolean; overload; virtual;
  end;

  ADSSQLiteCursorDriver = interface external 'android.database.sqlite' name 'SQLiteCursorDriver' 
    function query(para1: ADSSQLiteDatabase.InnerCursorFactory; para2: Arr1JLString): ADCursor; overload;
    function query(para1: ADSSQLiteDatabase.InnerCursorFactory; var para2: array of JLString): ADCursor; overload;
    procedure cursorDeactivated(); overload;
    procedure cursorRequeried(para1: ADCursor); overload;
    procedure cursorClosed(); overload;
    procedure setBindArguments(para1: Arr1JLString); overload;
    procedure setBindArguments(var para1: array of JLString); overload;
  end;

  ADSSQLiteOpenHelper = class abstract external 'android.database.sqlite' name 'SQLiteOpenHelper' (JLObject)
  public
    constructor create(para1: ACContext; para2: JLString; para3: ADSSQLiteDatabase.InnerCursorFactory; para4: jint); overload;
    constructor create(para1: ACContext; para2: JLString; para3: ADSSQLiteDatabase.InnerCursorFactory; para4: jint; para5: ADDatabaseErrorHandler); overload;
    function getDatabaseName(): JLString; overload; virtual;
    function getWritableDatabase(): ADSSQLiteDatabase; overload; virtual;
    function getReadableDatabase(): ADSSQLiteDatabase; overload; virtual;
    procedure close(); overload; virtual;
    procedure onCreate(para1: ADSSQLiteDatabase); overload; virtual; abstract;
    procedure onUpgrade(para1: ADSSQLiteDatabase; para2: jint; para3: jint); overload; virtual; abstract;
    procedure onDowngrade(para1: ADSSQLiteDatabase; para2: jint; para3: jint); overload; virtual;
    procedure onOpen(para1: ADSSQLiteDatabase); overload; virtual;
  end;

  ADSSQLiteQueryBuilder = class external 'android.database.sqlite' name 'SQLiteQueryBuilder' (JLObject)
  public
    constructor create(); overload;
    procedure setDistinct(para1: jboolean); overload; virtual;
    function getTables(): JLString; overload; virtual;
    procedure setTables(para1: JLString); overload; virtual;
    procedure appendWhere(para1: JLCharSequence); overload; virtual;
    procedure appendWhereEscapeString(para1: JLString); overload; virtual;
    procedure setProjectionMap(para1: JUMap); overload; virtual;
    procedure setCursorFactory(para1: ADSSQLiteDatabase.InnerCursorFactory); overload; virtual;
    procedure setStrict(para1: jboolean); overload; virtual;
    class function buildQueryString(para1: jboolean; para2: JLString; para3: Arr1JLString; para4: JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString): JLString; static; overload;
    class function buildQueryString(para1: jboolean; para2: JLString; var para3: array of JLString; para4: JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString): JLString; static; overload;
    class procedure appendColumns(para1: JLStringBuilder; para2: Arr1JLString); static; overload;
    class procedure appendColumns(para1: JLStringBuilder; var para2: array of JLString); static; overload;
    function query(para1: ADSSQLiteDatabase; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString; para6: JLString; para7: JLString): ADCursor; overload; virtual;
    function query(para1: ADSSQLiteDatabase; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString; para6: JLString; para7: JLString): ADCursor; overload; virtual;
    function query(para1: ADSSQLiteDatabase; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString): ADCursor; overload; virtual;
    function query(para1: ADSSQLiteDatabase; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString): ADCursor; overload; virtual;
    function buildQuery(para1: Arr1JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString): JLString; overload; virtual;
    function buildQuery(var para1: array of JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString): JLString; overload; virtual;
    function buildQuery(para1: Arr1JLString; para2: JLString; para3: Arr1JLString; para4: JLString; para5: JLString; para6: JLString; para7: JLString): JLString; overload; virtual;
    function buildQuery(var para1: array of JLString; para2: JLString; var para3: array of JLString; para4: JLString; para5: JLString; para6: JLString; para7: JLString): JLString; overload; virtual;
    function buildUnionSubQuery(para1: JLString; para2: Arr1JLString; para3: JUSet; para4: jint; para5: JLString; para6: JLString; para7: JLString; para8: JLString): JLString; overload; virtual;
    function buildUnionSubQuery(para1: JLString; var para2: array of JLString; para3: JUSet; para4: jint; para5: JLString; para6: JLString; para7: JLString; para8: JLString): JLString; overload; virtual;
    function buildUnionSubQuery(para1: JLString; para2: Arr1JLString; para3: JUSet; para4: jint; para5: JLString; para6: JLString; para7: Arr1JLString; para8: JLString; para9: JLString): JLString; overload; virtual;
    function buildUnionSubQuery(para1: JLString; var para2: array of JLString; para3: JUSet; para4: jint; para5: JLString; para6: JLString; var para7: array of JLString; para8: JLString; para9: JLString): JLString; overload; virtual;
    function buildUnionQuery(para1: Arr1JLString; para2: JLString; para3: JLString): JLString; overload; virtual;
    function buildUnionQuery(var para1: array of JLString; para2: JLString; para3: JLString): JLString; overload; virtual;
  end;

  ADSSQLiteQuery = class external 'android.database.sqlite' name 'SQLiteQuery' (ADSSQLiteProgram)
  public
    function toString(): JLString; overload; virtual;
    procedure close(); overload; virtual;
  end;

  ADSSQLiteStatement = class external 'android.database.sqlite' name 'SQLiteStatement' (ADSSQLiteProgram)
  public
    procedure execute(); overload; virtual;
    function executeUpdateDelete(): jint; overload; virtual;
    function executeInsert(): jlong; overload; virtual;
    function simpleQueryForLong(): jlong; overload; virtual;
    function simpleQueryForString(): JLString; overload; virtual;
    function simpleQueryForBlobFileDescriptor(): AOParcelFileDescriptor; overload; virtual;
  end;

  ACPLabeledIntent = class external 'android.content.pm' name 'LabeledIntent' (ACIntent)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: ACIntent; para2: JLString; para3: jint; para4: jint); overload;
    constructor create(para1: ACIntent; para2: JLString; para3: JLCharSequence; para4: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
    constructor create(para1: JLString; para2: JLCharSequence; para3: jint); overload;
    function getSourcePackage(): JLString; overload; virtual;
    function getLabelResource(): jint; overload; virtual;
    function getNonLocalizedLabel(): JLCharSequence; overload; virtual;
    function getIconResource(): jint; overload; virtual;
    function loadLabel(para1: ACPPackageManager): JLCharSequence; overload; virtual;
    function loadIcon(para1: ACPPackageManager): AGDDrawable; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure readFromParcel(para1: AOParcel); overload; virtual;
  end;

  AGBitmapFactory = class external 'android.graphics' name 'BitmapFactory' (JLObject)
  public
    type
      InnerOptions = class;
      Arr1InnerOptions = array of InnerOptions;
      Arr2InnerOptions = array of Arr1InnerOptions;
      Arr3InnerOptions = array of Arr2InnerOptions;
      InnerOptions = class external 'android.graphics' name 'Options' (JLObject)
      public
        var
          finBitmap: AGBitmap; external name 'inBitmap';
          finMutable: jboolean; external name 'inMutable';
          finJustDecodeBounds: jboolean; external name 'inJustDecodeBounds';
          finSampleSize: jint; external name 'inSampleSize';
          finPreferredConfig: AGBitmap.InnerConfig; external name 'inPreferredConfig';
          finDither: jboolean; external name 'inDither';
          finDensity: jint; external name 'inDensity';
          finTargetDensity: jint; external name 'inTargetDensity';
          finScreenDensity: jint; external name 'inScreenDensity';
          finScaled: jboolean; external name 'inScaled';
          finPurgeable: jboolean; external name 'inPurgeable';
          finInputShareable: jboolean; external name 'inInputShareable';
          finPreferQualityOverSpeed: jboolean; external name 'inPreferQualityOverSpeed';
          foutWidth: jint; external name 'outWidth';
          foutHeight: jint; external name 'outHeight';
          foutMimeType: JLString; external name 'outMimeType';
          finTempStorage: Arr1jbyte; external name 'inTempStorage';
          fmCancel: jboolean; external name 'mCancel';
      public
        constructor create(); overload;
        procedure requestCancelDecode(); overload; virtual;
      end;

  public
    constructor create(); overload;
    class function decodeFile(para1: JLString; para2: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeFile(para1: JLString): AGBitmap; static; overload;
    class function decodeResourceStream(para1: ACRResources; para2: AUTypedValue; para3: JIInputStream; para4: AGRect; para5: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeResource(para1: ACRResources; para2: jint; para3: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeResource(para1: ACRResources; para2: jint): AGBitmap; static; overload;
    class function decodeByteArray(para1: Arr1jbyte; para2: jint; para3: jint; para4: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeByteArray(var para1: array of jbyte; para2: jint; para3: jint; para4: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeByteArray(para1: Arr1jbyte; para2: jint; para3: jint): AGBitmap; static; overload;
    class function decodeByteArray(var para1: array of jbyte; para2: jint; para3: jint): AGBitmap; static; overload;
    class function decodeStream(para1: JIInputStream; para2: AGRect; para3: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeStream(para1: JIInputStream): AGBitmap; static; overload;
    class function decodeFileDescriptor(para1: JIFileDescriptor; para2: AGRect; para3: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
    class function decodeFileDescriptor(para1: JIFileDescriptor): AGBitmap; static; overload;
  end;

  AGCanvas = class external 'android.graphics' name 'Canvas' (JLObject)
  public
    type
      InnerVertexMode = class;
      Arr1InnerVertexMode = array of InnerVertexMode;
      Arr2InnerVertexMode = array of Arr1InnerVertexMode;
      Arr3InnerVertexMode = array of Arr2InnerVertexMode;
      InnerEdgeType = class;
      Arr1InnerEdgeType = array of InnerEdgeType;
      Arr2InnerEdgeType = array of Arr1InnerEdgeType;
      Arr3InnerEdgeType = array of Arr2InnerEdgeType;
      InnerVertexMode = class sealed external 'android.graphics' name 'VertexMode' (JLEnum)
      public
        final class var
          fTRIANGLES: AGCanvas.InnerVertexMode; external name 'TRIANGLES';
          fTRIANGLE_FAN: AGCanvas.InnerVertexMode; external name 'TRIANGLE_FAN';
          fTRIANGLE_STRIP: AGCanvas.InnerVertexMode; external name 'TRIANGLE_STRIP';
      public
        class function values(): AGCanvas.Arr1InnerVertexMode; static; overload;
        class function valueOf(para1: JLString): AGCanvas.InnerVertexMode; static; overload;
      end;

      InnerEdgeType = class sealed external 'android.graphics' name 'EdgeType' (JLEnum)
      public
        final class var
          fAA: AGCanvas.InnerEdgeType; external name 'AA';
          fBW: AGCanvas.InnerEdgeType; external name 'BW';
      public
        class function values(): AGCanvas.Arr1InnerEdgeType; static; overload;
        class function valueOf(para1: JLString): AGCanvas.InnerEdgeType; static; overload;
      end;

  public
    const
      MATRIX_SAVE_FLAG = 1;
      CLIP_SAVE_FLAG = 2;
      HAS_ALPHA_LAYER_SAVE_FLAG = 4;
      FULL_COLOR_LAYER_SAVE_FLAG = 8;
      CLIP_TO_LAYER_SAVE_FLAG = 16;
      ALL_SAVE_FLAG = 31;
  public
    constructor create(); overload;
    constructor create(para1: AGBitmap); overload;
    function isHardwareAccelerated(): jboolean; overload; virtual;
    procedure setBitmap(para1: AGBitmap); overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getDensity(): jint; overload; virtual;
    procedure setDensity(para1: jint); overload; virtual;
    function getMaximumBitmapWidth(): jint; overload; virtual;
    function getMaximumBitmapHeight(): jint; overload; virtual;
    function save(): jint; overload; virtual;
    function save(para1: jint): jint; overload; virtual;
    function saveLayer(para1: AGRectF; para2: AGPaint; para3: jint): jint; overload; virtual;
    function saveLayer(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: AGPaint; para6: jint): jint; overload; virtual;
    function saveLayerAlpha(para1: AGRectF; para2: jint; para3: jint): jint; overload; virtual;
    function saveLayerAlpha(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jint; para6: jint): jint; overload; virtual;
    procedure restore(); overload; virtual;
    function getSaveCount(): jint; overload; virtual;
    procedure restoreToCount(para1: jint); overload; virtual;
    procedure translate(para1: jfloat; para2: jfloat); overload; virtual;
    procedure scale(para1: jfloat; para2: jfloat); overload; virtual;
    procedure scale(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual; final;
    procedure rotate(para1: jfloat); overload; virtual;
    procedure rotate(para1: jfloat; para2: jfloat; para3: jfloat); overload; virtual; final;
    procedure skew(para1: jfloat; para2: jfloat); overload; virtual;
    procedure concat(para1: AGMatrix); overload; virtual;
    procedure setMatrix(para1: AGMatrix); overload; virtual;
    procedure getMatrix(para1: AGMatrix); overload; virtual;
    function getMatrix(): AGMatrix; overload; virtual; final;
    function clipRect(para1: AGRectF; para2: AGRegion.InnerOp): jboolean; overload; virtual;
    function clipRect(para1: AGRect; para2: AGRegion.InnerOp): jboolean; overload; virtual;
    function clipRect(para1: AGRectF): jboolean; overload; virtual;
    function clipRect(para1: AGRect): jboolean; overload; virtual;
    function clipRect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: AGRegion.InnerOp): jboolean; overload; virtual;
    function clipRect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function clipRect(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function clipPath(para1: AGPath; para2: AGRegion.InnerOp): jboolean; overload; virtual;
    function clipPath(para1: AGPath): jboolean; overload; virtual;
    function clipRegion(para1: AGRegion; para2: AGRegion.InnerOp): jboolean; overload; virtual;
    function clipRegion(para1: AGRegion): jboolean; overload; virtual;
    function getDrawFilter(): AGDrawFilter; overload; virtual;
    procedure setDrawFilter(para1: AGDrawFilter); overload; virtual;
    function quickReject(para1: AGRectF; para2: AGCanvas.InnerEdgeType): jboolean; overload; virtual;
    function quickReject(para1: AGPath; para2: AGCanvas.InnerEdgeType): jboolean; overload; virtual;
    function quickReject(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: AGCanvas.InnerEdgeType): jboolean; overload; virtual;
    function getClipBounds(para1: AGRect): jboolean; overload; virtual;
    function getClipBounds(): AGRect; overload; virtual; final;
    procedure drawRGB(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure drawARGB(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure drawColor(para1: jint); overload; virtual;
    procedure drawColor(para1: jint; para2: AGPorterDuff.InnerMode); overload; virtual;
    procedure drawPaint(para1: AGPaint); overload; virtual;
    procedure drawPoints(para1: Arr1jfloat; para2: jint; para3: jint; para4: AGPaint); overload; virtual;
    procedure drawPoints(var para1: array of jfloat; para2: jint; para3: jint; para4: AGPaint); overload; virtual;
    procedure drawPoints(para1: Arr1jfloat; para2: AGPaint); overload; virtual;
    procedure drawPoints(var para1: array of jfloat; para2: AGPaint); overload; virtual;
    procedure drawPoint(para1: jfloat; para2: jfloat; para3: AGPaint); overload; virtual;
    procedure drawLine(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: AGPaint); overload; virtual;
    procedure drawLines(para1: Arr1jfloat; para2: jint; para3: jint; para4: AGPaint); overload; virtual;
    procedure drawLines(var para1: array of jfloat; para2: jint; para3: jint; para4: AGPaint); overload; virtual;
    procedure drawLines(para1: Arr1jfloat; para2: AGPaint); overload; virtual;
    procedure drawLines(var para1: array of jfloat; para2: AGPaint); overload; virtual;
    procedure drawRect(para1: AGRectF; para2: AGPaint); overload; virtual;
    procedure drawRect(para1: AGRect; para2: AGPaint); overload; virtual;
    procedure drawRect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: AGPaint); overload; virtual;
    procedure drawOval(para1: AGRectF; para2: AGPaint); overload; virtual;
    procedure drawCircle(para1: jfloat; para2: jfloat; para3: jfloat; para4: AGPaint); overload; virtual;
    procedure drawArc(para1: AGRectF; para2: jfloat; para3: jfloat; para4: jboolean; para5: AGPaint); overload; virtual;
    procedure drawRoundRect(para1: AGRectF; para2: jfloat; para3: jfloat; para4: AGPaint); overload; virtual;
    procedure drawPath(para1: AGPath; para2: AGPaint); overload; virtual;
    procedure drawBitmap(para1: AGBitmap; para2: jfloat; para3: jfloat; para4: AGPaint); overload; virtual;
    procedure drawBitmap(para1: AGBitmap; para2: AGRect; para3: AGRectF; para4: AGPaint); overload; virtual;
    procedure drawBitmap(para1: AGBitmap; para2: AGRect; para3: AGRect; para4: AGPaint); overload; virtual;
    procedure drawBitmap(para1: Arr1jint; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: jint; para7: jint; para8: jboolean; para9: AGPaint); overload; virtual;
    procedure drawBitmap(var para1: array of jint; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: jint; para7: jint; para8: jboolean; para9: AGPaint); overload; virtual;
    procedure drawBitmap(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean; para9: AGPaint); overload; virtual;
    procedure drawBitmap(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean; para9: AGPaint); overload; virtual;
    procedure drawBitmap(para1: AGBitmap; para2: AGMatrix; para3: AGPaint); overload; virtual;
    procedure drawBitmapMesh(para1: AGBitmap; para2: jint; para3: jint; para4: Arr1jfloat; para5: jint; para6: Arr1jint; para7: jint; para8: AGPaint); overload; virtual;
    procedure drawBitmapMesh(para1: AGBitmap; para2: jint; para3: jint; var para4: array of jfloat; para5: jint; var para6: array of jint; para7: jint; para8: AGPaint); overload; virtual;
    procedure drawVertices(para1: AGCanvas.InnerVertexMode; para2: jint; para3: Arr1jfloat; para4: jint; para5: Arr1jfloat; para6: jint; para7: Arr1jint; para8: jint; para9: Arr1jshort; para10: jint; para11: jint; para12: AGPaint); overload; virtual;
    procedure drawVertices(para1: AGCanvas.InnerVertexMode; para2: jint; var para3: array of jfloat; para4: jint; var para5: array of jfloat; para6: jint; var para7: array of jint; para8: jint; var para9: array of jshort; para10: jint; para11: jint; para12: AGPaint); overload; virtual;
    procedure drawText(para1: Arr1jchar; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPaint); overload; virtual;
    procedure drawText(var para1: array of jchar; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPaint); overload; virtual;
    procedure drawText(para1: JLString; para2: jfloat; para3: jfloat; para4: AGPaint); overload; virtual;
    procedure drawText(para1: JLString; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPaint); overload; virtual;
    procedure drawText(para1: JLCharSequence; para2: jint; para3: jint; para4: jfloat; para5: jfloat; para6: AGPaint); overload; virtual;
    procedure drawPosText(para1: Arr1jchar; para2: jint; para3: jint; para4: Arr1jfloat; para5: AGPaint); overload; virtual;
    procedure drawPosText(var para1: array of jchar; para2: jint; para3: jint; var para4: array of jfloat; para5: AGPaint); overload; virtual;
    procedure drawPosText(para1: JLString; para2: Arr1jfloat; para3: AGPaint); overload; virtual;
    procedure drawPosText(para1: JLString; var para2: array of jfloat; para3: AGPaint); overload; virtual;
    procedure drawTextOnPath(para1: Arr1jchar; para2: jint; para3: jint; para4: AGPath; para5: jfloat; para6: jfloat; para7: AGPaint); overload; virtual;
    procedure drawTextOnPath(var para1: array of jchar; para2: jint; para3: jint; para4: AGPath; para5: jfloat; para6: jfloat; para7: AGPaint); overload; virtual;
    procedure drawTextOnPath(para1: JLString; para2: AGPath; para3: jfloat; para4: jfloat; para5: AGPaint); overload; virtual;
    procedure drawPicture(para1: AGPicture); overload; virtual;
    procedure drawPicture(para1: AGPicture; para2: AGRectF); overload; virtual;
    procedure drawPicture(para1: AGPicture; para2: AGRect); overload; virtual;
  end;

  ANWWifiInfo = class external 'android.net.wifi' name 'WifiInfo' (JLObject, AOParcelable)
  public
    const
      LINK_SPEED_UNITS = 'Mbps';
  public
    function getSSID(): JLString; overload; virtual;
    function getBSSID(): JLString; overload; virtual;
    function getRssi(): jint; overload; virtual;
    function getLinkSpeed(): jint; overload; virtual;
    function getMacAddress(): JLString; overload; virtual;
    function getNetworkId(): jint; overload; virtual;
    function getSupplicantState(): ANWSupplicantState; overload; virtual;
    function getIpAddress(): jint; overload; virtual;
    function getHiddenSSID(): jboolean; overload; virtual;
    class function getDetailedStateOf(para1: ANWSupplicantState): ANNetworkInfo.InnerDetailedState; static; overload;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACContentUris = class external 'android.content' name 'ContentUris' (JLObject)
  public
    constructor create(); overload;
    class function parseId(para1: ANUri): jlong; static; overload;
    class function appendId(para1: ANUri.InnerBuilder; para2: jlong): ANUri.InnerBuilder; static; overload;
    class function withAppendedId(para1: ANUri; para2: jlong): ANUri; static; overload;
  end;

  AAActivityManager = class external 'android.app' name 'ActivityManager' (JLObject)
  public
    type
      InnerRunningAppProcessInfo = class;
      Arr1InnerRunningAppProcessInfo = array of InnerRunningAppProcessInfo;
      Arr2InnerRunningAppProcessInfo = array of Arr1InnerRunningAppProcessInfo;
      Arr3InnerRunningAppProcessInfo = array of Arr2InnerRunningAppProcessInfo;
      InnerProcessErrorStateInfo = class;
      Arr1InnerProcessErrorStateInfo = array of InnerProcessErrorStateInfo;
      Arr2InnerProcessErrorStateInfo = array of Arr1InnerProcessErrorStateInfo;
      Arr3InnerProcessErrorStateInfo = array of Arr2InnerProcessErrorStateInfo;
      InnerMemoryInfo = class;
      Arr1InnerMemoryInfo = array of InnerMemoryInfo;
      Arr2InnerMemoryInfo = array of Arr1InnerMemoryInfo;
      Arr3InnerMemoryInfo = array of Arr2InnerMemoryInfo;
      InnerRunningServiceInfo = class;
      Arr1InnerRunningServiceInfo = array of InnerRunningServiceInfo;
      Arr2InnerRunningServiceInfo = array of Arr1InnerRunningServiceInfo;
      Arr3InnerRunningServiceInfo = array of Arr2InnerRunningServiceInfo;
      InnerRunningTaskInfo = class;
      Arr1InnerRunningTaskInfo = array of InnerRunningTaskInfo;
      Arr2InnerRunningTaskInfo = array of Arr1InnerRunningTaskInfo;
      Arr3InnerRunningTaskInfo = array of Arr2InnerRunningTaskInfo;
      InnerRecentTaskInfo = class;
      Arr1InnerRecentTaskInfo = array of InnerRecentTaskInfo;
      Arr2InnerRecentTaskInfo = array of Arr1InnerRecentTaskInfo;
      Arr3InnerRecentTaskInfo = array of Arr2InnerRecentTaskInfo;
      InnerRunningAppProcessInfo = class external 'android.app' name 'RunningAppProcessInfo' (JLObject, AOParcelable)
      public
        var
          fprocessName: JLString; external name 'processName';
          fpid: jint; external name 'pid';
          fuid: jint; external name 'uid';
          fpkgList: Arr1JLString; external name 'pkgList';
      public
        const
          IMPORTANCE_FOREGROUND = 100;
          IMPORTANCE_VISIBLE = 200;
          IMPORTANCE_PERCEPTIBLE = 130;
          IMPORTANCE_SERVICE = 300;
          IMPORTANCE_BACKGROUND = 400;
          IMPORTANCE_EMPTY = 500;
      public
        var
          fimportance: jint; external name 'importance';
          flru: jint; external name 'lru';
      public
        const
          REASON_UNKNOWN = 0;
          REASON_PROVIDER_IN_USE = 1;
          REASON_SERVICE_IN_USE = 2;
      public
        var
          fimportanceReasonCode: jint; external name 'importanceReasonCode';
          fimportanceReasonPid: jint; external name 'importanceReasonPid';
          fimportanceReasonComponent: ACComponentName; external name 'importanceReasonComponent';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        constructor create(para1: JLString; para2: jint; para3: Arr1JLString); overload;
        constructor create(para1: JLString; para2: jint; const para3: array of JLString); overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

      InnerProcessErrorStateInfo = class external 'android.app' name 'ProcessErrorStateInfo' (JLObject, AOParcelable)
      public
        const
          NO_ERROR = 0;
          CRASHED = 1;
          NOT_RESPONDING = 2;
      public
        var
          fcondition: jint; external name 'condition';
          fprocessName: JLString; external name 'processName';
          fpid: jint; external name 'pid';
          fuid: jint; external name 'uid';
          ftag: JLString; external name 'tag';
          fshortMsg: JLString; external name 'shortMsg';
          flongMsg: JLString; external name 'longMsg';
          fstackTrace: JLString; external name 'stackTrace';
          fcrashData: Arr1jbyte; external name 'crashData';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

      InnerMemoryInfo = class external 'android.app' name 'MemoryInfo' (JLObject, AOParcelable)
      public
        var
          favailMem: jlong; external name 'availMem';
          fthreshold: jlong; external name 'threshold';
          flowMemory: jboolean; external name 'lowMemory';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

      InnerRunningServiceInfo = class external 'android.app' name 'RunningServiceInfo' (JLObject, AOParcelable)
      public
        var
          fservice: ACComponentName; external name 'service';
          fpid: jint; external name 'pid';
          fuid: jint; external name 'uid';
          fprocess: JLString; external name 'process';
          fforeground: jboolean; external name 'foreground';
          factiveSince: jlong; external name 'activeSince';
          fstarted: jboolean; external name 'started';
          fclientCount: jint; external name 'clientCount';
          fcrashCount: jint; external name 'crashCount';
          flastActivityTime: jlong; external name 'lastActivityTime';
          frestarting: jlong; external name 'restarting';
      public
        const
          FLAG_STARTED = 1;
          FLAG_FOREGROUND = 2;
          FLAG_SYSTEM_PROCESS = 4;
          FLAG_PERSISTENT_PROCESS = 8;
      public
        var
          fflags: jint; external name 'flags';
          fclientPackage: JLString; external name 'clientPackage';
          fclientLabel: jint; external name 'clientLabel';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

      InnerRunningTaskInfo = class external 'android.app' name 'RunningTaskInfo' (JLObject, AOParcelable)
      public
        var
          fid: jint; external name 'id';
          fbaseActivity: ACComponentName; external name 'baseActivity';
          ftopActivity: ACComponentName; external name 'topActivity';
          fthumbnail: AGBitmap; external name 'thumbnail';
          fdescription: JLCharSequence; external name 'description';
          fnumActivities: jint; external name 'numActivities';
          fnumRunning: jint; external name 'numRunning';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

      InnerRecentTaskInfo = class external 'android.app' name 'RecentTaskInfo' (JLObject, AOParcelable)
      public
        var
          fid: jint; external name 'id';
          fpersistentId: jint; external name 'persistentId';
          fbaseIntent: ACIntent; external name 'baseIntent';
          forigActivity: ACComponentName; external name 'origActivity';
          fdescription: JLCharSequence; external name 'description';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

  public
    const
      RECENT_WITH_EXCLUDED = 1;
      RECENT_IGNORE_UNAVAILABLE = 2;
      MOVE_TASK_WITH_HOME = 1;
      MOVE_TASK_NO_USER_ACTION = 2;
  public
    function getMemoryClass(): jint; overload; virtual;
    function getLargeMemoryClass(): jint; overload; virtual;
    function getRecentTasks(para1: jint; para2: jint): JUList; overload; virtual;  // throws java.lang.SecurityException
    function getRunningTasks(para1: jint): JUList; overload; virtual;  // throws java.lang.SecurityException
    procedure moveTaskToFront(para1: jint; para2: jint); overload; virtual;
    function getRunningServices(para1: jint): JUList; overload; virtual;  // throws java.lang.SecurityException
    function getRunningServiceControlPanel(para1: ACComponentName): AAPendingIntent; overload; virtual;  // throws java.lang.SecurityException
    procedure getMemoryInfo(para1: AAActivityManager.InnerMemoryInfo); overload; virtual;
    function getProcessesInErrorState(): JUList; overload; virtual;
    function getRunningAppProcesses(): JUList; overload; virtual;
    function getProcessMemoryInfo(para1: Arr1jint): AODebug.Arr1InnerMemoryInfo; overload; virtual;
    function getProcessMemoryInfo(var para1: array of jint): AODebug.Arr1InnerMemoryInfo; overload; virtual;
    procedure restartPackage(para1: JLString); overload; virtual;
    procedure killBackgroundProcesses(para1: JLString); overload; virtual;
    function getDeviceConfigurationInfo(): ACPConfigurationInfo; overload; virtual;
    function getLauncherLargeIconDensity(): jint; overload; virtual;
    function getLauncherLargeIconSize(): jint; overload; virtual;
    class function isUserAMonkey(): jboolean; static; overload;
    class function isRunningInTestHarness(): jboolean; static; overload;
  end;

  ACPPathPermission = class external 'android.content.pm' name 'PathPermission' (AOPatternMatcher)
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: JLString; para2: jint; para3: JLString; para4: JLString); overload;
    constructor create(para1: AOParcel); overload;
    function getReadPermission(): JLString; overload; virtual;
    function getWritePermission(): JLString; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ATAnnotation = class external 'android.text' name 'Annotation' (JLObject, ATParcelableSpan)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getKey(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
  end;

  ATSAlignmentSpan = interface external 'android.text.style' name 'AlignmentSpan' (ATSParagraphStyle)
    type
      InnerStandard = class;
      Arr1InnerStandard = array of InnerStandard;
      Arr2InnerStandard = array of Arr1InnerStandard;
      Arr3InnerStandard = array of Arr2InnerStandard;
      InnerStandard = class external 'android.text.style' name 'Standard' (JLObject, ATSAlignmentSpan, ATParcelableSpan)
      public
        constructor create(para1: ATLayout.InnerAlignment); overload;
        constructor create(para1: AOParcel); overload;
        function getSpanTypeId(): jint; overload; virtual;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        function getAlignment(): ATLayout.InnerAlignment; overload; virtual;
      end;

    function getAlignment(): ATLayout.InnerAlignment; overload;
  end;

  ATSBackgroundColorSpan = class external 'android.text.style' name 'BackgroundColorSpan' (ATSCharacterStyle, ATSUpdateAppearance, ATParcelableSpan)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getBackgroundColor(): jint; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSEasyEditSpan = class external 'android.text.style' name 'EasyEditSpan' (JLObject, ATParcelableSpan)
  public
    constructor create(); overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getSpanTypeId(): jint; overload; virtual;
  end;

  ATSForegroundColorSpan = class external 'android.text.style' name 'ForegroundColorSpan' (ATSCharacterStyle, ATSUpdateAppearance, ATParcelableSpan)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getForegroundColor(): jint; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSStrikethroughSpan = class external 'android.text.style' name 'StrikethroughSpan' (ATSCharacterStyle, ATSUpdateAppearance, ATParcelableSpan)
  public
    constructor create(); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSSuggestionSpan = class external 'android.text.style' name 'SuggestionSpan' (ATSCharacterStyle, ATParcelableSpan)
  public
    const
      FLAG_EASY_CORRECT = 1;
      FLAG_MISSPELLED = 2;
      ACTION_SUGGESTION_PICKED = 'android.text.style.SUGGESTION_PICKED';
      SUGGESTION_SPAN_PICKED_AFTER = 'after';
      SUGGESTION_SPAN_PICKED_BEFORE = 'before';
      SUGGESTION_SPAN_PICKED_HASHCODE = 'hashcode';
      SUGGESTIONS_MAX_SIZE = 5;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: ACContext; para2: Arr1JLString; para3: jint); overload;
    constructor create(para1: ACContext; const para2: array of JLString; para3: jint); overload;
    constructor create(para1: JULocale; para2: Arr1JLString; para3: jint); overload;
    constructor create(para1: JULocale; const para2: array of JLString; para3: jint); overload;
    constructor create(para1: ACContext; para2: JULocale; para3: Arr1JLString; para4: jint; para5: JLClass); overload;
    constructor create(para1: ACContext; para2: JULocale; const para3: array of JLString; para4: jint; para5: JLClass); overload;
    constructor create(para1: AOParcel); overload;
    function getSuggestions(): Arr1JLString; overload; virtual;
    function getLocale(): JLString; overload; virtual;
    function getFlags(): jint; overload; virtual;
    procedure setFlags(para1: jint); overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getSpanTypeId(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSUnderlineSpan = class external 'android.text.style' name 'UnderlineSpan' (ATSCharacterStyle, ATSUpdateAppearance, ATParcelableSpan)
  public
    constructor create(); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATBoringLayout = class external 'android.text' name 'BoringLayout' (ATLayout, ATTextUtils.InnerEllipsizeCallback)
  public
    type
      InnerMetrics = class;
      Arr1InnerMetrics = array of InnerMetrics;
      Arr2InnerMetrics = array of Arr1InnerMetrics;
      Arr3InnerMetrics = array of Arr2InnerMetrics;
      InnerMetrics = class external 'android.text' name 'Metrics' (AGPaint.InnerFontMetricsInt)
      public
        var
          fwidth: jint; external name 'width';
      public
        constructor create(); overload;
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: ATBoringLayout.InnerMetrics; para8: jboolean); overload;
    constructor create(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: ATBoringLayout.InnerMetrics; para8: jboolean; para9: ATTextUtils.InnerTruncateAt; para10: jint); overload;
    class function make(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: ATBoringLayout.InnerMetrics; para8: jboolean): ATBoringLayout; static; overload;
    class function make(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: ATBoringLayout.InnerMetrics; para8: jboolean; para9: ATTextUtils.InnerTruncateAt; para10: jint): ATBoringLayout; static; overload;
    function replaceOrMake(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: ATBoringLayout.InnerMetrics; para8: jboolean): ATBoringLayout; overload; virtual;
    function replaceOrMake(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: ATBoringLayout.InnerMetrics; para8: jboolean; para9: ATTextUtils.InnerTruncateAt; para10: jint): ATBoringLayout; overload; virtual;
    class function isBoring(para1: JLCharSequence; para2: ATTextPaint): ATBoringLayout.InnerMetrics; static; overload;
    class function isBoring(para1: JLCharSequence; para2: ATTextPaint; para3: ATBoringLayout.InnerMetrics): ATBoringLayout.InnerMetrics; static; overload;
    function getHeight(): jint; overload; virtual;
    function getLineCount(): jint; overload; virtual;
    function getLineTop(para1: jint): jint; overload; virtual;
    function getLineDescent(para1: jint): jint; overload; virtual;
    function getLineStart(para1: jint): jint; overload; virtual;
    function getParagraphDirection(para1: jint): jint; overload; virtual;
    function getLineContainsTab(para1: jint): jboolean; overload; virtual;
    function getLineMax(para1: jint): jfloat; overload; virtual;
    function getLineDirections(para1: jint): ATLayout.InnerDirections; overload; virtual; final;
    function getTopPadding(): jint; overload; virtual;
    function getBottomPadding(): jint; overload; virtual;
    function getEllipsisCount(para1: jint): jint; overload; virtual;
    function getEllipsisStart(para1: jint): jint; overload; virtual;
    function getEllipsizedWidth(): jint; overload; virtual;
    procedure draw(para1: AGCanvas; para2: AGPath; para3: AGPaint; para4: jint); overload; virtual;
    procedure ellipsized(para1: jint; para2: jint); overload; virtual;
  end;

  ATDynamicLayout = class external 'android.text' name 'DynamicLayout' (ATLayout)
  public
    constructor create(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: jboolean); overload;
    constructor create(para1: JLCharSequence; para2: JLCharSequence; para3: ATTextPaint; para4: jint; para5: ATLayout.InnerAlignment; para6: jfloat; para7: jfloat; para8: jboolean); overload;
    constructor create(para1: JLCharSequence; para2: JLCharSequence; para3: ATTextPaint; para4: jint; para5: ATLayout.InnerAlignment; para6: jfloat; para7: jfloat; para8: jboolean; para9: ATTextUtils.InnerTruncateAt; para10: jint); overload;
    function getLineCount(): jint; overload; virtual;
    function getLineTop(para1: jint): jint; overload; virtual;
    function getLineDescent(para1: jint): jint; overload; virtual;
    function getLineStart(para1: jint): jint; overload; virtual;
    function getLineContainsTab(para1: jint): jboolean; overload; virtual;
    function getParagraphDirection(para1: jint): jint; overload; virtual;
    function getLineDirections(para1: jint): ATLayout.InnerDirections; overload; virtual; final;
    function getTopPadding(): jint; overload; virtual;
    function getBottomPadding(): jint; overload; virtual;
    function getEllipsizedWidth(): jint; overload; virtual;
    function getEllipsisStart(para1: jint): jint; overload; virtual;
    function getEllipsisCount(para1: jint): jint; overload; virtual;
  end;

  ATStaticLayout = class external 'android.text' name 'StaticLayout' (ATLayout)
  public
    constructor create(para1: JLCharSequence; para2: ATTextPaint; para3: jint; para4: ATLayout.InnerAlignment; para5: jfloat; para6: jfloat; para7: jboolean); overload;
    constructor create(para1: JLCharSequence; para2: jint; para3: jint; para4: ATTextPaint; para5: jint; para6: ATLayout.InnerAlignment; para7: jfloat; para8: jfloat; para9: jboolean); overload;
    constructor create(para1: JLCharSequence; para2: jint; para3: jint; para4: ATTextPaint; para5: jint; para6: ATLayout.InnerAlignment; para7: jfloat; para8: jfloat; para9: jboolean; para10: ATTextUtils.InnerTruncateAt; para11: jint); overload;
    function getLineForVertical(para1: jint): jint; overload; virtual;
    function getLineCount(): jint; overload; virtual;
    function getLineTop(para1: jint): jint; overload; virtual;
    function getLineDescent(para1: jint): jint; overload; virtual;
    function getLineStart(para1: jint): jint; overload; virtual;
    function getParagraphDirection(para1: jint): jint; overload; virtual;
    function getLineContainsTab(para1: jint): jboolean; overload; virtual;
    function getLineDirections(para1: jint): ATLayout.InnerDirections; overload; virtual; final;
    function getTopPadding(): jint; overload; virtual;
    function getBottomPadding(): jint; overload; virtual;
    function getEllipsisCount(para1: jint): jint; overload; virtual;
    function getEllipsisStart(para1: jint): jint; overload; virtual;
    function getEllipsizedWidth(): jint; overload; virtual;
  end;

  APPreference = class external 'android.preference' name 'Preference' (JLObject, JLComparable)
  public
    type
      InnerBaseSavedState = class;
      Arr1InnerBaseSavedState = array of InnerBaseSavedState;
      Arr2InnerBaseSavedState = array of Arr1InnerBaseSavedState;
      Arr3InnerBaseSavedState = array of Arr2InnerBaseSavedState;
      InnerOnPreferenceClickListener = interface;
      Arr1InnerOnPreferenceClickListener = array of InnerOnPreferenceClickListener;
      Arr2InnerOnPreferenceClickListener = array of Arr1InnerOnPreferenceClickListener;
      Arr3InnerOnPreferenceClickListener = array of Arr2InnerOnPreferenceClickListener;
      InnerOnPreferenceChangeListener = interface;
      Arr1InnerOnPreferenceChangeListener = array of InnerOnPreferenceChangeListener;
      Arr2InnerOnPreferenceChangeListener = array of Arr1InnerOnPreferenceChangeListener;
      Arr3InnerOnPreferenceChangeListener = array of Arr2InnerOnPreferenceChangeListener;
      InnerBaseSavedState = class external 'android.preference' name 'BaseSavedState' (AVAbsSavedState)
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(para1: AOParcel); overload;
        constructor create(para1: AOParcelable); overload;
      end;

      InnerOnPreferenceClickListener = interface external 'android.preference' name 'OnPreferenceClickListener' 
        function onPreferenceClick(para1: APPreference): jboolean; overload;
      end;

      InnerOnPreferenceChangeListener = interface external 'android.preference' name 'OnPreferenceChangeListener' 
        function onPreferenceChange(para1: APPreference; para2: JLObject): jboolean; overload;
      end;

  public
    const
      DEFAULT_ORDER = 2147483647;
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
  strict protected
    function onGetDefaultValue(para1: ACRTypedArray; para2: jint): JLObject; overload; virtual;
  public
    procedure setIntent(para1: ACIntent); overload; virtual;
    function getIntent(): ACIntent; overload; virtual;
    procedure setFragment(para1: JLString); overload; virtual;
    function getFragment(): JLString; overload; virtual;
    function getExtras(): AOBundle; overload; virtual;
    function peekExtras(): AOBundle; overload; virtual;
    procedure setLayoutResource(para1: jint); overload; virtual;
    function getLayoutResource(): jint; overload; virtual;
    procedure setWidgetLayoutResource(para1: jint); overload; virtual;
    function getWidgetLayoutResource(): jint; overload; virtual;
    function getView(para1: AVView; para2: AVViewGroup): AVView; overload; virtual;
  strict protected
    function onCreateView(para1: AVViewGroup): AVView; overload; virtual;
    procedure onBindView(para1: AVView); overload; virtual;
  public
    procedure setOrder(para1: jint); overload; virtual;
    function getOrder(): jint; overload; virtual;
    procedure setTitle(para1: JLCharSequence); overload; virtual;
    procedure setTitle(para1: jint); overload; virtual;
    function getTitleRes(): jint; overload; virtual;
    function getTitle(): JLCharSequence; overload; virtual;
    procedure setIcon(para1: AGDDrawable); overload; virtual;
    procedure setIcon(para1: jint); overload; virtual;
    function getIcon(): AGDDrawable; overload; virtual;
    function getSummary(): JLCharSequence; overload; virtual;
    procedure setSummary(para1: JLCharSequence); overload; virtual;
    procedure setSummary(para1: jint); overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setSelectable(para1: jboolean); overload; virtual;
    function isSelectable(): jboolean; overload; virtual;
    procedure setShouldDisableView(para1: jboolean); overload; virtual;
    function getShouldDisableView(): jboolean; overload; virtual;
  strict protected
    procedure onClick(); overload; virtual;
  public
    procedure setKey(para1: JLString); overload; virtual;
    function getKey(): JLString; overload; virtual;
    function hasKey(): jboolean; overload; virtual;
    function isPersistent(): jboolean; overload; virtual;
  strict protected
    function shouldPersist(): jboolean; overload; virtual;
  public
    procedure setPersistent(para1: jboolean); overload; virtual;
  strict protected
    function callChangeListener(para1: JLObject): jboolean; overload; virtual;
  public
    procedure setOnPreferenceChangeListener(para1: APPreference.InnerOnPreferenceChangeListener); overload; virtual;
    function getOnPreferenceChangeListener(): APPreference.InnerOnPreferenceChangeListener; overload; virtual;
    procedure setOnPreferenceClickListener(para1: APPreference.InnerOnPreferenceClickListener); overload; virtual;
    function getOnPreferenceClickListener(): APPreference.InnerOnPreferenceClickListener; overload; virtual;
    function getContext(): ACContext; overload; virtual;
    function getSharedPreferences(): ACSharedPreferences; overload; virtual;
    function getEditor(): ACSharedPreferences.InnerEditor; overload; virtual;
    function shouldCommit(): jboolean; overload; virtual;
    function compareTo(para1: APPreference): jint; overload; virtual;
  strict protected
    procedure notifyChanged(); overload; virtual;
    procedure notifyHierarchyChanged(); overload; virtual;
  public
    function getPreferenceManager(): APPreferenceManager; overload; virtual;
  strict protected
    procedure onAttachedToHierarchy(para1: APPreferenceManager); overload; virtual;
    procedure onAttachedToActivity(); overload; virtual;
    function findPreferenceInHierarchy(para1: JLString): APPreference; overload; virtual;
  public
    procedure notifyDependencyChange(para1: jboolean); overload; virtual;
    procedure onDependencyChanged(para1: APPreference; para2: jboolean); overload; virtual;
    function shouldDisableDependents(): jboolean; overload; virtual;
    procedure setDependency(para1: JLString); overload; virtual;
    function getDependency(): JLString; overload; virtual;
  strict protected
    procedure onPrepareForRemoval(); overload; virtual;
  public
    procedure setDefaultValue(para1: JLObject); overload; virtual;
  strict protected
    procedure onSetInitialValue(para1: jboolean; para2: JLObject); overload; virtual;
    function persistString(para1: JLString): jboolean; overload; virtual;
    function getPersistedString(para1: JLString): JLString; overload; virtual;
    function persistInt(para1: jint): jboolean; overload; virtual;
    function getPersistedInt(para1: jint): jint; overload; virtual;
    function persistFloat(para1: jfloat): jboolean; overload; virtual;
    function getPersistedFloat(para1: jfloat): jfloat; overload; virtual;
    function persistLong(para1: jlong): jboolean; overload; virtual;
    function getPersistedLong(para1: jlong): jlong; overload; virtual;
    function persistBoolean(para1: jboolean): jboolean; overload; virtual;
    function getPersistedBoolean(para1: jboolean): jboolean; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    procedure saveHierarchyState(para1: AOBundle); overload; virtual;
  strict protected
    function onSaveInstanceState(): AOParcelable; overload; virtual;
  public
    procedure restoreHierarchyState(para1: AOBundle); overload; virtual;
  strict protected
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  public
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  AVMotionEvent = class sealed external 'android.view' name 'MotionEvent' (AVInputEvent, AOParcelable)
  public
    type
      InnerPointerProperties = class;
      Arr1InnerPointerProperties = array of InnerPointerProperties;
      Arr2InnerPointerProperties = array of Arr1InnerPointerProperties;
      Arr3InnerPointerProperties = array of Arr2InnerPointerProperties;
      InnerPointerCoords = class;
      Arr1InnerPointerCoords = array of InnerPointerCoords;
      Arr2InnerPointerCoords = array of Arr1InnerPointerCoords;
      Arr3InnerPointerCoords = array of Arr2InnerPointerCoords;
      InnerPointerProperties = class sealed external 'android.view' name 'PointerProperties' (JLObject)
      public
        var
          fid: jint; external name 'id';
          ftoolType: jint; external name 'toolType';
      public
        constructor create(); overload;
        constructor create(para1: AVMotionEvent.InnerPointerProperties); overload;
        procedure clear(); overload; virtual;
        procedure copyFrom(para1: AVMotionEvent.InnerPointerProperties); overload; virtual;
      end;

      InnerPointerCoords = class sealed external 'android.view' name 'PointerCoords' (JLObject)
      public
        var
          fx: jfloat; external name 'x';
          fy: jfloat; external name 'y';
          fpressure: jfloat; external name 'pressure';
          fsize: jfloat; external name 'size';
          ftouchMajor: jfloat; external name 'touchMajor';
          ftouchMinor: jfloat; external name 'touchMinor';
          ftoolMajor: jfloat; external name 'toolMajor';
          ftoolMinor: jfloat; external name 'toolMinor';
          forientation: jfloat; external name 'orientation';
      public
        constructor create(); overload;
        constructor create(para1: AVMotionEvent.InnerPointerCoords); overload;
        procedure clear(); overload; virtual;
        procedure copyFrom(para1: AVMotionEvent.InnerPointerCoords); overload; virtual;
        function getAxisValue(para1: jint): jfloat; overload; virtual;
        procedure setAxisValue(para1: jint; para2: jfloat); overload; virtual;
      end;

  public
    const
      INVALID_POINTER_ID = -1;
      ACTION_MASK = 255;
      ACTION_DOWN = 0;
      ACTION_UP = 1;
      ACTION_MOVE = 2;
      ACTION_CANCEL = 3;
      ACTION_OUTSIDE = 4;
      ACTION_POINTER_DOWN = 5;
      ACTION_POINTER_UP = 6;
      ACTION_HOVER_MOVE = 7;
      ACTION_SCROLL = 8;
      ACTION_HOVER_ENTER = 9;
      ACTION_HOVER_EXIT = 10;
      ACTION_POINTER_INDEX_MASK = 65280;
      ACTION_POINTER_INDEX_SHIFT = 8;
      ACTION_POINTER_1_DOWN = 5;
      ACTION_POINTER_2_DOWN = 261;
      ACTION_POINTER_3_DOWN = 517;
      ACTION_POINTER_1_UP = 6;
      ACTION_POINTER_2_UP = 262;
      ACTION_POINTER_3_UP = 518;
      ACTION_POINTER_ID_MASK = 65280;
      ACTION_POINTER_ID_SHIFT = 8;
      FLAG_WINDOW_IS_OBSCURED = 1;
      EDGE_TOP = 1;
      EDGE_BOTTOM = 2;
      EDGE_LEFT = 4;
      EDGE_RIGHT = 8;
      AXIS_X = 0;
      AXIS_Y = 1;
      AXIS_PRESSURE = 2;
      AXIS_SIZE = 3;
      AXIS_TOUCH_MAJOR = 4;
      AXIS_TOUCH_MINOR = 5;
      AXIS_TOOL_MAJOR = 6;
      AXIS_TOOL_MINOR = 7;
      AXIS_ORIENTATION = 8;
      AXIS_VSCROLL = 9;
      AXIS_HSCROLL = 10;
      AXIS_Z = 11;
      AXIS_RX = 12;
      AXIS_RY = 13;
      AXIS_RZ = 14;
      AXIS_HAT_X = 15;
      AXIS_HAT_Y = 16;
      AXIS_LTRIGGER = 17;
      AXIS_RTRIGGER = 18;
      AXIS_THROTTLE = 19;
      AXIS_RUDDER = 20;
      AXIS_WHEEL = 21;
      AXIS_GAS = 22;
      AXIS_BRAKE = 23;
      AXIS_DISTANCE = 24;
      AXIS_TILT = 25;
      AXIS_GENERIC_1 = 32;
      AXIS_GENERIC_2 = 33;
      AXIS_GENERIC_3 = 34;
      AXIS_GENERIC_4 = 35;
      AXIS_GENERIC_5 = 36;
      AXIS_GENERIC_6 = 37;
      AXIS_GENERIC_7 = 38;
      AXIS_GENERIC_8 = 39;
      AXIS_GENERIC_9 = 40;
      AXIS_GENERIC_10 = 41;
      AXIS_GENERIC_11 = 42;
      AXIS_GENERIC_12 = 43;
      AXIS_GENERIC_13 = 44;
      AXIS_GENERIC_14 = 45;
      AXIS_GENERIC_15 = 46;
      AXIS_GENERIC_16 = 47;
      BUTTON_PRIMARY = 1;
      BUTTON_SECONDARY = 2;
      BUTTON_TERTIARY = 4;
      BUTTON_BACK = 8;
      BUTTON_FORWARD = 16;
      TOOL_TYPE_UNKNOWN = 0;
      TOOL_TYPE_FINGER = 1;
      TOOL_TYPE_STYLUS = 2;
      TOOL_TYPE_MOUSE = 3;
      TOOL_TYPE_ERASER = 4;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: AVMotionEvent.Arr1InnerPointerProperties; para6: AVMotionEvent.Arr1InnerPointerCoords; para7: jint; para8: jint; para9: jfloat; para10: jfloat; para11: jint; para12: jint; para13: jint; para14: jint): AVMotionEvent; static; overload;
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jint; var para5: array of AVMotionEvent.InnerPointerProperties; var para6: array of AVMotionEvent.InnerPointerCoords; para7: jint; para8: jint; para9: jfloat; para10: jfloat; para11: jint; para12: jint; para13: jint; para14: jint): AVMotionEvent; static; overload;
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: Arr1jint; para6: AVMotionEvent.Arr1InnerPointerCoords; para7: jint; para8: jfloat; para9: jfloat; para10: jint; para11: jint; para12: jint; para13: jint): AVMotionEvent; static; overload;
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jint; var para5: array of jint; var para6: array of AVMotionEvent.InnerPointerCoords; para7: jint; para8: jfloat; para9: jfloat; para10: jint; para11: jint; para12: jint; para13: jint): AVMotionEvent; static; overload;
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jint; para9: jfloat; para10: jfloat; para11: jint; para12: jint): AVMotionEvent; static; overload;
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat; para9: jint; para10: jfloat; para11: jfloat; para12: jint; para13: jint): AVMotionEvent; static; overload;
    class function obtain(para1: jlong; para2: jlong; para3: jint; para4: jfloat; para5: jfloat; para6: jint): AVMotionEvent; static; overload;
    class function obtain(para1: AVMotionEvent): AVMotionEvent; static; overload;
    class function obtainNoHistory(para1: AVMotionEvent): AVMotionEvent; static; overload;
    procedure recycle(); overload; virtual; final;
    function getDeviceId(): jint; overload; virtual; final;
    function getSource(): jint; overload; virtual; final;
    procedure setSource(para1: jint); overload; virtual; final;
    function getAction(): jint; overload; virtual; final;
    function getActionMasked(): jint; overload; virtual; final;
    function getActionIndex(): jint; overload; virtual; final;
    function getFlags(): jint; overload; virtual; final;
    function getDownTime(): jlong; overload; virtual; final;
    function getEventTime(): jlong; overload; virtual; final;
    function getX(): jfloat; overload; virtual; final;
    function getY(): jfloat; overload; virtual; final;
    function getPressure(): jfloat; overload; virtual; final;
    function getSize(): jfloat; overload; virtual; final;
    function getTouchMajor(): jfloat; overload; virtual; final;
    function getTouchMinor(): jfloat; overload; virtual; final;
    function getToolMajor(): jfloat; overload; virtual; final;
    function getToolMinor(): jfloat; overload; virtual; final;
    function getOrientation(): jfloat; overload; virtual; final;
    function getAxisValue(para1: jint): jfloat; overload; virtual; final;
    function getPointerCount(): jint; overload; virtual; final;
    function getPointerId(para1: jint): jint; overload; virtual; final;
    function getToolType(para1: jint): jint; overload; virtual; final;
    function findPointerIndex(para1: jint): jint; overload; virtual; final;
    function getX(para1: jint): jfloat; overload; virtual; final;
    function getY(para1: jint): jfloat; overload; virtual; final;
    function getPressure(para1: jint): jfloat; overload; virtual; final;
    function getSize(para1: jint): jfloat; overload; virtual; final;
    function getTouchMajor(para1: jint): jfloat; overload; virtual; final;
    function getTouchMinor(para1: jint): jfloat; overload; virtual; final;
    function getToolMajor(para1: jint): jfloat; overload; virtual; final;
    function getToolMinor(para1: jint): jfloat; overload; virtual; final;
    function getOrientation(para1: jint): jfloat; overload; virtual; final;
    function getAxisValue(para1: jint; para2: jint): jfloat; overload; virtual; final;
    procedure getPointerCoords(para1: jint; para2: AVMotionEvent.InnerPointerCoords); overload; virtual; final;
    procedure getPointerProperties(para1: jint; para2: AVMotionEvent.InnerPointerProperties); overload; virtual; final;
    function getMetaState(): jint; overload; virtual; final;
    function getButtonState(): jint; overload; virtual; final;
    function getRawX(): jfloat; overload; virtual; final;
    function getRawY(): jfloat; overload; virtual; final;
    function getXPrecision(): jfloat; overload; virtual; final;
    function getYPrecision(): jfloat; overload; virtual; final;
    function getHistorySize(): jint; overload; virtual; final;
    function getHistoricalEventTime(para1: jint): jlong; overload; virtual; final;
    function getHistoricalX(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalY(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalPressure(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalSize(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalTouchMajor(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalTouchMinor(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalToolMajor(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalToolMinor(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalOrientation(para1: jint): jfloat; overload; virtual; final;
    function getHistoricalAxisValue(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalX(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalY(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalPressure(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalSize(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalTouchMajor(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalTouchMinor(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalToolMajor(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalToolMinor(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalOrientation(para1: jint; para2: jint): jfloat; overload; virtual; final;
    function getHistoricalAxisValue(para1: jint; para2: jint; para3: jint): jfloat; overload; virtual; final;
    procedure getHistoricalPointerCoords(para1: jint; para2: jint; para3: AVMotionEvent.InnerPointerCoords); overload; virtual; final;
    function getEdgeFlags(): jint; overload; virtual; final;
    procedure setEdgeFlags(para1: jint); overload; virtual; final;
    procedure setAction(para1: jint); overload; virtual; final;
    procedure offsetLocation(para1: jfloat; para2: jfloat); overload; virtual; final;
    procedure setLocation(para1: jfloat; para2: jfloat); overload; virtual; final;
    procedure transform(para1: AGMatrix); overload; virtual; final;
    procedure addBatch(para1: jlong; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jint); overload; virtual; final;
    procedure addBatch(para1: jlong; para2: AVMotionEvent.Arr1InnerPointerCoords; para3: jint); overload; virtual; final;
    procedure addBatch(para1: jlong; var para2: array of AVMotionEvent.InnerPointerCoords; para3: jint); overload; virtual; final;
    function toString(): JLString; overload; virtual;
    class function axisToString(para1: jint): JLString; static; overload;
    class function axisFromString(para1: JLString): jint; static; overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  APCalendarContract = class sealed external 'android.provider' name 'CalendarContract' (JLObject)
  public
    type
      InnerExtendedPropertiesColumns = interface;
      Arr1InnerExtendedPropertiesColumns = array of InnerExtendedPropertiesColumns;
      Arr2InnerExtendedPropertiesColumns = array of Arr1InnerExtendedPropertiesColumns;
      Arr3InnerExtendedPropertiesColumns = array of Arr2InnerExtendedPropertiesColumns;
      InnerCalendarAlertsColumns = interface;
      Arr1InnerCalendarAlertsColumns = array of InnerCalendarAlertsColumns;
      Arr2InnerCalendarAlertsColumns = array of Arr1InnerCalendarAlertsColumns;
      Arr3InnerCalendarAlertsColumns = array of Arr2InnerCalendarAlertsColumns;
      InnerRemindersColumns = interface;
      Arr1InnerRemindersColumns = array of InnerRemindersColumns;
      Arr2InnerRemindersColumns = array of Arr1InnerRemindersColumns;
      Arr3InnerRemindersColumns = array of Arr2InnerRemindersColumns;
      InnerEventDaysColumns = interface;
      Arr1InnerEventDaysColumns = array of InnerEventDaysColumns;
      Arr2InnerEventDaysColumns = array of Arr1InnerEventDaysColumns;
      Arr3InnerEventDaysColumns = array of Arr2InnerEventDaysColumns;
      InnerCalendarCacheColumns = interface;
      Arr1InnerCalendarCacheColumns = array of InnerCalendarCacheColumns;
      Arr2InnerCalendarCacheColumns = array of Arr1InnerCalendarCacheColumns;
      Arr3InnerCalendarCacheColumns = array of Arr2InnerCalendarCacheColumns;
      InnerEventsColumns = interface;
      Arr1InnerEventsColumns = array of InnerEventsColumns;
      Arr2InnerEventsColumns = array of Arr1InnerEventsColumns;
      Arr3InnerEventsColumns = array of Arr2InnerEventsColumns;
      InnerAttendeesColumns = interface;
      Arr1InnerAttendeesColumns = array of InnerAttendeesColumns;
      Arr2InnerAttendeesColumns = array of Arr1InnerAttendeesColumns;
      Arr3InnerAttendeesColumns = array of Arr2InnerAttendeesColumns;
      InnerCalendarColumns = interface;
      Arr1InnerCalendarColumns = array of InnerCalendarColumns;
      Arr2InnerCalendarColumns = array of Arr1InnerCalendarColumns;
      Arr3InnerCalendarColumns = array of Arr2InnerCalendarColumns;
      InnerCalendarSyncColumns = interface;
      Arr1InnerCalendarSyncColumns = array of InnerCalendarSyncColumns;
      Arr2InnerCalendarSyncColumns = array of Arr1InnerCalendarSyncColumns;
      Arr3InnerCalendarSyncColumns = array of Arr2InnerCalendarSyncColumns;
      InnerSyncState = class;
      Arr1InnerSyncState = array of InnerSyncState;
      Arr2InnerSyncState = array of Arr1InnerSyncState;
      Arr3InnerSyncState = array of Arr2InnerSyncState;
      InnerEventDays = class;
      Arr1InnerEventDays = array of InnerEventDays;
      Arr2InnerEventDays = array of Arr1InnerEventDays;
      Arr3InnerEventDays = array of Arr2InnerEventDays;
      InnerCalendarCache = class;
      Arr1InnerCalendarCache = array of InnerCalendarCache;
      Arr2InnerCalendarCache = array of Arr1InnerCalendarCache;
      Arr3InnerCalendarCache = array of Arr2InnerCalendarCache;
      InnerExtendedProperties = class;
      Arr1InnerExtendedProperties = array of InnerExtendedProperties;
      Arr2InnerExtendedProperties = array of Arr1InnerExtendedProperties;
      Arr3InnerExtendedProperties = array of Arr2InnerExtendedProperties;
      InnerReminders = class;
      Arr1InnerReminders = array of InnerReminders;
      Arr2InnerReminders = array of Arr1InnerReminders;
      Arr3InnerReminders = array of Arr2InnerReminders;
      InnerAttendees = class;
      Arr1InnerAttendees = array of InnerAttendees;
      Arr2InnerAttendees = array of Arr1InnerAttendees;
      Arr3InnerAttendees = array of Arr2InnerAttendees;
      InnerCalendarAlerts = class;
      Arr1InnerCalendarAlerts = array of InnerCalendarAlerts;
      Arr2InnerCalendarAlerts = array of Arr1InnerCalendarAlerts;
      Arr3InnerCalendarAlerts = array of Arr2InnerCalendarAlerts;
      InnerInstances = class;
      Arr1InnerInstances = array of InnerInstances;
      Arr2InnerInstances = array of Arr1InnerInstances;
      Arr3InnerInstances = array of Arr2InnerInstances;
      InnerSyncColumns = interface;
      Arr1InnerSyncColumns = array of InnerSyncColumns;
      Arr2InnerSyncColumns = array of Arr1InnerSyncColumns;
      Arr3InnerSyncColumns = array of Arr2InnerSyncColumns;
      InnerEvents = class;
      Arr1InnerEvents = array of InnerEvents;
      Arr2InnerEvents = array of Arr1InnerEvents;
      Arr3InnerEvents = array of Arr2InnerEvents;
      InnerEventsEntity = class;
      Arr1InnerEventsEntity = array of InnerEventsEntity;
      Arr2InnerEventsEntity = array of Arr1InnerEventsEntity;
      Arr3InnerEventsEntity = array of Arr2InnerEventsEntity;
      InnerCalendars = class;
      Arr1InnerCalendars = array of InnerCalendars;
      Arr2InnerCalendars = array of Arr1InnerCalendars;
      Arr3InnerCalendars = array of Arr2InnerCalendars;
      InnerCalendarEntity = class;
      Arr1InnerCalendarEntity = array of InnerCalendarEntity;
      Arr2InnerCalendarEntity = array of Arr1InnerCalendarEntity;
      Arr3InnerCalendarEntity = array of Arr2InnerCalendarEntity;
      InnerExtendedPropertiesColumns = interface external 'android.provider' name 'ExtendedPropertiesColumns' 
        const
          EVENT_ID = 'event_id';
          NAME = 'name';
          VALUE = 'value';
      end;

      InnerCalendarAlertsColumns = interface external 'android.provider' name 'CalendarAlertsColumns' 
        const
          EVENT_ID = 'event_id';
          &BEGIN = 'begin';
          &END = 'end';
          ALARM_TIME = 'alarmTime';
          CREATION_TIME = 'creationTime';
          RECEIVED_TIME = 'receivedTime';
          NOTIFY_TIME = 'notifyTime';
          STATE = 'state';
          STATE_SCHEDULED = 0;
          STATE_FIRED = 1;
          STATE_DISMISSED = 2;
          MINUTES = 'minutes';
          DEFAULT_SORT_ORDER = 'begin ASC,title ASC';
      end;

      InnerRemindersColumns = interface external 'android.provider' name 'RemindersColumns' 
        const
          EVENT_ID = 'event_id';
          MINUTES = 'minutes';
          MINUTES_DEFAULT = -1;
          METHOD = 'method';
          METHOD_DEFAULT = 0;
          METHOD_ALERT = 1;
          METHOD_EMAIL = 2;
          METHOD_SMS = 3;
      end;

      InnerEventDaysColumns = interface external 'android.provider' name 'EventDaysColumns' 
        const
          STARTDAY = 'startDay';
          ENDDAY = 'endDay';
      end;

      InnerCalendarCacheColumns = interface external 'android.provider' name 'CalendarCacheColumns' 
        const
          KEY = 'key';
          VALUE = 'value';
      end;

      InnerEventsColumns = interface external 'android.provider' name 'EventsColumns' 
        const
          CALENDAR_ID = 'calendar_id';
          TITLE = 'title';
          DESCRIPTION = 'description';
          EVENT_LOCATION = 'eventLocation';
          EVENT_COLOR = 'eventColor';
          STATUS = 'eventStatus';
          STATUS_TENTATIVE = 0;
          STATUS_CONFIRMED = 1;
          STATUS_CANCELED = 2;
          SELF_ATTENDEE_STATUS = 'selfAttendeeStatus';
          SYNC_DATA1 = 'sync_data1';
          SYNC_DATA2 = 'sync_data2';
          SYNC_DATA3 = 'sync_data3';
          SYNC_DATA4 = 'sync_data4';
          SYNC_DATA5 = 'sync_data5';
          SYNC_DATA6 = 'sync_data6';
          SYNC_DATA7 = 'sync_data7';
          SYNC_DATA8 = 'sync_data8';
          SYNC_DATA9 = 'sync_data9';
          SYNC_DATA10 = 'sync_data10';
          LAST_SYNCED = 'lastSynced';
          DTSTART = 'dtstart';
          DTEND = 'dtend';
          DURATION = 'duration';
          EVENT_TIMEZONE = 'eventTimezone';
          EVENT_END_TIMEZONE = 'eventEndTimezone';
          ALL_DAY = 'allDay';
          ACCESS_LEVEL = 'accessLevel';
          ACCESS_DEFAULT = 0;
          ACCESS_CONFIDENTIAL = 1;
          ACCESS_PRIVATE = 2;
          ACCESS_PUBLIC = 3;
          AVAILABILITY = 'availability';
          AVAILABILITY_BUSY = 0;
          AVAILABILITY_FREE = 1;
          HAS_ALARM = 'hasAlarm';
          HAS_EXTENDED_PROPERTIES = 'hasExtendedProperties';
          RRULE = 'rrule';
          RDATE = 'rdate';
          EXRULE = 'exrule';
          EXDATE = 'exdate';
          ORIGINAL_ID = 'original_id';
          ORIGINAL_SYNC_ID = 'original_sync_id';
          ORIGINAL_INSTANCE_TIME = 'originalInstanceTime';
          ORIGINAL_ALL_DAY = 'originalAllDay';
          LAST_DATE = 'lastDate';
          HAS_ATTENDEE_DATA = 'hasAttendeeData';
          GUESTS_CAN_MODIFY = 'guestsCanModify';
          GUESTS_CAN_INVITE_OTHERS = 'guestsCanInviteOthers';
          GUESTS_CAN_SEE_GUESTS = 'guestsCanSeeGuests';
          ORGANIZER = 'organizer';
          CAN_INVITE_OTHERS = 'canInviteOthers';
      end;

      InnerAttendeesColumns = interface external 'android.provider' name 'AttendeesColumns' 
        const
          EVENT_ID = 'event_id';
          ATTENDEE_NAME = 'attendeeName';
          ATTENDEE_EMAIL = 'attendeeEmail';
          ATTENDEE_RELATIONSHIP = 'attendeeRelationship';
          RELATIONSHIP_NONE = 0;
          RELATIONSHIP_ATTENDEE = 1;
          RELATIONSHIP_ORGANIZER = 2;
          RELATIONSHIP_PERFORMER = 3;
          RELATIONSHIP_SPEAKER = 4;
          ATTENDEE_TYPE = 'attendeeType';
          TYPE_NONE = 0;
          TYPE_REQUIRED = 1;
          TYPE_OPTIONAL = 2;
          ATTENDEE_STATUS = 'attendeeStatus';
          ATTENDEE_STATUS_NONE = 0;
          ATTENDEE_STATUS_ACCEPTED = 1;
          ATTENDEE_STATUS_DECLINED = 2;
          ATTENDEE_STATUS_INVITED = 3;
          ATTENDEE_STATUS_TENTATIVE = 4;
      end;

      InnerCalendarColumns = interface external 'android.provider' name 'CalendarColumns' 
        const
          CALENDAR_COLOR = 'calendar_color';
          CALENDAR_DISPLAY_NAME = 'calendar_displayName';
          CALENDAR_ACCESS_LEVEL = 'calendar_access_level';
          CAL_ACCESS_NONE = 0;
          CAL_ACCESS_FREEBUSY = 100;
          CAL_ACCESS_READ = 200;
          CAL_ACCESS_RESPOND = 300;
          CAL_ACCESS_OVERRIDE = 400;
          CAL_ACCESS_CONTRIBUTOR = 500;
          CAL_ACCESS_EDITOR = 600;
          CAL_ACCESS_OWNER = 700;
          CAL_ACCESS_ROOT = 800;
          VISIBLE = 'visible';
          CALENDAR_TIME_ZONE = 'calendar_timezone';
          SYNC_EVENTS = 'sync_events';
          OWNER_ACCOUNT = 'ownerAccount';
          CAN_ORGANIZER_RESPOND = 'canOrganizerRespond';
          CAN_MODIFY_TIME_ZONE = 'canModifyTimeZone';
          MAX_REMINDERS = 'maxReminders';
          ALLOWED_REMINDERS = 'allowedReminders';
      end;

      InnerCalendarSyncColumns = interface external 'android.provider' name 'CalendarSyncColumns' 
        const
          CAL_SYNC1 = 'cal_sync1';
          CAL_SYNC2 = 'cal_sync2';
          CAL_SYNC3 = 'cal_sync3';
          CAL_SYNC4 = 'cal_sync4';
          CAL_SYNC5 = 'cal_sync5';
          CAL_SYNC6 = 'cal_sync6';
          CAL_SYNC7 = 'cal_sync7';
          CAL_SYNC8 = 'cal_sync8';
          CAL_SYNC9 = 'cal_sync9';
          CAL_SYNC10 = 'cal_sync10';
      end;

      InnerSyncState = class sealed external 'android.provider' name 'SyncState' (JLObject, APSyncStateContract.InnerColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      end;

      InnerEventDays = class sealed external 'android.provider' name 'EventDays' (JLObject, APCalendarContract.InnerEventDaysColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function query(para1: ACContentResolver; para2: jint; para3: jint; para4: Arr1JLString): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; para2: jint; para3: jint; var para4: array of JLString): ADCursor; static; overload; final;
      end;

      InnerCalendarCache = class sealed external 'android.provider' name 'CalendarCache' (JLObject, APCalendarContract.InnerCalendarCacheColumns)
      public
        final class var
          fURI: ANUri; external name 'URI';
      public
        const
          KEY_TIMEZONE_TYPE = 'timezoneType';
          KEY_TIMEZONE_INSTANCES = 'timezoneInstances';
          KEY_TIMEZONE_INSTANCES_PREVIOUS = 'timezoneInstancesPrevious';
          TIMEZONE_TYPE_AUTO = 'auto';
          TIMEZONE_TYPE_HOME = 'home';
      end;

      InnerExtendedProperties = class sealed external 'android.provider' name 'ExtendedProperties' (JLObject, APBaseColumns, APCalendarContract.InnerExtendedPropertiesColumns, APCalendarContract.InnerEventsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      end;

      InnerReminders = class sealed external 'android.provider' name 'Reminders' (JLObject, APBaseColumns, APCalendarContract.InnerRemindersColumns, APCalendarContract.InnerEventsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function query(para1: ACContentResolver; para2: jlong; para3: Arr1JLString): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; para2: jlong; var para3: array of JLString): ADCursor; static; overload; final;
      end;

      InnerAttendees = class sealed external 'android.provider' name 'Attendees' (JLObject, APBaseColumns, APCalendarContract.InnerAttendeesColumns, APCalendarContract.InnerEventsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function query(para1: ACContentResolver; para2: jlong; para3: Arr1JLString): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; para2: jlong; var para3: array of JLString): ADCursor; static; overload; final;
      end;

      InnerCalendarAlerts = class sealed external 'android.provider' name 'CalendarAlerts' (JLObject, APBaseColumns, APCalendarContract.InnerCalendarAlertsColumns, APCalendarContract.InnerEventsColumns, APCalendarContract.InnerCalendarColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_URI_BY_INSTANCE: ANUri; external name 'CONTENT_URI_BY_INSTANCE';
      end;

      InnerInstances = class sealed external 'android.provider' name 'Instances' (JLObject, APBaseColumns, APCalendarContract.InnerEventsColumns, APCalendarContract.InnerCalendarColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_BY_DAY_URI: ANUri; external name 'CONTENT_BY_DAY_URI';
          fCONTENT_SEARCH_URI: ANUri; external name 'CONTENT_SEARCH_URI';
          fCONTENT_SEARCH_BY_DAY_URI: ANUri; external name 'CONTENT_SEARCH_BY_DAY_URI';
      public
        const
          &BEGIN = 'begin';
          &END = 'end';
          EVENT_ID = 'event_id';
          START_DAY = 'startDay';
          END_DAY = 'endDay';
          START_MINUTE = 'startMinute';
          END_MINUTE = 'endMinute';
      public
        class function query(para1: ACContentResolver; para2: Arr1JLString; para3: jlong; para4: jlong): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; var para2: array of JLString; para3: jlong; para4: jlong): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; para2: Arr1JLString; para3: jlong; para4: jlong; para5: JLString): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; var para2: array of JLString; para3: jlong; para4: jlong; para5: JLString): ADCursor; static; overload; final;
      end;

      InnerSyncColumns = interface external 'android.provider' name 'SyncColumns' (APCalendarContract.InnerCalendarSyncColumns)
        const
          ACCOUNT_NAME = 'account_name';
          ACCOUNT_TYPE = 'account_type';
          _SYNC_ID = '_sync_id';
          DIRTY = 'dirty';
          DELETED = 'deleted';
          CAN_PARTIALLY_UPDATE = 'canPartiallyUpdate';
      end;

      InnerEvents = class sealed external 'android.provider' name 'Events' (JLObject, APBaseColumns, APCalendarContract.InnerSyncColumns, APCalendarContract.InnerEventsColumns, APCalendarContract.InnerCalendarColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_EXCEPTION_URI: ANUri; external name 'CONTENT_EXCEPTION_URI';
      end;

      InnerEventsEntity = class sealed external 'android.provider' name 'EventsEntity' (JLObject, APBaseColumns, APCalendarContract.InnerSyncColumns, APCalendarContract.InnerEventsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function newEntityIterator(para1: ADCursor; para2: ACContentResolver): ACEntityIterator; static; overload;
        class function newEntityIterator(para1: ADCursor; para2: ACContentProviderClient): ACEntityIterator; static; overload;
      end;

      InnerCalendars = class sealed external 'android.provider' name 'Calendars' (JLObject, APBaseColumns, APCalendarContract.InnerSyncColumns, APCalendarContract.InnerCalendarColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          DEFAULT_SORT_ORDER = 'calendar_displayName';
          NAME = 'name';
          CALENDAR_LOCATION = 'calendar_location';
      end;

      InnerCalendarEntity = class sealed external 'android.provider' name 'CalendarEntity' (JLObject, APBaseColumns, APCalendarContract.InnerSyncColumns, APCalendarContract.InnerCalendarColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function newEntityIterator(para1: ADCursor): ACEntityIterator; static; overload;
      end;

  public
    const
      ACTION_EVENT_REMINDER = 'android.intent.action.EVENT_REMINDER';
      EXTRA_EVENT_BEGIN_TIME = 'beginTime';
      EXTRA_EVENT_END_TIME = 'endTime';
      EXTRA_EVENT_ALL_DAY = 'allDay';
      AUTHORITY = 'com.android.calendar';
  public
    final class var
      fCONTENT_URI: ANUri; external name 'CONTENT_URI';
  public
    const
      CALLER_IS_SYNCADAPTER = 'caller_is_syncadapter';
      ACCOUNT_TYPE_LOCAL = 'LOCAL';
  end;

  APContactsContract = class sealed external 'android.provider' name 'ContactsContract' (JLObject)
  public
    type
      InnerIntents = class;
      Arr1InnerIntents = array of InnerIntents;
      Arr2InnerIntents = array of Arr1InnerIntents;
      Arr3InnerIntents = array of Arr2InnerIntents;
      InnerDisplayPhoto = class;
      Arr1InnerDisplayPhoto = array of InnerDisplayPhoto;
      Arr2InnerDisplayPhoto = array of Arr1InnerDisplayPhoto;
      Arr3InnerDisplayPhoto = array of Arr2InnerDisplayPhoto;
      InnerQuickContact = class;
      Arr1InnerQuickContact = array of InnerQuickContact;
      Arr2InnerQuickContact = array of Arr1InnerQuickContact;
      Arr3InnerQuickContact = array of Arr2InnerQuickContact;
      InnerDataUsageFeedback = class;
      Arr1InnerDataUsageFeedback = array of InnerDataUsageFeedback;
      Arr2InnerDataUsageFeedback = array of Arr1InnerDataUsageFeedback;
      Arr3InnerDataUsageFeedback = array of Arr2InnerDataUsageFeedback;
      InnerSettingsColumns = interface;
      Arr1InnerSettingsColumns = array of InnerSettingsColumns;
      Arr2InnerSettingsColumns = array of Arr1InnerSettingsColumns;
      Arr3InnerSettingsColumns = array of Arr2InnerSettingsColumns;
      InnerGroupsColumns = interface;
      Arr1InnerGroupsColumns = array of InnerGroupsColumns;
      Arr2InnerGroupsColumns = array of Arr1InnerGroupsColumns;
      Arr3InnerGroupsColumns = array of Arr2InnerGroupsColumns;
      InnerPresenceColumns = interface;
      Arr1InnerPresenceColumns = array of InnerPresenceColumns;
      Arr2InnerPresenceColumns = array of Arr1InnerPresenceColumns;
      Arr3InnerPresenceColumns = array of Arr2InnerPresenceColumns;
      InnerPhoneLookupColumns = interface;
      Arr1InnerPhoneLookupColumns = array of InnerPhoneLookupColumns;
      Arr2InnerPhoneLookupColumns = array of Arr1InnerPhoneLookupColumns;
      Arr3InnerPhoneLookupColumns = array of Arr2InnerPhoneLookupColumns;
      InnerDataColumns = interface;
      Arr1InnerDataColumns = array of InnerDataColumns;
      Arr2InnerDataColumns = array of Arr1InnerDataColumns;
      Arr3InnerDataColumns = array of Arr2InnerDataColumns;
      InnerStatusColumns = interface;
      Arr1InnerStatusColumns = array of InnerStatusColumns;
      Arr2InnerStatusColumns = array of Arr1InnerStatusColumns;
      Arr3InnerStatusColumns = array of Arr2InnerStatusColumns;
      InnerRawContactsColumns = interface;
      Arr1InnerRawContactsColumns = array of InnerRawContactsColumns;
      Arr2InnerRawContactsColumns = array of Arr1InnerRawContactsColumns;
      Arr3InnerRawContactsColumns = array of Arr2InnerRawContactsColumns;
      InnerContactNameColumns = interface;
      Arr1InnerContactNameColumns = array of InnerContactNameColumns;
      Arr2InnerContactNameColumns = array of Arr1InnerContactNameColumns;
      Arr3InnerContactNameColumns = array of Arr2InnerContactNameColumns;
      InnerDisplayNameSources = interface;
      Arr1InnerDisplayNameSources = array of InnerDisplayNameSources;
      Arr2InnerDisplayNameSources = array of Arr1InnerDisplayNameSources;
      Arr3InnerDisplayNameSources = array of Arr2InnerDisplayNameSources;
      InnerPhoneticNameStyle = interface;
      Arr1InnerPhoneticNameStyle = array of InnerPhoneticNameStyle;
      Arr2InnerPhoneticNameStyle = array of Arr1InnerPhoneticNameStyle;
      Arr3InnerPhoneticNameStyle = array of Arr2InnerPhoneticNameStyle;
      InnerFullNameStyle = interface;
      Arr1InnerFullNameStyle = array of InnerFullNameStyle;
      Arr2InnerFullNameStyle = array of Arr1InnerFullNameStyle;
      Arr3InnerFullNameStyle = array of Arr2InnerFullNameStyle;
      InnerContactStatusColumns = interface;
      Arr1InnerContactStatusColumns = array of InnerContactStatusColumns;
      Arr2InnerContactStatusColumns = array of Arr1InnerContactStatusColumns;
      Arr3InnerContactStatusColumns = array of Arr2InnerContactStatusColumns;
      InnerContactsColumns = interface;
      Arr1InnerContactsColumns = array of InnerContactsColumns;
      Arr2InnerContactsColumns = array of Arr1InnerContactsColumns;
      Arr3InnerContactsColumns = array of Arr2InnerContactsColumns;
      InnerContactOptionsColumns = interface;
      Arr1InnerContactOptionsColumns = array of InnerContactOptionsColumns;
      Arr2InnerContactOptionsColumns = array of Arr1InnerContactOptionsColumns;
      Arr3InnerContactOptionsColumns = array of Arr2InnerContactOptionsColumns;
      InnerBaseSyncColumns = interface;
      Arr1InnerBaseSyncColumns = array of InnerBaseSyncColumns;
      Arr2InnerBaseSyncColumns = array of Arr1InnerBaseSyncColumns;
      Arr3InnerBaseSyncColumns = array of Arr2InnerBaseSyncColumns;
      InnerAggregationExceptions = class;
      Arr1InnerAggregationExceptions = array of InnerAggregationExceptions;
      Arr2InnerAggregationExceptions = array of Arr1InnerAggregationExceptions;
      Arr3InnerAggregationExceptions = array of Arr2InnerAggregationExceptions;
      InnerDirectory = class;
      Arr1InnerDirectory = array of InnerDirectory;
      Arr2InnerDirectory = array of Arr1InnerDirectory;
      Arr3InnerDirectory = array of Arr2InnerDirectory;
      InnerProfileSyncState = class;
      Arr1InnerProfileSyncState = array of InnerProfileSyncState;
      Arr2InnerProfileSyncState = array of Arr1InnerProfileSyncState;
      Arr3InnerProfileSyncState = array of Arr2InnerProfileSyncState;
      InnerSyncState = class;
      Arr1InnerSyncState = array of InnerSyncState;
      Arr2InnerSyncState = array of Arr1InnerSyncState;
      Arr3InnerSyncState = array of Arr2InnerSyncState;
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerStatusUpdates = class;
      Arr1InnerStatusUpdates = array of InnerStatusUpdates;
      Arr2InnerStatusUpdates = array of Arr1InnerStatusUpdates;
      Arr3InnerStatusUpdates = array of Arr2InnerStatusUpdates;
      InnerRawContactsEntity = class;
      Arr1InnerRawContactsEntity = array of InnerRawContactsEntity;
      Arr2InnerRawContactsEntity = array of Arr1InnerRawContactsEntity;
      Arr3InnerRawContactsEntity = array of Arr2InnerRawContactsEntity;
      InnerPhoneLookup = class;
      Arr1InnerPhoneLookup = array of InnerPhoneLookup;
      Arr2InnerPhoneLookup = array of Arr1InnerPhoneLookup;
      Arr3InnerPhoneLookup = array of Arr2InnerPhoneLookup;
      InnerDataColumnsWithJoins = interface;
      Arr1InnerDataColumnsWithJoins = array of InnerDataColumnsWithJoins;
      Arr2InnerDataColumnsWithJoins = array of Arr1InnerDataColumnsWithJoins;
      Arr3InnerDataColumnsWithJoins = array of Arr2InnerDataColumnsWithJoins;
      InnerProfile = class;
      Arr1InnerProfile = array of InnerProfile;
      Arr2InnerProfile = array of Arr1InnerProfile;
      Arr3InnerProfile = array of Arr2InnerProfile;
      InnerSyncColumns = interface;
      Arr1InnerSyncColumns = array of InnerSyncColumns;
      Arr2InnerSyncColumns = array of Arr1InnerSyncColumns;
      Arr3InnerSyncColumns = array of Arr2InnerSyncColumns;
      InnerPresence = class;
      Arr1InnerPresence = array of InnerPresence;
      Arr2InnerPresence = array of Arr1InnerPresence;
      Arr3InnerPresence = array of Arr2InnerPresence;
      InnerCommonDataKinds = class;
      Arr1InnerCommonDataKinds = array of InnerCommonDataKinds;
      Arr2InnerCommonDataKinds = array of Arr1InnerCommonDataKinds;
      Arr3InnerCommonDataKinds = array of Arr2InnerCommonDataKinds;
      InnerData = class;
      Arr1InnerData = array of InnerData;
      Arr2InnerData = array of Arr1InnerData;
      Arr3InnerData = array of Arr2InnerData;
      InnerGroups = class;
      Arr1InnerGroups = array of InnerGroups;
      Arr2InnerGroups = array of Arr1InnerGroups;
      Arr3InnerGroups = array of Arr2InnerGroups;
      InnerRawContacts = class;
      Arr1InnerRawContacts = array of InnerRawContacts;
      Arr2InnerRawContacts = array of Arr1InnerRawContacts;
      Arr3InnerRawContacts = array of Arr2InnerRawContacts;
      InnerContacts = class;
      Arr1InnerContacts = array of InnerContacts;
      Arr2InnerContacts = array of Arr1InnerContacts;
      Arr3InnerContacts = array of Arr2InnerContacts;
      InnerIntents = class sealed external 'android.provider' name 'Intents' (JLObject)
      public
        type
          InnerInsert = class;
          Arr1InnerInsert = array of InnerInsert;
          Arr2InnerInsert = array of Arr1InnerInsert;
          Arr3InnerInsert = array of Arr2InnerInsert;
          InnerInsert = class sealed external 'android.provider' name 'Insert' (JLObject)
          public
            const
              ACTION = 'android.intent.action.INSERT';
              FULL_MODE = 'full_mode';
              NAME = 'name';
              PHONETIC_NAME = 'phonetic_name';
              COMPANY = 'company';
              JOB_TITLE = 'job_title';
              NOTES = 'notes';
              PHONE = 'phone';
              PHONE_TYPE = 'phone_type';
              PHONE_ISPRIMARY = 'phone_isprimary';
              SECONDARY_PHONE = 'secondary_phone';
              SECONDARY_PHONE_TYPE = 'secondary_phone_type';
              TERTIARY_PHONE = 'tertiary_phone';
              TERTIARY_PHONE_TYPE = 'tertiary_phone_type';
              EMAIL = 'email';
              EMAIL_TYPE = 'email_type';
              EMAIL_ISPRIMARY = 'email_isprimary';
              SECONDARY_EMAIL = 'secondary_email';
              SECONDARY_EMAIL_TYPE = 'secondary_email_type';
              TERTIARY_EMAIL = 'tertiary_email';
              TERTIARY_EMAIL_TYPE = 'tertiary_email_type';
              POSTAL = 'postal';
              POSTAL_TYPE = 'postal_type';
              POSTAL_ISPRIMARY = 'postal_isprimary';
              IM_HANDLE = 'im_handle';
              IM_PROTOCOL = 'im_protocol';
              IM_ISPRIMARY = 'im_isprimary';
              DATA = 'data';
          public
            constructor create(); overload;
          end;

      public
        const
          SEARCH_SUGGESTION_CLICKED = 'android.provider.Contacts.SEARCH_SUGGESTION_CLICKED';
          SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = 'android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED';
          SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = 'android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED';
          ATTACH_IMAGE = 'com.android.contacts.action.ATTACH_IMAGE';
          INVITE_CONTACT = 'com.android.contacts.action.INVITE_CONTACT';
          SHOW_OR_CREATE_CONTACT = 'com.android.contacts.action.SHOW_OR_CREATE_CONTACT';
          EXTRA_FORCE_CREATE = 'com.android.contacts.action.FORCE_CREATE';
          EXTRA_CREATE_DESCRIPTION = 'com.android.contacts.action.CREATE_DESCRIPTION';
      public
        constructor create(); overload;
      end;

      InnerDisplayPhoto = class sealed external 'android.provider' name 'DisplayPhoto' (JLObject)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_MAX_DIMENSIONS_URI: ANUri; external name 'CONTENT_MAX_DIMENSIONS_URI';
      public
        const
          DISPLAY_MAX_DIM = 'display_max_dim';
          THUMBNAIL_MAX_DIM = 'thumbnail_max_dim';
      end;

      InnerQuickContact = class sealed external 'android.provider' name 'QuickContact' (JLObject)
      public
        const
          MODE_SMALL = 1;
          MODE_MEDIUM = 2;
          MODE_LARGE = 3;
      public
        constructor create(); overload;
        class procedure showQuickContact(para1: ACContext; para2: AVView; para3: ANUri; para4: jint; para5: Arr1JLString); static; overload;
        class procedure showQuickContact(para1: ACContext; para2: AVView; para3: ANUri; para4: jint; var para5: array of JLString); static; overload;
        class procedure showQuickContact(para1: ACContext; para2: AGRect; para3: ANUri; para4: jint; para5: Arr1JLString); static; overload;
        class procedure showQuickContact(para1: ACContext; para2: AGRect; para3: ANUri; para4: jint; var para5: array of JLString); static; overload;
      end;

      InnerDataUsageFeedback = class sealed external 'android.provider' name 'DataUsageFeedback' (JLObject)
      public
        final class var
          fFEEDBACK_URI: ANUri; external name 'FEEDBACK_URI';
      public
        const
          USAGE_TYPE = 'type';
          USAGE_TYPE_CALL = 'call';
          USAGE_TYPE_LONG_TEXT = 'long_text';
          USAGE_TYPE_SHORT_TEXT = 'short_text';
      public
        constructor create(); overload;
      end;

      InnerSettingsColumns = interface external 'android.provider' name 'SettingsColumns' 
        const
          ACCOUNT_NAME = 'account_name';
          ACCOUNT_TYPE = 'account_type';
          DATA_SET = 'data_set';
          SHOULD_SYNC = 'should_sync';
          UNGROUPED_VISIBLE = 'ungrouped_visible';
          ANY_UNSYNCED = 'any_unsynced';
          UNGROUPED_COUNT = 'summ_count';
          UNGROUPED_WITH_PHONES = 'summ_phones';
      end;

      InnerGroupsColumns = interface external 'android.provider' name 'GroupsColumns' 
        const
          DATA_SET = 'data_set';
          TITLE = 'title';
          NOTES = 'notes';
          SYSTEM_ID = 'system_id';
          SUMMARY_COUNT = 'summ_count';
          SUMMARY_WITH_PHONES = 'summ_phones';
          GROUP_VISIBLE = 'group_visible';
          DELETED = 'deleted';
          SHOULD_SYNC = 'should_sync';
          AUTO_ADD = 'auto_add';
          FAVORITES = 'favorites';
          GROUP_IS_READ_ONLY = 'group_is_read_only';
      end;

      InnerPresenceColumns = interface external 'android.provider' name 'PresenceColumns' 
        const
          DATA_ID = 'presence_data_id';
          PROTOCOL = 'protocol';
          CUSTOM_PROTOCOL = 'custom_protocol';
          IM_HANDLE = 'im_handle';
          IM_ACCOUNT = 'im_account';
      end;

      InnerPhoneLookupColumns = interface external 'android.provider' name 'PhoneLookupColumns' 
        const
          NUMBER = 'number';
          &TYPE = 'type';
          &LABEL = 'label';
      end;

      InnerDataColumns = interface external 'android.provider' name 'DataColumns' 
        const
          MIMETYPE = 'mimetype';
          RAW_CONTACT_ID = 'raw_contact_id';
          IS_PRIMARY = 'is_primary';
          IS_SUPER_PRIMARY = 'is_super_primary';
          IS_READ_ONLY = 'is_read_only';
          DATA_VERSION = 'data_version';
          DATA1 = 'data1';
          DATA2 = 'data2';
          DATA3 = 'data3';
          DATA4 = 'data4';
          DATA5 = 'data5';
          DATA6 = 'data6';
          DATA7 = 'data7';
          DATA8 = 'data8';
          DATA9 = 'data9';
          DATA10 = 'data10';
          DATA11 = 'data11';
          DATA12 = 'data12';
          DATA13 = 'data13';
          DATA14 = 'data14';
          DATA15 = 'data15';
          SYNC1 = 'data_sync1';
          SYNC2 = 'data_sync2';
          SYNC3 = 'data_sync3';
          SYNC4 = 'data_sync4';
      end;

      InnerStatusColumns = interface external 'android.provider' name 'StatusColumns' 
        const
          PRESENCE = 'mode';
          PRESENCE_STATUS = 'mode';
          OFFLINE = 0;
          INVISIBLE = 1;
          AWAY = 2;
          IDLE = 3;
          DO_NOT_DISTURB = 4;
          AVAILABLE = 5;
          STATUS = 'status';
          PRESENCE_CUSTOM_STATUS = 'status';
          STATUS_TIMESTAMP = 'status_ts';
          STATUS_RES_PACKAGE = 'status_res_package';
          STATUS_LABEL = 'status_label';
          STATUS_ICON = 'status_icon';
          CHAT_CAPABILITY = 'chat_capability';
          CAPABILITY_HAS_VOICE = 1;
          CAPABILITY_HAS_VIDEO = 2;
          CAPABILITY_HAS_CAMERA = 4;
      end;

      InnerRawContactsColumns = interface external 'android.provider' name 'RawContactsColumns' 
        const
          CONTACT_ID = 'contact_id';
          DATA_SET = 'data_set';
          AGGREGATION_MODE = 'aggregation_mode';
          DELETED = 'deleted';
          RAW_CONTACT_IS_READ_ONLY = 'raw_contact_is_read_only';
          RAW_CONTACT_IS_USER_PROFILE = 'raw_contact_is_user_profile';
      end;

      InnerContactNameColumns = interface external 'android.provider' name 'ContactNameColumns' 
        const
          DISPLAY_NAME_SOURCE = 'display_name_source';
          DISPLAY_NAME_PRIMARY = 'display_name';
          DISPLAY_NAME_ALTERNATIVE = 'display_name_alt';
          PHONETIC_NAME_STYLE = 'phonetic_name_style';
          PHONETIC_NAME = 'phonetic_name';
          SORT_KEY_PRIMARY = 'sort_key';
          SORT_KEY_ALTERNATIVE = 'sort_key_alt';
      end;

      InnerDisplayNameSources = interface external 'android.provider' name 'DisplayNameSources' 
        const
          UNDEFINED = 0;
          EMAIL = 10;
          PHONE = 20;
          ORGANIZATION = 30;
          NICKNAME = 35;
          STRUCTURED_NAME = 40;
      end;

      InnerPhoneticNameStyle = interface external 'android.provider' name 'PhoneticNameStyle' 
        const
          UNDEFINED = 0;
          PINYIN = 3;
          JAPANESE = 4;
          KOREAN = 5;
      end;

      InnerFullNameStyle = interface external 'android.provider' name 'FullNameStyle' 
        const
          UNDEFINED = 0;
          WESTERN = 1;
          CJK = 2;
          CHINESE = 3;
          JAPANESE = 4;
          KOREAN = 5;
      end;

      InnerContactStatusColumns = interface external 'android.provider' name 'ContactStatusColumns' 
        const
          CONTACT_PRESENCE = 'contact_presence';
          CONTACT_CHAT_CAPABILITY = 'contact_chat_capability';
          CONTACT_STATUS = 'contact_status';
          CONTACT_STATUS_TIMESTAMP = 'contact_status_ts';
          CONTACT_STATUS_RES_PACKAGE = 'contact_status_res_package';
          CONTACT_STATUS_LABEL = 'contact_status_label';
          CONTACT_STATUS_ICON = 'contact_status_icon';
      end;

      InnerContactsColumns = interface external 'android.provider' name 'ContactsColumns' 
        const
          DISPLAY_NAME = 'display_name';
          PHOTO_ID = 'photo_id';
          PHOTO_FILE_ID = 'photo_file_id';
          PHOTO_URI = 'photo_uri';
          PHOTO_THUMBNAIL_URI = 'photo_thumb_uri';
          IN_VISIBLE_GROUP = 'in_visible_group';
          IS_USER_PROFILE = 'is_user_profile';
          HAS_PHONE_NUMBER = 'has_phone_number';
          LOOKUP_KEY = 'lookup';
      end;

      InnerContactOptionsColumns = interface external 'android.provider' name 'ContactOptionsColumns' 
        const
          TIMES_CONTACTED = 'times_contacted';
          LAST_TIME_CONTACTED = 'last_time_contacted';
          STARRED = 'starred';
          CUSTOM_RINGTONE = 'custom_ringtone';
          SEND_TO_VOICEMAIL = 'send_to_voicemail';
      end;

      InnerBaseSyncColumns = interface external 'android.provider' name 'BaseSyncColumns' 
        const
          SYNC1 = 'sync1';
          SYNC2 = 'sync2';
          SYNC3 = 'sync3';
          SYNC4 = 'sync4';
      end;

      InnerAggregationExceptions = class sealed external 'android.provider' name 'AggregationExceptions' (JLObject, APBaseColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/aggregation_exception';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/aggregation_exception';
          &TYPE = 'type';
          TYPE_AUTOMATIC = 0;
          TYPE_KEEP_TOGETHER = 1;
          TYPE_KEEP_SEPARATE = 2;
          RAW_CONTACT_ID1 = 'raw_contact_id1';
          RAW_CONTACT_ID2 = 'raw_contact_id2';
      end;

      InnerDirectory = class sealed external 'android.provider' name 'Directory' (JLObject, APBaseColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/contact_directories';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/contact_directory';
          DEFAULT = jlong(0);
          LOCAL_INVISIBLE = jlong(1);
          PACKAGE_NAME = 'packageName';
          TYPE_RESOURCE_ID = 'typeResourceId';
          DISPLAY_NAME = 'displayName';
          DIRECTORY_AUTHORITY = 'authority';
          ACCOUNT_TYPE = 'accountType';
          ACCOUNT_NAME = 'accountName';
          EXPORT_SUPPORT = 'exportSupport';
          EXPORT_SUPPORT_NONE = 0;
          EXPORT_SUPPORT_SAME_ACCOUNT_ONLY = 1;
          EXPORT_SUPPORT_ANY_ACCOUNT = 2;
          SHORTCUT_SUPPORT = 'shortcutSupport';
          SHORTCUT_SUPPORT_NONE = 0;
          SHORTCUT_SUPPORT_DATA_ITEMS_ONLY = 1;
          SHORTCUT_SUPPORT_FULL = 2;
          PHOTO_SUPPORT = 'photoSupport';
          PHOTO_SUPPORT_NONE = 0;
          PHOTO_SUPPORT_THUMBNAIL_ONLY = 1;
          PHOTO_SUPPORT_FULL_SIZE_ONLY = 2;
          PHOTO_SUPPORT_FULL = 3;
      public
        class procedure notifyDirectoryChange(para1: ACContentResolver); static; overload;
      end;

      InnerProfileSyncState = class sealed external 'android.provider' name 'ProfileSyncState' (JLObject, APSyncStateContract.InnerColumns)
      public
        const
          CONTENT_DIRECTORY = 'syncstate';
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function get(para1: ACContentProviderClient; para2: AAAccount): Arr1jbyte; static; overload;  // throws android.os.RemoteException
        class function getWithUri(para1: ACContentProviderClient; para2: AAAccount): AUPair; static; overload;  // throws android.os.RemoteException
        class procedure &set(para1: ACContentProviderClient; para2: AAAccount; para3: Arr1jbyte); static; overload;  // throws android.os.RemoteException
        class procedure &set(para1: ACContentProviderClient; para2: AAAccount; var para3: array of jbyte); static; overload;  // throws android.os.RemoteException
        class function newSetOperation(para1: AAAccount; para2: Arr1jbyte): ACContentProviderOperation; static; overload;
        class function newSetOperation(para1: AAAccount; var para2: array of jbyte): ACContentProviderOperation; static; overload;
      end;

      InnerSyncState = class sealed external 'android.provider' name 'SyncState' (JLObject, APSyncStateContract.InnerColumns)
      public
        const
          CONTENT_DIRECTORY = 'syncstate';
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        class function get(para1: ACContentProviderClient; para2: AAAccount): Arr1jbyte; static; overload;  // throws android.os.RemoteException
        class function getWithUri(para1: ACContentProviderClient; para2: AAAccount): AUPair; static; overload;  // throws android.os.RemoteException
        class procedure &set(para1: ACContentProviderClient; para2: AAAccount; para3: Arr1jbyte); static; overload;  // throws android.os.RemoteException
        class procedure &set(para1: ACContentProviderClient; para2: AAAccount; var para3: array of jbyte); static; overload;  // throws android.os.RemoteException
        class function newSetOperation(para1: AAAccount; para2: Arr1jbyte): ACContentProviderOperation; static; overload;
        class function newSetOperation(para1: AAAccount; var para2: array of jbyte): ACContentProviderOperation; static; overload;
      end;

      InnerSettings = class sealed external 'android.provider' name 'Settings' (JLObject, APContactsContract.InnerSettingsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/setting';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/setting';
      end;

      InnerStatusUpdates = class external 'android.provider' name 'StatusUpdates' (JLObject, APContactsContract.InnerStatusColumns, APContactsContract.InnerPresenceColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fPROFILE_CONTENT_URI: ANUri; external name 'PROFILE_CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/status-update';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/status-update';
      public
        class function getPresenceIconResourceId(para1: jint): jint; static; overload; final;
        class function getPresencePrecedence(para1: jint): jint; static; overload; final;
      end;

      InnerRawContactsEntity = class sealed external 'android.provider' name 'RawContactsEntity' (JLObject, APBaseColumns, APContactsContract.InnerDataColumns, APContactsContract.InnerRawContactsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fPROFILE_CONTENT_URI: ANUri; external name 'PROFILE_CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/raw_contact_entity';
          DATA_ID = 'data_id';
      end;

      InnerPhoneLookup = class sealed external 'android.provider' name 'PhoneLookup' (JLObject, APBaseColumns, APContactsContract.InnerPhoneLookupColumns, APContactsContract.InnerContactsColumns, APContactsContract.InnerContactOptionsColumns)
      public
        final class var
          fCONTENT_FILTER_URI: ANUri; external name 'CONTENT_FILTER_URI';
      end;

      InnerDataColumnsWithJoins = interface external 'android.provider' name 'DataColumnsWithJoins' (APBaseColumns, APContactsContract.InnerDataColumns, APContactsContract.InnerStatusColumns, APContactsContract.InnerRawContactsColumns, APContactsContract.InnerContactsColumns, APContactsContract.InnerContactNameColumns, APContactsContract.InnerContactOptionsColumns, APContactsContract.InnerContactStatusColumns)
      end;

      InnerProfile = class sealed external 'android.provider' name 'Profile' (JLObject, APBaseColumns, APContactsContract.InnerContactsColumns, APContactsContract.InnerContactOptionsColumns, APContactsContract.InnerContactNameColumns, APContactsContract.InnerContactStatusColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_VCARD_URI: ANUri; external name 'CONTENT_VCARD_URI';
          fCONTENT_RAW_CONTACTS_URI: ANUri; external name 'CONTENT_RAW_CONTACTS_URI';
      public
        const
          MIN_ID = jlong(9223372034707292160);
      end;

      InnerSyncColumns = interface external 'android.provider' name 'SyncColumns' (APContactsContract.InnerBaseSyncColumns)
        const
          ACCOUNT_NAME = 'account_name';
          ACCOUNT_TYPE = 'account_type';
          SOURCE_ID = 'sourceid';
          VERSION = 'version';
          DIRTY = 'dirty';
      end;

      InnerPresence = class sealed external 'android.provider' name 'Presence' (InnerStatusUpdates)
      public
        constructor create(); overload;
      end;

      InnerCommonDataKinds = class sealed external 'android.provider' name 'CommonDataKinds' (JLObject)
      public
        type
          InnerBaseTypes = interface;
          Arr1InnerBaseTypes = array of InnerBaseTypes;
          Arr2InnerBaseTypes = array of Arr1InnerBaseTypes;
          Arr3InnerBaseTypes = array of Arr2InnerBaseTypes;
          InnerIdentity = class;
          Arr1InnerIdentity = array of InnerIdentity;
          Arr2InnerIdentity = array of Arr1InnerIdentity;
          Arr3InnerIdentity = array of Arr2InnerIdentity;
          InnerGroupMembership = class;
          Arr1InnerGroupMembership = array of InnerGroupMembership;
          Arr2InnerGroupMembership = array of Arr1InnerGroupMembership;
          Arr3InnerGroupMembership = array of Arr2InnerGroupMembership;
          InnerNote = class;
          Arr1InnerNote = array of InnerNote;
          Arr2InnerNote = array of Arr1InnerNote;
          Arr3InnerNote = array of Arr2InnerNote;
          InnerPhoto = class;
          Arr1InnerPhoto = array of InnerPhoto;
          Arr2InnerPhoto = array of Arr1InnerPhoto;
          Arr3InnerPhoto = array of Arr2InnerPhoto;
          InnerStructuredName = class;
          Arr1InnerStructuredName = array of InnerStructuredName;
          Arr2InnerStructuredName = array of Arr1InnerStructuredName;
          Arr3InnerStructuredName = array of Arr2InnerStructuredName;
          InnerCommonColumns = interface;
          Arr1InnerCommonColumns = array of InnerCommonColumns;
          Arr2InnerCommonColumns = array of Arr1InnerCommonColumns;
          Arr3InnerCommonColumns = array of Arr2InnerCommonColumns;
          InnerSipAddress = class;
          Arr1InnerSipAddress = array of InnerSipAddress;
          Arr2InnerSipAddress = array of Arr1InnerSipAddress;
          Arr3InnerSipAddress = array of Arr2InnerSipAddress;
          InnerWebsite = class;
          Arr1InnerWebsite = array of InnerWebsite;
          Arr2InnerWebsite = array of Arr1InnerWebsite;
          Arr3InnerWebsite = array of Arr2InnerWebsite;
          InnerEvent = class;
          Arr1InnerEvent = array of InnerEvent;
          Arr2InnerEvent = array of Arr1InnerEvent;
          Arr3InnerEvent = array of Arr2InnerEvent;
          InnerRelation = class;
          Arr1InnerRelation = array of InnerRelation;
          Arr2InnerRelation = array of Arr1InnerRelation;
          Arr3InnerRelation = array of Arr2InnerRelation;
          InnerOrganization = class;
          Arr1InnerOrganization = array of InnerOrganization;
          Arr2InnerOrganization = array of Arr1InnerOrganization;
          Arr3InnerOrganization = array of Arr2InnerOrganization;
          InnerIm = class;
          Arr1InnerIm = array of InnerIm;
          Arr2InnerIm = array of Arr1InnerIm;
          Arr3InnerIm = array of Arr2InnerIm;
          InnerStructuredPostal = class;
          Arr1InnerStructuredPostal = array of InnerStructuredPostal;
          Arr2InnerStructuredPostal = array of Arr1InnerStructuredPostal;
          Arr3InnerStructuredPostal = array of Arr2InnerStructuredPostal;
          InnerEmail = class;
          Arr1InnerEmail = array of InnerEmail;
          Arr2InnerEmail = array of Arr1InnerEmail;
          Arr3InnerEmail = array of Arr2InnerEmail;
          InnerPhone = class;
          Arr1InnerPhone = array of InnerPhone;
          Arr2InnerPhone = array of Arr1InnerPhone;
          Arr3InnerPhone = array of Arr2InnerPhone;
          InnerNickname = class;
          Arr1InnerNickname = array of InnerNickname;
          Arr2InnerNickname = array of Arr1InnerNickname;
          Arr3InnerNickname = array of Arr2InnerNickname;
          InnerBaseTypes = interface external 'android.provider' name 'BaseTypes' 
            const
              TYPE_CUSTOM = 0;
          end;

          InnerIdentity = class sealed external 'android.provider' name 'Identity' (JLObject, APContactsContract.InnerDataColumnsWithJoins)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/identity';
              IDENTITY = 'data1';
              NAMESPACE = 'data2';
          end;

          InnerGroupMembership = class sealed external 'android.provider' name 'GroupMembership' (JLObject, APContactsContract.InnerDataColumnsWithJoins)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/group_membership';
              GROUP_ROW_ID = 'data1';
              GROUP_SOURCE_ID = 'group_sourceid';
          end;

          InnerNote = class sealed external 'android.provider' name 'Note' (JLObject, APContactsContract.InnerDataColumnsWithJoins)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/note';
              NOTE = 'data1';
          end;

          InnerPhoto = class sealed external 'android.provider' name 'Photo' (JLObject, APContactsContract.InnerDataColumnsWithJoins)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/photo';
              PHOTO_FILE_ID = 'data14';
              PHOTO = 'data15';
          end;

          InnerStructuredName = class sealed external 'android.provider' name 'StructuredName' (JLObject, APContactsContract.InnerDataColumnsWithJoins)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/name';
              DISPLAY_NAME = 'data1';
              GIVEN_NAME = 'data2';
              FAMILY_NAME = 'data3';
              PREFIX = 'data4';
              MIDDLE_NAME = 'data5';
              SUFFIX = 'data6';
              PHONETIC_GIVEN_NAME = 'data7';
              PHONETIC_MIDDLE_NAME = 'data8';
              PHONETIC_FAMILY_NAME = 'data9';
          end;

          InnerCommonColumns = interface external 'android.provider' name 'CommonColumns' (APContactsContract.InnerCommonDataKinds.InnerBaseTypes)
            const
              DATA = 'data1';
              &TYPE = 'data2';
              &LABEL = 'data3';
          end;

          InnerSipAddress = class sealed external 'android.provider' name 'SipAddress' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/sip_address';
              TYPE_HOME = 1;
              TYPE_WORK = 2;
              TYPE_OTHER = 3;
              SIP_ADDRESS = 'data1';
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerWebsite = class sealed external 'android.provider' name 'Website' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/website';
              TYPE_HOMEPAGE = 1;
              TYPE_BLOG = 2;
              TYPE_PROFILE = 3;
              TYPE_HOME = 4;
              TYPE_WORK = 5;
              TYPE_FTP = 6;
              TYPE_OTHER = 7;
              URL = 'data1';
          end;

          InnerEvent = class sealed external 'android.provider' name 'Event' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/contact_event';
              TYPE_ANNIVERSARY = 1;
              TYPE_OTHER = 2;
              TYPE_BIRTHDAY = 3;
              START_DATE = 'data1';
          public
            class function getTypeResource(para1: JLInteger): jint; static; overload;
          end;

          InnerRelation = class sealed external 'android.provider' name 'Relation' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/relation';
              TYPE_ASSISTANT = 1;
              TYPE_BROTHER = 2;
              TYPE_CHILD = 3;
              TYPE_DOMESTIC_PARTNER = 4;
              TYPE_FATHER = 5;
              TYPE_FRIEND = 6;
              TYPE_MANAGER = 7;
              TYPE_MOTHER = 8;
              TYPE_PARENT = 9;
              TYPE_PARTNER = 10;
              TYPE_REFERRED_BY = 11;
              TYPE_RELATIVE = 12;
              TYPE_SISTER = 13;
              TYPE_SPOUSE = 14;
              NAME = 'data1';
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerOrganization = class sealed external 'android.provider' name 'Organization' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/organization';
              TYPE_WORK = 1;
              TYPE_OTHER = 2;
              COMPANY = 'data1';
              TITLE = 'data4';
              DEPARTMENT = 'data5';
              JOB_DESCRIPTION = 'data6';
              SYMBOL = 'data7';
              PHONETIC_NAME = 'data8';
              OFFICE_LOCATION = 'data9';
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerIm = class sealed external 'android.provider' name 'Im' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/im';
              TYPE_HOME = 1;
              TYPE_WORK = 2;
              TYPE_OTHER = 3;
              PROTOCOL = 'data5';
              CUSTOM_PROTOCOL = 'data6';
              PROTOCOL_CUSTOM = -1;
              PROTOCOL_AIM = 0;
              PROTOCOL_MSN = 1;
              PROTOCOL_YAHOO = 2;
              PROTOCOL_SKYPE = 3;
              PROTOCOL_QQ = 4;
              PROTOCOL_GOOGLE_TALK = 5;
              PROTOCOL_ICQ = 6;
              PROTOCOL_JABBER = 7;
              PROTOCOL_NETMEETING = 8;
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
            class function getProtocolLabelResource(para1: jint): jint; static; overload; final;
            class function getProtocolLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerStructuredPostal = class sealed external 'android.provider' name 'StructuredPostal' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/postal-address_v2';
              CONTENT_TYPE = 'vnd.android.cursor.dir/postal-address_v2';
          public
            final class var
              fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          public
            const
              TYPE_HOME = 1;
              TYPE_WORK = 2;
              TYPE_OTHER = 3;
              FORMATTED_ADDRESS = 'data1';
              STREET = 'data4';
              POBOX = 'data5';
              NEIGHBORHOOD = 'data6';
              CITY = 'data7';
              REGION = 'data8';
              POSTCODE = 'data9';
              COUNTRY = 'data10';
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerEmail = class sealed external 'android.provider' name 'Email' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/email_v2';
              CONTENT_TYPE = 'vnd.android.cursor.dir/email_v2';
          public
            final class var
              fCONTENT_URI: ANUri; external name 'CONTENT_URI';
              fCONTENT_LOOKUP_URI: ANUri; external name 'CONTENT_LOOKUP_URI';
              fCONTENT_FILTER_URI: ANUri; external name 'CONTENT_FILTER_URI';
          public
            const
              ADDRESS = 'data1';
              TYPE_HOME = 1;
              TYPE_WORK = 2;
              TYPE_OTHER = 3;
              TYPE_MOBILE = 4;
              DISPLAY_NAME = 'data4';
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerPhone = class sealed external 'android.provider' name 'Phone' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/phone_v2';
              CONTENT_TYPE = 'vnd.android.cursor.dir/phone_v2';
          public
            final class var
              fCONTENT_URI: ANUri; external name 'CONTENT_URI';
              fCONTENT_FILTER_URI: ANUri; external name 'CONTENT_FILTER_URI';
          public
            const
              TYPE_HOME = 1;
              TYPE_MOBILE = 2;
              TYPE_WORK = 3;
              TYPE_FAX_WORK = 4;
              TYPE_FAX_HOME = 5;
              TYPE_PAGER = 6;
              TYPE_OTHER = 7;
              TYPE_CALLBACK = 8;
              TYPE_CAR = 9;
              TYPE_COMPANY_MAIN = 10;
              TYPE_ISDN = 11;
              TYPE_MAIN = 12;
              TYPE_OTHER_FAX = 13;
              TYPE_RADIO = 14;
              TYPE_TELEX = 15;
              TYPE_TTY_TDD = 16;
              TYPE_WORK_MOBILE = 17;
              TYPE_WORK_PAGER = 18;
              TYPE_ASSISTANT = 19;
              TYPE_MMS = 20;
              NUMBER = 'data1';
          public
            class function getTypeLabelResource(para1: jint): jint; static; overload; final;
            class function getTypeLabel(para1: ACRResources; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
          end;

          InnerNickname = class sealed external 'android.provider' name 'Nickname' (JLObject, APContactsContract.InnerDataColumnsWithJoins, APContactsContract.InnerCommonDataKinds.InnerCommonColumns)
          public
            const
              CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/nickname';
              TYPE_DEFAULT = 1;
              TYPE_OTHER_NAME = 2;
              TYPE_MAIDEN_NAME = 3;
              TYPE_MAINDEN_NAME = 3;
              TYPE_SHORT_NAME = 4;
              TYPE_INITIALS = 5;
              NAME = 'data1';
          end;

      end;

      InnerData = class sealed external 'android.provider' name 'Data' (JLObject, APContactsContract.InnerDataColumnsWithJoins)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/data';
      public
        class function getContactLookupUri(para1: ACContentResolver; para2: ANUri): ANUri; static; overload;
      end;

      InnerGroups = class sealed external 'android.provider' name 'Groups' (JLObject, APBaseColumns, APContactsContract.InnerGroupsColumns, APContactsContract.InnerSyncColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_SUMMARY_URI: ANUri; external name 'CONTENT_SUMMARY_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/group';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/group';
      public
        class function newEntityIterator(para1: ADCursor): ACEntityIterator; static; overload;
      end;

      InnerRawContacts = class sealed external 'android.provider' name 'RawContacts' (JLObject, APBaseColumns, APContactsContract.InnerRawContactsColumns, APContactsContract.InnerContactOptionsColumns, APContactsContract.InnerContactNameColumns, APContactsContract.InnerSyncColumns)
      public
        type
          InnerDisplayPhoto = class;
          Arr1InnerDisplayPhoto = array of InnerDisplayPhoto;
          Arr2InnerDisplayPhoto = array of Arr1InnerDisplayPhoto;
          Arr3InnerDisplayPhoto = array of Arr2InnerDisplayPhoto;
          InnerEntity = class;
          Arr1InnerEntity = array of InnerEntity;
          Arr2InnerEntity = array of Arr1InnerEntity;
          Arr3InnerEntity = array of Arr2InnerEntity;
          InnerData = class;
          Arr1InnerData = array of InnerData;
          Arr2InnerData = array of Arr1InnerData;
          Arr3InnerData = array of Arr2InnerData;
          InnerDisplayPhoto = class sealed external 'android.provider' name 'DisplayPhoto' (JLObject)
          public
            const
              CONTENT_DIRECTORY = 'display_photo';
          end;

          InnerEntity = class sealed external 'android.provider' name 'Entity' (JLObject, APBaseColumns, APContactsContract.InnerDataColumns)
          public
            const
              CONTENT_DIRECTORY = 'entity';
              DATA_ID = 'data_id';
          end;

          InnerData = class sealed external 'android.provider' name 'Data' (JLObject, APBaseColumns, APContactsContract.InnerDataColumns)
          public
            const
              CONTENT_DIRECTORY = 'data';
          end;

      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/raw_contact';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/raw_contact';
          AGGREGATION_MODE_DEFAULT = 0;
          AGGREGATION_MODE_IMMEDIATE = 1;
          AGGREGATION_MODE_SUSPENDED = 2;
          AGGREGATION_MODE_DISABLED = 3;
      public
        class function getContactLookupUri(para1: ACContentResolver; para2: ANUri): ANUri; static; overload;
        class function newEntityIterator(para1: ADCursor): ACEntityIterator; static; overload;
      end;

      InnerContacts = class external 'android.provider' name 'Contacts' (JLObject, APBaseColumns, APContactsContract.InnerContactsColumns, APContactsContract.InnerContactOptionsColumns, APContactsContract.InnerContactNameColumns, APContactsContract.InnerContactStatusColumns)
      public
        type
          InnerPhoto = class;
          Arr1InnerPhoto = array of InnerPhoto;
          Arr2InnerPhoto = array of Arr1InnerPhoto;
          Arr3InnerPhoto = array of Arr2InnerPhoto;
          InnerAggregationSuggestions = class;
          Arr1InnerAggregationSuggestions = array of InnerAggregationSuggestions;
          Arr2InnerAggregationSuggestions = array of Arr1InnerAggregationSuggestions;
          Arr3InnerAggregationSuggestions = array of Arr2InnerAggregationSuggestions;
          InnerData = class;
          Arr1InnerData = array of InnerData;
          Arr2InnerData = array of Arr1InnerData;
          Arr3InnerData = array of Arr2InnerData;
          InnerEntity = class;
          Arr1InnerEntity = array of InnerEntity;
          Arr2InnerEntity = array of Arr1InnerEntity;
          Arr3InnerEntity = array of Arr2InnerEntity;
          InnerPhoto = class sealed external 'android.provider' name 'Photo' (JLObject, APBaseColumns, APContactsContract.InnerDataColumnsWithJoins)
          public
            const
              CONTENT_DIRECTORY = 'photo';
              DISPLAY_PHOTO = 'display_photo';
              PHOTO_FILE_ID = 'data14';
              PHOTO = 'data15';
          end;

          InnerAggregationSuggestions = class sealed external 'android.provider' name 'AggregationSuggestions' (JLObject, APBaseColumns, APContactsContract.InnerContactsColumns, APContactsContract.InnerContactOptionsColumns, APContactsContract.InnerContactStatusColumns)
          public
            const
              CONTENT_DIRECTORY = 'suggestions';
          end;

          InnerData = class sealed external 'android.provider' name 'Data' (JLObject, APBaseColumns, APContactsContract.InnerDataColumns)
          public
            const
              CONTENT_DIRECTORY = 'data';
          end;

          InnerEntity = class sealed external 'android.provider' name 'Entity' (JLObject, APBaseColumns, APContactsContract.InnerContactsColumns, APContactsContract.InnerContactNameColumns, APContactsContract.InnerRawContactsColumns, APContactsContract.InnerBaseSyncColumns, APContactsContract.InnerSyncColumns, APContactsContract.InnerDataColumns, APContactsContract.InnerStatusColumns, APContactsContract.InnerContactOptionsColumns, APContactsContract.InnerContactStatusColumns)
          public
            const
              CONTENT_DIRECTORY = 'entities';
              RAW_CONTACT_ID = 'raw_contact_id';
              DATA_ID = 'data_id';
          end;

      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_LOOKUP_URI: ANUri; external name 'CONTENT_LOOKUP_URI';
          fCONTENT_VCARD_URI: ANUri; external name 'CONTENT_VCARD_URI';
          fCONTENT_FILTER_URI: ANUri; external name 'CONTENT_FILTER_URI';
          fCONTENT_STREQUENT_URI: ANUri; external name 'CONTENT_STREQUENT_URI';
          fCONTENT_STREQUENT_FILTER_URI: ANUri; external name 'CONTENT_STREQUENT_FILTER_URI';
          fCONTENT_GROUP_URI: ANUri; external name 'CONTENT_GROUP_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/contact';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/contact';
          CONTENT_VCARD_TYPE = 'text/x-vcard';
      public
        class function getLookupUri(para1: ACContentResolver; para2: ANUri): ANUri; static; overload;
        class function getLookupUri(para1: jlong; para2: JLString): ANUri; static; overload;
        class function lookupContact(para1: ACContentResolver; para2: ANUri): ANUri; static; overload;
        class procedure markAsContacted(para1: ACContentResolver; para2: jlong); static; overload;
        class function openContactPhotoInputStream(para1: ACContentResolver; para2: ANUri; para3: jboolean): JIInputStream; static; overload;
        class function openContactPhotoInputStream(para1: ACContentResolver; para2: ANUri): JIInputStream; static; overload;
      end;

  public
    const
      AUTHORITY = 'com.android.contacts';
  public
    final class var
      fAUTHORITY_URI: ANUri; external name 'AUTHORITY_URI';
  public
    const
      CALLER_IS_SYNCADAPTER = 'caller_is_syncadapter';
      DIRECTORY_PARAM_KEY = 'directory';
      LIMIT_PARAM_KEY = 'limit';
      PRIMARY_ACCOUNT_NAME = 'name_for_primary_account';
      PRIMARY_ACCOUNT_TYPE = 'type_for_primary_account';
  public
    constructor create(); overload;
    class function isProfileId(para1: jlong): jboolean; static; overload;
  end;

  ARProgramFragment = class external 'android.renderscript' name 'ProgramFragment' (ARProgram)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.renderscript' name 'Builder' (ARProgram.InnerBaseProgramBuilder)
      public
        constructor create(para1: ARRenderScript); overload;
        function create_(): ARProgramFragment; external name 'create'; overload; virtual;
      end;

  end;

  ARProgramVertex = class external 'android.renderscript' name 'ProgramVertex' (ARProgram)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.renderscript' name 'Builder' (ARProgram.InnerBaseProgramBuilder)
      public
        constructor create(para1: ARRenderScript); overload;
        function addInput(para1: ARElement): ARProgramVertex.InnerBuilder; overload; virtual;  // throws java.lang.IllegalStateException
        function create_(): ARProgramVertex; external name 'create'; overload; virtual;
      end;

  end;

  ARScriptC = class external 'android.renderscript' name 'ScriptC' (ARScript)
  strict protected
    constructor create(para1: jint; para2: ARRenderScript); overload;
    constructor create(para1: ARRenderScript; para2: ACRResources; para3: jint); overload;
  end;

  ARAllocationAdapter = class external 'android.renderscript' name 'AllocationAdapter' (ARAllocation)
  public
    procedure setLOD(para1: jint); overload; virtual;
    procedure setFace(para1: ARType.InnerCubemapFace); overload; virtual;
    procedure setY(para1: jint); overload; virtual;
    procedure setZ(para1: jint); overload; virtual;
    class function create1D(para1: ARRenderScript; para2: ARAllocation): ARAllocationAdapter; static; overload;
    class function create2D(para1: ARRenderScript; para2: ARAllocation): ARAllocationAdapter; static; overload;
    procedure resize(para1: jint); overload; virtual;
  end;

  ATPhoneNumberFormattingTextWatcher = class external 'android.telephony' name 'PhoneNumberFormattingTextWatcher' (JLObject, ATTextWatcher)
  public
    constructor create(); overload;
    procedure beforeTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure afterTextChanged(para1: ATEditable); overload; virtual;
  end;

  ATMPasswordTransformationMethod = class external 'android.text.method' name 'PasswordTransformationMethod' (JLObject, ATMTransformationMethod, ATTextWatcher)
  public
    constructor create(); overload;
    function getTransformation(para1: JLCharSequence; para2: AVView): JLCharSequence; overload; virtual;
    class function getInstance(): ATMPasswordTransformationMethod; static; overload;
    procedure beforeTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure afterTextChanged(para1: ATEditable); overload; virtual;
    procedure onFocusChanged(para1: AVView; para2: JLCharSequence; para3: jboolean; para4: jint; para5: AGRect); overload; virtual;
  end;

  ATMNumberKeyListener = class abstract external 'android.text.method' name 'NumberKeyListener' (ATMBaseKeyListener, ATInputFilter)
  public
    constructor create(); overload;
  strict protected
    function getAcceptedChars(): Arr1jchar; overload; virtual; abstract;
    function lookup(para1: AVKeyEvent; para2: ATSpannable): jint; overload; virtual;
  public
    function filter(para1: JLCharSequence; para2: jint; para3: jint; para4: ATSpanned; para5: jint; para6: jint): JLCharSequence; overload; virtual;
  strict protected
    class function ok(para1: Arr1jchar; para2: jchar): jboolean; static; overload;
    class function ok(var para1: array of jchar; para2: jchar): jboolean; static; overload;
  public
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
  end;

  ATMTextKeyListener = class external 'android.text.method' name 'TextKeyListener' (ATMBaseKeyListener, ATSpanWatcher)
  public
    type
      InnerCapitalize = class;
      Arr1InnerCapitalize = array of InnerCapitalize;
      Arr2InnerCapitalize = array of Arr1InnerCapitalize;
      Arr3InnerCapitalize = array of Arr2InnerCapitalize;
      InnerCapitalize = class sealed external 'android.text.method' name 'Capitalize' (JLEnum)
      public
        final class var
          fCHARACTERS: ATMTextKeyListener.InnerCapitalize; external name 'CHARACTERS';
          fNONE: ATMTextKeyListener.InnerCapitalize; external name 'NONE';
          fSENTENCES: ATMTextKeyListener.InnerCapitalize; external name 'SENTENCES';
          fWORDS: ATMTextKeyListener.InnerCapitalize; external name 'WORDS';
      public
        class function values(): ATMTextKeyListener.Arr1InnerCapitalize; static; overload;
        class function valueOf(para1: JLString): ATMTextKeyListener.InnerCapitalize; static; overload;
      end;

  public
    constructor create(para1: ATMTextKeyListener.InnerCapitalize; para2: jboolean); overload;
    class function getInstance(para1: jboolean; para2: ATMTextKeyListener.InnerCapitalize): ATMTextKeyListener; static; overload;
    class function getInstance(): ATMTextKeyListener; static; overload;
    class function shouldCap(para1: ATMTextKeyListener.InnerCapitalize; para2: JLCharSequence; para3: jint): jboolean; static; overload;
    function getInputType(): jint; overload; virtual;
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    function onKeyOther(para1: AVView; para2: ATEditable; para3: AVKeyEvent): jboolean; overload; virtual;
    class procedure clear(para1: ATEditable); static; overload;
    procedure onSpanAdded(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint); overload; virtual;
    procedure onSpanRemoved(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint); overload; virtual;
    procedure onSpanChanged(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure release(); overload; virtual;
  end;

  ATMArrowKeyMovementMethod = class external 'android.text.method' name 'ArrowKeyMovementMethod' (ATMBaseMovementMethod, ATMMovementMethod)
  public
    constructor create(); overload;
  strict protected
    function handleMovementKey(para1: AWTextView; para2: ATSpannable; para3: jint; para4: jint; para5: AVKeyEvent): jboolean; overload; virtual;
    function left(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function right(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function up(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function down(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function pageUp(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function pageDown(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function top(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function bottom(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function lineStart(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function lineEnd(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function home(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function &end(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
  public
    function onTouchEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload; virtual;
    function canSelectArbitrarily(): jboolean; overload; virtual;
    procedure initialize(para1: AWTextView; para2: ATSpannable); overload; virtual;
    procedure onTakeFocus(para1: AWTextView; para2: ATSpannable; para3: jint); overload; virtual;
    class function getInstance(): ATMMovementMethod; static; overload;
  end;

  ATMScrollingMovementMethod = class external 'android.text.method' name 'ScrollingMovementMethod' (ATMBaseMovementMethod, ATMMovementMethod)
  public
    constructor create(); overload;
  strict protected
    function left(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function right(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function up(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function down(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function pageUp(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function pageDown(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function top(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function bottom(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function lineStart(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function lineEnd(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function home(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function &end(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
  public
    function onTouchEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload; virtual;
    procedure onTakeFocus(para1: AWTextView; para2: ATSpannable; para3: jint); overload; virtual;
    class function getInstance(): ATMMovementMethod; static; overload;
  end;

  ATMHideReturnsTransformationMethod = class external 'android.text.method' name 'HideReturnsTransformationMethod' (ATMReplacementTransformationMethod)
  public
    constructor create(); overload;
  strict protected
    function getOriginal(): Arr1jchar; overload; virtual;
    function getReplacement(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMHideReturnsTransformationMethod; static; overload;
  end;

  ATMSingleLineTransformationMethod = class external 'android.text.method' name 'SingleLineTransformationMethod' (ATMReplacementTransformationMethod)
  public
    constructor create(); overload;
  strict protected
    function getOriginal(): Arr1jchar; overload; virtual;
    function getReplacement(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMSingleLineTransformationMethod; static; overload;
  end;

  ATSLeadingMarginSpan = interface external 'android.text.style' name 'LeadingMarginSpan' (ATSParagraphStyle)
    type
      InnerStandard = class;
      Arr1InnerStandard = array of InnerStandard;
      Arr2InnerStandard = array of Arr1InnerStandard;
      Arr3InnerStandard = array of Arr2InnerStandard;
      InnerLeadingMarginSpan2 = interface;
      Arr1InnerLeadingMarginSpan2 = array of InnerLeadingMarginSpan2;
      Arr2InnerLeadingMarginSpan2 = array of Arr1InnerLeadingMarginSpan2;
      Arr3InnerLeadingMarginSpan2 = array of Arr2InnerLeadingMarginSpan2;
      InnerStandard = class external 'android.text.style' name 'Standard' (JLObject, ATSLeadingMarginSpan, ATParcelableSpan)
      public
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: AOParcel); overload;
        function getSpanTypeId(): jint; overload; virtual;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        function getLeadingMargin(para1: jboolean): jint; overload; virtual;
        procedure drawLeadingMargin(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jboolean; para12: ATLayout); overload; virtual;
      end;

      InnerLeadingMarginSpan2 = interface external 'android.text.style' name 'LeadingMarginSpan2' (ATSLeadingMarginSpan, ATSWrapTogetherSpan)
        function getLeadingMarginLineCount(): jint; overload;
      end;

    function getLeadingMargin(para1: jboolean): jint; overload;
    procedure drawLeadingMargin(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jboolean; para12: ATLayout); overload;
  end;

  ATSLineHeightSpan = interface external 'android.text.style' name 'LineHeightSpan' (ATSParagraphStyle, ATSWrapTogetherSpan)
    type
      InnerWithDensity = interface;
      Arr1InnerWithDensity = array of InnerWithDensity;
      Arr2InnerWithDensity = array of Arr1InnerWithDensity;
      Arr3InnerWithDensity = array of Arr2InnerWithDensity;
      InnerWithDensity = interface external 'android.text.style' name 'WithDensity' (ATSLineHeightSpan)
        procedure chooseHeight(para1: JLCharSequence; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGPaint.InnerFontMetricsInt; para7: ATTextPaint); overload;
      end;

    procedure chooseHeight(para1: JLCharSequence; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGPaint.InnerFontMetricsInt); overload;
  end;

  ATSURLSpan = class external 'android.text.style' name 'URLSpan' (ATSClickableSpan, ATParcelableSpan)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getURL(): JLString; overload; virtual;
    procedure onClick(para1: AVView); overload; virtual;
  end;

  ATSMetricAffectingSpan = class abstract external 'android.text.style' name 'MetricAffectingSpan' (ATSCharacterStyle, ATSUpdateLayout)
  public
    constructor create(); overload;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual; abstract;
    function getUnderlying(): ATSMetricAffectingSpan; overload; virtual;
    function getUnderlying(): ATSCharacterStyle; overload; virtual;
  end;

  AVMenuItem = interface external 'android.view' name 'MenuItem' 
    type
      InnerOnActionExpandListener = interface;
      Arr1InnerOnActionExpandListener = array of InnerOnActionExpandListener;
      Arr2InnerOnActionExpandListener = array of Arr1InnerOnActionExpandListener;
      Arr3InnerOnActionExpandListener = array of Arr2InnerOnActionExpandListener;
      InnerOnMenuItemClickListener = interface;
      Arr1InnerOnMenuItemClickListener = array of InnerOnMenuItemClickListener;
      Arr2InnerOnMenuItemClickListener = array of Arr1InnerOnMenuItemClickListener;
      Arr3InnerOnMenuItemClickListener = array of Arr2InnerOnMenuItemClickListener;
      InnerOnActionExpandListener = interface external 'android.view' name 'OnActionExpandListener' 
        function onMenuItemActionExpand(para1: AVMenuItem): jboolean; overload;
        function onMenuItemActionCollapse(para1: AVMenuItem): jboolean; overload;
      end;

      InnerOnMenuItemClickListener = interface external 'android.view' name 'OnMenuItemClickListener' 
        function onMenuItemClick(para1: AVMenuItem): jboolean; overload;
      end;

    const
      SHOW_AS_ACTION_NEVER = 0;
      SHOW_AS_ACTION_IF_ROOM = 1;
      SHOW_AS_ACTION_ALWAYS = 2;
      SHOW_AS_ACTION_WITH_TEXT = 4;
      SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8;
    function getItemId(): jint; overload;
    function getGroupId(): jint; overload;
    function getOrder(): jint; overload;
    function setTitle(para1: JLCharSequence): AVMenuItem; overload;
    function setTitle(para1: jint): AVMenuItem; overload;
    function getTitle(): JLCharSequence; overload;
    function setTitleCondensed(para1: JLCharSequence): AVMenuItem; overload;
    function getTitleCondensed(): JLCharSequence; overload;
    function setIcon(para1: AGDDrawable): AVMenuItem; overload;
    function setIcon(para1: jint): AVMenuItem; overload;
    function getIcon(): AGDDrawable; overload;
    function setIntent(para1: ACIntent): AVMenuItem; overload;
    function getIntent(): ACIntent; overload;
    function setShortcut(para1: jchar; para2: jchar): AVMenuItem; overload;
    function setNumericShortcut(para1: jchar): AVMenuItem; overload;
    function getNumericShortcut(): jchar; overload;
    function setAlphabeticShortcut(para1: jchar): AVMenuItem; overload;
    function getAlphabeticShortcut(): jchar; overload;
    function setCheckable(para1: jboolean): AVMenuItem; overload;
    function isCheckable(): jboolean; overload;
    function setChecked(para1: jboolean): AVMenuItem; overload;
    function isChecked(): jboolean; overload;
    function setVisible(para1: jboolean): AVMenuItem; overload;
    function isVisible(): jboolean; overload;
    function setEnabled(para1: jboolean): AVMenuItem; overload;
    function isEnabled(): jboolean; overload;
    function hasSubMenu(): jboolean; overload;
    function getSubMenu(): AVSubMenu; overload;
    function setOnMenuItemClickListener(para1: AVMenuItem.InnerOnMenuItemClickListener): AVMenuItem; overload;
    function getMenuInfo(): AVContextMenu.InnerContextMenuInfo; overload;
    procedure setShowAsAction(para1: jint); overload;
    function setShowAsActionFlags(para1: jint): AVMenuItem; overload;
    function setActionView(para1: AVView): AVMenuItem; overload;
    function setActionView(para1: jint): AVMenuItem; overload;
    function getActionView(): AVView; overload;
    function setActionProvider(para1: AVActionProvider): AVMenuItem; overload;
    function getActionProvider(): AVActionProvider; overload;
    function expandActionView(): jboolean; overload;
    function collapseActionView(): jboolean; overload;
    function isActionViewExpanded(): jboolean; overload;
    function setOnActionExpandListener(para1: AVMenuItem.InnerOnActionExpandListener): AVMenuItem; overload;
  end;

  AVWindow = class abstract external 'android.view' name 'Window' (JLObject)
  public
    type
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerCallback = interface external 'android.view' name 'Callback' 
        function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload;
        function dispatchKeyShortcutEvent(para1: AVKeyEvent): jboolean; overload;
        function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload;
        function dispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload;
        function dispatchGenericMotionEvent(para1: AVMotionEvent): jboolean; overload;
        function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload;
        function onCreatePanelView(para1: jint): AVView; overload;
        function onCreatePanelMenu(para1: jint; para2: AVMenu): jboolean; overload;
        function onPreparePanel(para1: jint; para2: AVView; para3: AVMenu): jboolean; overload;
        function onMenuOpened(para1: jint; para2: AVMenu): jboolean; overload;
        function onMenuItemSelected(para1: jint; para2: AVMenuItem): jboolean; overload;
        procedure onWindowAttributesChanged(para1: AVWindowManager.InnerLayoutParams); overload;
        procedure onContentChanged(); overload;
        procedure onWindowFocusChanged(para1: jboolean); overload;
        procedure onAttachedToWindow(); overload;
        procedure onDetachedFromWindow(); overload;
        procedure onPanelClosed(para1: jint; para2: AVMenu); overload;
        function onSearchRequested(): jboolean; overload;
        function onWindowStartingActionMode(para1: AVActionMode.InnerCallback): AVActionMode; overload;
        procedure onActionModeStarted(para1: AVActionMode); overload;
        procedure onActionModeFinished(para1: AVActionMode); overload;
      end;

  public
    const
      FEATURE_OPTIONS_PANEL = 0;
      FEATURE_NO_TITLE = 1;
      FEATURE_PROGRESS = 2;
      FEATURE_LEFT_ICON = 3;
      FEATURE_RIGHT_ICON = 4;
      FEATURE_INDETERMINATE_PROGRESS = 5;
      FEATURE_CONTEXT_MENU = 6;
      FEATURE_CUSTOM_TITLE = 7;
      FEATURE_ACTION_BAR = 8;
      FEATURE_ACTION_BAR_OVERLAY = 9;
      FEATURE_ACTION_MODE_OVERLAY = 10;
      PROGRESS_VISIBILITY_ON = -1;
      PROGRESS_VISIBILITY_OFF = -2;
      PROGRESS_INDETERMINATE_ON = -3;
      PROGRESS_INDETERMINATE_OFF = -4;
      PROGRESS_START = 0;
      PROGRESS_END = 10000;
      PROGRESS_SECONDARY_START = 20000;
      PROGRESS_SECONDARY_END = 30000;
  strict protected
    const
      DEFAULT_FEATURES = 65;
  public
    const
      ID_ANDROID_CONTENT = 16908290;
  public
    constructor create(para1: ACContext); overload;
    function getContext(): ACContext; overload; virtual; final;
    function getWindowStyle(): ACRTypedArray; overload; virtual; final;
    procedure setContainer(para1: AVWindow); overload; virtual;
    function getContainer(): AVWindow; overload; virtual; final;
    function hasChildren(): jboolean; overload; virtual; final;
    procedure setWindowManager(para1: AVWindowManager; para2: AOIBinder; para3: JLString); overload; virtual;
    procedure setWindowManager(para1: AVWindowManager; para2: AOIBinder; para3: JLString; para4: jboolean); overload; virtual;
    function getWindowManager(): AVWindowManager; overload; virtual;
    procedure setCallback(para1: AVWindow.InnerCallback); overload; virtual;
    function getCallback(): AVWindow.InnerCallback; overload; virtual; final;
    procedure takeSurface(para1: AVSurfaceHolder.InnerCallback2); overload; virtual; abstract;
    procedure takeInputQueue(para1: AVInputQueue.InnerCallback); overload; virtual; abstract;
    function isFloating(): jboolean; overload; virtual; abstract;
    procedure setLayout(para1: jint; para2: jint); overload; virtual;
    procedure setGravity(para1: jint); overload; virtual;
    procedure setType(para1: jint); overload; virtual;
    procedure setFormat(para1: jint); overload; virtual;
    procedure setWindowAnimations(para1: jint); overload; virtual;
    procedure setSoftInputMode(para1: jint); overload; virtual;
    procedure addFlags(para1: jint); overload; virtual;
    procedure clearFlags(para1: jint); overload; virtual;
    procedure setFlags(para1: jint; para2: jint); overload; virtual;
    procedure setDimAmount(para1: jfloat); overload; virtual;
    procedure setAttributes(para1: AVWindowManager.InnerLayoutParams); overload; virtual;
    function getAttributes(): AVWindowManager.InnerLayoutParams; overload; virtual; final;
  strict protected
    function getForcedWindowFlags(): jint; overload; virtual; final;
    function hasSoftInputMode(): jboolean; overload; virtual; final;
  public
    function requestFeature(para1: jint): jboolean; overload; virtual;
    procedure makeActive(); overload; virtual; final;
    function isActive(): jboolean; overload; virtual; final;
    function findViewById(para1: jint): AVView; overload; virtual;
    procedure setContentView(para1: jint); overload; virtual; abstract;
    procedure setContentView(para1: AVView); overload; virtual; abstract;
    procedure setContentView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual; abstract;
    procedure addContentView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual; abstract;
    function getCurrentFocus(): AVView; overload; virtual; abstract;
    function getLayoutInflater(): AVLayoutInflater; overload; virtual; abstract;
    procedure setTitle(para1: JLCharSequence); overload; virtual; abstract;
    procedure setTitleColor(para1: jint); overload; virtual; abstract;
    procedure openPanel(para1: jint; para2: AVKeyEvent); overload; virtual; abstract;
    procedure closePanel(para1: jint); overload; virtual; abstract;
    procedure togglePanel(para1: jint; para2: AVKeyEvent); overload; virtual; abstract;
    procedure invalidatePanelMenu(para1: jint); overload; virtual; abstract;
    function performPanelShortcut(para1: jint; para2: jint; para3: AVKeyEvent; para4: jint): jboolean; overload; virtual; abstract;
    function performPanelIdentifierAction(para1: jint; para2: jint; para3: jint): jboolean; overload; virtual; abstract;
    procedure closeAllPanels(); overload; virtual; abstract;
    function performContextMenuIdentifierAction(para1: jint; para2: jint): jboolean; overload; virtual; abstract;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual; abstract;
    procedure setBackgroundDrawableResource(para1: jint); overload; virtual;
    procedure setBackgroundDrawable(para1: AGDDrawable); overload; virtual; abstract;
    procedure setFeatureDrawableResource(para1: jint; para2: jint); overload; virtual; abstract;
    procedure setFeatureDrawableUri(para1: jint; para2: ANUri); overload; virtual; abstract;
    procedure setFeatureDrawable(para1: jint; para2: AGDDrawable); overload; virtual; abstract;
    procedure setFeatureDrawableAlpha(para1: jint; para2: jint); overload; virtual; abstract;
    procedure setFeatureInt(para1: jint; para2: jint); overload; virtual; abstract;
    procedure takeKeyEvents(para1: jboolean); overload; virtual; abstract;
    function superDispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual; abstract;
    function superDispatchKeyShortcutEvent(para1: AVKeyEvent): jboolean; overload; virtual; abstract;
    function superDispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual; abstract;
    function superDispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual; abstract;
    function superDispatchGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual; abstract;
    function getDecorView(): AVView; overload; virtual; abstract;
    function peekDecorView(): AVView; overload; virtual; abstract;
    function saveHierarchyState(): AOBundle; overload; virtual; abstract;
    procedure restoreHierarchyState(para1: AOBundle); overload; virtual; abstract;
  strict protected
    procedure onActive(); overload; virtual; abstract;
    function getFeatures(): jint; overload; virtual; final;
  public
    function hasFeature(para1: jint): jboolean; overload; virtual;
  strict protected
    function getLocalFeatures(): jint; overload; virtual; final;
    procedure setDefaultWindowFormat(para1: jint); overload; virtual;
  public
    procedure setChildDrawable(para1: jint; para2: AGDDrawable); overload; virtual; abstract;
    procedure setChildInt(para1: jint; para2: jint); overload; virtual; abstract;
    function isShortcutKey(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual; abstract;
    procedure setVolumeControlStream(para1: jint); overload; virtual; abstract;
    function getVolumeControlStream(): jint; overload; virtual; abstract;
    procedure setUiOptions(para1: jint); overload; virtual;
    procedure setUiOptions(para1: jint; para2: jint); overload; virtual;
  end;

  AWWrapperListAdapter = interface external 'android.widget' name 'WrapperListAdapter' (AWListAdapter)
    function getWrappedAdapter(): AWListAdapter; overload;
  end;

  AWBaseAdapter = class abstract external 'android.widget' name 'BaseAdapter' (JLObject, AWListAdapter, AWSpinnerAdapter)
  public
    constructor create(); overload;
    function hasStableIds(): jboolean; overload; virtual;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure notifyDataSetChanged(); overload; virtual;
    procedure notifyDataSetInvalidated(); overload; virtual;
    function areAllItemsEnabled(): jboolean; overload; virtual;
    function isEnabled(para1: jint): jboolean; overload; virtual;
    function getDropDownView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    function getItemViewType(para1: jint): jint; overload; virtual;
    function getViewTypeCount(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
  end;

  AWCursorTreeAdapter = class abstract external 'android.widget' name 'CursorTreeAdapter' (AWBaseExpandableListAdapter, AWFilterable)
  public
    constructor create(para1: ADCursor; para2: ACContext); overload;
    constructor create(para1: ADCursor; para2: ACContext; para3: jboolean); overload;
  strict protected
    function getChildrenCursor(para1: ADCursor): ADCursor; overload; virtual; abstract;
  public
    procedure setGroupCursor(para1: ADCursor); overload; virtual;
    procedure setChildrenCursor(para1: jint; para2: ADCursor); overload; virtual;
    function getChild(para1: jint; para2: jint): ADCursor; overload; virtual;
    function getChildId(para1: jint; para2: jint): jlong; overload; virtual;
    function getChildrenCount(para1: jint): jint; overload; virtual;
    function getGroup(para1: jint): ADCursor; overload; virtual;
    function getGroupCount(): jint; overload; virtual;
    function getGroupId(para1: jint): jlong; overload; virtual;
    function getGroupView(para1: jint; para2: jboolean; para3: AVView; para4: AVViewGroup): AVView; overload; virtual;
  strict protected
    function newGroupView(para1: ACContext; para2: ADCursor; para3: jboolean; para4: AVViewGroup): AVView; overload; virtual; abstract;
    procedure bindGroupView(para1: AVView; para2: ACContext; para3: ADCursor; para4: jboolean); overload; virtual; abstract;
  public
    function getChildView(para1: jint; para2: jint; para3: jboolean; para4: AVView; para5: AVViewGroup): AVView; overload; virtual;
  strict protected
    function newChildView(para1: ACContext; para2: ADCursor; para3: jboolean; para4: AVViewGroup): AVView; overload; virtual; abstract;
    procedure bindChildView(para1: AVView; para2: ACContext; para3: ADCursor; para4: jboolean); overload; virtual; abstract;
  public
    function isChildSelectable(para1: jint; para2: jint): jboolean; overload; virtual;
    function hasStableIds(): jboolean; overload; virtual;
    procedure notifyDataSetChanged(); overload; virtual;
    procedure notifyDataSetChanged(para1: jboolean); overload; virtual;
    procedure notifyDataSetInvalidated(); overload; virtual;
    procedure onGroupCollapsed(para1: jint); overload; virtual;
    function convertToString(para1: ADCursor): JLString; overload; virtual;
    function runQueryOnBackgroundThread(para1: JLCharSequence): ADCursor; overload; virtual;
    function getFilter(): AWFilter; overload; virtual;
    function getFilterQueryProvider(): AWFilterQueryProvider; overload; virtual;
    procedure setFilterQueryProvider(para1: AWFilterQueryProvider); overload; virtual;
    procedure changeCursor(para1: ADCursor); overload; virtual;
    function getCursor(): ADCursor; overload; virtual;
    function getChild(para1: jint; para2: jint): JLObject; overload; virtual;
    function getGroup(para1: jint): JLObject; overload; virtual;
  end;

  AWSimpleExpandableListAdapter = class external 'android.widget' name 'SimpleExpandableListAdapter' (AWBaseExpandableListAdapter)
  public
    constructor create(para1: ACContext; para2: JUList; para3: jint; para4: Arr1JLString; para5: Arr1jint; para6: JUList; para7: jint; para8: Arr1JLString; para9: Arr1jint); overload;
    constructor create(para1: ACContext; para2: JUList; para3: jint; const para4: array of JLString; const para5: array of jint; para6: JUList; para7: jint; const para8: array of JLString; const para9: array of jint); overload;
    constructor create(para1: ACContext; para2: JUList; para3: jint; para4: jint; para5: Arr1JLString; para6: Arr1jint; para7: JUList; para8: jint; para9: Arr1JLString; para10: Arr1jint); overload;
    constructor create(para1: ACContext; para2: JUList; para3: jint; para4: jint; const para5: array of JLString; const para6: array of jint; para7: JUList; para8: jint; const para9: array of JLString; const para10: array of jint); overload;
    constructor create(para1: ACContext; para2: JUList; para3: jint; para4: jint; para5: Arr1JLString; para6: Arr1jint; para7: JUList; para8: jint; para9: jint; para10: Arr1JLString; para11: Arr1jint); overload;
    constructor create(para1: ACContext; para2: JUList; para3: jint; para4: jint; const para5: array of JLString; const para6: array of jint; para7: JUList; para8: jint; para9: jint; const para10: array of JLString; const para11: array of jint); overload;
    function getChild(para1: jint; para2: jint): JLObject; overload; virtual;
    function getChildId(para1: jint; para2: jint): jlong; overload; virtual;
    function getChildView(para1: jint; para2: jint; para3: jboolean; para4: AVView; para5: AVViewGroup): AVView; overload; virtual;
    function newChildView(para1: jboolean; para2: AVViewGroup): AVView; overload; virtual;
    function getChildrenCount(para1: jint): jint; overload; virtual;
    function getGroup(para1: jint): JLObject; overload; virtual;
    function getGroupCount(): jint; overload; virtual;
    function getGroupId(para1: jint): jlong; overload; virtual;
    function getGroupView(para1: jint; para2: jboolean; para3: AVView; para4: AVViewGroup): AVView; overload; virtual;
    function newGroupView(para1: jboolean; para2: AVViewGroup): AVView; overload; virtual;
    function isChildSelectable(para1: jint; para2: jint): jboolean; overload; virtual;
    function hasStableIds(): jboolean; overload; virtual;
  end;

  ANTBasicTagTechnology = class abstract external 'android.nfc.tech' name 'BasicTagTechnology' (JLObject, ANTTagTechnology)
  public
    function getTag(): ANTag; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    procedure connect(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  AABBackupDataInputStream = class external 'android.app.backup' name 'BackupDataInputStream' (JIInputStream)
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function getKey(): JLString; overload; virtual;
    function size(): jint; overload; virtual;
  end;

  JIByteArrayInputStream = class external 'java.io' name 'ByteArrayInputStream' (JIInputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fpos: jint; external name 'pos';
      fmark: jint; external name 'mark';
      fcount: jint; external name 'count';
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    function available(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    procedure reset(); overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;
  end;

  JIFileInputStream = class external 'java.io' name 'FileInputStream' (JIInputStream, JICloseable)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFileDescriptor); overload;
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  public
    function getChannel(): JNCFileChannel; overload; virtual;
    function getFD(): JIFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIFilterInputStream = class external 'java.io' name 'FilterInputStream' (JIInputStream)
  strict protected
    var
      fin: JIInputStream; external name 'in';
  strict protected
    constructor create(para1: JIInputStream); overload;
  public
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIPipedInputStream = class external 'java.io' name 'PipedInputStream' (JIInputStream)
  strict protected
    var
      fbuffer: Arr1jbyte; external name 'buffer';
      fin: jint; external name 'in';
      fout: jint; external name 'out';
  strict protected
    const
      PIPE_SIZE = 1024;
  public
    constructor create(); overload;
    constructor create(para1: JIPipedOutputStream); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;
    constructor create(para1: JIPipedOutputStream; para2: jint); overload;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JIPipedOutputStream); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  strict protected
    procedure receive(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  JISequenceInputStream = class external 'java.io' name 'SequenceInputStream' (JIInputStream)
  public
    constructor create(para1: JIInputStream; para2: JIInputStream); overload;
    constructor create(para1: JUEnumeration); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  end;

  JIStringBufferInputStream = class external 'java.io' name 'StringBufferInputStream' (JIInputStream)
  strict protected
    var
      fbuffer: JLString; external name 'buffer';
      fcount: jint; external name 'count';
      fpos: jint; external name 'pos';
  public
    constructor create(para1: JLString); overload;
    function available(): jint; overload; virtual;
    function read(): jint; overload; virtual;
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    procedure reset(); overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;
  end;

  OAHCEofSensorInputStream = class external 'org.apache.http.conn' name 'EofSensorInputStream' (JIInputStream, OAHCConnectionReleaseTrigger)
  strict protected
    var
      fwrappedStream: JIInputStream; external name 'wrappedStream';
  public
    constructor create(para1: JIInputStream; para2: OAHCEofSensorWatcher); overload;
  strict protected
    function isReadAllowed(): jboolean; overload; virtual;  // throws java.io.IOException
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure checkEOF(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure checkClose(); overload; virtual;  // throws java.io.IOException
    procedure checkAbort(); overload; virtual;  // throws java.io.IOException
  public
    procedure releaseConnection(); overload; virtual;  // throws java.io.IOException
    procedure abortConnection(); overload; virtual;  // throws java.io.IOException
  end;

  OAHIIChunkedInputStream = class external 'org.apache.http.impl.io' name 'ChunkedInputStream' (JIInputStream)
  public
    constructor create(para1: OAHISessionInputBuffer); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getFooters(): Arr1OAHHeader; overload; virtual;
  end;

  OAHIIContentLengthInputStream = class external 'org.apache.http.impl.io' name 'ContentLengthInputStream' (JIInputStream)
  public
    constructor create(para1: OAHISessionInputBuffer; para2: jlong); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  OAHIIIdentityInputStream = class external 'org.apache.http.impl.io' name 'IdentityInputStream' (JIInputStream)
  public
    constructor create(para1: OAHISessionInputBuffer); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  end;

  JIBufferedReader = class external 'java.io' name 'BufferedReader' (JIReader)
  public
    constructor create(para1: JIReader); overload;
    constructor create(para1: JIReader; para2: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JICharArrayReader = class external 'java.io' name 'CharArrayReader' (JIReader)
  strict protected
    var
      fbuf: Arr1jchar; external name 'buf';
      fpos: jint; external name 'pos';
      fmarkedPos: jint; external name 'markedPos';
      fcount: jint; external name 'count';
  public
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint); overload;
    procedure close(); overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIFilterReader = class abstract external 'java.io' name 'FilterReader' (JIReader)
  strict protected
    var
      fin: JIReader; external name 'in';
  strict protected
    constructor create(para1: JIReader); overload;
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIInputStreamReader = class external 'java.io' name 'InputStreamReader' (JIReader)
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIInputStream; para2: JNCCharsetDecoder); overload;
    constructor create(para1: JIInputStream; para2: JNCCharset); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getEncoding(): JLString; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
  end;

  JIPipedReader = class external 'java.io' name 'PipedReader' (JIReader)
  public
    constructor create(); overload;
    constructor create(para1: JIPipedWriter); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;
    constructor create(para1: JIPipedWriter; para2: jint); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JIPipedWriter); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
  end;

  JIStringReader = class external 'java.io' name 'StringReader' (JIReader)
  public
    constructor create(para1: JLString); overload;
    procedure close(); overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JNCInterruptibleChannel = interface external 'java.nio.channels' name 'InterruptibleChannel' (JNCChannel)
    procedure close(); overload;  // throws java.io.IOException
  end;

  JNCReadableByteChannel = interface external 'java.nio.channels' name 'ReadableByteChannel' (JNCChannel)
    function read(para1: JNByteBuffer): jint; overload;  // throws java.io.IOException
  end;

  JNCWritableByteChannel = interface external 'java.nio.channels' name 'WritableByteChannel' (JNCChannel)
    function write(para1: JNByteBuffer): jint; overload;  // throws java.io.IOException
  end;

  JIObjectInputStream = class external 'java.io' name 'ObjectInputStream' (JIInputStream, JIObjectInput, JIObjectStreamConstants)
  public
    type
      InnerGetField = class;
      Arr1InnerGetField = array of InnerGetField;
      Arr2InnerGetField = array of Arr1InnerGetField;
      Arr3InnerGetField = array of Arr2InnerGetField;
      InnerGetField = class abstract external 'java.io' name 'GetField' (JLObject)
      public
        constructor create(); overload;
        function getObjectStreamClass(): JIObjectStreamClass; overload; virtual; abstract;
        function defaulted(para1: JLString): jboolean; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jboolean): jboolean; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jchar): jchar; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jbyte): jbyte; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jshort): jshort; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jint): jint; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jlong): jlong; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jfloat): jfloat; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: jdouble): jdouble; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
        function get(para1: JLString; para2: JLObject): JLObject; overload; virtual; abstract;  // throws java.io.IOException, java.lang.IllegalArgumentException
      end;

  strict protected
    constructor create(); overload;  // throws java.io.IOException
  public
    constructor create(para1: JIInputStream); overload;  // throws java.io.StreamCorruptedException, java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure defaultReadObject(); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.io.NotActiveException
  strict protected
    function enableResolveObject(para1: jboolean): jboolean; overload; virtual;
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual;  // throws java.io.IOException
    function readFields(): JIObjectInputStream.InnerGetField; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.io.NotActiveException
    function readFloat(): jfloat; overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function readInt(): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual;  // throws java.io.IOException
  strict protected
    function readClassDescriptor(): JIObjectStreamClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function resolveProxyClass(para1: Arr1JLString): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function resolveProxyClass(var para1: array of JLString): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  public
    function readObject(): JLObject; overload; virtual; final;  // throws java.io.OptionalDataException, java.lang.ClassNotFoundException, java.io.IOException
    function readUnshared(): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  strict protected
    function readObjectOverride(): JLObject; overload; virtual;  // throws java.io.OptionalDataException, java.lang.ClassNotFoundException, java.io.IOException
  public
    function readShort(): jshort; overload; virtual;  // throws java.io.IOException
  strict protected
    procedure readStreamHeader(); overload; virtual;  // throws java.io.IOException, java.io.StreamCorruptedException
  public
    function readUnsignedByte(): jint; overload; virtual;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual;  // throws java.io.IOException
    procedure registerValidation(para1: JIObjectInputValidation; para2: jint); overload; virtual;  // throws java.io.NotActiveException, java.io.InvalidObjectException
  strict protected
    function resolveClass(para1: JIObjectStreamClass): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function resolveObject(para1: JLObject): JLObject; overload; virtual;  // throws java.io.IOException
  public
    function skipBytes(para1: jint): jint; overload; virtual;  // throws java.io.IOException
  end;

  JIByteArrayOutputStream = class external 'java.io' name 'ByteArrayOutputStream' (JIOutputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fcount: jint; external name 'count';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;
    function size(): jint; overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toString(para1: jint): JLString; overload; virtual;
    function toString(para1: JLString): JLString; overload; virtual;  // throws java.io.UnsupportedEncodingException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
  end;

  JIFileOutputStream = class external 'java.io' name 'FileOutputStream' (JIOutputStream, JICloseable)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: jboolean); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFileDescriptor); overload;
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.FileNotFoundException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  public
    function getChannel(): JNCFileChannel; overload; virtual;
    function getFD(): JIFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIFilterOutputStream = class external 'java.io' name 'FilterOutputStream' (JIOutputStream)
  strict protected
    var
      fout: JIOutputStream; external name 'out';
  public
    constructor create(para1: JIOutputStream); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIObjectOutputStream = class external 'java.io' name 'ObjectOutputStream' (JIOutputStream, JIObjectOutput, JIObjectStreamConstants)
  public
    type
      InnerPutField = class;
      Arr1InnerPutField = array of InnerPutField;
      Arr2InnerPutField = array of Arr1InnerPutField;
      Arr3InnerPutField = array of Arr2InnerPutField;
      InnerPutField = class abstract external 'java.io' name 'PutField' (JLObject)
      public
        constructor create(); overload;
        procedure put(para1: JLString; para2: jboolean); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jchar); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jbyte); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jshort); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jint); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jlong); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jfloat); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jdouble); overload; virtual; abstract;
        procedure put(para1: JLString; para2: JLObject); overload; virtual; abstract;
        procedure write(para1: JIObjectOutput); overload; virtual; abstract;  // throws java.io.IOException
      end;

  strict protected
    constructor create(); overload;  // throws java.io.IOException
  public
    constructor create(para1: JIOutputStream); overload;  // throws java.io.IOException
  strict protected
    procedure annotateClass(para1: JLClass); overload; virtual;  // throws java.io.IOException
    procedure annotateProxyClass(para1: JLClass); overload; virtual;  // throws java.io.IOException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure defaultWriteObject(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure drain(); overload; virtual;  // throws java.io.IOException
    function enableReplaceObject(para1: jboolean): jboolean; overload; virtual;
  public
    procedure flush(); overload; virtual;  // throws java.io.IOException
    function putFields(): JIObjectOutputStream.InnerPutField; overload; virtual;  // throws java.io.IOException
  strict protected
    function replaceObject(para1: JLObject): JLObject; overload; virtual;  // throws java.io.IOException
  public
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure useProtocolVersion(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual;  // throws java.io.IOException
    procedure writeFields(); overload; virtual;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure writeClassDescriptor(para1: JIObjectStreamClass); overload; virtual;  // throws java.io.IOException
  public
    procedure writeObject(para1: JLObject); overload; virtual; final;  // throws java.io.IOException
    procedure writeUnshared(para1: JLObject); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure writeObjectOverride(para1: JLObject); overload; virtual;  // throws java.io.IOException
  public
    procedure writeShort(para1: jint); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure writeStreamHeader(); overload; virtual;  // throws java.io.IOException
  public
    procedure writeUTF(para1: JLString); overload; virtual;  // throws java.io.IOException
  end;

  JIPipedOutputStream = class external 'java.io' name 'PipedOutputStream' (JIOutputStream)
  public
    constructor create(); overload;
    constructor create(para1: JIPipedInputStream); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JIPipedInputStream); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  OAHIIChunkedOutputStream = class external 'org.apache.http.impl.io' name 'ChunkedOutputStream' (JIOutputStream)
  public
    constructor create(para1: OAHISessionOutputBuffer; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: OAHISessionOutputBuffer); overload;  // throws java.io.IOException
  strict protected
    procedure flushCache(); overload; virtual;  // throws java.io.IOException
    procedure flushCacheWithAppend(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flushCacheWithAppend(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeClosingChunk(); overload; virtual;  // throws java.io.IOException
  public
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  OAHIIContentLengthOutputStream = class external 'org.apache.http.impl.io' name 'ContentLengthOutputStream' (JIOutputStream)
  public
    constructor create(para1: OAHISessionOutputBuffer; para2: jlong); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  OAHIIIdentityOutputStream = class external 'org.apache.http.impl.io' name 'IdentityOutputStream' (JIOutputStream)
  public
    constructor create(para1: OAHISessionOutputBuffer); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIBufferedWriter = class external 'java.io' name 'BufferedWriter' (JIWriter)
  public
    constructor create(para1: JIWriter); overload;
    constructor create(para1: JIWriter; para2: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure newLine(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JICharArrayWriter = class external 'java.io' name 'CharArrayWriter' (JIWriter)
  strict protected
    var
      fbuf: Arr1jchar; external name 'buf';
      fcount: jint; external name 'count';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure close(); overload; virtual;
    procedure flush(); overload; virtual;
    procedure reset(); overload; virtual;
    function size(): jint; overload; virtual;
    function toCharArray(): Arr1jchar; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure writeTo(para1: JIWriter); overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JICharArrayWriter; overload; virtual;
    function append(para1: JLCharSequence): JICharArrayWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JICharArrayWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JIFilterWriter = class abstract external 'java.io' name 'FilterWriter' (JIWriter)
  strict protected
    var
      fout: JIWriter; external name 'out';
  strict protected
    constructor create(para1: JIWriter); overload;
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIOutputStreamWriter = class external 'java.io' name 'OutputStreamWriter' (JIWriter)
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIOutputStream; para2: JNCCharset); overload;
    constructor create(para1: JIOutputStream; para2: JNCCharsetEncoder); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    function getEncoding(): JLString; overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIPipedWriter = class external 'java.io' name 'PipedWriter' (JIWriter)
  public
    constructor create(); overload;
    constructor create(para1: JIPipedReader); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JIPipedReader); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIPrintWriter = class external 'java.io' name 'PrintWriter' (JIWriter)
  strict protected
    var
      fout: JIWriter; external name 'out';
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: jboolean); overload;
    constructor create(para1: JIWriter); overload;
    constructor create(para1: JIWriter; para2: jboolean); overload;
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    function checkError(): jboolean; overload; virtual;
  strict protected
    procedure clearError(); overload; virtual;
  public
    procedure close(); overload; virtual;
    procedure flush(); overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JLString; para2: Arr1JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JLString; const para2: array of JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintWriter; overload; virtual;
    procedure print(para1: Arr1jchar); overload; virtual;
    procedure print(var para1: array of jchar); overload; virtual;
    procedure print(para1: jchar); overload; virtual;
    procedure print(para1: jdouble); overload; virtual;
    procedure print(para1: jfloat); overload; virtual;
    procedure print(para1: jint); overload; virtual;
    procedure print(para1: jlong); overload; virtual;
    procedure print(para1: JLObject); overload; virtual;
    procedure print(para1: JLString); overload; virtual;
    procedure print(para1: jboolean); overload; virtual;
    procedure println(); overload; virtual;
    procedure println(para1: Arr1jchar); overload; virtual;
    procedure println(var para1: array of jchar); overload; virtual;
    procedure println(para1: jchar); overload; virtual;
    procedure println(para1: jdouble); overload; virtual;
    procedure println(para1: jfloat); overload; virtual;
    procedure println(para1: jint); overload; virtual;
    procedure println(para1: jlong); overload; virtual;
    procedure println(para1: JLObject); overload; virtual;
    procedure println(para1: JLString); overload; virtual;
    procedure println(para1: jboolean); overload; virtual;
  strict protected
    procedure setError(); overload; virtual;
  public
    procedure write(para1: Arr1jchar); overload; virtual;
    procedure write(var para1: array of jchar); overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: JLString); overload; virtual;
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;
    function append(para1: jchar): JIPrintWriter; overload; virtual;
    function append(para1: JLCharSequence): JIPrintWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIPrintWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JIStringWriter = class external 'java.io' name 'StringWriter' (JIWriter)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;
    function getBuffer(): JLStringBuffer; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: JLString); overload; virtual;
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;
    function append(para1: jchar): JIStringWriter; overload; virtual;
    function append(para1: JLCharSequence): JIStringWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIStringWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JNURLClassLoader = class external 'java.net' name 'URLClassLoader' (JSSecureClassLoader)
  public
    constructor create(para1: Arr1JNURL); overload;
    constructor create(const para1: array of JNURL); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory); overload;
  strict protected
    procedure addURL(para1: JNURL); overload; virtual;
  public
    function findResources(para1: JLString): JUEnumeration; overload; virtual;  // throws java.io.IOException
  strict protected
    function getPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
  public
    function getURLs(): Arr1JNURL; overload; virtual;
    class function newInstance(para1: Arr1JNURL): JNURLClassLoader; static; overload;
    class function newInstance(var para1: array of JNURL): JNURLClassLoader; static; overload;
    class function newInstance(para1: Arr1JNURL; para2: JLClassLoader): JNURLClassLoader; static; overload;
    class function newInstance(var para1: array of JNURL; para2: JLClassLoader): JNURLClassLoader; static; overload;
  strict protected
    function findClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
  public
    function findResource(para1: JLString): JNURL; overload; virtual;
  strict protected
    function definePackage(para1: JLString; para2: JUJManifest; para3: JNURL): JLPackage; overload; virtual;  // throws java.lang.IllegalArgumentException
  end;

  ARRenderScriptGL = class external 'android.renderscript' name 'RenderScriptGL' (ARRenderScript)
  public
    type
      InnerSurfaceConfig = class;
      Arr1InnerSurfaceConfig = array of InnerSurfaceConfig;
      Arr2InnerSurfaceConfig = array of Arr1InnerSurfaceConfig;
      Arr3InnerSurfaceConfig = array of Arr2InnerSurfaceConfig;
      InnerSurfaceConfig = class external 'android.renderscript' name 'SurfaceConfig' (JLObject)
      public
        constructor create(); overload;
        constructor create(para1: ARRenderScriptGL.InnerSurfaceConfig); overload;
        procedure setColor(para1: jint; para2: jint); overload; virtual;
        procedure setAlpha(para1: jint; para2: jint); overload; virtual;
        procedure setDepth(para1: jint; para2: jint); overload; virtual;
        procedure setSamples(para1: jint; para2: jint; para3: jfloat); overload; virtual;
      end;

  public
    constructor create(para1: ACContext; para2: ARRenderScriptGL.InnerSurfaceConfig); overload;
    procedure setSurface(para1: AVSurfaceHolder; para2: jint; para3: jint); overload; virtual;
    procedure setSurfaceTexture(para1: AGSurfaceTexture; para2: jint; para3: jint); overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    procedure pause(); overload; virtual;
    procedure resume(); overload; virtual;
    procedure bindRootScript(para1: ARScript); overload; virtual;
    procedure bindProgramStore(para1: ARProgramStore); overload; virtual;
    procedure bindProgramFragment(para1: ARProgramFragment); overload; virtual;
    procedure bindProgramRaster(para1: ARProgramRaster); overload; virtual;
    procedure bindProgramVertex(para1: ARProgramVertex); overload; virtual;
  end;

  AWCookieSyncManager = class sealed external 'android.webkit' name 'CookieSyncManager' (AWWebSyncManager)
  public
    class function getInstance(): AWCookieSyncManager; static; overload;
    class function createInstance(para1: ACContext): AWCookieSyncManager; static; overload;
  strict protected
    procedure syncFromRamToFlash(); overload; virtual;
  public
    procedure stopSync(); overload; virtual;
    procedure startSync(); overload; virtual;
    procedure resetSync(); overload; virtual;
    procedure sync(); overload; virtual;
    procedure run(); overload; virtual;
  end;

  AOHandlerThread = class external 'android.os' name 'HandlerThread' (JLThread)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
  strict protected
    procedure onLooperPrepared(); overload; virtual;
  public
    procedure run(); overload; virtual;
    function getLooper(): AOLooper; overload; virtual;
    function quit(): jboolean; overload; virtual;
    function getThreadId(): jint; overload; virtual;
  end;

  JLThreadGroup = class external 'java.lang' name 'ThreadGroup' (JLObject, JLThread.InnerUncaughtExceptionHandler)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLString); overload;
    function activeCount(): jint; overload; virtual;
    function activeGroupCount(): jint; overload; virtual;
    function allowThreadSuspension(para1: jboolean): jboolean; overload; virtual;
    procedure checkAccess(); overload; virtual; final;
    procedure destroy(); overload; virtual; final;
    function enumerate(para1: Arr1JLThread): jint; overload; virtual;
    function enumerate(var para1: array of JLThread): jint; overload; virtual;
    function enumerate(para1: Arr1JLThread; para2: jboolean): jint; overload; virtual;
    function enumerate(var para1: array of JLThread; para2: jboolean): jint; overload; virtual;
    function enumerate(para1: Arr1JLThreadGroup): jint; overload; virtual;
    function enumerate(var para1: array of JLThreadGroup): jint; overload; virtual;
    function enumerate(para1: Arr1JLThreadGroup; para2: jboolean): jint; overload; virtual;
    function enumerate(var para1: array of JLThreadGroup; para2: jboolean): jint; overload; virtual;
    function getMaxPriority(): jint; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function getParent(): JLThreadGroup; overload; virtual; final;
    procedure interrupt(); overload; virtual; final;
    function isDaemon(): jboolean; overload; virtual; final;
    function isDestroyed(): jboolean; overload; virtual;
    procedure list(); overload; virtual;
    function parentOf(para1: JLThreadGroup): jboolean; overload; virtual; final;
    procedure resume(); overload; virtual; final;
    procedure setDaemon(para1: jboolean); overload; virtual; final;
    procedure setMaxPriority(para1: jint); overload; virtual; final;
    procedure stop(); overload; virtual; final;
    procedure suspend(); overload; virtual; final;
    function toString(): JLString; overload; virtual;
    procedure uncaughtException(para1: JLThread; para2: JLThrowable); overload; virtual;
  end;

  OAHICTBasicPoolEntryRef = class external 'org.apache.http.impl.conn.tsccm' name 'BasicPoolEntryRef' (JLRWeakReference)
  public
    constructor create(para1: OAHICTBasicPoolEntry; para2: JLRReferenceQueue); overload;
    function getRoute(): OAHCRHttpRoute; overload; virtual; final;
  end;

  JNSHttpsURLConnection = class abstract external 'javax.net.ssl' name 'HttpsURLConnection' (JNHttpURLConnection)
  strict protected
    var
      fhostnameVerifier: JNSHostnameVerifier; external name 'hostnameVerifier';
  strict protected
    constructor create(para1: JNURL); overload;
  public
    class procedure setDefaultHostnameVerifier(para1: JNSHostnameVerifier); static; overload;
    class function getDefaultHostnameVerifier(): JNSHostnameVerifier; static; overload;
    class procedure setDefaultSSLSocketFactory(para1: JNSSSLSocketFactory); static; overload;
    class function getDefaultSSLSocketFactory(): JNSSSLSocketFactory; static; overload;
    function getCipherSuite(): JLString; overload; virtual; abstract;
    function getLocalCertificates(): Arr1JSCCertificate; overload; virtual; abstract;
    function getServerCertificates(): Arr1JSCCertificate; overload; virtual; abstract;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload; virtual;
    procedure setHostnameVerifier(para1: JNSHostnameVerifier); overload; virtual;
    function getHostnameVerifier(): JNSHostnameVerifier; overload; virtual;
    procedure setSSLSocketFactory(para1: JNSSSLSocketFactory); overload; virtual;
    function getSSLSocketFactory(): JNSSSLSocketFactory; overload; virtual;
  end;

  JIFilePermission = class sealed external 'java.io' name 'FilePermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JNSocketPermission = class sealed external 'java.net' name 'SocketPermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSAllPermission = class sealed external 'java.security' name 'AllPermission' (JSPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSBasicPermission = class abstract external 'java.security' name 'BasicPermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSUnresolvedPermission = class sealed external 'java.security' name 'UnresolvedPermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: Arr1JSCCertificate); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; const para4: array of JSCCertificate); overload;
    function getUnresolvedName(): JLString; overload; virtual;
    function getUnresolvedActions(): JLString; overload; virtual;
    function getUnresolvedType(): JLString; overload; virtual;
    function getUnresolvedCerts(): Arr1JSCCertificate; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSAPrivateCredentialPermission = class sealed external 'javax.security.auth' name 'PrivateCredentialPermission' (JSPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getPrincipals(): Arr2JLString; overload; virtual;
    function getCredentialClass(): JLString; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSIdentityScope = class abstract external 'java.security' name 'IdentityScope' (JSIdentity)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSIdentityScope); overload;  // throws java.security.KeyManagementException
    class function getSystemScope(): JSIdentityScope; static; overload;
  strict protected
    class procedure setSystemScope(para1: JSIdentityScope); static; overload;
  public
    function size(): jint; overload; virtual; abstract;
    function getIdentity(para1: JLString): JSIdentity; overload; virtual; abstract;
    function getIdentity(para1: JSPrincipal): JSIdentity; overload; virtual;
    function getIdentity(para1: JSPublicKey): JSIdentity; overload; virtual; abstract;
    procedure addIdentity(para1: JSIdentity); overload; virtual; abstract;  // throws java.security.KeyManagementException
    procedure removeIdentity(para1: JSIdentity); overload; virtual; abstract;  // throws java.security.KeyManagementException
    function identities(): JUEnumeration; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
  end;

  JSSigner = class abstract external 'java.security' name 'Signer' (JSIdentity)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSIdentityScope); overload;  // throws java.security.KeyManagementException
    function getPrivateKey(): JSPrivateKey; overload; virtual;
    procedure setKeyPair(para1: JSKeyPair); overload; virtual; final;  // throws java.security.InvalidParameterException, java.security.KeyException
    function toString(): JLString; overload; virtual;
  end;

  JSSPKCS8EncodedKeySpec = class external 'java.security.spec' name 'PKCS8EncodedKeySpec' (JSSEncodedKeySpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getFormat(): JLString; overload; virtual; final;
  end;

  JSSX509EncodedKeySpec = class external 'java.security.spec' name 'X509EncodedKeySpec' (JSSEncodedKeySpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getFormat(): JLString; overload; virtual; final;
  end;

  JSSRSAMultiPrimePrivateCrtKeySpec = class external 'java.security.spec' name 'RSAMultiPrimePrivateCrtKeySpec' (JSSRSAPrivateKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigInteger; para8: JMBigInteger; para9: Arr1JSSRSAOtherPrimeInfo); overload;
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigInteger; para8: JMBigInteger; const para9: array of JSSRSAOtherPrimeInfo); overload;
    function getCrtCoefficient(): JMBigInteger; overload; virtual;
    function getOtherPrimeInfo(): Arr1JSSRSAOtherPrimeInfo; overload; virtual;
    function getPrimeExponentP(): JMBigInteger; overload; virtual;
    function getPrimeExponentQ(): JMBigInteger; overload; virtual;
    function getPrimeP(): JMBigInteger; overload; virtual;
    function getPrimeQ(): JMBigInteger; overload; virtual;
    function getPublicExponent(): JMBigInteger; overload; virtual;
  end;

  JSSRSAPrivateCrtKeySpec = class external 'java.security.spec' name 'RSAPrivateCrtKeySpec' (JSSRSAPrivateKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigInteger; para8: JMBigInteger); overload;
    function getCrtCoefficient(): JMBigInteger; overload; virtual;
    function getPrimeExponentP(): JMBigInteger; overload; virtual;
    function getPrimeExponentQ(): JMBigInteger; overload; virtual;
    function getPrimeP(): JMBigInteger; overload; virtual;
    function getPrimeQ(): JMBigInteger; overload; virtual;
    function getPublicExponent(): JMBigInteger; overload; virtual;
  end;

  JSRowSet = interface external 'javax.sql' name 'RowSet' (JSResultSet)
    procedure addRowSetListener(para1: JSRowSetListener); overload;
    procedure clearParameters(); overload;  // throws java.sql.SQLException
    procedure execute(); overload;  // throws java.sql.SQLException
    function getCommand(): JLString; overload;
    function getDataSourceName(): JLString; overload;
    function getEscapeProcessing(): jboolean; overload;  // throws java.sql.SQLException
    function getMaxFieldSize(): jint; overload;  // throws java.sql.SQLException
    function getMaxRows(): jint; overload;  // throws java.sql.SQLException
    function getPassword(): JLString; overload;
    function getQueryTimeout(): jint; overload;  // throws java.sql.SQLException
    function getTransactionIsolation(): jint; overload;
    function getTypeMap(): JUMap; overload;  // throws java.sql.SQLException
    function getUrl(): JLString; overload;  // throws java.sql.SQLException
    function getUsername(): JLString; overload;
    function isReadOnly(): jboolean; overload;
    procedure removeRowSetListener(para1: JSRowSetListener); overload;
    procedure setArray(para1: jint; para2: JSArray); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: jint; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: JLString; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: JLString; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setByte(para1: jint; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setByte(para1: JLString; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setCommand(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setConcurrency(para1: jint); overload;  // throws java.sql.SQLException
    procedure setDataSourceName(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: jint; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: JLString; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setEscapeProcessing(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: jint; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: JLString; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setInt(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setInt(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setLong(para1: jint; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setLong(para1: JLString; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setMaxFieldSize(para1: jint); overload;  // throws java.sql.SQLException
    procedure setMaxRows(para1: jint); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setPassword(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setQueryTimeout(para1: jint); overload;  // throws java.sql.SQLException
    procedure setReadOnly(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure setRef(para1: jint; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure setShort(para1: jint; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setShort(para1: JLString; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setRowId(para1: jint; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setRowId(para1: JLString; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: jint; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: JLString; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTransactionIsolation(para1: jint); overload;  // throws java.sql.SQLException
    procedure setType(para1: jint); overload;  // throws java.sql.SQLException
    procedure setTypeMap(para1: JUMap); overload;  // throws java.sql.SQLException
    procedure setUrl(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setURL_(para1: jint; para2: JNURL); external name 'setURL'; overload;  // throws java.sql.SQLException
    procedure setUsername(para1: JLString); overload;  // throws java.sql.SQLException
  end;

  JSRowSetMetaData = interface external 'javax.sql' name 'RowSetMetaData' (JSResultSetMetaData)
    procedure setAutoIncrement(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setCaseSensitive(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setCatalogName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setColumnCount(para1: jint); overload;  // throws java.sql.SQLException
    procedure setColumnDisplaySize(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setColumnLabel(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setColumnName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setColumnType(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setColumnTypeName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setCurrency(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setNullable(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setPrecision(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setScale(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setSchemaName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setSearchable(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setSigned(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setTableName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
  end;

  JSPreparedStatement = interface external 'java.sql' name 'PreparedStatement' (JSStatement)
    procedure addBatch(); overload;  // throws java.sql.SQLException
    procedure clearParameters(); overload;  // throws java.sql.SQLException
    function execute(): jboolean; overload;  // throws java.sql.SQLException
    function executeQuery(): JSResultSet; overload;  // throws java.sql.SQLException
    function executeUpdate(): jint; overload;  // throws java.sql.SQLException
    function getMetaData(): JSResultSetMetaData; overload;  // throws java.sql.SQLException
    function getParameterMetaData(): JSParameterMetaData; overload;  // throws java.sql.SQLException
    procedure setArray(para1: jint; para2: JSArray); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: jint; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setByte(para1: jint; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: jint; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: jint; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setInt(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setLong(para1: jint; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setRef(para1: jint; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure setShort(para1: jint; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setUnicodeStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setURL(para1: jint; para2: JNURL); overload;  // throws java.sql.SQLException
    procedure setRowId(para1: jint; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setNString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: jint; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JUProperties = class external 'java.util' name 'Properties' (JUHashtable)
  strict protected
    var
      fdefaults: JUProperties; external name 'defaults';
  public
    constructor create(); overload;
    constructor create(para1: JUProperties); overload;
    function getProperty(para1: JLString): JLString; overload; virtual;
    function getProperty(para1: JLString; para2: JLString): JLString; overload; virtual;
    procedure list(para1: JIPrintStream); overload; virtual;
    procedure list(para1: JIPrintWriter); overload; virtual;
    procedure load(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure load(para1: JIReader); overload; virtual;  // throws java.io.IOException
    function propertyNames(): JUEnumeration; overload; virtual;
    function stringPropertyNames(): JUSet; overload; virtual;
    procedure save(para1: JIOutputStream; para2: JLString); overload; virtual;
    function setProperty(para1: JLString; para2: JLString): JLObject; overload; virtual;
    procedure store(para1: JIOutputStream; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure store(para1: JIWriter; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure loadFromXML(para1: JIInputStream); overload; virtual;  // throws java.io.IOException, java.util.InvalidPropertiesFormatException
    procedure storeToXML(para1: JIOutputStream; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure storeToXML(para1: JIOutputStream; para2: JLString; para3: JLString); overload; virtual;  // throws java.io.IOException
  end;

  JBPropertyChangeListenerProxy = class external 'java.beans' name 'PropertyChangeListenerProxy' (JUEventListenerProxy, JBPropertyChangeListener)
  public
    constructor create(para1: JLString; para2: JBPropertyChangeListener); overload;
    function getPropertyName(): JLString; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JUCAbstractExecutorService = class abstract external 'java.util.concurrent' name 'AbstractExecutorService' (JLObject, JUCExecutorService)
  public
    constructor create(); overload;
  strict protected
    function newTaskFor(para1: JLRunnable; para2: JLObject): JUCRunnableFuture; overload; virtual;
    function newTaskFor(para1: JUCCallable): JUCRunnableFuture; overload; virtual;
  public
    function submit(para1: JLRunnable): JUCFuture; overload; virtual;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload; virtual;
    function submit(para1: JUCCallable): JUCFuture; overload; virtual;
    function invokeAny(para1: JUCollection): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function invokeAny(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
    function invokeAll(para1: JUCollection): JUList; overload; virtual;  // throws java.lang.InterruptedException
    function invokeAll(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JUList; overload; virtual;  // throws java.lang.InterruptedException
  end;

  JUCScheduledExecutorService = interface external 'java.util.concurrent' name 'ScheduledExecutorService' (JUCExecutorService)
    function schedule(para1: JLRunnable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload;
    function schedule(para1: JUCCallable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload;
    function scheduleAtFixedRate(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload;
    function scheduleWithFixedDelay(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload;
  end;

  JUCFutureTask = class external 'java.util.concurrent' name 'FutureTask' (JLObject, JUCRunnableFuture)
  public
    constructor create(para1: JUCCallable); overload;
    constructor create(para1: JLRunnable; para2: JLObject); overload;
    function isCancelled(): jboolean; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    function cancel(para1: jboolean): jboolean; overload; virtual;
    function get(): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function get(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
  strict protected
    procedure done(); overload; virtual;
    procedure &set(para1: JLObject); overload; virtual;
    procedure setException(para1: JLThrowable); overload; virtual;
  public
    procedure run(); overload; virtual;
  strict protected
    function runAndReset(): jboolean; overload; virtual;
  end;

  JULConsoleHandler = class external 'java.util.logging' name 'ConsoleHandler' (JULStreamHandler)
  public
    constructor create(); overload;
    procedure close(); overload; virtual;
    procedure publish(para1: JULLogRecord); overload; virtual;
  end;

  JULFileHandler = class external 'java.util.logging' name 'FileHandler' (JULStreamHandler)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: jint; para4: jboolean); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;
    procedure publish(para1: JULLogRecord); overload; virtual;
  end;

  JULSocketHandler = class external 'java.util.logging' name 'SocketHandler' (JULStreamHandler)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;
    procedure publish(para1: JULLogRecord); overload; virtual;
  end;

  JMKEEGL11 = interface external 'javax.microedition.khronos.egl' name 'EGL11' (JMKEEGL10)
    const
      EGL_CONTEXT_LOST = 12302;
  end;

  JMKOGL11 = interface external 'javax.microedition.khronos.opengles' name 'GL11' (JMKOGL10)
    const
      GL_ACTIVE_TEXTURE = 34016;
      GL_ADD_SIGNED = 34164;
      GL_ALPHA_SCALE = 3356;
      GL_ALPHA_TEST_FUNC = 3009;
      GL_ALPHA_TEST_REF = 3010;
      GL_ARRAY_BUFFER = 34962;
      GL_ARRAY_BUFFER_BINDING = 34964;
      GL_BLEND_DST = 3040;
      GL_BLEND_SRC = 3041;
      GL_BUFFER_ACCESS = 35003;
      GL_BUFFER_SIZE = 34660;
      GL_BUFFER_USAGE = 34661;
      GL_CLIENT_ACTIVE_TEXTURE = 34017;
      GL_CLIP_PLANE0 = 12288;
      GL_CLIP_PLANE1 = 12289;
      GL_CLIP_PLANE2 = 12290;
      GL_CLIP_PLANE3 = 12291;
      GL_CLIP_PLANE4 = 12292;
      GL_CLIP_PLANE5 = 12293;
      GL_COLOR_ARRAY_BUFFER_BINDING = 34968;
      GL_COLOR_ARRAY_POINTER = 32912;
      GL_COLOR_ARRAY_SIZE = 32897;
      GL_COLOR_ARRAY_STRIDE = 32899;
      GL_COLOR_ARRAY_TYPE = 32898;
      GL_COLOR_CLEAR_VALUE = 3106;
      GL_COLOR_WRITEMASK = 3107;
      GL_COMBINE = 34160;
      GL_COMBINE_ALPHA = 34162;
      GL_COMBINE_RGB = 34161;
      GL_CONSTANT = 34166;
      GL_COORD_REPLACE_OES = 34914;
      GL_CULL_FACE_MODE = 2885;
      GL_CURRENT_COLOR = 2816;
      GL_CURRENT_NORMAL = 2818;
      GL_CURRENT_TEXTURE_COORDS = 2819;
      GL_DEPTH_CLEAR_VALUE = 2931;
      GL_DEPTH_FUNC = 2932;
      GL_DEPTH_RANGE = 2928;
      GL_DEPTH_WRITEMASK = 2930;
      GL_DOT3_RGB = 34478;
      GL_DOT3_RGBA = 34479;
      GL_DYNAMIC_DRAW = 35048;
      GL_ELEMENT_ARRAY_BUFFER = 34963;
      GL_ELEMENT_ARRAY_BUFFER_BINDING = 34965;
      GL_FRONT_FACE = 2886;
      GL_GENERATE_MIPMAP = 33169;
      GL_GENERATE_MIPMAP_HINT = 33170;
      GL_INTERPOLATE = 34165;
      GL_LINE_WIDTH = 2849;
      GL_LOGIC_OP_MODE = 3056;
      GL_MATRIX_MODE = 2976;
      GL_MAX_CLIP_PLANES = 3378;
      GL_MODELVIEW_MATRIX = 2982;
      GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 35213;
      GL_MODELVIEW_STACK_DEPTH = 2979;
      GL_NORMAL_ARRAY_BUFFER_BINDING = 34967;
      GL_NORMAL_ARRAY_POINTER = 32911;
      GL_NORMAL_ARRAY_STRIDE = 32895;
      GL_NORMAL_ARRAY_TYPE = 32894;
      GL_OPERAND0_ALPHA = 34200;
      GL_OPERAND0_RGB = 34192;
      GL_OPERAND1_ALPHA = 34201;
      GL_OPERAND1_RGB = 34193;
      GL_OPERAND2_ALPHA = 34202;
      GL_OPERAND2_RGB = 34194;
      GL_POINT_DISTANCE_ATTENUATION = 33065;
      GL_POINT_FADE_THRESHOLD_SIZE = 33064;
      GL_POINT_SIZE = 2833;
      GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 35743;
      GL_POINT_SIZE_ARRAY_OES = 35740;
      GL_POINT_SIZE_ARRAY_POINTER_OES = 35212;
      GL_POINT_SIZE_ARRAY_STRIDE_OES = 35211;
      GL_POINT_SIZE_ARRAY_TYPE_OES = 35210;
      GL_POINT_SIZE_MAX = 33063;
      GL_POINT_SIZE_MIN = 33062;
      GL_POINT_SPRITE_OES = 34913;
      GL_POLYGON_OFFSET_FACTOR = 32824;
      GL_POLYGON_OFFSET_UNITS = 10752;
      GL_PREVIOUS = 34168;
      GL_PRIMARY_COLOR = 34167;
      GL_PROJECTION_MATRIX = 2983;
      GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 35214;
      GL_PROJECTION_STACK_DEPTH = 2980;
      GL_RGB_SCALE = 34163;
      GL_SAMPLE_BUFFERS = 32936;
      GL_SAMPLE_COVERAGE_INVERT = 32939;
      GL_SAMPLE_COVERAGE_VALUE = 32938;
      GL_SAMPLES = 32937;
      GL_SCISSOR_BOX = 3088;
      GL_SHADE_MODEL = 2900;
      GL_SRC0_ALPHA = 34184;
      GL_SRC0_RGB = 34176;
      GL_SRC1_ALPHA = 34185;
      GL_SRC1_RGB = 34177;
      GL_SRC2_ALPHA = 34186;
      GL_SRC2_RGB = 34178;
      GL_STATIC_DRAW = 35044;
      GL_STENCIL_CLEAR_VALUE = 2961;
      GL_STENCIL_FAIL = 2964;
      GL_STENCIL_FUNC = 2962;
      GL_STENCIL_PASS_DEPTH_FAIL = 2965;
      GL_STENCIL_PASS_DEPTH_PASS = 2966;
      GL_STENCIL_REF = 2967;
      GL_STENCIL_VALUE_MASK = 2963;
      GL_STENCIL_WRITEMASK = 2968;
      GL_SUBTRACT = 34023;
      GL_TEXTURE_BINDING_2D = 32873;
      GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 34970;
      GL_TEXTURE_COORD_ARRAY_POINTER = 32914;
      GL_TEXTURE_COORD_ARRAY_SIZE = 32904;
      GL_TEXTURE_COORD_ARRAY_STRIDE = 32906;
      GL_TEXTURE_COORD_ARRAY_TYPE = 32905;
      GL_TEXTURE_MATRIX = 2984;
      GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 35215;
      GL_TEXTURE_STACK_DEPTH = 2981;
      GL_VERTEX_ARRAY_BUFFER_BINDING = 34966;
      GL_VERTEX_ARRAY_POINTER = 32910;
      GL_VERTEX_ARRAY_SIZE = 32890;
      GL_VERTEX_ARRAY_STRIDE = 32892;
      GL_VERTEX_ARRAY_TYPE = 32891;
      GL_VIEWPORT = 2978;
      GL_WRITE_ONLY = 35001;
    procedure glGetPointerv(para1: jint; para2: Arr1JNBuffer); overload;
    procedure glGetPointerv(para1: jint; var para2: array of JNBuffer); overload;
    procedure glBindBuffer(para1: jint; para2: jint); overload;
    procedure glBufferData(para1: jint; para2: jint; para3: JNBuffer; para4: jint); overload;
    procedure glBufferSubData(para1: jint; para2: jint; para3: jint; para4: JNBuffer); overload;
    procedure glClipPlanef(para1: jint; para2: Arr1jfloat; para3: jint); overload;
    procedure glClipPlanef(para1: jint; var para2: array of jfloat; para3: jint); overload;
    procedure glClipPlanef(para1: jint; para2: JNFloatBuffer); overload;
    procedure glClipPlanex(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glClipPlanex(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glClipPlanex(para1: jint; para2: JNIntBuffer); overload;
    procedure glColor4ub(para1: jbyte; para2: jbyte; para3: jbyte; para4: jbyte); overload;
    procedure glColorPointer(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glDeleteBuffers(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glDeleteBuffers(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glDeleteBuffers(para1: jint; para2: JNIntBuffer); overload;
    procedure glDrawElements(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glGenBuffers(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGenBuffers(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGenBuffers(para1: jint; para2: JNIntBuffer); overload;
    procedure glGetBooleanv(para1: jint; para2: Arr1jboolean; para3: jint); overload;
    procedure glGetBooleanv(para1: jint; var para2: array of jboolean; para3: jint); overload;
    procedure glGetBooleanv(para1: jint; para2: JNIntBuffer); overload;
    procedure glGetBufferParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetBufferParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetBufferParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetClipPlanef(para1: jint; para2: Arr1jfloat; para3: jint); overload;
    procedure glGetClipPlanef(para1: jint; var para2: array of jfloat; para3: jint); overload;
    procedure glGetClipPlanef(para1: jint; para2: JNFloatBuffer); overload;
    procedure glGetClipPlanex(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGetClipPlanex(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGetClipPlanex(para1: jint; para2: JNIntBuffer); overload;
    procedure glGetFixedv(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glGetFixedv(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glGetFixedv(para1: jint; para2: JNIntBuffer); overload;
    procedure glGetFloatv(para1: jint; para2: Arr1jfloat; para3: jint); overload;
    procedure glGetFloatv(para1: jint; var para2: array of jfloat; para3: jint); overload;
    procedure glGetFloatv(para1: jint; para2: JNFloatBuffer); overload;
    procedure glGetLightfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glGetLightfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glGetLightfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glGetLightxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetLightxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetLightxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetMaterialfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glGetMaterialfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glGetMaterialfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glGetMaterialxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetMaterialxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetMaterialxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetTexEnviv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetTexEnviv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetTexEnviv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetTexEnvxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetTexEnvxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetTexEnvxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glGetTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glGetTexParameterfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glGetTexParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetTexParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetTexParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glGetTexParameterxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glGetTexParameterxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glGetTexParameterxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    function glIsBuffer(para1: jint): jboolean; overload;
    function glIsEnabled(para1: jint): jboolean; overload;
    function glIsTexture(para1: jint): jboolean; overload;
    procedure glNormalPointer(para1: jint; para2: jint; para3: jint); overload;
    procedure glPointParameterf(para1: jint; para2: jfloat); overload;
    procedure glPointParameterfv(para1: jint; para2: Arr1jfloat; para3: jint); overload;
    procedure glPointParameterfv(para1: jint; var para2: array of jfloat; para3: jint); overload;
    procedure glPointParameterfv(para1: jint; para2: JNFloatBuffer); overload;
    procedure glPointParameterx(para1: jint; para2: jint); overload;
    procedure glPointParameterxv(para1: jint; para2: Arr1jint; para3: jint); overload;
    procedure glPointParameterxv(para1: jint; var para2: array of jint; para3: jint); overload;
    procedure glPointParameterxv(para1: jint; para2: JNIntBuffer); overload;
    procedure glPointSizePointerOES(para1: jint; para2: jint; para3: JNBuffer); overload;
    procedure glTexCoordPointer(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure glTexEnvi(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexEnviv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexEnviv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexEnviv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glTexParameterfv(para1: jint; para2: jint; para3: Arr1jfloat; para4: jint); overload;
    procedure glTexParameterfv(para1: jint; para2: jint; var para3: array of jfloat; para4: jint); overload;
    procedure glTexParameterfv(para1: jint; para2: jint; para3: JNFloatBuffer); overload;
    procedure glTexParameteri(para1: jint; para2: jint; para3: jint); overload;
    procedure glTexParameteriv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexParameteriv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexParameteriv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glTexParameterxv(para1: jint; para2: jint; para3: Arr1jint; para4: jint); overload;
    procedure glTexParameterxv(para1: jint; para2: jint; var para3: array of jint; para4: jint); overload;
    procedure glTexParameterxv(para1: jint; para2: jint; para3: JNIntBuffer); overload;
    procedure glVertexPointer(para1: jint; para2: jint; para3: jint; para4: jint); overload;
  end;

  ANSSLCertificateSocketFactory = class external 'android.net' name 'SSLCertificateSocketFactory' (JNSSSLSocketFactory)
  public
    constructor create(para1: jint); overload;
    class function getDefault(para1: jint): JNSocketFactory; static; overload;
    class function getDefault(para1: jint; para2: ANSSLSessionCache): JNSSSLSocketFactory; static; overload;
    class function getInsecure(para1: jint; para2: ANSSLSessionCache): JNSSSLSocketFactory; static; overload;
    class function getHttpSocketFactory(para1: jint; para2: ANSSLSessionCache): OAHCSSSLSocketFactory; static; overload;
    procedure setTrustManagers(para1: Arr1JNSTrustManager); overload; virtual;
    procedure setTrustManagers(var para1: array of JNSTrustManager); overload; virtual;
    procedure setKeyManagers(para1: Arr1JNSKeyManager); overload; virtual;
    procedure setKeyManagers(var para1: array of JNSKeyManager); overload; virtual;
    function createSocket(para1: JNSocket; para2: JLString; para3: jint; para4: jboolean): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JNInetAddress; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual;
  end;

  OAHCSAbstractVerifier = class abstract external 'org.apache.http.conn.ssl' name 'AbstractVerifier' (JLObject, OAHCSX509HostnameVerifier)
  public
    constructor create(); overload;
    procedure verify(para1: JLString; para2: JNSSSLSocket); overload; virtual; final;  // throws java.io.IOException
    function verify(para1: JLString; para2: JNSSSLSession): jboolean; overload; virtual; final;
    procedure verify(para1: JLString; para2: JSCX509Certificate); overload; virtual; final;  // throws javax.net.ssl.SSLException
    procedure verify(para1: JLString; para2: Arr1JLString; para3: Arr1JLString; para4: jboolean); overload; virtual; final;  // throws javax.net.ssl.SSLException
    procedure verify(para1: JLString; var para2: array of JLString; var para3: array of JLString; para4: jboolean); overload; virtual; final;  // throws javax.net.ssl.SSLException
    class function acceptableCountryWildcard(para1: JLString): jboolean; static; overload;
    class function getCNs(para1: JSCX509Certificate): Arr1JLString; static; overload;
    class function getDNSSubjectAlts(para1: JSCX509Certificate): Arr1JLString; static; overload;
    class function countDots(para1: JLString): jint; static; overload;
  end;

  JNSX509ExtendedKeyManager = class abstract external 'javax.net.ssl' name 'X509ExtendedKeyManager' (JLObject, JNSX509KeyManager)
  strict protected
    constructor create(); overload;
  public
    function chooseEngineClientAlias(para1: Arr1JLString; para2: Arr1JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
    function chooseEngineClientAlias(var para1: array of JLString; var para2: array of JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
    function chooseEngineServerAlias(para1: JLString; para2: Arr1JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
    function chooseEngineServerAlias(para1: JLString; var para2: array of JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
  end;

  JSKeyStoreSpi = class abstract external 'java.security' name 'KeyStoreSpi' (JLObject)
  public
    constructor create(); overload;
    function engineGetKey(para1: JLString; para2: Arr1jchar): JSKey; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function engineGetKey(para1: JLString; var para2: array of jchar): JSKey; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function engineGetCertificateChain(para1: JLString): Arr1JSCCertificate; overload; virtual; abstract;
    function engineGetCertificate(para1: JLString): JSCCertificate; overload; virtual; abstract;
    function engineGetCreationDate(para1: JLString): JUDate; overload; virtual; abstract;
    procedure engineSetKeyEntry(para1: JLString; para2: JSKey; para3: Arr1jchar; para4: Arr1JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetKeyEntry(para1: JLString; para2: JSKey; var para3: array of jchar; var para4: array of JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetKeyEntry(para1: JLString; para2: Arr1jbyte; para3: Arr1JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetKeyEntry(para1: JLString; var para2: array of jbyte; var para3: array of JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetCertificateEntry(para1: JLString; para2: JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineDeleteEntry(para1: JLString); overload; virtual; abstract;  // throws java.security.KeyStoreException
    function engineAliases(): JUEnumeration; overload; virtual; abstract;
    function engineContainsAlias(para1: JLString): jboolean; overload; virtual; abstract;
    function engineSize(): jint; overload; virtual; abstract;
    function engineIsKeyEntry(para1: JLString): jboolean; overload; virtual; abstract;
    function engineIsCertificateEntry(para1: JLString): jboolean; overload; virtual; abstract;
    function engineGetCertificateAlias(para1: JSCCertificate): JLString; overload; virtual; abstract;
    procedure engineStore(para1: JIOutputStream; para2: Arr1jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineStore(para1: JIOutputStream; var para2: array of jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineStore(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineLoad(para1: JIInputStream; para2: Arr1jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineLoad(para1: JIInputStream; var para2: array of jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineLoad(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    function engineGetEntry(para1: JLString; para2: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerEntry; overload; virtual;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException
    procedure engineSetEntry(para1: JLString; para2: JSKeyStore.InnerEntry; para3: JSKeyStore.InnerProtectionParameter); overload; virtual;  // throws java.security.KeyStoreException
    function engineEntryInstanceOf(para1: JLString; para2: JLClass): jboolean; overload; virtual;
  end;

  JNSKeyStoreBuilderParameters = class external 'javax.net.ssl' name 'KeyStoreBuilderParameters' (JLObject, JNSManagerFactoryParameters)
  public
    constructor create(para1: JSKeyStore.InnerBuilder); overload;
    constructor create(para1: JUList); overload;
    function getParameters(): JUList; overload; virtual;
  end;

  ATAndroidTestCase = class external 'android.test' name 'AndroidTestCase' (JFTestCase)
  strict protected
    var
      fmContext: ACContext; external name 'mContext';
  public
    constructor create(); overload;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    procedure testAndroidTestCaseSetupProperly(); overload; virtual;
    procedure setContext(para1: ACContext); overload; virtual;
    function getContext(): ACContext; overload; virtual;
    procedure assertActivityRequiresPermission(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure assertReadingContentUriRequiresPermission(para1: ANUri; para2: JLString); overload; virtual;
    procedure assertWritingContentUriRequiresPermission(para1: ANUri; para2: JLString); overload; virtual;
  strict protected
    procedure scrubClass(para1: JLClass); overload; virtual;  // throws java.lang.IllegalAccessException
  end;

  ATInstrumentationTestCase = class external 'android.test' name 'InstrumentationTestCase' (JFTestCase)
  public
    constructor create(); overload;
    procedure injectInstrumentation(para1: AAInstrumentation); overload; virtual;
    procedure injectInsrumentation(para1: AAInstrumentation); overload; virtual;
    function getInstrumentation(): AAInstrumentation; overload; virtual;
    function launchActivity(para1: JLString; para2: JLClass; para3: AOBundle): AAActivity; overload; virtual; final;
    function launchActivityWithIntent(para1: JLString; para2: JLClass; para3: ACIntent): AAActivity; overload; virtual; final;
    procedure runTestOnUiThread(para1: JLRunnable); overload; virtual;  // throws java.lang.Throwable
  strict protected
    procedure runTest(); overload; virtual;  // throws java.lang.Throwable
  public
    procedure sendKeys(para1: JLString); overload; virtual;
    procedure sendKeys(para1: Arr1jint); overload; virtual;
    procedure sendKeys(const para1: array of jint); overload; virtual;
    procedure sendRepeatedKeys(para1: Arr1jint); overload; virtual;
    procedure sendRepeatedKeys(const para1: array of jint); overload; virtual;
  strict protected
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  end;

  ATSTestSuiteBuilder = class external 'android.test.suitebuilder' name 'TestSuiteBuilder' (JLObject)
  public
    type
      InnerFailedToCreateTests = class;
      Arr1InnerFailedToCreateTests = array of InnerFailedToCreateTests;
      Arr2InnerFailedToCreateTests = array of Arr1InnerFailedToCreateTests;
      Arr3InnerFailedToCreateTests = array of Arr2InnerFailedToCreateTests;
      InnerFailedToCreateTests = class external 'android.test.suitebuilder' name 'FailedToCreateTests' (JFTestCase)
      public
        constructor create(para1: JLException); overload;
        procedure testSuiteConstructionFailed(); overload; virtual;
      end;

  public
    constructor create(para1: JLClass); overload;
    constructor create(para1: JLString; para2: JLClassLoader); overload;
    function includePackages(para1: Arr1JLString): ATSTestSuiteBuilder; overload; virtual;
    function includePackages(const para1: array of JLString): ATSTestSuiteBuilder; overload; virtual;
    function excludePackages(para1: Arr1JLString): ATSTestSuiteBuilder; overload; virtual;
    function excludePackages(const para1: array of JLString): ATSTestSuiteBuilder; overload; virtual;
    function addRequirements(para1: JUList): ATSTestSuiteBuilder; overload; virtual;
    function includeAllPackagesUnderHere(): ATSTestSuiteBuilder; overload; virtual; final;
    function named(para1: JLString): ATSTestSuiteBuilder; overload; virtual;
    function build(): JFTestSuite; overload; virtual; final;
  strict protected
    function getSuiteName(): JLString; overload; virtual;
  public
    function addRequirements(para1: Arr1CAIUPredicate): ATSTestSuiteBuilder; overload; virtual; final;
    function addRequirements(const para1: array of CAIUPredicate): ATSTestSuiteBuilder; overload; virtual; final;
  end;

  ATInstrumentationTestSuite = class external 'android.test' name 'InstrumentationTestSuite' (JFTestSuite)
  public
    constructor create(para1: AAInstrumentation); overload;
    constructor create(para1: JLString; para2: AAInstrumentation); overload;
    constructor create(para1: JLClass; para2: AAInstrumentation); overload;
    procedure addTestSuite(para1: JLClass); overload; virtual;
    procedure runTest(para1: JFTest; para2: JFTestResult); overload; virtual;
  end;

  ATAndroidTestRunner = class external 'android.test' name 'AndroidTestRunner' (JRBaseTestRunner)
  public
    constructor create(); overload;
    procedure setTestClassName(para1: JLString; para2: JLString); overload; virtual;
    procedure setTest(para1: JFTest); overload; virtual;
    procedure clearTestListeners(); overload; virtual;
    procedure addTestListener(para1: JFTestListener); overload; virtual;
  strict protected
    function createTestResult(): JFTestResult; overload; virtual;
  public
    function getTestCases(): JUList; overload; virtual;
    function getTestClassName(): JLString; overload; virtual;
    function getTestResult(): JFTestResult; overload; virtual;
    procedure runTest(); overload; virtual;
    procedure runTest(para1: JFTestResult); overload; virtual;
    procedure setContext(para1: ACContext); overload; virtual;
    procedure setInstrumentation(para1: AAInstrumentation); overload; virtual;
    procedure setInstrumentaiton(para1: AAInstrumentation); overload; virtual;
  strict protected
    function loadSuiteClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
  public
    procedure testStarted(para1: JLString); overload; virtual;
    procedure testEnded(para1: JLString); overload; virtual;
    procedure testFailed(para1: jint; para2: JFTest; para3: JLThrowable); overload; virtual;
  strict protected
    procedure runFailed(para1: JLString); overload; virtual;
  end;

  OAHMBufferedHeader = class external 'org.apache.http.message' name 'BufferedHeader' (JLObject, OAHFormattedHeader, JLCloneable)
  public
    constructor create(para1: OAHUCharArrayBuffer); overload;  // throws org.apache.http.ParseException
    function getName(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getElements(): Arr1OAHHeaderElement; overload; virtual;  // throws org.apache.http.ParseException
    function getValuePos(): jint; overload; virtual;
    function getBuffer(): OAHUCharArrayBuffer; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHIAbstractHttpClientConnection = class abstract external 'org.apache.http.impl' name 'AbstractHttpClientConnection' (JLObject, OAHHttpClientConnection)
  public
    constructor create(); overload;
  strict protected
    procedure assertOpen(); overload; virtual; abstract;  // throws java.lang.IllegalStateException
    function createEntityDeserializer(): OAHIEEntityDeserializer; overload; virtual;
    function createEntitySerializer(): OAHIEEntitySerializer; overload; virtual;
    function createHttpResponseFactory(): OAHHttpResponseFactory; overload; virtual;
    function createResponseParser(para1: OAHISessionInputBuffer; para2: OAHHttpResponseFactory; para3: OAHPHttpParams): OAHIHttpMessageParser; overload; virtual;
    function createRequestWriter(para1: OAHISessionOutputBuffer; para2: OAHPHttpParams): OAHIHttpMessageWriter; overload; virtual;
    procedure init(para1: OAHISessionInputBuffer; para2: OAHISessionOutputBuffer; para3: OAHPHttpParams); overload; virtual;
  public
    function isResponseAvailable(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure sendRequestHeader(para1: OAHHttpRequest); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendRequestEntity(para1: OAHHttpEntityEnclosingRequest); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  strict protected
    procedure doFlush(); overload; virtual;  // throws java.io.IOException
  public
    procedure flush(); overload; virtual;  // throws java.io.IOException
    function receiveResponseHeader(): OAHHttpResponse; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure receiveResponseEntity(para1: OAHHttpResponse); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function isStale(): jboolean; overload; virtual;
    function getMetrics(): OAHHttpConnectionMetrics; overload; virtual;
  end;

  OAHCManagedClientConnection = interface external 'org.apache.http.conn' name 'ManagedClientConnection' (OAHHttpClientConnection, OAHHttpInetConnection, OAHCConnectionReleaseTrigger)
    function isSecure(): jboolean; overload;
    function getRoute(): OAHCRHttpRoute; overload;
    function getSSLSession(): JNSSSLSession; overload;
    procedure open(para1: OAHCRHttpRoute; para2: OAHPHttpContext; para3: OAHPHttpParams); overload;  // throws java.io.IOException
    procedure tunnelTarget(para1: jboolean; para2: OAHPHttpParams); overload;  // throws java.io.IOException
    procedure tunnelProxy(para1: OAHHttpHost; para2: jboolean; para3: OAHPHttpParams); overload;  // throws java.io.IOException
    procedure layerProtocol(para1: OAHPHttpContext; para2: OAHPHttpParams); overload;  // throws java.io.IOException
    procedure markReusable(); overload;
    procedure unmarkReusable(); overload;
    function isMarkedReusable(): jboolean; overload;
    procedure setState(para1: JLObject); overload;
    function getState(): JLObject; overload;
    procedure setIdleDuration(para1: jlong; para2: JUCTimeUnit); overload;
  end;

  OAHCOperatedClientConnection = interface external 'org.apache.http.conn' name 'OperatedClientConnection' (OAHHttpClientConnection, OAHHttpInetConnection)
    function getTargetHost(): OAHHttpHost; overload;
    function isSecure(): jboolean; overload;
    function getSocket(): JNSocket; overload;
    procedure opening(para1: JNSocket; para2: OAHHttpHost); overload;  // throws java.io.IOException
    procedure openCompleted(para1: jboolean; para2: OAHPHttpParams); overload;  // throws java.io.IOException
    procedure update(para1: JNSocket; para2: OAHHttpHost; para3: jboolean; para4: OAHPHttpParams); overload;  // throws java.io.IOException
  end;

  OAHIAbstractHttpServerConnection = class abstract external 'org.apache.http.impl' name 'AbstractHttpServerConnection' (JLObject, OAHHttpServerConnection)
  public
    constructor create(); overload;
  strict protected
    procedure assertOpen(); overload; virtual; abstract;  // throws java.lang.IllegalStateException
    function createEntityDeserializer(): OAHIEEntityDeserializer; overload; virtual;
    function createEntitySerializer(): OAHIEEntitySerializer; overload; virtual;
    function createHttpRequestFactory(): OAHHttpRequestFactory; overload; virtual;
    function createRequestParser(para1: OAHISessionInputBuffer; para2: OAHHttpRequestFactory; para3: OAHPHttpParams): OAHIHttpMessageParser; overload; virtual;
    function createResponseWriter(para1: OAHISessionOutputBuffer; para2: OAHPHttpParams): OAHIHttpMessageWriter; overload; virtual;
    procedure init(para1: OAHISessionInputBuffer; para2: OAHISessionOutputBuffer; para3: OAHPHttpParams); overload; virtual;
  public
    function receiveRequestHeader(): OAHHttpRequest; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure receiveRequestEntity(para1: OAHHttpEntityEnclosingRequest); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  strict protected
    procedure doFlush(); overload; virtual;  // throws java.io.IOException
  public
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure sendResponseHeader(para1: OAHHttpResponse); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendResponseEntity(para1: OAHHttpResponse); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function isStale(): jboolean; overload; virtual;
    function getMetrics(): OAHHttpConnectionMetrics; overload; virtual;
  end;

  OAHEBasicHttpEntity = class external 'org.apache.http.entity' name 'BasicHttpEntity' (OAHEAbstractHttpEntity)
  public
    constructor create(); overload;
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.lang.IllegalStateException
    function isRepeatable(): jboolean; overload; virtual;
    procedure setContentLength(para1: jlong); overload; virtual;
    procedure setContent(para1: JIInputStream); overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    procedure consumeContent(); overload; virtual;  // throws java.io.IOException
  end;

  OAHEByteArrayEntity = class external 'org.apache.http.entity' name 'ByteArrayEntity' (OAHEAbstractHttpEntity, JLCloneable)
  strict protected
    final var
      fcontent: Arr1jbyte; external name 'content';
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function isRepeatable(): jboolean; overload; virtual;
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHEEntityTemplate = class external 'org.apache.http.entity' name 'EntityTemplate' (OAHEAbstractHttpEntity)
  public
    constructor create(para1: OAHEContentProducer); overload;
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;
    function isRepeatable(): jboolean; overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    procedure consumeContent(); overload; virtual;  // throws java.io.IOException
  end;

  OAHEFileEntity = class external 'org.apache.http.entity' name 'FileEntity' (OAHEAbstractHttpEntity, JLCloneable)
  strict protected
    final var
      ffile: JIFile; external name 'file';
  public
    constructor create(para1: JIFile; para2: JLString); overload;
    function isRepeatable(): jboolean; overload; virtual;
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHEInputStreamEntity = class external 'org.apache.http.entity' name 'InputStreamEntity' (OAHEAbstractHttpEntity)
  public
    constructor create(para1: JIInputStream; para2: jlong); overload;
    function isRepeatable(): jboolean; overload; virtual;
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    procedure consumeContent(); overload; virtual;  // throws java.io.IOException
  end;

  OAHESerializableEntity = class external 'org.apache.http.entity' name 'SerializableEntity' (OAHEAbstractHttpEntity)
  public
    constructor create(para1: JISerializable; para2: jboolean); overload;  // throws java.io.IOException
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException, java.lang.IllegalStateException
    function getContentLength(): jlong; overload; virtual;
    function isRepeatable(): jboolean; overload; virtual;
    function isStreaming(): jboolean; overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
  end;

  OAHEStringEntity = class external 'org.apache.http.entity' name 'StringEntity' (OAHEAbstractHttpEntity, JLCloneable)
  strict protected
    final var
      fcontent: Arr1jbyte; external name 'content';
  public
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JLString); overload;  // throws java.io.UnsupportedEncodingException
    function isRepeatable(): jboolean; overload; virtual;
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHCBasicManagedEntity = class external 'org.apache.http.conn' name 'BasicManagedEntity' (OAHEHttpEntityWrapper, OAHCConnectionReleaseTrigger, OAHCEofSensorWatcher)
  strict protected
    var
      fmanagedConn: OAHCManagedClientConnection; external name 'managedConn';
  strict protected
    final var
      fattemptReuse: jboolean; external name 'attemptReuse';
  public
    constructor create(para1: OAHHttpEntity; para2: OAHCManagedClientConnection; para3: jboolean); overload;
    function isRepeatable(): jboolean; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException
    procedure consumeContent(); overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    procedure releaseConnection(); overload; virtual;  // throws java.io.IOException
    procedure abortConnection(); overload; virtual;  // throws java.io.IOException
    function eofDetected(para1: JIInputStream): jboolean; overload; virtual;  // throws java.io.IOException
    function streamClosed(para1: JIInputStream): jboolean; overload; virtual;  // throws java.io.IOException
    function streamAbort(para1: JIInputStream): jboolean; overload; virtual;  // throws java.io.IOException
  strict protected
    procedure releaseManagedConnection(); overload; virtual;  // throws java.io.IOException
  end;

  OAHEBufferedHttpEntity = class external 'org.apache.http.entity' name 'BufferedHttpEntity' (OAHEHttpEntityWrapper)
  public
    constructor create(para1: OAHHttpEntity); overload;  // throws java.io.IOException
    function getContentLength(): jlong; overload; virtual;
    function getContent(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function isChunked(): jboolean; overload; virtual;
    function isRepeatable(): jboolean; overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function isStreaming(): jboolean; overload; virtual;
  end;

  OAHHttpEntityEnclosingRequest = interface external 'org.apache.http' name 'HttpEntityEnclosingRequest' (OAHHttpRequest)
    function expectContinue(): jboolean; overload;
    procedure setEntity(para1: OAHHttpEntity); overload;
    function getEntity(): OAHHttpEntity; overload;
  end;

  OAHCMHttpUriRequest = interface external 'org.apache.http.client.methods' name 'HttpUriRequest' (OAHHttpRequest)
    function getMethod(): JLString; overload;
    function getURI(): JNURI; overload;
    procedure abort(); overload;  // throws java.lang.UnsupportedOperationException
    function isAborted(): jboolean; overload;
  end;

  OAHMBasicHttpRequest = class external 'org.apache.http.message' name 'BasicHttpRequest' (OAHMAbstractHttpMessage, OAHHttpRequest)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: OAHProtocolVersion); overload;
    constructor create(para1: OAHRequestLine); overload;
    function getProtocolVersion(): OAHProtocolVersion; overload; virtual;
    function getRequestLine(): OAHRequestLine; overload; virtual;
  end;

  OAHMBasicHttpResponse = class external 'org.apache.http.message' name 'BasicHttpResponse' (OAHMAbstractHttpMessage, OAHHttpResponse)
  public
    constructor create(para1: OAHStatusLine; para2: OAHReasonPhraseCatalog; para3: JULocale); overload;
    constructor create(para1: OAHStatusLine); overload;
    constructor create(para1: OAHProtocolVersion; para2: jint; para3: JLString); overload;
    function getProtocolVersion(): OAHProtocolVersion; overload; virtual;
    function getStatusLine(): OAHStatusLine; overload; virtual;
    function getEntity(): OAHHttpEntity; overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    procedure setStatusLine(para1: OAHStatusLine); overload; virtual;
    procedure setStatusLine(para1: OAHProtocolVersion; para2: jint); overload; virtual;
    procedure setStatusLine(para1: OAHProtocolVersion; para2: jint; para3: JLString); overload; virtual;
    procedure setStatusCode(para1: jint); overload; virtual;
    procedure setReasonPhrase(para1: JLString); overload; virtual;
    procedure setEntity(para1: OAHHttpEntity); overload; virtual;
    procedure setLocale(para1: JULocale); overload; virtual;
  strict protected
    function getReason(para1: jint): JLString; overload; virtual;
  end;

  OAHPBasicHttpProcessor = class sealed external 'org.apache.http.protocol' name 'BasicHttpProcessor' (JLObject, OAHPHttpProcessor, OAHPHttpRequestInterceptorList, OAHPHttpResponseInterceptorList, JLCloneable)
  strict protected
    var
      frequestInterceptors: JUList; external name 'requestInterceptors';
      fresponseInterceptors: JUList; external name 'responseInterceptors';
  public
    constructor create(); overload;
    procedure addRequestInterceptor(para1: OAHHttpRequestInterceptor); overload; virtual;
    procedure addRequestInterceptor(para1: OAHHttpRequestInterceptor; para2: jint); overload; virtual;
    procedure addResponseInterceptor(para1: OAHHttpResponseInterceptor; para2: jint); overload; virtual;
    procedure removeRequestInterceptorByClass(para1: JLClass); overload; virtual;
    procedure removeResponseInterceptorByClass(para1: JLClass); overload; virtual;
    procedure addInterceptor(para1: OAHHttpRequestInterceptor); overload; virtual; final;
    procedure addInterceptor(para1: OAHHttpRequestInterceptor; para2: jint); overload; virtual; final;
    function getRequestInterceptorCount(): jint; overload; virtual;
    function getRequestInterceptor(para1: jint): OAHHttpRequestInterceptor; overload; virtual;
    procedure clearRequestInterceptors(); overload; virtual;
    procedure addResponseInterceptor(para1: OAHHttpResponseInterceptor); overload; virtual;
    procedure addInterceptor(para1: OAHHttpResponseInterceptor); overload; virtual; final;
    procedure addInterceptor(para1: OAHHttpResponseInterceptor; para2: jint); overload; virtual; final;
    function getResponseInterceptorCount(): jint; overload; virtual;
    function getResponseInterceptor(para1: jint): OAHHttpResponseInterceptor; overload; virtual;
    procedure clearResponseInterceptors(); overload; virtual;
    procedure setInterceptors(para1: JUList); overload; virtual;
    procedure clearInterceptors(); overload; virtual;
    procedure process(para1: OAHHttpRequest; para2: OAHPHttpContext); overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
    procedure process(para1: OAHHttpResponse; para2: OAHPHttpContext); overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
  strict protected
    procedure copyInterceptors(para1: OAHPBasicHttpProcessor); overload; virtual;
  public
    function copy(): OAHPBasicHttpProcessor; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHIANTLMScheme = class external 'org.apache.http.impl.auth' name 'NTLMScheme' (OAHIAAuthSchemeBase)
  public
    constructor create(para1: OAHIANTLMEngine); overload;
    function getSchemeName(): JLString; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    function getRealm(): JLString; overload; virtual;
    function isConnectionBased(): jboolean; overload; virtual;
  strict protected
    procedure parseChallenge(para1: OAHUCharArrayBuffer; para2: jint; para3: jint); overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
  public
    function authenticate(para1: OAHACredentials; para2: OAHHttpRequest): OAHHeader; overload; virtual;  // throws org.apache.http.auth.AuthenticationException
    function isComplete(): jboolean; overload; virtual;
  end;

  OAHIARFC2617Scheme = class abstract external 'org.apache.http.impl.auth' name 'RFC2617Scheme' (OAHIAAuthSchemeBase)
  public
    constructor create(); overload;
  strict protected
    procedure parseChallenge(para1: OAHUCharArrayBuffer; para2: jint; para3: jint); overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
    function getParameters(): JUMap; overload; virtual;
  public
    function getParameter(para1: JLString): JLString; overload; virtual;
    function getRealm(): JLString; overload; virtual;
  end;

  OAHICDefaultProxyAuthenticationHandler = class external 'org.apache.http.impl.client' name 'DefaultProxyAuthenticationHandler' (OAHICAbstractAuthenticationHandler)
  public
    constructor create(); overload;
    function isAuthenticationRequested(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload; virtual;
    function getChallenges(para1: OAHHttpResponse; para2: OAHPHttpContext): JUMap; overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
  end;

  OAHICDefaultTargetAuthenticationHandler = class external 'org.apache.http.impl.client' name 'DefaultTargetAuthenticationHandler' (OAHICAbstractAuthenticationHandler)
  public
    constructor create(); overload;
    function isAuthenticationRequested(para1: OAHHttpResponse; para2: OAHPHttpContext): jboolean; overload; virtual;
    function getChallenges(para1: OAHHttpResponse; para2: OAHPHttpContext): JUMap; overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
  end;

  OAHICDefaultHttpClient = class external 'org.apache.http.impl.client' name 'DefaultHttpClient' (OAHICAbstractHttpClient)
  public
    constructor create(para1: OAHCClientConnectionManager; para2: OAHPHttpParams); overload;
    constructor create(para1: OAHPHttpParams); overload;
    constructor create(); overload;
  strict protected
    function createHttpParams(): OAHPHttpParams; overload; virtual;
    function createRequestExecutor(): OAHPHttpRequestExecutor; overload; virtual;
    function createClientConnectionManager(): OAHCClientConnectionManager; overload; virtual;
    function createHttpContext(): OAHPHttpContext; overload; virtual;
    function createConnectionReuseStrategy(): OAHConnectionReuseStrategy; overload; virtual;
    function createConnectionKeepAliveStrategy(): OAHCConnectionKeepAliveStrategy; overload; virtual;
    function createAuthSchemeRegistry(): OAHAAuthSchemeRegistry; overload; virtual;
    function createCookieSpecRegistry(): OAHCCookieSpecRegistry; overload; virtual;
    function createHttpProcessor(): OAHPBasicHttpProcessor; overload; virtual;
    function createHttpRequestRetryHandler(): OAHCHttpRequestRetryHandler; overload; virtual;
    function createRedirectHandler(): OAHCRedirectHandler; overload; virtual;
    function createTargetAuthenticationHandler(): OAHCAuthenticationHandler; overload; virtual;
    function createProxyAuthenticationHandler(): OAHCAuthenticationHandler; overload; virtual;
    function createCookieStore(): OAHCCookieStore; overload; virtual;
    function createCredentialsProvider(): OAHCCredentialsProvider; overload; virtual;
    function createHttpRoutePlanner(): OAHCRHttpRoutePlanner; overload; virtual;
    function createUserTokenHandler(): OAHCUserTokenHandler; overload; virtual;
  end;

  OAHCSSSLSocketFactory = class external 'org.apache.http.conn.ssl' name 'SSLSocketFactory' (JLObject, OAHCSLayeredSocketFactory)
  public
    const
      TLS = 'TLS';
      SSL = 'SSL';
      SSLV2 = 'SSLv2';
  public
    final class var
      fALLOW_ALL_HOSTNAME_VERIFIER: OAHCSX509HostnameVerifier; external name 'ALLOW_ALL_HOSTNAME_VERIFIER';
      fBROWSER_COMPATIBLE_HOSTNAME_VERIFIER: OAHCSX509HostnameVerifier; external name 'BROWSER_COMPATIBLE_HOSTNAME_VERIFIER';
      fSTRICT_HOSTNAME_VERIFIER: OAHCSX509HostnameVerifier; external name 'STRICT_HOSTNAME_VERIFIER';
  public
    constructor create(para1: JLString; para2: JSKeyStore; para3: JLString; para4: JSKeyStore; para5: JSSecureRandom; para6: OAHCSHostNameResolver); overload;  // throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException
    constructor create(para1: JSKeyStore; para2: JLString; para3: JSKeyStore); overload;  // throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException
    constructor create(para1: JSKeyStore; para2: JLString); overload;  // throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException
    constructor create(para1: JSKeyStore); overload;  // throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException
    class function getSocketFactory(): OAHCSSSLSocketFactory; static; overload;
    function createSocket(): JNSocket; overload; virtual;  // throws java.io.IOException
    function connectSocket(para1: JNSocket; para2: JLString; para3: jint; para4: JNInetAddress; para5: jint; para6: OAHPHttpParams): JNSocket; overload; virtual;  // throws java.io.IOException
    function isSecure(para1: JNSocket): jboolean; overload; virtual;  // throws java.lang.IllegalArgumentException
    function createSocket(para1: JNSocket; para2: JLString; para3: jint; para4: jboolean): JNSocket; overload; virtual;  // throws java.io.IOException, java.net.UnknownHostException
    procedure setHostnameVerifier(para1: OAHCSX509HostnameVerifier); overload; virtual;
    function getHostnameVerifier(): OAHCSX509HostnameVerifier; overload; virtual;
  end;

  OAHCSetCookie2 = interface external 'org.apache.http.cookie' name 'SetCookie2' (OAHCSetCookie)
    procedure setCommentURL(para1: JLString); overload;
    procedure setPorts(para1: Arr1jint); overload;
    procedure setPorts(var para1: array of jint); overload;
    procedure setDiscard(para1: jboolean); overload;
  end;

  OAHICBasicClientCookie = class external 'org.apache.http.impl.cookie' name 'BasicClientCookie' (JLObject, OAHCSetCookie, OAHCClientCookie, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
    procedure setValue(para1: JLString); overload; virtual;
    function getComment(): JLString; overload; virtual;
    procedure setComment(para1: JLString); overload; virtual;
    function getCommentURL(): JLString; overload; virtual;
    function getExpiryDate(): JUDate; overload; virtual;
    procedure setExpiryDate(para1: JUDate); overload; virtual;
    function isPersistent(): jboolean; overload; virtual;
    function getDomain(): JLString; overload; virtual;
    procedure setDomain(para1: JLString); overload; virtual;
    function getPath(): JLString; overload; virtual;
    procedure setPath(para1: JLString); overload; virtual;
    function isSecure(): jboolean; overload; virtual;
    procedure setSecure(para1: jboolean); overload; virtual;
    function getPorts(): Arr1jint; overload; virtual;
    function getVersion(): jint; overload; virtual;
    procedure setVersion(para1: jint); overload; virtual;
    function isExpired(para1: JUDate): jboolean; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLString); overload; virtual;
    function getAttribute(para1: JLString): JLString; overload; virtual;
    function containsAttribute(para1: JLString): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function toString(): JLString; overload; virtual;
  end;

  OAHICBasicCommentHandler = class external 'org.apache.http.impl.cookie' name 'BasicCommentHandler' (OAHICAbstractCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
  end;

  OAHICBasicExpiresHandler = class external 'org.apache.http.impl.cookie' name 'BasicExpiresHandler' (OAHICAbstractCookieAttributeHandler)
  public
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
  end;

  OAHICBasicMaxAgeHandler = class external 'org.apache.http.impl.cookie' name 'BasicMaxAgeHandler' (OAHICAbstractCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
  end;

  OAHICBasicSecureHandler = class external 'org.apache.http.impl.cookie' name 'BasicSecureHandler' (OAHICAbstractCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICRFC2109VersionHandler = class external 'org.apache.http.impl.cookie' name 'RFC2109VersionHandler' (OAHICAbstractCookieAttributeHandler)
  public
    constructor create(); overload;
    procedure parse(para1: OAHCSetCookie; para2: JLString); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
  end;

  OAHICNetscapeDomainHandler = class external 'org.apache.http.impl.cookie' name 'NetscapeDomainHandler' (OAHICBasicDomainHandler)
  public
    constructor create(); overload;
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICCookieSpecBase = class abstract external 'org.apache.http.impl.cookie' name 'CookieSpecBase' (OAHICAbstractCookieSpec)
  public
    constructor create(); overload;
  strict protected
    class function getDefaultPath(para1: OAHCCookieOrigin): JLString; static; overload;
    class function getDefaultDomain(para1: OAHCCookieOrigin): JLString; static; overload;
    function parse(para1: Arr1OAHHeaderElement; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function parse(var para1: array of OAHHeaderElement; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
  public
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  end;

  OAHICTConnPoolByRoute = class external 'org.apache.http.impl.conn.tsccm' name 'ConnPoolByRoute' (OAHICTAbstractConnPool)
  strict protected
    final var
      foperator: OAHCClientConnectionOperator; external name 'operator';
  strict protected
    var
      ffreeConnections: JUQueue; external name 'freeConnections';
      fwaitingThreads: JUQueue; external name 'waitingThreads';
  strict protected
    final var
      frouteToPool: JUMap; external name 'routeToPool';
      fmaxTotalConnections: jint; external name 'maxTotalConnections';
  public
    constructor create(para1: OAHCClientConnectionOperator; para2: OAHPHttpParams); overload;
  strict protected
    function createFreeConnQueue(): JUQueue; overload; virtual;
    function createWaitingThreadQueue(): JUQueue; overload; virtual;
    function createRouteToPoolMap(): JUMap; overload; virtual;
    function newRouteSpecificPool(para1: OAHCRHttpRoute): OAHICTRouteSpecificPool; overload; virtual;
    function newWaitingThread(para1: JUCLCondition; para2: OAHICTRouteSpecificPool): OAHICTWaitingThread; overload; virtual;
    function getRoutePool(para1: OAHCRHttpRoute; para2: jboolean): OAHICTRouteSpecificPool; overload; virtual;
  public
    function getConnectionsInPool(para1: OAHCRHttpRoute): jint; overload; virtual;
    function requestPoolEntry(para1: OAHCRHttpRoute; para2: JLObject): OAHICTPoolEntryRequest; overload; virtual;
  strict protected
    function getEntryBlocking(para1: OAHCRHttpRoute; para2: JLObject; para3: jlong; para4: JUCTimeUnit; para5: OAHICTWaitingThreadAborter): OAHICTBasicPoolEntry; overload; virtual;  // throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException
  public
    procedure freeEntry(para1: OAHICTBasicPoolEntry; para2: jboolean; para3: jlong; para4: JUCTimeUnit); overload; virtual;
  strict protected
    function getFreeEntry(para1: OAHICTRouteSpecificPool; para2: JLObject): OAHICTBasicPoolEntry; overload; virtual;
    function createEntry(para1: OAHICTRouteSpecificPool; para2: OAHCClientConnectionOperator): OAHICTBasicPoolEntry; overload; virtual;
    procedure deleteEntry(para1: OAHICTBasicPoolEntry); overload; virtual;
    procedure deleteLeastUsedEntry(); overload; virtual;
    procedure handleLostEntry(para1: OAHCRHttpRoute); overload; virtual;
    procedure notifyWaitingThread(para1: OAHICTRouteSpecificPool); overload; virtual;
  public
    procedure deleteClosedConnections(); overload; virtual;
    procedure shutdown(); overload; virtual;
  end;

  OAHICDefaultResponseParser = class external 'org.apache.http.impl.conn' name 'DefaultResponseParser' (OAHIIAbstractMessageParser)
  public
    constructor create(para1: OAHISessionInputBuffer; para2: OAHMLineParser; para3: OAHHttpResponseFactory; para4: OAHPHttpParams); overload;
  strict protected
    function parseHead(para1: OAHISessionInputBuffer): OAHHttpMessage; overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException
  end;

  OAHIIHttpRequestParser = class external 'org.apache.http.impl.io' name 'HttpRequestParser' (OAHIIAbstractMessageParser)
  public
    constructor create(para1: OAHISessionInputBuffer; para2: OAHMLineParser; para3: OAHHttpRequestFactory; para4: OAHPHttpParams); overload;
  strict protected
    function parseHead(para1: OAHISessionInputBuffer): OAHHttpMessage; overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException, org.apache.http.ParseException
  end;

  OAHIIHttpResponseParser = class external 'org.apache.http.impl.io' name 'HttpResponseParser' (OAHIIAbstractMessageParser)
  public
    constructor create(para1: OAHISessionInputBuffer; para2: OAHMLineParser; para3: OAHHttpResponseFactory; para4: OAHPHttpParams); overload;
  strict protected
    function parseHead(para1: OAHISessionInputBuffer): OAHHttpMessage; overload; virtual;  // throws java.io.IOException, org.apache.http.HttpException, org.apache.http.ParseException
  end;

  OAHIIHttpRequestWriter = class external 'org.apache.http.impl.io' name 'HttpRequestWriter' (OAHIIAbstractMessageWriter)
  public
    constructor create(para1: OAHISessionOutputBuffer; para2: OAHMLineFormatter; para3: OAHPHttpParams); overload;
  strict protected
    procedure writeHeadLine(para1: OAHHttpMessage); overload; virtual;  // throws java.io.IOException
  end;

  OAHIIHttpResponseWriter = class external 'org.apache.http.impl.io' name 'HttpResponseWriter' (OAHIIAbstractMessageWriter)
  public
    constructor create(para1: OAHISessionOutputBuffer; para2: OAHMLineFormatter; para3: OAHPHttpParams); overload;
  strict protected
    procedure writeHeadLine(para1: OAHHttpMessage); overload; virtual;  // throws java.io.IOException
  end;

  OAHIISocketInputBuffer = class external 'org.apache.http.impl.io' name 'SocketInputBuffer' (OAHIIAbstractSessionInputBuffer)
  public
    constructor create(para1: JNSocket; para2: jint; para3: OAHPHttpParams); overload;  // throws java.io.IOException
    function isDataAvailable(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
  end;

  OAHIISocketOutputBuffer = class external 'org.apache.http.impl.io' name 'SocketOutputBuffer' (OAHIIAbstractSessionOutputBuffer)
  public
    constructor create(para1: JNSocket; para2: jint; para3: OAHPHttpParams); overload;  // throws java.io.IOException
  end;

  OAHICClientParamsStack = class external 'org.apache.http.impl.client' name 'ClientParamsStack' (OAHPAbstractHttpParams)
  strict protected
    final var
      fapplicationParams: OAHPHttpParams; external name 'applicationParams';
      fclientParams: OAHPHttpParams; external name 'clientParams';
      frequestParams: OAHPHttpParams; external name 'requestParams';
      foverrideParams: OAHPHttpParams; external name 'overrideParams';
  public
    constructor create(para1: OAHPHttpParams; para2: OAHPHttpParams; para3: OAHPHttpParams; para4: OAHPHttpParams); overload;
    constructor create(para1: OAHICClientParamsStack); overload;
    constructor create(para1: OAHICClientParamsStack; para2: OAHPHttpParams; para3: OAHPHttpParams; para4: OAHPHttpParams; para5: OAHPHttpParams); overload;
    function getApplicationParams(): OAHPHttpParams; overload; virtual; final;
    function getClientParams(): OAHPHttpParams; overload; virtual; final;
    function getRequestParams(): OAHPHttpParams; overload; virtual; final;
    function getOverrideParams(): OAHPHttpParams; overload; virtual; final;
    function getParameter(para1: JLString): JLObject; overload; virtual;
    function setParameter(para1: JLString; para2: JLObject): OAHPHttpParams; overload; virtual;  // throws java.lang.UnsupportedOperationException
    function removeParameter(para1: JLString): jboolean; overload; virtual;
    function copy(): OAHPHttpParams; overload; virtual;
  end;

  OAHPBasicHttpParams = class sealed external 'org.apache.http.params' name 'BasicHttpParams' (OAHPAbstractHttpParams, JISerializable, JLCloneable)
  public
    constructor create(); overload;
    function getParameter(para1: JLString): JLObject; overload; virtual;
    function setParameter(para1: JLString; para2: JLObject): OAHPHttpParams; overload; virtual;
    function removeParameter(para1: JLString): jboolean; overload; virtual;
    procedure setParameters(para1: Arr1JLString; para2: JLObject); overload; virtual;
    procedure setParameters(var para1: array of JLString; para2: JLObject); overload; virtual;
    function isParameterSet(para1: JLString): jboolean; overload; virtual;
    function isParameterSetLocally(para1: JLString): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function copy(): OAHPHttpParams; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  strict protected
    procedure copyParams(para1: OAHPHttpParams); overload; virtual;
  end;

  OAHPDefaultedHttpParams = class sealed external 'org.apache.http.params' name 'DefaultedHttpParams' (OAHPAbstractHttpParams)
  public
    constructor create(para1: OAHPHttpParams; para2: OAHPHttpParams); overload;
    function copy(): OAHPHttpParams; overload; virtual;
    function getParameter(para1: JLString): JLObject; overload; virtual;
    function removeParameter(para1: JLString): jboolean; overload; virtual;
    function setParameter(para1: JLString; para2: JLObject): OAHPHttpParams; overload; virtual;
    function getDefaults(): OAHPHttpParams; overload; virtual;
  end;

  OAHPSyncBasicHttpContext = class external 'org.apache.http.protocol' name 'SyncBasicHttpContext' (OAHPBasicHttpContext)
  public
    constructor create(para1: OAHPHttpContext); overload;
    function getAttribute(para1: JLString): JLObject; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual;
    function removeAttribute(para1: JLString): JLObject; overload; virtual;
  end;

  OWDComment = interface external 'org.w3c.dom' name 'Comment' (OWDCharacterData)
  end;

  OWDText = interface external 'org.w3c.dom' name 'Text' (OWDCharacterData)
    function splitText(para1: jint): OWDText; overload;  // throws org.w3c.dom.DOMException
    function isElementContentWhitespace(): jboolean; overload;
    function getWholeText(): JLString; overload;
    function replaceWholeText(para1: JLString): OWDText; overload;  // throws org.w3c.dom.DOMException
  end;

  OXSEAttributes2Impl = class external 'org.xml.sax.ext' name 'Attributes2Impl' (OXSHAttributesImpl, OXSEAttributes2)
  public
    constructor create(); overload;
    constructor create(para1: OXSAttributes); overload;
    function isDeclared(para1: jint): jboolean; overload; virtual;
    function isDeclared(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function isDeclared(para1: JLString): jboolean; overload; virtual;
    function isSpecified(para1: jint): jboolean; overload; virtual;
    function isSpecified(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function isSpecified(para1: JLString): jboolean; overload; virtual;
    procedure setAttributes(para1: OXSAttributes); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure removeAttribute(para1: jint); overload; virtual;
    procedure setDeclared(para1: jint; para2: jboolean); overload; virtual;
    procedure setSpecified(para1: jint; para2: jboolean); overload; virtual;
  end;

  OXSEDefaultHandler2 = class external 'org.xml.sax.ext' name 'DefaultHandler2' (OXSHDefaultHandler, OXSELexicalHandler, OXSEDeclHandler, OXSEEntityResolver2)
  public
    constructor create(); overload;
    procedure startCDATA(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endCDATA(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startDTD(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDTD(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure comment(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure comment(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure attributeDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure elementDecl(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure externalEntityDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure internalEntityDecl(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    function getExternalSubset(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString; para3: JLString; para4: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSELocator2Impl = class external 'org.xml.sax.ext' name 'Locator2Impl' (OXSHLocatorImpl, OXSELocator2)
  public
    constructor create(); overload;
    constructor create(para1: OXSLocator); overload;
    function getXMLVersion(): JLString; overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    procedure setXMLVersion(para1: JLString); overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;
  end;

  OXSHXMLFilterImpl = class external 'org.xml.sax.helpers' name 'XMLFilterImpl' (JLObject, OXSXMLFilter, OXSEntityResolver, OXSDTDHandler, OXSContentHandler, OXSErrorHandler)
  public
    constructor create(); overload;
    constructor create(para1: OXSXMLReader); overload;
    procedure setParent(para1: OXSXMLReader); overload; virtual;
    function getParent(): OXSXMLReader; overload; virtual;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    function getEntityResolver(): OXSEntityResolver; overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    function getDTDHandler(): OXSDTDHandler; overload; virtual;
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual;
    function getContentHandler(): OXSContentHandler; overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    function getErrorHandler(): OXSErrorHandler; overload; virtual;
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endPrefixMapping(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  ATMMockPackageManager = class external 'android.test.mock' name 'MockPackageManager' (ACPPackageManager)
  public
    constructor create(); overload;
    function getPackageInfo(para1: JLString; para2: jint): ACPPackageInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function currentToCanonicalPackageNames(para1: Arr1JLString): Arr1JLString; overload; virtual;
    function currentToCanonicalPackageNames(var para1: array of JLString): Arr1JLString; overload; virtual;
    function canonicalToCurrentPackageNames(para1: Arr1JLString): Arr1JLString; overload; virtual;
    function canonicalToCurrentPackageNames(var para1: array of JLString): Arr1JLString; overload; virtual;
    function getLaunchIntentForPackage(para1: JLString): ACIntent; overload; virtual;
    function getPackageGids(para1: JLString): Arr1jint; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getPermissionInfo(para1: JLString; para2: jint): ACPPermissionInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function queryPermissionsByGroup(para1: JLString; para2: jint): JUList; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getPermissionGroupInfo(para1: JLString; para2: jint): ACPPermissionGroupInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getAllPermissionGroups(para1: jint): JUList; overload; virtual;
    function getApplicationInfo(para1: JLString; para2: jint): ACPApplicationInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityInfo(para1: ACComponentName; para2: jint): ACPActivityInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getReceiverInfo(para1: ACComponentName; para2: jint): ACPActivityInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getServiceInfo(para1: ACComponentName; para2: jint): ACPServiceInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getProviderInfo(para1: ACComponentName; para2: jint): ACPProviderInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getInstalledPackages(para1: jint): JUList; overload; virtual;
    function checkPermission(para1: JLString; para2: JLString): jint; overload; virtual;
    function addPermission(para1: ACPPermissionInfo): jboolean; overload; virtual;
    function addPermissionAsync(para1: ACPPermissionInfo): jboolean; overload; virtual;
    procedure removePermission(para1: JLString); overload; virtual;
    function checkSignatures(para1: JLString; para2: JLString): jint; overload; virtual;
    function checkSignatures(para1: jint; para2: jint): jint; overload; virtual;
    function getPackagesForUid(para1: jint): Arr1JLString; overload; virtual;
    function getNameForUid(para1: jint): JLString; overload; virtual;
    function getInstalledApplications(para1: jint): JUList; overload; virtual;
    function resolveActivity(para1: ACIntent; para2: jint): ACPResolveInfo; overload; virtual;
    function queryIntentActivities(para1: ACIntent; para2: jint): JUList; overload; virtual;
    function queryIntentActivityOptions(para1: ACComponentName; para2: Arr1ACIntent; para3: ACIntent; para4: jint): JUList; overload; virtual;
    function queryIntentActivityOptions(para1: ACComponentName; var para2: array of ACIntent; para3: ACIntent; para4: jint): JUList; overload; virtual;
    function queryBroadcastReceivers(para1: ACIntent; para2: jint): JUList; overload; virtual;
    function resolveService(para1: ACIntent; para2: jint): ACPResolveInfo; overload; virtual;
    function queryIntentServices(para1: ACIntent; para2: jint): JUList; overload; virtual;
    function resolveContentProvider(para1: JLString; para2: jint): ACPProviderInfo; overload; virtual;
    function queryContentProviders(para1: JLString; para2: jint; para3: jint): JUList; overload; virtual;
    function getInstrumentationInfo(para1: ACComponentName; para2: jint): ACPInstrumentationInfo; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function queryInstrumentation(para1: JLString; para2: jint): JUList; overload; virtual;
    function getDrawable(para1: JLString; para2: jint; para3: ACPApplicationInfo): AGDDrawable; overload; virtual;
    function getActivityIcon(para1: ACComponentName): AGDDrawable; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityIcon(para1: ACIntent): AGDDrawable; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getDefaultActivityIcon(): AGDDrawable; overload; virtual;
    function getApplicationIcon(para1: ACPApplicationInfo): AGDDrawable; overload; virtual;
    function getApplicationIcon(para1: JLString): AGDDrawable; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityLogo(para1: ACComponentName): AGDDrawable; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getActivityLogo(para1: ACIntent): AGDDrawable; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getApplicationLogo(para1: ACPApplicationInfo): AGDDrawable; overload; virtual;
    function getApplicationLogo(para1: JLString): AGDDrawable; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getText(para1: JLString; para2: jint; para3: ACPApplicationInfo): JLCharSequence; overload; virtual;
    function getXml(para1: JLString; para2: jint; para3: ACPApplicationInfo): ACRXmlResourceParser; overload; virtual;
    function getApplicationLabel(para1: ACPApplicationInfo): JLCharSequence; overload; virtual;
    function getResourcesForActivity(para1: ACComponentName): ACRResources; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getResourcesForApplication(para1: ACPApplicationInfo): ACRResources; overload; virtual;
    function getResourcesForApplication(para1: JLString): ACRResources; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function getPackageArchiveInfo(para1: JLString; para2: jint): ACPPackageInfo; overload; virtual;
    procedure setInstallerPackageName(para1: JLString; para2: JLString); overload; virtual;
    function getInstallerPackageName(para1: JLString): JLString; overload; virtual;
    procedure addPackageToPreferred(para1: JLString); overload; virtual;
    procedure removePackageFromPreferred(para1: JLString); overload; virtual;
    function getPreferredPackages(para1: jint): JUList; overload; virtual;
    procedure setComponentEnabledSetting(para1: ACComponentName; para2: jint; para3: jint); overload; virtual;
    function getComponentEnabledSetting(para1: ACComponentName): jint; overload; virtual;
    procedure setApplicationEnabledSetting(para1: JLString; para2: jint; para3: jint); overload; virtual;
    function getApplicationEnabledSetting(para1: JLString): jint; overload; virtual;
    procedure addPreferredActivity(para1: ACIntentFilter; para2: jint; para3: Arr1ACComponentName; para4: ACComponentName); overload; virtual;
    procedure addPreferredActivity(para1: ACIntentFilter; para2: jint; var para3: array of ACComponentName; para4: ACComponentName); overload; virtual;
    procedure clearPackagePreferredActivities(para1: JLString); overload; virtual;
    function getPreferredActivities(para1: JUList; para2: JUList; para3: JLString): jint; overload; virtual;
    function getSystemSharedLibraryNames(): Arr1JLString; overload; virtual;
    function getSystemAvailableFeatures(): Arr1ACPFeatureInfo; overload; virtual;
    function hasSystemFeature(para1: JLString): jboolean; overload; virtual;
    function isSafeMode(): jboolean; overload; virtual;
    procedure verifyPendingInstall(para1: jint; para2: jint); overload; virtual;
  end;

  AODeadObjectException = class external 'android.os' name 'DeadObjectException' (AORemoteException)
  public
    constructor create(); overload;
  end;

  JSInvalidKeyException = class external 'java.security' name 'InvalidKeyException' (JSKeyException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSKeyManagementException = class external 'java.security' name 'KeyManagementException' (JSKeyException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSUnrecoverableKeyException = class external 'java.security' name 'UnrecoverableKeyException' (JSUnrecoverableEntryException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSCCertificateEncodingException = class external 'java.security.cert' name 'CertificateEncodingException' (JSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSCCertificateExpiredException = class external 'java.security.cert' name 'CertificateExpiredException' (JSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSCCertificateNotYetValidException = class external 'java.security.cert' name 'CertificateNotYetValidException' (JSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JSCCertificateParsingException = class external 'java.security.cert' name 'CertificateParsingException' (JSCCertificateException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JXXXPathFunctionException = class external 'javax.xml.xpath' name 'XPathFunctionException' (JXXXPathExpressionException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OAHUnsupportedHttpVersionException = class external 'org.apache.http' name 'UnsupportedHttpVersionException' (OAHProtocolException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OAHAAuthenticationException = class external 'org.apache.http.auth' name 'AuthenticationException' (OAHProtocolException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHAMalformedChallengeException = class external 'org.apache.http.auth' name 'MalformedChallengeException' (OAHProtocolException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHCNonRepeatableRequestException = class external 'org.apache.http.client' name 'NonRepeatableRequestException' (OAHProtocolException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OAHCRedirectException = class external 'org.apache.http.client' name 'RedirectException' (OAHProtocolException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHCMalformedCookieException = class external 'org.apache.http.cookie' name 'MalformedCookieException' (OAHProtocolException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  AAObjectAnimator = class sealed external 'android.animation' name 'ObjectAnimator' (AAValueAnimator)
  public
    constructor create(); overload;
    procedure setPropertyName(para1: JLString); overload; virtual;
    procedure setProperty(para1: AUProperty); overload; virtual;
    function getPropertyName(): JLString; overload; virtual;
    class function ofInt(para1: JLObject; para2: JLString; para3: Arr1jint): AAObjectAnimator; static; overload;
    class function ofInt(para1: JLObject; para2: JLString; const para3: array of jint): AAObjectAnimator; static; overload;
    class function ofInt(para1: JLObject; para2: AUProperty; para3: Arr1jint): AAObjectAnimator; static; overload;
    class function ofInt(para1: JLObject; para2: AUProperty; const para3: array of jint): AAObjectAnimator; static; overload;
    class function ofFloat(para1: JLObject; para2: JLString; para3: Arr1jfloat): AAObjectAnimator; static; overload;
    class function ofFloat(para1: JLObject; para2: JLString; const para3: array of jfloat): AAObjectAnimator; static; overload;
    class function ofFloat(para1: JLObject; para2: AUProperty; para3: Arr1jfloat): AAObjectAnimator; static; overload;
    class function ofFloat(para1: JLObject; para2: AUProperty; const para3: array of jfloat): AAObjectAnimator; static; overload;
    class function ofObject(para1: JLObject; para2: JLString; para3: AATypeEvaluator; para4: Arr1JLObject): AAObjectAnimator; static; overload;
    class function ofObject(para1: JLObject; para2: JLString; para3: AATypeEvaluator; const para4: array of JLObject): AAObjectAnimator; static; overload;
    class function ofObject(para1: JLObject; para2: AUProperty; para3: AATypeEvaluator; para4: Arr1JLObject): AAObjectAnimator; static; overload;
    class function ofObject(para1: JLObject; para2: AUProperty; para3: AATypeEvaluator; const para4: array of JLObject): AAObjectAnimator; static; overload;
    class function ofPropertyValuesHolder(para1: JLObject; para2: Arr1AAPropertyValuesHolder): AAObjectAnimator; static; overload;
    class function ofPropertyValuesHolder(para1: JLObject; const para2: array of AAPropertyValuesHolder): AAObjectAnimator; static; overload;
    procedure setIntValues(para1: Arr1jint); overload; virtual;
    procedure setIntValues(const para1: array of jint); overload; virtual;
    procedure setFloatValues(para1: Arr1jfloat); overload; virtual;
    procedure setFloatValues(const para1: array of jfloat); overload; virtual;
    procedure setObjectValues(para1: Arr1JLObject); overload; virtual;
    procedure setObjectValues(const para1: array of JLObject); overload; virtual;
    procedure start(); overload; virtual;
    function setDuration(para1: jlong): AAObjectAnimator; overload; virtual;
    function getTarget(): JLObject; overload; virtual;
    procedure setTarget(para1: JLObject); overload; virtual;
    procedure setupStartValues(); overload; virtual;
    procedure setupEndValues(); overload; virtual;
    function clone(): AAObjectAnimator; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): AAValueAnimator; overload; virtual;
    function setDuration(para1: jlong): AAValueAnimator; overload; virtual;
    function clone(): AAAnimator; overload; virtual;
    function setDuration(para1: jlong): AAAnimator; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  AGDSArcShape = class external 'android.graphics.drawable.shapes' name 'ArcShape' (AGDSRectShape)
  public
    constructor create(para1: jfloat; para2: jfloat); overload;
    procedure draw(para1: AGCanvas; para2: AGPaint); overload; virtual;
  end;

  AGDSOvalShape = class external 'android.graphics.drawable.shapes' name 'OvalShape' (AGDSRectShape)
  public
    constructor create(); overload;
    procedure draw(para1: AGCanvas; para2: AGPaint); overload; virtual;
  end;

  AGDSRoundRectShape = class external 'android.graphics.drawable.shapes' name 'RoundRectShape' (AGDSRectShape)
  public
    constructor create(para1: Arr1jfloat; para2: AGRectF; para3: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat; para2: AGRectF; const para3: array of jfloat); overload;
    procedure draw(para1: AGCanvas; para2: AGPaint); overload; virtual;
  strict protected
    procedure onResize(para1: jfloat; para2: jfloat); overload; virtual;
  public
    function clone(): AGDSRoundRectShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): AGDSRectShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): AGDSShape; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSCPKIXBuilderParameters = class external 'java.security.cert' name 'PKIXBuilderParameters' (JSCPKIXParameters)
  public
    constructor create(para1: JUSet; para2: JSCCertSelector); overload;  // throws java.security.InvalidAlgorithmParameterException
    constructor create(para1: JSKeyStore; para2: JSCCertSelector); overload;  // throws java.security.KeyStoreException, java.security.InvalidAlgorithmParameterException
    function getMaxPathLength(): jint; overload; virtual;
    procedure setMaxPathLength(para1: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCPKIXCertPathBuilderResult = class external 'java.security.cert' name 'PKIXCertPathBuilderResult' (JSCPKIXCertPathValidatorResult, JSCCertPathBuilderResult)
  public
    constructor create(para1: JSCCertPath; para2: JSCTrustAnchor; para3: JSCPolicyNode; para4: JSPublicKey); overload;
    function getCertPath(): JSCCertPath; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTAttributedString = class external 'java.text' name 'AttributedString' (JLObject)
  public
    constructor create(para1: JTAttributedCharacterIterator); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: jint; para3: jint); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: jint; para3: jint; para4: JTAttributedCharacterIterator.Arr1InnerAttribute); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: jint; para3: jint; const para4: array of JTAttributedCharacterIterator.InnerAttribute); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    procedure addAttribute(para1: JTAttributedCharacterIterator.InnerAttribute; para2: JLObject); overload; virtual;
    procedure addAttribute(para1: JTAttributedCharacterIterator.InnerAttribute; para2: JLObject; para3: jint; para4: jint); overload; virtual;
    procedure addAttributes(para1: JUMap; para2: jint; para3: jint); overload; virtual;
    function getIterator(): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(para1: JTAttributedCharacterIterator.Arr1InnerAttribute): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(var para1: array of JTAttributedCharacterIterator.InnerAttribute): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(para1: JTAttributedCharacterIterator.Arr1InnerAttribute; para2: jint; para3: jint): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(var para1: array of JTAttributedCharacterIterator.InnerAttribute; para2: jint; para3: jint): JTAttributedCharacterIterator; overload; virtual;
  end;

  JTFormat = class abstract external 'java.text' name 'Format' (JLObject, JISerializable, JLCloneable)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTAttributedCharacterIterator.InnerAttribute)
      strict protected
        constructor create(para1: JLString); overload;
      end;

  strict protected
    constructor create(); overload;
  public
    function clone(): JLObject; overload; virtual;
    function format(para1: JLObject): JLString; overload; virtual; final;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function parseObject(para1: JLString): JLObject; overload; virtual;  // throws java.text.ParseException
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual; abstract;
  end;

  ADSSQLiteAbortException = class external 'android.database.sqlite' name 'SQLiteAbortException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteAccessPermException = class external 'android.database.sqlite' name 'SQLiteAccessPermException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteBindOrColumnIndexOutOfRangeException = class external 'android.database.sqlite' name 'SQLiteBindOrColumnIndexOutOfRangeException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteBlobTooBigException = class external 'android.database.sqlite' name 'SQLiteBlobTooBigException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteCantOpenDatabaseException = class external 'android.database.sqlite' name 'SQLiteCantOpenDatabaseException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteConstraintException = class external 'android.database.sqlite' name 'SQLiteConstraintException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteDatabaseCorruptException = class external 'android.database.sqlite' name 'SQLiteDatabaseCorruptException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteDatabaseLockedException = class external 'android.database.sqlite' name 'SQLiteDatabaseLockedException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteDatatypeMismatchException = class external 'android.database.sqlite' name 'SQLiteDatatypeMismatchException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteDiskIOException = class external 'android.database.sqlite' name 'SQLiteDiskIOException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteDoneException = class external 'android.database.sqlite' name 'SQLiteDoneException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteFullException = class external 'android.database.sqlite' name 'SQLiteFullException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteMisuseException = class external 'android.database.sqlite' name 'SQLiteMisuseException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteOutOfMemoryException = class external 'android.database.sqlite' name 'SQLiteOutOfMemoryException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteReadOnlyDatabaseException = class external 'android.database.sqlite' name 'SQLiteReadOnlyDatabaseException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  ADSSQLiteTableLockedException = class external 'android.database.sqlite' name 'SQLiteTableLockedException' (ADSSQLiteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  AVKeyEvent = class external 'android.view' name 'KeyEvent' (AVInputEvent, AOParcelable)
  public
    type
      InnerDispatcherState = class;
      Arr1InnerDispatcherState = array of InnerDispatcherState;
      Arr2InnerDispatcherState = array of Arr1InnerDispatcherState;
      Arr3InnerDispatcherState = array of Arr2InnerDispatcherState;
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerDispatcherState = class external 'android.view' name 'DispatcherState' (JLObject)
      public
        constructor create(); overload;
        procedure reset(); overload; virtual;
        procedure reset(para1: JLObject); overload; virtual;
        procedure startTracking(para1: AVKeyEvent; para2: JLObject); overload; virtual;
        function isTracking(para1: AVKeyEvent): jboolean; overload; virtual;
        procedure performedLongPress(para1: AVKeyEvent); overload; virtual;
        procedure handleUpEvent(para1: AVKeyEvent); overload; virtual;
      end;

      InnerCallback = interface external 'android.view' name 'Callback' 
        function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload;
        function onKeyLongPress(para1: jint; para2: AVKeyEvent): jboolean; overload;
        function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload;
        function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload;
      end;

  public
    const
      KEYCODE_UNKNOWN = 0;
      KEYCODE_SOFT_LEFT = 1;
      KEYCODE_SOFT_RIGHT = 2;
      KEYCODE_HOME = 3;
      KEYCODE_BACK = 4;
      KEYCODE_CALL = 5;
      KEYCODE_ENDCALL = 6;
      KEYCODE_0 = 7;
      KEYCODE_1 = 8;
      KEYCODE_2 = 9;
      KEYCODE_3 = 10;
      KEYCODE_4 = 11;
      KEYCODE_5 = 12;
      KEYCODE_6 = 13;
      KEYCODE_7 = 14;
      KEYCODE_8 = 15;
      KEYCODE_9 = 16;
      KEYCODE_STAR = 17;
      KEYCODE_POUND = 18;
      KEYCODE_DPAD_UP = 19;
      KEYCODE_DPAD_DOWN = 20;
      KEYCODE_DPAD_LEFT = 21;
      KEYCODE_DPAD_RIGHT = 22;
      KEYCODE_DPAD_CENTER = 23;
      KEYCODE_VOLUME_UP = 24;
      KEYCODE_VOLUME_DOWN = 25;
      KEYCODE_POWER = 26;
      KEYCODE_CAMERA = 27;
      KEYCODE_CLEAR = 28;
      KEYCODE_A = 29;
      KEYCODE_B = 30;
      KEYCODE_C = 31;
      KEYCODE_D = 32;
      KEYCODE_E = 33;
      KEYCODE_F = 34;
      KEYCODE_G = 35;
      KEYCODE_H = 36;
      KEYCODE_I = 37;
      KEYCODE_J = 38;
      KEYCODE_K = 39;
      KEYCODE_L = 40;
      KEYCODE_M = 41;
      KEYCODE_N = 42;
      KEYCODE_O = 43;
      KEYCODE_P = 44;
      KEYCODE_Q = 45;
      KEYCODE_R = 46;
      KEYCODE_S = 47;
      KEYCODE_T = 48;
      KEYCODE_U = 49;
      KEYCODE_V = 50;
      KEYCODE_W = 51;
      KEYCODE_X = 52;
      KEYCODE_Y = 53;
      KEYCODE_Z = 54;
      KEYCODE_COMMA = 55;
      KEYCODE_PERIOD = 56;
      KEYCODE_ALT_LEFT = 57;
      KEYCODE_ALT_RIGHT = 58;
      KEYCODE_SHIFT_LEFT = 59;
      KEYCODE_SHIFT_RIGHT = 60;
      KEYCODE_TAB = 61;
      KEYCODE_SPACE = 62;
      KEYCODE_SYM = 63;
      KEYCODE_EXPLORER = 64;
      KEYCODE_ENVELOPE = 65;
      KEYCODE_ENTER = 66;
      KEYCODE_DEL = 67;
      KEYCODE_GRAVE = 68;
      KEYCODE_MINUS = 69;
      KEYCODE_EQUALS = 70;
      KEYCODE_LEFT_BRACKET = 71;
      KEYCODE_RIGHT_BRACKET = 72;
      KEYCODE_BACKSLASH = 73;
      KEYCODE_SEMICOLON = 74;
      KEYCODE_APOSTROPHE = 75;
      KEYCODE_SLASH = 76;
      KEYCODE_AT = 77;
      KEYCODE_NUM = 78;
      KEYCODE_HEADSETHOOK = 79;
      KEYCODE_FOCUS = 80;
      KEYCODE_PLUS = 81;
      KEYCODE_MENU = 82;
      KEYCODE_NOTIFICATION = 83;
      KEYCODE_SEARCH = 84;
      KEYCODE_MEDIA_PLAY_PAUSE = 85;
      KEYCODE_MEDIA_STOP = 86;
      KEYCODE_MEDIA_NEXT = 87;
      KEYCODE_MEDIA_PREVIOUS = 88;
      KEYCODE_MEDIA_REWIND = 89;
      KEYCODE_MEDIA_FAST_FORWARD = 90;
      KEYCODE_MUTE = 91;
      KEYCODE_PAGE_UP = 92;
      KEYCODE_PAGE_DOWN = 93;
      KEYCODE_PICTSYMBOLS = 94;
      KEYCODE_SWITCH_CHARSET = 95;
      KEYCODE_BUTTON_A = 96;
      KEYCODE_BUTTON_B = 97;
      KEYCODE_BUTTON_C = 98;
      KEYCODE_BUTTON_X = 99;
      KEYCODE_BUTTON_Y = 100;
      KEYCODE_BUTTON_Z = 101;
      KEYCODE_BUTTON_L1 = 102;
      KEYCODE_BUTTON_R1 = 103;
      KEYCODE_BUTTON_L2 = 104;
      KEYCODE_BUTTON_R2 = 105;
      KEYCODE_BUTTON_THUMBL = 106;
      KEYCODE_BUTTON_THUMBR = 107;
      KEYCODE_BUTTON_START = 108;
      KEYCODE_BUTTON_SELECT = 109;
      KEYCODE_BUTTON_MODE = 110;
      KEYCODE_ESCAPE = 111;
      KEYCODE_FORWARD_DEL = 112;
      KEYCODE_CTRL_LEFT = 113;
      KEYCODE_CTRL_RIGHT = 114;
      KEYCODE_CAPS_LOCK = 115;
      KEYCODE_SCROLL_LOCK = 116;
      KEYCODE_META_LEFT = 117;
      KEYCODE_META_RIGHT = 118;
      KEYCODE_FUNCTION = 119;
      KEYCODE_SYSRQ = 120;
      KEYCODE_BREAK = 121;
      KEYCODE_MOVE_HOME = 122;
      KEYCODE_MOVE_END = 123;
      KEYCODE_INSERT = 124;
      KEYCODE_FORWARD = 125;
      KEYCODE_MEDIA_PLAY = 126;
      KEYCODE_MEDIA_PAUSE = 127;
      KEYCODE_MEDIA_CLOSE = 128;
      KEYCODE_MEDIA_EJECT = 129;
      KEYCODE_MEDIA_RECORD = 130;
      KEYCODE_F1 = 131;
      KEYCODE_F2 = 132;
      KEYCODE_F3 = 133;
      KEYCODE_F4 = 134;
      KEYCODE_F5 = 135;
      KEYCODE_F6 = 136;
      KEYCODE_F7 = 137;
      KEYCODE_F8 = 138;
      KEYCODE_F9 = 139;
      KEYCODE_F10 = 140;
      KEYCODE_F11 = 141;
      KEYCODE_F12 = 142;
      KEYCODE_NUM_LOCK = 143;
      KEYCODE_NUMPAD_0 = 144;
      KEYCODE_NUMPAD_1 = 145;
      KEYCODE_NUMPAD_2 = 146;
      KEYCODE_NUMPAD_3 = 147;
      KEYCODE_NUMPAD_4 = 148;
      KEYCODE_NUMPAD_5 = 149;
      KEYCODE_NUMPAD_6 = 150;
      KEYCODE_NUMPAD_7 = 151;
      KEYCODE_NUMPAD_8 = 152;
      KEYCODE_NUMPAD_9 = 153;
      KEYCODE_NUMPAD_DIVIDE = 154;
      KEYCODE_NUMPAD_MULTIPLY = 155;
      KEYCODE_NUMPAD_SUBTRACT = 156;
      KEYCODE_NUMPAD_ADD = 157;
      KEYCODE_NUMPAD_DOT = 158;
      KEYCODE_NUMPAD_COMMA = 159;
      KEYCODE_NUMPAD_ENTER = 160;
      KEYCODE_NUMPAD_EQUALS = 161;
      KEYCODE_NUMPAD_LEFT_PAREN = 162;
      KEYCODE_NUMPAD_RIGHT_PAREN = 163;
      KEYCODE_VOLUME_MUTE = 164;
      KEYCODE_INFO = 165;
      KEYCODE_CHANNEL_UP = 166;
      KEYCODE_CHANNEL_DOWN = 167;
      KEYCODE_ZOOM_IN = 168;
      KEYCODE_ZOOM_OUT = 169;
      KEYCODE_TV = 170;
      KEYCODE_WINDOW = 171;
      KEYCODE_GUIDE = 172;
      KEYCODE_DVR = 173;
      KEYCODE_BOOKMARK = 174;
      KEYCODE_CAPTIONS = 175;
      KEYCODE_SETTINGS = 176;
      KEYCODE_TV_POWER = 177;
      KEYCODE_TV_INPUT = 178;
      KEYCODE_STB_POWER = 179;
      KEYCODE_STB_INPUT = 180;
      KEYCODE_AVR_POWER = 181;
      KEYCODE_AVR_INPUT = 182;
      KEYCODE_PROG_RED = 183;
      KEYCODE_PROG_GREEN = 184;
      KEYCODE_PROG_YELLOW = 185;
      KEYCODE_PROG_BLUE = 186;
      KEYCODE_APP_SWITCH = 187;
      KEYCODE_BUTTON_1 = 188;
      KEYCODE_BUTTON_2 = 189;
      KEYCODE_BUTTON_3 = 190;
      KEYCODE_BUTTON_4 = 191;
      KEYCODE_BUTTON_5 = 192;
      KEYCODE_BUTTON_6 = 193;
      KEYCODE_BUTTON_7 = 194;
      KEYCODE_BUTTON_8 = 195;
      KEYCODE_BUTTON_9 = 196;
      KEYCODE_BUTTON_10 = 197;
      KEYCODE_BUTTON_11 = 198;
      KEYCODE_BUTTON_12 = 199;
      KEYCODE_BUTTON_13 = 200;
      KEYCODE_BUTTON_14 = 201;
      KEYCODE_BUTTON_15 = 202;
      KEYCODE_BUTTON_16 = 203;
      KEYCODE_LANGUAGE_SWITCH = 204;
      KEYCODE_MANNER_MODE = 205;
      KEYCODE_3D_MODE = 206;
      MAX_KEYCODE = 84;
      ACTION_DOWN = 0;
      ACTION_UP = 1;
      ACTION_MULTIPLE = 2;
      META_ALT_ON = 2;
      META_ALT_LEFT_ON = 16;
      META_ALT_RIGHT_ON = 32;
      META_SHIFT_ON = 1;
      META_SHIFT_LEFT_ON = 64;
      META_SHIFT_RIGHT_ON = 128;
      META_SYM_ON = 4;
      META_FUNCTION_ON = 8;
      META_CTRL_ON = 4096;
      META_CTRL_LEFT_ON = 8192;
      META_CTRL_RIGHT_ON = 16384;
      META_META_ON = 65536;
      META_META_LEFT_ON = 131072;
      META_META_RIGHT_ON = 262144;
      META_CAPS_LOCK_ON = 1048576;
      META_NUM_LOCK_ON = 2097152;
      META_SCROLL_LOCK_ON = 4194304;
      META_SHIFT_MASK = 193;
      META_ALT_MASK = 50;
      META_CTRL_MASK = 28672;
      META_META_MASK = 458752;
      FLAG_WOKE_HERE = 1;
      FLAG_SOFT_KEYBOARD = 2;
      FLAG_KEEP_TOUCH_MODE = 4;
      FLAG_FROM_SYSTEM = 8;
      FLAG_EDITOR_ACTION = 16;
      FLAG_CANCELED = 32;
      FLAG_VIRTUAL_HARD_KEY = 64;
      FLAG_LONG_PRESS = 128;
      FLAG_CANCELED_LONG_PRESS = 256;
      FLAG_TRACKING = 512;
      FLAG_FALLBACK = 1024;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload;
    constructor create(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint); overload;
    constructor create(para1: jlong; para2: jlong; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint); overload;
    constructor create(para1: jlong; para2: JLString; para3: jint; para4: jint); overload;
    constructor create(para1: AVKeyEvent); overload;
    constructor create(para1: AVKeyEvent; para2: jlong; para3: jint); overload;
    class function getMaxKeyCode(): jint; static; overload;
    class function getDeadChar(para1: jint; para2: jint): jint; static; overload;
    class function changeTimeRepeat(para1: AVKeyEvent; para2: jlong; para3: jint): AVKeyEvent; static; overload;
    class function changeTimeRepeat(para1: AVKeyEvent; para2: jlong; para3: jint; para4: jint): AVKeyEvent; static; overload;
    class function changeAction(para1: AVKeyEvent; para2: jint): AVKeyEvent; static; overload;
    class function changeFlags(para1: AVKeyEvent; para2: jint): AVKeyEvent; static; overload;
    function isSystem(): jboolean; overload; virtual; final;
    class function isGamepadButton(para1: jint): jboolean; static; overload; final;
    function getDeviceId(): jint; overload; virtual; final;
    function getSource(): jint; overload; virtual; final;
    procedure setSource(para1: jint); overload; virtual; final;
    function getMetaState(): jint; overload; virtual; final;
    function getModifiers(): jint; overload; virtual; final;
    function getFlags(): jint; overload; virtual; final;
    class function getModifierMetaStateMask(): jint; static; overload;
    class function isModifierKey(para1: jint): jboolean; static; overload;
    class function normalizeMetaState(para1: jint): jint; static; overload;
    class function metaStateHasNoModifiers(para1: jint): jboolean; static; overload;
    class function metaStateHasModifiers(para1: jint; para2: jint): jboolean; static; overload;
    function hasNoModifiers(): jboolean; overload; virtual; final;
    function hasModifiers(para1: jint): jboolean; overload; virtual; final;
    function isAltPressed(): jboolean; overload; virtual; final;
    function isShiftPressed(): jboolean; overload; virtual; final;
    function isSymPressed(): jboolean; overload; virtual; final;
    function isCtrlPressed(): jboolean; overload; virtual; final;
    function isMetaPressed(): jboolean; overload; virtual; final;
    function isFunctionPressed(): jboolean; overload; virtual; final;
    function isCapsLockOn(): jboolean; overload; virtual; final;
    function isNumLockOn(): jboolean; overload; virtual; final;
    function isScrollLockOn(): jboolean; overload; virtual; final;
    function getAction(): jint; overload; virtual; final;
    function isCanceled(): jboolean; overload; virtual; final;
    procedure startTracking(); overload; virtual; final;
    function isTracking(): jboolean; overload; virtual; final;
    function isLongPress(): jboolean; overload; virtual; final;
    function getKeyCode(): jint; overload; virtual; final;
    function getCharacters(): JLString; overload; virtual; final;
    function getScanCode(): jint; overload; virtual; final;
    function getRepeatCount(): jint; overload; virtual; final;
    function getDownTime(): jlong; overload; virtual; final;
    function getEventTime(): jlong; overload; virtual; final;
    function getKeyCharacterMap(): AVKeyCharacterMap; overload; virtual; final;
    function getDisplayLabel(): jchar; overload; virtual;
    function getUnicodeChar(): jint; overload; virtual;
    function getUnicodeChar(para1: jint): jint; overload; virtual;
    function getKeyData(para1: AVKeyCharacterMap.InnerKeyData): jboolean; overload; virtual;
    function getMatch(para1: Arr1jchar): jchar; overload; virtual;
    function getMatch(var para1: array of jchar): jchar; overload; virtual;
    function getMatch(para1: Arr1jchar; para2: jint): jchar; overload; virtual;
    function getMatch(var para1: array of jchar; para2: jint): jchar; overload; virtual;
    function getNumber(): jchar; overload; virtual;
    function isPrintingKey(): jboolean; overload; virtual;
    function dispatch(para1: AVKeyEvent.InnerCallback): jboolean; overload; virtual; final;
    function dispatch(para1: AVKeyEvent.InnerCallback; para2: AVKeyEvent.InnerDispatcherState; para3: JLObject): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    class function keyCodeToString(para1: jint): JLString; static; overload;
    class function keyCodeFromString(para1: JLString): jint; static; overload;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  JUCRunnableScheduledFuture = interface external 'java.util.concurrent' name 'RunnableScheduledFuture' (JUCRunnableFuture, JUCScheduledFuture)
    function isPeriodic(): jboolean; overload;
  end;

  ACPActivityInfo = class external 'android.content.pm' name 'ActivityInfo' (ACPComponentInfo, AOParcelable)
  public
    var
      ftheme: jint; external name 'theme';
  public
    const
      LAUNCH_MULTIPLE = 0;
      LAUNCH_SINGLE_TOP = 1;
      LAUNCH_SINGLE_TASK = 2;
      LAUNCH_SINGLE_INSTANCE = 3;
  public
    var
      flaunchMode: jint; external name 'launchMode';
      fpermission: JLString; external name 'permission';
      ftaskAffinity: JLString; external name 'taskAffinity';
      ftargetActivity: JLString; external name 'targetActivity';
  public
    const
      FLAG_MULTIPROCESS = 1;
      FLAG_FINISH_ON_TASK_LAUNCH = 2;
      FLAG_CLEAR_TASK_ON_LAUNCH = 4;
      FLAG_ALWAYS_RETAIN_TASK_STATE = 8;
      FLAG_STATE_NOT_NEEDED = 16;
      FLAG_EXCLUDE_FROM_RECENTS = 32;
      FLAG_ALLOW_TASK_REPARENTING = 64;
      FLAG_NO_HISTORY = 128;
      FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS = 256;
      FLAG_HARDWARE_ACCELERATED = 512;
  public
    var
      fflags: jint; external name 'flags';
  public
    const
      SCREEN_ORIENTATION_UNSPECIFIED = -1;
      SCREEN_ORIENTATION_LANDSCAPE = 0;
      SCREEN_ORIENTATION_PORTRAIT = 1;
      SCREEN_ORIENTATION_USER = 2;
      SCREEN_ORIENTATION_BEHIND = 3;
      SCREEN_ORIENTATION_SENSOR = 4;
      SCREEN_ORIENTATION_NOSENSOR = 5;
      SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6;
      SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7;
      SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8;
      SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9;
      SCREEN_ORIENTATION_FULL_SENSOR = 10;
  public
    var
      fscreenOrientation: jint; external name 'screenOrientation';
  public
    const
      CONFIG_MCC = 1;
      CONFIG_MNC = 2;
      CONFIG_LOCALE = 4;
      CONFIG_TOUCHSCREEN = 8;
      CONFIG_KEYBOARD = 16;
      CONFIG_KEYBOARD_HIDDEN = 32;
      CONFIG_NAVIGATION = 64;
      CONFIG_ORIENTATION = 128;
      CONFIG_SCREEN_LAYOUT = 256;
      CONFIG_UI_MODE = 512;
      CONFIG_SCREEN_SIZE = 1024;
      CONFIG_SMALLEST_SCREEN_SIZE = 2048;
      CONFIG_FONT_SCALE = 1073741824;
  public
    var
      fconfigChanges: jint; external name 'configChanges';
      fsoftInputMode: jint; external name 'softInputMode';
      fuiOptions: jint; external name 'uiOptions';
  public
    const
      UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPActivityInfo); overload;
    function getThemeResource(): jint; overload; virtual; final;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  ACPProviderInfo = class sealed external 'android.content.pm' name 'ProviderInfo' (ACPComponentInfo, AOParcelable)
  public
    var
      fauthority: JLString; external name 'authority';
      freadPermission: JLString; external name 'readPermission';
      fwritePermission: JLString; external name 'writePermission';
      fgrantUriPermissions: jboolean; external name 'grantUriPermissions';
      furiPermissionPatterns: Arr1AOPatternMatcher; external name 'uriPermissionPatterns';
      fpathPermissions: Arr1ACPPathPermission; external name 'pathPermissions';
      fmultiprocess: jboolean; external name 'multiprocess';
      finitOrder: jint; external name 'initOrder';
      fisSyncable: jboolean; external name 'isSyncable';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPProviderInfo); overload;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  ACPServiceInfo = class external 'android.content.pm' name 'ServiceInfo' (ACPComponentInfo, AOParcelable)
  public
    var
      fpermission: JLString; external name 'permission';
  public
    const
      FLAG_STOP_WITH_TASK = 1;
  public
    var
      fflags: jint; external name 'flags';
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(); overload;
    constructor create(para1: ACPServiceInfo); overload;
    procedure dump(para1: AUPrinter; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  JSIDSAPrivateKey = interface external 'java.security.interfaces' name 'DSAPrivateKey' (JSIDSAKey, JSPrivateKey)
    const
      serialVersionUID = jlong(7776497482533790279);
    function getX(): JMBigInteger; overload;
  end;

  JSIECPrivateKey = interface external 'java.security.interfaces' name 'ECPrivateKey' (JSPrivateKey, JSIECKey)
    const
      serialVersionUID = jlong(-7896394956925609184);
    function getS(): JMBigInteger; overload;
  end;

  JSIRSAPrivateKey = interface external 'java.security.interfaces' name 'RSAPrivateKey' (JSPrivateKey, JSIRSAKey)
    const
      serialVersionUID = jlong(5187144804936595022);
    function getPrivateExponent(): JMBigInteger; overload;
  end;

  JCIDHPrivateKey = interface external 'javax.crypto.interfaces' name 'DHPrivateKey' (JCIDHKey, JSPrivateKey)
    const
      serialVersionUID = jlong(2211791113380396553);
    function getX(): JMBigInteger; overload;
  end;

  JSIDSAPublicKey = interface external 'java.security.interfaces' name 'DSAPublicKey' (JSIDSAKey, JSPublicKey)
    const
      serialVersionUID = jlong(1234526332779022332);
    function getY(): JMBigInteger; overload;
  end;

  JSIECPublicKey = interface external 'java.security.interfaces' name 'ECPublicKey' (JSPublicKey, JSIECKey)
    const
      serialVersionUID = jlong(-3314988629879632826);
    function getW(): JSSECPoint; overload;
  end;

  JSIRSAPublicKey = interface external 'java.security.interfaces' name 'RSAPublicKey' (JSPublicKey, JSIRSAKey)
    const
      serialVersionUID = jlong(-8727434096241101194);
    function getPublicExponent(): JMBigInteger; overload;
  end;

  JCIDHPublicKey = interface external 'javax.crypto.interfaces' name 'DHPublicKey' (JCIDHKey, JSPublicKey)
    const
      serialVersionUID = jlong(-6628103563352519193);
    function getY(): JMBigInteger; overload;
  end;

  JCIPBEKey = interface external 'javax.crypto.interfaces' name 'PBEKey' (JCSecretKey)
    const
      serialVersionUID = jlong(-1430015993304333921);
    function getIterationCount(): jint; overload;
    function getSalt(): Arr1jbyte; overload;
    function getPassword(): Arr1jchar; overload;
  end;

  JCSSecretKeySpec = class external 'javax.crypto.spec' name 'SecretKeySpec' (JLObject, JCSecretKey, JSSKeySpec, JISerializable)
  public
    constructor create(para1: Arr1jbyte; para2: JLString); overload;
    constructor create(const para1: array of jbyte; para2: JLString); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: JLString); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: JLString); overload;
    function getAlgorithm(): JLString; overload; virtual;
    function getFormat(): JLString; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JSSQLDataException = class external 'java.sql' name 'SQLDataException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLFeatureNotSupportedException = class external 'java.sql' name 'SQLFeatureNotSupportedException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLIntegrityConstraintViolationException = class external 'java.sql' name 'SQLIntegrityConstraintViolationException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLInvalidAuthorizationSpecException = class external 'java.sql' name 'SQLInvalidAuthorizationSpecException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLNonTransientConnectionException = class external 'java.sql' name 'SQLNonTransientConnectionException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLSyntaxErrorException = class external 'java.sql' name 'SQLSyntaxErrorException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTimeoutException = class external 'java.sql' name 'SQLTimeoutException' (JSSQLTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTransactionRollbackException = class external 'java.sql' name 'SQLTransactionRollbackException' (JSSQLTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTransientConnectionException = class external 'java.sql' name 'SQLTransientConnectionException' (JSSQLTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSDataTruncation = class external 'java.sql' name 'DataTruncation' (JSSQLWarning, JISerializable)
  public
    constructor create(para1: jint; para2: jboolean; para3: jboolean; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jboolean; para3: jboolean; para4: jint; para5: jint; para6: JLThrowable); overload;
    function getDataSize(): jint; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function getParameter(): jboolean; overload; virtual;
    function getRead(): jboolean; overload; virtual;
    function getTransferSize(): jint; overload; virtual;
  end;

  JBIndexedPropertyChangeEvent = class external 'java.beans' name 'IndexedPropertyChangeEvent' (JBPropertyChangeEvent)
  public
    constructor create(para1: JLObject; para2: JLString; para3: JLObject; para4: JLObject; para5: jint); overload;
    function getIndex(): jint; overload; virtual;
  end;

  OAHCConnectionPoolTimeoutException = class external 'org.apache.http.conn' name 'ConnectionPoolTimeoutException' (OAHCConnectTimeoutException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OAHCHttpHostConnectException = class external 'org.apache.http.conn' name 'HttpHostConnectException' (JNConnectException)
  public
    constructor create(para1: OAHHttpHost; para2: JNConnectException); overload;
    function getHost(): OAHHttpHost; overload; virtual;
  end;

  JNCClosedByInterruptException = class external 'java.nio.channels' name 'ClosedByInterruptException' (JNCAsynchronousCloseException)
  public
    constructor create(); overload;
  end;

  JUZZipError = class external 'java.util.zip' name 'ZipError' (JLInternalError)
  public
    constructor create(para1: JLString); overload;
  end;

  ATEditable = interface external 'android.text' name 'Editable' (JLCharSequence, ATGetChars, ATSpannable, JLAppendable)
    type
      InnerFactory = class;
      Arr1InnerFactory = array of InnerFactory;
      Arr2InnerFactory = array of Arr1InnerFactory;
      Arr3InnerFactory = array of Arr2InnerFactory;
      InnerFactory = class external 'android.text' name 'Factory' (JLObject)
      public
        constructor create(); overload;
        class function getInstance(): ATEditable.InnerFactory; static; overload;
        function newEditable(para1: JLCharSequence): ATEditable; overload; virtual;
      end;

    function replace(para1: jint; para2: jint; para3: JLCharSequence; para4: jint; para5: jint): ATEditable; overload;
    function replace(para1: jint; para2: jint; para3: JLCharSequence): ATEditable; overload;
    function insert(para1: jint; para2: JLCharSequence; para3: jint; para4: jint): ATEditable; overload;
    function insert(para1: jint; para2: JLCharSequence): ATEditable; overload;
    function delete(para1: jint; para2: jint): ATEditable; overload;
    function append(para1: JLCharSequence): ATEditable; overload;
    function append(para1: JLCharSequence; para2: jint; para3: jint): ATEditable; overload;
    function append(para1: jchar): ATEditable; overload;
    procedure clear(); overload;
    procedure clearSpans(); overload;
    procedure setFilters(para1: Arr1ATInputFilter); overload;
    procedure setFilters(var para1: array of ATInputFilter); overload;
    function getFilters(): Arr1ATInputFilter; overload;
  end;

  ATSpannableString = class external 'android.text' name 'SpannableString' (ATSpannableStringInternal, JLCharSequence, ATGetChars, ATSpannable)
  public
    constructor create(para1: JLCharSequence); overload;
    class function valueOf(para1: JLCharSequence): ATSpannableString; static; overload;
    procedure setSpan(para1: JLObject; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure removeSpan(para1: JLObject); overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual; final;
    function nextSpanTransition(para1: jint; para2: jint; para3: JLClass): jint; overload; virtual;
    function getSpans(para1: jint; para2: jint; para3: JLClass): Arr1JLObject; overload; virtual;
    function getSpanFlags(para1: JLObject): jint; overload; virtual;
    function getSpanEnd(para1: JLObject): jint; overload; virtual;
    function getSpanStart(para1: JLObject): jint; overload; virtual;
  end;

  JUTreeMap = class external 'java.util' name 'TreeMap' (JUAbstractMap, JUSortedMap, JUNavigableMap, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUSortedMap); overload;
    function clone(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function firstEntry(): JUMap.InnerEntry; overload; virtual;
    function pollFirstEntry(): JUMap.InnerEntry; overload; virtual;
    function firstKey(): JLObject; overload; virtual;
    function lastEntry(): JUMap.InnerEntry; overload; virtual;
    function pollLastEntry(): JUMap.InnerEntry; overload; virtual;
    function lastKey(): JLObject; overload; virtual;
    function lowerEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function lowerKey(para1: JLObject): JLObject; overload; virtual;
    function floorEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function floorKey(para1: JLObject): JLObject; overload; virtual;
    function ceilingEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function ceilingKey(para1: JLObject): JLObject; overload; virtual;
    function higherEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function higherKey(para1: JLObject): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function navigableKeySet(): JUNavigableSet; overload; virtual;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload; virtual;
    function headMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function headMap(para1: JLObject): JUSortedMap; overload; virtual;
    function tailMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function tailMap(para1: JLObject): JUSortedMap; overload; virtual;
    function descendingMap(): JUNavigableMap; overload; virtual;
    function descendingKeySet(): JUNavigableSet; overload; virtual;
  end;

  JUCConcurrentNavigableMap = interface external 'java.util.concurrent' name 'ConcurrentNavigableMap' (JUCConcurrentMap, JUNavigableMap)
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUCConcurrentNavigableMap; overload;
    function headMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload;
    function tailMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload;
    function subMap(para1: JLObject; para2: JLObject): JUCConcurrentNavigableMap; overload;
    function headMap(para1: JLObject): JUCConcurrentNavigableMap; overload;
    function tailMap(para1: JLObject): JUCConcurrentNavigableMap; overload;
    function descendingMap(): JUCConcurrentNavigableMap; overload;
    function navigableKeySet(): JUNavigableSet; overload;
    function keySet(): JUNavigableSet; overload;
    function descendingKeySet(): JUNavigableSet; overload;
  end;

  JUTreeSet = class external 'java.util' name 'TreeSet' (JUAbstractSet, JUNavigableSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUSortedSet); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function first(): JLObject; overload; virtual;
    function last(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function higher(para1: JLObject): JLObject; overload; virtual;
    function lower(para1: JLObject): JLObject; overload; virtual;
    function ceiling(para1: JLObject): JLObject; overload; virtual;
    function floor(para1: JLObject): JLObject; overload; virtual;
    function descendingSet(): JUNavigableSet; overload; virtual;
    function subSet(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableSet; overload; virtual;
    function headSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function tailSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload; virtual;
    function headSet(para1: JLObject): JUSortedSet; overload; virtual;
    function tailSet(para1: JLObject): JUSortedSet; overload; virtual;
  end;

  JUCConcurrentSkipListSet = class external 'java.util.concurrent' name 'ConcurrentSkipListSet' (JUAbstractSet, JUNavigableSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: JUSortedSet); overload;
    function clone(): JUCConcurrentSkipListSet; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function lower(para1: JLObject): JLObject; overload; virtual;
    function floor(para1: JLObject): JLObject; overload; virtual;
    function ceiling(para1: JLObject): JLObject; overload; virtual;
    function higher(para1: JLObject): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function first(): JLObject; overload; virtual;
    function last(): JLObject; overload; virtual;
    function subSet(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableSet; overload; virtual;
    function headSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function tailSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function subSet(para1: JLObject; para2: JLObject): JUNavigableSet; overload; virtual;
    function headSet(para1: JLObject): JUNavigableSet; overload; virtual;
    function tailSet(para1: JLObject): JUNavigableSet; overload; virtual;
    function descendingSet(): JUNavigableSet; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function tailSet(para1: JLObject): JUSortedSet; overload; virtual;
    function headSet(para1: JLObject): JUSortedSet; overload; virtual;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload; virtual;
  end;

  JUAbstractSequentialList = class abstract external 'java.util' name 'AbstractSequentialList' (JUAbstractList)
  strict protected
    constructor create(); overload;
  public
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual; abstract;
    function remove(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
  end;

  JUArrayList = class external 'java.util' name 'ArrayList' (JUAbstractList, JLCloneable, JISerializable, JURandomAccess)
  public
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    procedure ensureCapacity(para1: jint); overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  public
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    procedure trimToSize(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JUVector = class external 'java.util' name 'Vector' (JUAbstractList, JUList, JURandomAccess, JLCloneable, JISerializable)
  strict protected
    var
      felementCount: jint; external name 'elementCount';
      felementData: Arr1JLObject; external name 'elementData';
      fcapacityIncrement: jint; external name 'capacityIncrement';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JUCollection); overload;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    procedure addElement(para1: JLObject); overload; virtual;
    function capacity(): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    procedure copyInto(para1: Arr1JLObject); overload; virtual;
    procedure copyInto(var para1: array of JLObject); overload; virtual;
    function elementAt(para1: jint): JLObject; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    procedure ensureCapacity(para1: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function firstElement(): JLObject; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function indexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    procedure insertElementAt(para1: JLObject; para2: jint); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function lastElement(): JLObject; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    procedure removeAllElements(); overload; virtual;
    function removeElement(para1: JLObject): jboolean; overload; virtual;
    procedure removeElementAt(para1: jint); overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  public
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    procedure setElementAt(para1: JLObject; para2: jint); overload; virtual;
    procedure setSize(para1: jint); overload; virtual;
    function size(): jint; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure trimToSize(); overload; virtual;
  end;

  JUPriorityQueue = class external 'java.util' name 'PriorityQueue' (JUAbstractQueue, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: JUPriorityQueue); overload;
    constructor create(para1: JUSortedSet); overload;
    function iterator(): JUIterator; overload; virtual;
    function size(): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
  end;

  JUCConcurrentLinkedQueue = class external 'java.util.concurrent' name 'ConcurrentLinkedQueue' (JUAbstractQueue, JUQueue, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUArrayDeque = class external 'java.util' name 'ArrayDeque' (JUAbstractCollection, JUDeque, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUCollection); overload;
    procedure addFirst(para1: JLObject); overload; virtual;
    procedure addLast(para1: JLObject); overload; virtual;
    function offerFirst(para1: JLObject): jboolean; overload; virtual;
    function offerLast(para1: JLObject): jboolean; overload; virtual;
    function removeFirst(): JLObject; overload; virtual;
    function removeLast(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function getFirst(): JLObject; overload; virtual;
    function getLast(): JLObject; overload; virtual;
    function peekFirst(): JLObject; overload; virtual;
    function peekLast(): JLObject; overload; virtual;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload; virtual;
    function removeLastOccurrence(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function remove(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function element(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    procedure push(para1: JLObject); overload; virtual;
    function pop(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function clone(): JUArrayDeque; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JUCArrayBlockingQueue = class external 'java.util.concurrent' name 'ArrayBlockingQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(para1: jint; para2: jboolean; para3: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JLObject; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function peek(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUCBlockingDeque = interface external 'java.util.concurrent' name 'BlockingDeque' (JUCBlockingQueue, JUDeque)
    procedure addFirst(para1: JLObject); overload;
    procedure addLast(para1: JLObject); overload;
    function offerFirst(para1: JLObject): jboolean; overload;
    function offerLast(para1: JLObject): jboolean; overload;
    procedure putFirst(para1: JLObject); overload;  // throws java.lang.InterruptedException
    procedure putLast(para1: JLObject); overload;  // throws java.lang.InterruptedException
    function offerFirst(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function offerLast(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function takeFirst(): JLObject; overload;  // throws java.lang.InterruptedException
    function takeLast(): JLObject; overload;  // throws java.lang.InterruptedException
    function pollFirst(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function pollLast(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function removeFirstOccurrence(para1: JLObject): jboolean; overload;
    function removeLastOccurrence(para1: JLObject): jboolean; overload;
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    procedure put(para1: JLObject); overload;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function remove(): JLObject; overload;
    function poll(): JLObject; overload;
    function take(): JLObject; overload;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function element(): JLObject; overload;
    function peek(): JLObject; overload;
    function remove(para1: JLObject): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function size(): jint; overload;
    function iterator(): JUIterator; overload;
    procedure push(para1: JLObject); overload;
  end;

  JUCDelayQueue = class external 'java.util.concurrent' name 'DelayQueue' (JUAbstractQueue, JUCBlockingQueue)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JUCDelayed): jboolean; overload; virtual;
    function offer(para1: JUCDelayed): jboolean; overload; virtual;
    procedure put(para1: JUCDelayed); overload; virtual;
    function offer(para1: JUCDelayed; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;
    function poll(): JUCDelayed; overload; virtual;
    function take(): JUCDelayed; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JUCDelayed; overload; virtual;  // throws java.lang.InterruptedException
    function peek(): JUCDelayed; overload; virtual;
    function size(): jint; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
  end;

  JUCLinkedBlockingQueue = class external 'java.util.concurrent' name 'LinkedBlockingQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUCollection); overload;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject): jboolean; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUCPriorityBlockingQueue = class external 'java.util.concurrent' name 'PriorityBlockingQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function peek(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUCSynchronousQueue = class external 'java.util.concurrent' name 'SynchronousQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject): jboolean; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
  end;

  ACSearchRecentSuggestionsProvider = class external 'android.content' name 'SearchRecentSuggestionsProvider' (ACContentProvider)
  public
    const
      DATABASE_MODE_QUERIES = 1;
      DATABASE_MODE_2LINES = 2;
  public
    constructor create(); overload;
  strict protected
    procedure setupSuggestions(para1: JLString; para2: jint); overload; virtual;
  public
    function delete(para1: ANUri; para2: JLString; para3: Arr1JLString): jint; overload; virtual;
    function delete(para1: ANUri; para2: JLString; var para3: array of JLString): jint; overload; virtual;
    function getType(para1: ANUri): JLString; overload; virtual;
    function insert(para1: ANUri; para2: ACContentValues): ANUri; overload; virtual;
    function onCreate(): jboolean; overload; virtual;
    function query(para1: ANUri; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString): ADCursor; overload; virtual;
    function query(para1: ANUri; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString): ADCursor; overload; virtual;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; para4: Arr1JLString): jint; overload; virtual;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; var para4: array of JLString): jint; overload; virtual;
  end;

  ATMMockContentProvider = class external 'android.test.mock' name 'MockContentProvider' (ACContentProvider)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: JLString; para3: JLString; para4: Arr1ACPPathPermission); overload;
    constructor create(para1: ACContext; para2: JLString; para3: JLString; const para4: array of ACPPathPermission); overload;
    function delete(para1: ANUri; para2: JLString; para3: Arr1JLString): jint; overload; virtual;
    function delete(para1: ANUri; para2: JLString; var para3: array of JLString): jint; overload; virtual;
    function getType(para1: ANUri): JLString; overload; virtual;
    function insert(para1: ANUri; para2: ACContentValues): ANUri; overload; virtual;
    function onCreate(): jboolean; overload; virtual;
    function query(para1: ANUri; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString): ADCursor; overload; virtual;
    function query(para1: ANUri; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString): ADCursor; overload; virtual;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; para4: Arr1JLString): jint; overload; virtual;
    function update(para1: ANUri; para2: ACContentValues; para3: JLString; var para4: array of JLString): jint; overload; virtual;
    function bulkInsert(para1: ANUri; para2: Arr1ACContentValues): jint; overload; virtual;
    function bulkInsert(para1: ANUri; var para2: array of ACContentValues): jint; overload; virtual;
    procedure attachInfo(para1: ACContext; para2: ACPProviderInfo); overload; virtual;
    function applyBatch(para1: JUArrayList): Arr1ACContentProviderResult; overload; virtual;
    function getStreamTypes(para1: ANUri; para2: JLString): Arr1JLString; overload; virtual;
    function openTypedAssetFile(para1: ANUri; para2: JLString; para3: AOBundle): ACRAssetFileDescriptor; overload; virtual;
  end;

  ADAbstractWindowedCursor = class abstract external 'android.database' name 'AbstractWindowedCursor' (ADAbstractCursor)
  strict protected
    var
      fmWindow: ADCursorWindow; external name 'mWindow';
  public
    constructor create(); overload;
    function getBlob(para1: jint): Arr1jbyte; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;
    procedure copyStringToBuffer(para1: jint; para2: ADCharArrayBuffer); overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function isNull(para1: jint): jboolean; overload; virtual;
    function isBlob(para1: jint): jboolean; overload; virtual;
    function isString(para1: jint): jboolean; overload; virtual;
    function isLong(para1: jint): jboolean; overload; virtual;
    function isFloat(para1: jint): jboolean; overload; virtual;
    function getType(para1: jint): jint; overload; virtual;
  strict protected
    procedure checkPosition(); overload; virtual;
  public
    function getWindow(): ADCursorWindow; overload; virtual;
    procedure setWindow(para1: ADCursorWindow); overload; virtual;
    function hasWindow(): jboolean; overload; virtual;
  end;

  ADMatrixCursor = class external 'android.database' name 'MatrixCursor' (ADAbstractCursor)
  public
    type
      InnerRowBuilder = class;
      Arr1InnerRowBuilder = array of InnerRowBuilder;
      Arr2InnerRowBuilder = array of Arr1InnerRowBuilder;
      Arr3InnerRowBuilder = array of Arr2InnerRowBuilder;
      InnerRowBuilder = class external 'android.database' name 'RowBuilder' 
      end;

  public
    constructor create(para1: Arr1JLString; para2: jint); overload;
    constructor create(const para1: array of JLString; para2: jint); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    function newRow(): ADMatrixCursor.InnerRowBuilder; overload; virtual;
    procedure addRow(para1: Arr1JLObject); overload; virtual;
    procedure addRow(var para1: array of JLObject); overload; virtual;
    procedure addRow(para1: JLIterable); overload; virtual;
    function getCount(): jint; overload; virtual;
    function getColumnNames(): Arr1JLString; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function getBlob(para1: jint): Arr1jbyte; overload; virtual;
    function getType(para1: jint): jint; overload; virtual;
    function isNull(para1: jint): jboolean; overload; virtual;
  end;

  ADMergeCursor = class external 'android.database' name 'MergeCursor' (ADAbstractCursor)
  public
    constructor create(para1: Arr1ADCursor); overload;
    constructor create(const para1: array of ADCursor); overload;
    function getCount(): jint; overload; virtual;
    function onMove(para1: jint; para2: jint): jboolean; overload; virtual;
    function getString(para1: jint): JLString; overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function getType(para1: jint): jint; overload; virtual;
    function isNull(para1: jint): jboolean; overload; virtual;
    function getBlob(para1: jint): Arr1jbyte; overload; virtual;
    function getColumnNames(): Arr1JLString; overload; virtual;
    procedure deactivate(); overload; virtual;
    procedure close(); overload; virtual;
    procedure registerContentObserver(para1: ADContentObserver); overload; virtual;
    procedure unregisterContentObserver(para1: ADContentObserver); overload; virtual;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    function requery(): jboolean; overload; virtual;
  end;

  ACContextWrapper = class external 'android.content' name 'ContextWrapper' (ACContext)
  public
    constructor create(para1: ACContext); overload;
  strict protected
    procedure attachBaseContext(para1: ACContext); overload; virtual;
  public
    function getBaseContext(): ACContext; overload; virtual;
    function getAssets(): ACRAssetManager; overload; virtual;
    function getResources(): ACRResources; overload; virtual;
    function getPackageManager(): ACPPackageManager; overload; virtual;
    function getContentResolver(): ACContentResolver; overload; virtual;
    function getMainLooper(): AOLooper; overload; virtual;
    function getApplicationContext(): ACContext; overload; virtual;
    procedure setTheme(para1: jint); overload; virtual;
    function getTheme(): ACRResources.InnerTheme; overload; virtual;
    function getClassLoader(): JLClassLoader; overload; virtual;
    function getPackageName(): JLString; overload; virtual;
    function getApplicationInfo(): ACPApplicationInfo; overload; virtual;
    function getPackageResourcePath(): JLString; overload; virtual;
    function getPackageCodePath(): JLString; overload; virtual;
    function getSharedPreferences(para1: JLString; para2: jint): ACSharedPreferences; overload; virtual;
    function openFileInput(para1: JLString): JIFileInputStream; overload; virtual;  // throws java.io.FileNotFoundException
    function openFileOutput(para1: JLString; para2: jint): JIFileOutputStream; overload; virtual;  // throws java.io.FileNotFoundException
    function deleteFile(para1: JLString): jboolean; overload; virtual;
    function getFileStreamPath(para1: JLString): JIFile; overload; virtual;
    function fileList(): Arr1JLString; overload; virtual;
    function getFilesDir(): JIFile; overload; virtual;
    function getExternalFilesDir(para1: JLString): JIFile; overload; virtual;
    function getObbDir(): JIFile; overload; virtual;
    function getCacheDir(): JIFile; overload; virtual;
    function getExternalCacheDir(): JIFile; overload; virtual;
    function getDir(para1: JLString; para2: jint): JIFile; overload; virtual;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; overload; virtual;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory; para4: ADDatabaseErrorHandler): ADSSQLiteDatabase; overload; virtual;
    function deleteDatabase(para1: JLString): jboolean; overload; virtual;
    function getDatabasePath(para1: JLString): JIFile; overload; virtual;
    function databaseList(): Arr1JLString; overload; virtual;
    function getWallpaper(): AGDDrawable; overload; virtual;
    function peekWallpaper(): AGDDrawable; overload; virtual;
    function getWallpaperDesiredMinimumWidth(): jint; overload; virtual;
    function getWallpaperDesiredMinimumHeight(): jint; overload; virtual;
    procedure setWallpaper(para1: AGBitmap); overload; virtual;  // throws java.io.IOException
    procedure setWallpaper(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure clearWallpaper(); overload; virtual;  // throws java.io.IOException
    procedure startActivity(para1: ACIntent); overload; virtual;
    procedure startActivities(para1: Arr1ACIntent); overload; virtual;
    procedure startActivities(var para1: array of ACIntent); overload; virtual;
    procedure startIntentSender(para1: ACIntentSender; para2: ACIntent; para3: jint; para4: jint; para5: jint); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    procedure sendBroadcast(para1: ACIntent); overload; virtual;
    procedure sendBroadcast(para1: ACIntent; para2: JLString); overload; virtual;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString); overload; virtual;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString; para3: ACBroadcastReceiver; para4: AOHandler; para5: jint; para6: JLString; para7: AOBundle); overload; virtual;
    procedure sendStickyBroadcast(para1: ACIntent); overload; virtual;
    procedure sendStickyOrderedBroadcast(para1: ACIntent; para2: ACBroadcastReceiver; para3: AOHandler; para4: jint; para5: JLString; para6: AOBundle); overload; virtual;
    procedure removeStickyBroadcast(para1: ACIntent); overload; virtual;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter): ACIntent; overload; virtual;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter; para3: JLString; para4: AOHandler): ACIntent; overload; virtual;
    procedure unregisterReceiver(para1: ACBroadcastReceiver); overload; virtual;
    function startService(para1: ACIntent): ACComponentName; overload; virtual;
    function stopService(para1: ACIntent): jboolean; overload; virtual;
    function bindService(para1: ACIntent; para2: ACServiceConnection; para3: jint): jboolean; overload; virtual;
    procedure unbindService(para1: ACServiceConnection); overload; virtual;
    function startInstrumentation(para1: ACComponentName; para2: JLString; para3: AOBundle): jboolean; overload; virtual;
    function getSystemService(para1: JLString): JLObject; overload; virtual;
    function checkPermission(para1: JLString; para2: jint; para3: jint): jint; overload; virtual;
    function checkCallingPermission(para1: JLString): jint; overload; virtual;
    function checkCallingOrSelfPermission(para1: JLString): jint; overload; virtual;
    procedure enforcePermission(para1: JLString; para2: jint; para3: jint; para4: JLString); overload; virtual;
    procedure enforceCallingPermission(para1: JLString; para2: JLString); overload; virtual;
    procedure enforceCallingOrSelfPermission(para1: JLString; para2: JLString); overload; virtual;
    procedure grantUriPermission(para1: JLString; para2: ANUri; para3: jint); overload; virtual;
    procedure revokeUriPermission(para1: ANUri; para2: jint); overload; virtual;
    function checkUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint): jint; overload; virtual;
    function checkCallingUriPermission(para1: ANUri; para2: jint): jint; overload; virtual;
    function checkCallingOrSelfUriPermission(para1: ANUri; para2: jint): jint; overload; virtual;
    function checkUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint): jint; overload; virtual;
    procedure enforceUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint; para5: JLString); overload; virtual;
    procedure enforceCallingUriPermission(para1: ANUri; para2: jint; para3: JLString); overload; virtual;
    procedure enforceCallingOrSelfUriPermission(para1: ANUri; para2: jint; para3: JLString); overload; virtual;
    procedure enforceUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint; para7: JLString); overload; virtual;
    function createPackageContext(para1: JLString; para2: jint): ACContext; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function isRestricted(): jboolean; overload; virtual;
  end;

  ATMMockContext = class external 'android.test.mock' name 'MockContext' (ACContext)
  public
    constructor create(); overload;
    function getAssets(): ACRAssetManager; overload; virtual;
    function getResources(): ACRResources; overload; virtual;
    function getPackageManager(): ACPPackageManager; overload; virtual;
    function getContentResolver(): ACContentResolver; overload; virtual;
    function getMainLooper(): AOLooper; overload; virtual;
    function getApplicationContext(): ACContext; overload; virtual;
    procedure setTheme(para1: jint); overload; virtual;
    function getTheme(): ACRResources.InnerTheme; overload; virtual;
    function getClassLoader(): JLClassLoader; overload; virtual;
    function getPackageName(): JLString; overload; virtual;
    function getApplicationInfo(): ACPApplicationInfo; overload; virtual;
    function getPackageResourcePath(): JLString; overload; virtual;
    function getPackageCodePath(): JLString; overload; virtual;
    function getSharedPreferences(para1: JLString; para2: jint): ACSharedPreferences; overload; virtual;
    function openFileInput(para1: JLString): JIFileInputStream; overload; virtual;  // throws java.io.FileNotFoundException
    function openFileOutput(para1: JLString; para2: jint): JIFileOutputStream; overload; virtual;  // throws java.io.FileNotFoundException
    function deleteFile(para1: JLString): jboolean; overload; virtual;
    function getFileStreamPath(para1: JLString): JIFile; overload; virtual;
    function fileList(): Arr1JLString; overload; virtual;
    function getFilesDir(): JIFile; overload; virtual;
    function getExternalFilesDir(para1: JLString): JIFile; overload; virtual;
    function getObbDir(): JIFile; overload; virtual;
    function getCacheDir(): JIFile; overload; virtual;
    function getExternalCacheDir(): JIFile; overload; virtual;
    function getDir(para1: JLString; para2: jint): JIFile; overload; virtual;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; overload; virtual;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory; para4: ADDatabaseErrorHandler): ADSSQLiteDatabase; overload; virtual;
    function getDatabasePath(para1: JLString): JIFile; overload; virtual;
    function databaseList(): Arr1JLString; overload; virtual;
    function deleteDatabase(para1: JLString): jboolean; overload; virtual;
    function getWallpaper(): AGDDrawable; overload; virtual;
    function peekWallpaper(): AGDDrawable; overload; virtual;
    function getWallpaperDesiredMinimumWidth(): jint; overload; virtual;
    function getWallpaperDesiredMinimumHeight(): jint; overload; virtual;
    procedure setWallpaper(para1: AGBitmap); overload; virtual;  // throws java.io.IOException
    procedure setWallpaper(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure clearWallpaper(); overload; virtual;
    procedure startActivity(para1: ACIntent); overload; virtual;
    procedure startActivities(para1: Arr1ACIntent); overload; virtual;
    procedure startActivities(var para1: array of ACIntent); overload; virtual;
    procedure startIntentSender(para1: ACIntentSender; para2: ACIntent; para3: jint; para4: jint; para5: jint); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    procedure sendBroadcast(para1: ACIntent); overload; virtual;
    procedure sendBroadcast(para1: ACIntent; para2: JLString); overload; virtual;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString); overload; virtual;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString; para3: ACBroadcastReceiver; para4: AOHandler; para5: jint; para6: JLString; para7: AOBundle); overload; virtual;
    procedure sendStickyBroadcast(para1: ACIntent); overload; virtual;
    procedure sendStickyOrderedBroadcast(para1: ACIntent; para2: ACBroadcastReceiver; para3: AOHandler; para4: jint; para5: JLString; para6: AOBundle); overload; virtual;
    procedure removeStickyBroadcast(para1: ACIntent); overload; virtual;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter): ACIntent; overload; virtual;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter; para3: JLString; para4: AOHandler): ACIntent; overload; virtual;
    procedure unregisterReceiver(para1: ACBroadcastReceiver); overload; virtual;
    function startService(para1: ACIntent): ACComponentName; overload; virtual;
    function stopService(para1: ACIntent): jboolean; overload; virtual;
    function bindService(para1: ACIntent; para2: ACServiceConnection; para3: jint): jboolean; overload; virtual;
    procedure unbindService(para1: ACServiceConnection); overload; virtual;
    function startInstrumentation(para1: ACComponentName; para2: JLString; para3: AOBundle): jboolean; overload; virtual;
    function getSystemService(para1: JLString): JLObject; overload; virtual;
    function checkPermission(para1: JLString; para2: jint; para3: jint): jint; overload; virtual;
    function checkCallingPermission(para1: JLString): jint; overload; virtual;
    function checkCallingOrSelfPermission(para1: JLString): jint; overload; virtual;
    procedure enforcePermission(para1: JLString; para2: jint; para3: jint; para4: JLString); overload; virtual;
    procedure enforceCallingPermission(para1: JLString; para2: JLString); overload; virtual;
    procedure enforceCallingOrSelfPermission(para1: JLString; para2: JLString); overload; virtual;
    procedure grantUriPermission(para1: JLString; para2: ANUri; para3: jint); overload; virtual;
    procedure revokeUriPermission(para1: ANUri; para2: jint); overload; virtual;
    function checkUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint): jint; overload; virtual;
    function checkCallingUriPermission(para1: ANUri; para2: jint): jint; overload; virtual;
    function checkCallingOrSelfUriPermission(para1: ANUri; para2: jint): jint; overload; virtual;
    function checkUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint): jint; overload; virtual;
    procedure enforceUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint; para5: JLString); overload; virtual;
    procedure enforceCallingUriPermission(para1: ANUri; para2: jint; para3: JLString); overload; virtual;
    procedure enforceCallingOrSelfUriPermission(para1: ANUri; para2: jint; para3: JLString); overload; virtual;
    procedure enforceUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint; para7: JLString); overload; virtual;
    function createPackageContext(para1: JLString; para2: jint): ACContext; overload; virtual;  // throws android.content.pm.PackageManager$NameNotFoundException
    function isRestricted(): jboolean; overload; virtual;
  end;

  AGBitmapRegionDecoder = class sealed external 'android.graphics' name 'BitmapRegionDecoder' (JLObject)
  public
    class function newInstance(para1: Arr1jbyte; para2: jint; para3: jint; para4: jboolean): AGBitmapRegionDecoder; static; overload;  // throws java.io.IOException
    class function newInstance(var para1: array of jbyte; para2: jint; para3: jint; para4: jboolean): AGBitmapRegionDecoder; static; overload;  // throws java.io.IOException
    class function newInstance(para1: JIFileDescriptor; para2: jboolean): AGBitmapRegionDecoder; static; overload;  // throws java.io.IOException
    class function newInstance(para1: JIInputStream; para2: jboolean): AGBitmapRegionDecoder; static; overload;  // throws java.io.IOException
    class function newInstance(para1: JLString; para2: jboolean): AGBitmapRegionDecoder; static; overload;  // throws java.io.IOException
    function decodeRegion(para1: AGRect; para2: AGBitmapFactory.InnerOptions): AGBitmap; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    procedure recycle(); overload; virtual;
    function isRecycled(): jboolean; overload; virtual; final;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  AGDDrawable = class abstract external 'android.graphics.drawable' name 'Drawable' (JLObject)
  public
    type
      InnerConstantState = class;
      Arr1InnerConstantState = array of InnerConstantState;
      Arr2InnerConstantState = array of Arr1InnerConstantState;
      Arr3InnerConstantState = array of Arr2InnerConstantState;
      InnerCallback = interface;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerConstantState = class abstract external 'android.graphics.drawable' name 'ConstantState' (JLObject)
      public
        constructor create(); overload;
        function newDrawable(): AGDDrawable; overload; virtual; abstract;
        function newDrawable(para1: ACRResources): AGDDrawable; overload; virtual;
        function getChangingConfigurations(): jint; overload; virtual; abstract;
      end;

      InnerCallback = interface external 'android.graphics.drawable' name 'Callback' 
        procedure invalidateDrawable(para1: AGDDrawable); overload;
        procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload;
        procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload;
      end;

  public
    constructor create(); overload;
    procedure draw(para1: AGCanvas); overload; virtual; abstract;
    procedure setBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setBounds(para1: AGRect); overload; virtual;
    procedure copyBounds(para1: AGRect); overload; virtual; final;
    function copyBounds(): AGRect; overload; virtual; final;
    function getBounds(): AGRect; overload; virtual; final;
    procedure setChangingConfigurations(para1: jint); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    procedure setFilterBitmap(para1: jboolean); overload; virtual;
    procedure setCallback(para1: AGDDrawable.InnerCallback); overload; virtual; final;
    function getCallback(): AGDDrawable.InnerCallback; overload; virtual;
    procedure invalidateSelf(); overload; virtual;
    procedure scheduleSelf(para1: JLRunnable; para2: jlong); overload; virtual;
    procedure unscheduleSelf(para1: JLRunnable); overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual; abstract;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual; abstract;
    procedure setColorFilter(para1: jint; para2: AGPorterDuff.InnerMode); overload; virtual;
    procedure clearColorFilter(); overload; virtual;
    function isStateful(): jboolean; overload; virtual;
    function setState(para1: Arr1jint): jboolean; overload; virtual;
    function setState(var para1: array of jint): jboolean; overload; virtual;
    function getState(): Arr1jint; overload; virtual;
    procedure jumpToCurrentState(); overload; virtual;
    function getCurrent(): AGDDrawable; overload; virtual;
    function setLevel(para1: jint): jboolean; overload; virtual; final;
    function getLevel(): jint; overload; virtual; final;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function isVisible(): jboolean; overload; virtual; final;
    function getOpacity(): jint; overload; virtual; abstract;
    class function resolveOpacity(para1: jint; para2: jint): jint; static; overload;
    function getTransparentRegion(): AGRegion; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getMinimumWidth(): jint; overload; virtual;
    function getMinimumHeight(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
    class function createFromStream(para1: JIInputStream; para2: JLString): AGDDrawable; static; overload;
    class function createFromResourceStream(para1: ACRResources; para2: AUTypedValue; para3: JIInputStream; para4: JLString): AGDDrawable; static; overload;
    class function createFromResourceStream(para1: ACRResources; para2: AUTypedValue; para3: JIInputStream; para4: JLString; para5: AGBitmapFactory.InnerOptions): AGDDrawable; static; overload;
    class function createFromXml(para1: ACRResources; para2: OXVXmlPullParser): AGDDrawable; static; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    class function createFromXmlInner(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet): AGDDrawable; static; overload;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    class function createFromPath(para1: JLString): AGDDrawable; static; overload;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
  end;

  APContacts = class external 'android.provider' name 'Contacts' (JLObject)
  public
    type
      InnerIntents = class;
      Arr1InnerIntents = array of InnerIntents;
      Arr2InnerIntents = array of Arr1InnerIntents;
      Arr3InnerIntents = array of Arr2InnerIntents;
      InnerExtensionsColumns = interface;
      Arr1InnerExtensionsColumns = array of InnerExtensionsColumns;
      Arr2InnerExtensionsColumns = array of Arr1InnerExtensionsColumns;
      Arr3InnerExtensionsColumns = array of Arr2InnerExtensionsColumns;
      InnerPhotosColumns = interface;
      Arr1InnerPhotosColumns = array of InnerPhotosColumns;
      Arr2InnerPhotosColumns = array of Arr1InnerPhotosColumns;
      Arr3InnerPhotosColumns = array of Arr2InnerPhotosColumns;
      InnerOrganizationColumns = interface;
      Arr1InnerOrganizationColumns = array of InnerOrganizationColumns;
      Arr2InnerOrganizationColumns = array of Arr1InnerOrganizationColumns;
      Arr3InnerOrganizationColumns = array of Arr2InnerOrganizationColumns;
      InnerPresenceColumns = interface;
      Arr1InnerPresenceColumns = array of InnerPresenceColumns;
      Arr2InnerPresenceColumns = array of Arr1InnerPresenceColumns;
      Arr3InnerPresenceColumns = array of Arr2InnerPresenceColumns;
      InnerContactMethodsColumns = interface;
      Arr1InnerContactMethodsColumns = array of InnerContactMethodsColumns;
      Arr2InnerContactMethodsColumns = array of Arr1InnerContactMethodsColumns;
      Arr3InnerContactMethodsColumns = array of Arr2InnerContactMethodsColumns;
      InnerPhonesColumns = interface;
      Arr1InnerPhonesColumns = array of InnerPhonesColumns;
      Arr2InnerPhonesColumns = array of Arr1InnerPhonesColumns;
      Arr3InnerPhonesColumns = array of Arr2InnerPhonesColumns;
      InnerGroupsColumns = interface;
      Arr1InnerGroupsColumns = array of InnerGroupsColumns;
      Arr2InnerGroupsColumns = array of Arr1InnerGroupsColumns;
      Arr3InnerGroupsColumns = array of Arr2InnerGroupsColumns;
      InnerPeopleColumns = interface;
      Arr1InnerPeopleColumns = array of InnerPeopleColumns;
      Arr2InnerPeopleColumns = array of Arr1InnerPeopleColumns;
      Arr3InnerPeopleColumns = array of Arr2InnerPeopleColumns;
      InnerSettingsColumns = interface;
      Arr1InnerSettingsColumns = array of InnerSettingsColumns;
      Arr2InnerSettingsColumns = array of Arr1InnerSettingsColumns;
      Arr3InnerSettingsColumns = array of Arr2InnerSettingsColumns;
      InnerExtensions = class;
      Arr1InnerExtensions = array of InnerExtensions;
      Arr2InnerExtensions = array of Arr1InnerExtensions;
      Arr3InnerExtensions = array of Arr2InnerExtensions;
      InnerPhotos = class;
      Arr1InnerPhotos = array of InnerPhotos;
      Arr2InnerPhotos = array of Arr1InnerPhotos;
      Arr3InnerPhotos = array of Arr2InnerPhotos;
      InnerOrganizations = class;
      Arr1InnerOrganizations = array of InnerOrganizations;
      Arr2InnerOrganizations = array of Arr1InnerOrganizations;
      Arr3InnerOrganizations = array of Arr2InnerOrganizations;
      InnerGroupMembership = class;
      Arr1InnerGroupMembership = array of InnerGroupMembership;
      Arr2InnerGroupMembership = array of Arr1InnerGroupMembership;
      Arr3InnerGroupMembership = array of Arr2InnerGroupMembership;
      InnerGroups = class;
      Arr1InnerGroups = array of InnerGroups;
      Arr2InnerGroups = array of Arr1InnerGroups;
      Arr3InnerGroups = array of Arr2InnerGroups;
      InnerContactMethods = class;
      Arr1InnerContactMethods = array of InnerContactMethods;
      Arr2InnerContactMethods = array of Arr1InnerContactMethods;
      Arr3InnerContactMethods = array of Arr2InnerContactMethods;
      InnerPhones = class;
      Arr1InnerPhones = array of InnerPhones;
      Arr2InnerPhones = array of Arr1InnerPhones;
      Arr3InnerPhones = array of Arr2InnerPhones;
      InnerPeople = class;
      Arr1InnerPeople = array of InnerPeople;
      Arr2InnerPeople = array of Arr1InnerPeople;
      Arr3InnerPeople = array of Arr2InnerPeople;
      InnerSettings = class;
      Arr1InnerSettings = array of InnerSettings;
      Arr2InnerSettings = array of Arr1InnerSettings;
      Arr3InnerSettings = array of Arr2InnerSettings;
      InnerIntents = class sealed external 'android.provider' name 'Intents' (JLObject)
      public
        type
          InnerInsert = class;
          Arr1InnerInsert = array of InnerInsert;
          Arr2InnerInsert = array of Arr1InnerInsert;
          Arr3InnerInsert = array of Arr2InnerInsert;
          InnerUI = class;
          Arr1InnerUI = array of InnerUI;
          Arr2InnerUI = array of Arr1InnerUI;
          Arr3InnerUI = array of Arr2InnerUI;
          InnerInsert = class sealed external 'android.provider' name 'Insert' (JLObject)
          public
            const
              ACTION = 'android.intent.action.INSERT';
              FULL_MODE = 'full_mode';
              NAME = 'name';
              PHONETIC_NAME = 'phonetic_name';
              COMPANY = 'company';
              JOB_TITLE = 'job_title';
              NOTES = 'notes';
              PHONE = 'phone';
              PHONE_TYPE = 'phone_type';
              PHONE_ISPRIMARY = 'phone_isprimary';
              SECONDARY_PHONE = 'secondary_phone';
              SECONDARY_PHONE_TYPE = 'secondary_phone_type';
              TERTIARY_PHONE = 'tertiary_phone';
              TERTIARY_PHONE_TYPE = 'tertiary_phone_type';
              EMAIL = 'email';
              EMAIL_TYPE = 'email_type';
              EMAIL_ISPRIMARY = 'email_isprimary';
              SECONDARY_EMAIL = 'secondary_email';
              SECONDARY_EMAIL_TYPE = 'secondary_email_type';
              TERTIARY_EMAIL = 'tertiary_email';
              TERTIARY_EMAIL_TYPE = 'tertiary_email_type';
              POSTAL = 'postal';
              POSTAL_TYPE = 'postal_type';
              POSTAL_ISPRIMARY = 'postal_isprimary';
              IM_HANDLE = 'im_handle';
              IM_PROTOCOL = 'im_protocol';
              IM_ISPRIMARY = 'im_isprimary';
          public
            constructor create(); overload;
          end;

          InnerUI = class sealed external 'android.provider' name 'UI' (JLObject)
          public
            const
              LIST_DEFAULT = 'com.android.contacts.action.LIST_DEFAULT';
              LIST_GROUP_ACTION = 'com.android.contacts.action.LIST_GROUP';
              GROUP_NAME_EXTRA_KEY = 'com.android.contacts.extra.GROUP';
              LIST_ALL_CONTACTS_ACTION = 'com.android.contacts.action.LIST_ALL_CONTACTS';
              LIST_CONTACTS_WITH_PHONES_ACTION = 'com.android.contacts.action.LIST_CONTACTS_WITH_PHONES';
              LIST_STARRED_ACTION = 'com.android.contacts.action.LIST_STARRED';
              LIST_FREQUENT_ACTION = 'com.android.contacts.action.LIST_FREQUENT';
              LIST_STREQUENT_ACTION = 'com.android.contacts.action.LIST_STREQUENT';
              TITLE_EXTRA_KEY = 'com.android.contacts.extra.TITLE_EXTRA';
              FILTER_CONTACTS_ACTION = 'com.android.contacts.action.FILTER_CONTACTS';
              FILTER_TEXT_EXTRA_KEY = 'com.android.contacts.extra.FILTER_TEXT';
          public
            constructor create(); overload;
          end;

      public
        const
          SEARCH_SUGGESTION_CLICKED = 'android.provider.Contacts.SEARCH_SUGGESTION_CLICKED';
          SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = 'android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED';
          SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = 'android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED';
          ATTACH_IMAGE = 'com.android.contacts.action.ATTACH_IMAGE';
          SHOW_OR_CREATE_CONTACT = 'com.android.contacts.action.SHOW_OR_CREATE_CONTACT';
          EXTRA_FORCE_CREATE = 'com.android.contacts.action.FORCE_CREATE';
          EXTRA_CREATE_DESCRIPTION = 'com.android.contacts.action.CREATE_DESCRIPTION';
      public
        constructor create(); overload;
      end;

      InnerExtensionsColumns = interface external 'android.provider' name 'ExtensionsColumns' 
        const
          NAME = 'name';
          VALUE = 'value';
      end;

      InnerPhotosColumns = interface external 'android.provider' name 'PhotosColumns' 
        const
          LOCAL_VERSION = 'local_version';
          PERSON_ID = 'person';
          DOWNLOAD_REQUIRED = 'download_required';
          EXISTS_ON_SERVER = 'exists_on_server';
          SYNC_ERROR = 'sync_error';
          DATA = 'data';
      end;

      InnerOrganizationColumns = interface external 'android.provider' name 'OrganizationColumns' 
        const
          &TYPE = 'type';
          TYPE_CUSTOM = 0;
          TYPE_WORK = 1;
          TYPE_OTHER = 2;
          &LABEL = 'label';
          COMPANY = 'company';
          TITLE = 'title';
          PERSON_ID = 'person';
          ISPRIMARY = 'isprimary';
      end;

      InnerPresenceColumns = interface external 'android.provider' name 'PresenceColumns' 
        const
          PRIORITY = 'priority';
          PRESENCE_STATUS = 'mode';
          OFFLINE = 0;
          INVISIBLE = 1;
          AWAY = 2;
          IDLE = 3;
          DO_NOT_DISTURB = 4;
          AVAILABLE = 5;
          PRESENCE_CUSTOM_STATUS = 'status';
          IM_PROTOCOL = 'im_protocol';
          IM_HANDLE = 'im_handle';
          IM_ACCOUNT = 'im_account';
      end;

      InnerContactMethodsColumns = interface external 'android.provider' name 'ContactMethodsColumns' 
        const
          KIND = 'kind';
          &TYPE = 'type';
          TYPE_CUSTOM = 0;
          TYPE_HOME = 1;
          TYPE_WORK = 2;
          TYPE_OTHER = 3;
          &LABEL = 'label';
          DATA = 'data';
          AUX_DATA = 'aux_data';
          ISPRIMARY = 'isprimary';
      end;

      InnerPhonesColumns = interface external 'android.provider' name 'PhonesColumns' 
        const
          &TYPE = 'type';
          TYPE_CUSTOM = 0;
          TYPE_HOME = 1;
          TYPE_MOBILE = 2;
          TYPE_WORK = 3;
          TYPE_FAX_WORK = 4;
          TYPE_FAX_HOME = 5;
          TYPE_PAGER = 6;
          TYPE_OTHER = 7;
          &LABEL = 'label';
          NUMBER = 'number';
          NUMBER_KEY = 'number_key';
          ISPRIMARY = 'isprimary';
      end;

      InnerGroupsColumns = interface external 'android.provider' name 'GroupsColumns' 
        const
          NAME = 'name';
          NOTES = 'notes';
          SHOULD_SYNC = 'should_sync';
          SYSTEM_ID = 'system_id';
      end;

      InnerPeopleColumns = interface external 'android.provider' name 'PeopleColumns' 
        const
          NAME = 'name';
          PHONETIC_NAME = 'phonetic_name';
          DISPLAY_NAME = 'display_name';
          NOTES = 'notes';
          TIMES_CONTACTED = 'times_contacted';
          LAST_TIME_CONTACTED = 'last_time_contacted';
          CUSTOM_RINGTONE = 'custom_ringtone';
          SEND_TO_VOICEMAIL = 'send_to_voicemail';
          STARRED = 'starred';
          PHOTO_VERSION = 'photo_version';
      end;

      InnerSettingsColumns = interface external 'android.provider' name 'SettingsColumns' 
        const
          _SYNC_ACCOUNT = '_sync_account';
          _SYNC_ACCOUNT_TYPE = '_sync_account_type';
          KEY = 'key';
          VALUE = 'value';
      end;

      InnerExtensions = class sealed external 'android.provider' name 'Extensions' (JLObject, APBaseColumns, APContacts.InnerExtensionsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/contact_extensions';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/contact_extensions';
          DEFAULT_SORT_ORDER = 'person, name ASC';
          PERSON_ID = 'person';
      end;

      InnerPhotos = class sealed external 'android.provider' name 'Photos' (JLObject, APBaseColumns, APContacts.InnerPhotosColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_DIRECTORY = 'photo';
          DEFAULT_SORT_ORDER = 'person ASC';
      end;

      InnerOrganizations = class sealed external 'android.provider' name 'Organizations' (JLObject, APBaseColumns, APContacts.InnerOrganizationColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_DIRECTORY = 'organizations';
          DEFAULT_SORT_ORDER = 'company, title, isprimary ASC';
      public
        class function getDisplayLabel(para1: ACContext; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
      end;

      InnerGroupMembership = class sealed external 'android.provider' name 'GroupMembership' (JLObject, APBaseColumns, APContacts.InnerGroupsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fRAW_CONTENT_URI: ANUri; external name 'RAW_CONTENT_URI';
      public
        const
          CONTENT_DIRECTORY = 'groupmembership';
          CONTENT_TYPE = 'vnd.android.cursor.dir/contactsgroupmembership';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/contactsgroupmembership';
          DEFAULT_SORT_ORDER = 'group_id ASC';
          GROUP_ID = 'group_id';
          GROUP_SYNC_ID = 'group_sync_id';
          GROUP_SYNC_ACCOUNT = 'group_sync_account';
          GROUP_SYNC_ACCOUNT_TYPE = 'group_sync_account_type';
          PERSON_ID = 'person';
      end;

      InnerGroups = class sealed external 'android.provider' name 'Groups' (JLObject, APBaseColumns, APContacts.InnerGroupsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fDELETED_CONTENT_URI: ANUri; external name 'DELETED_CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/contactsgroup';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/contactsgroup';
          DEFAULT_SORT_ORDER = 'name ASC';
          GROUP_ANDROID_STARRED = 'Starred in Android';
          GROUP_MY_CONTACTS = 'Contacts';
      end;

      InnerContactMethods = class sealed external 'android.provider' name 'ContactMethods' (JLObject, APBaseColumns, APContacts.InnerContactMethodsColumns, APContacts.InnerPeopleColumns)
      public
        const
          POSTAL_LOCATION_LATITUDE = 'data';
          POSTAL_LOCATION_LONGITUDE = 'aux_data';
          PROTOCOL_AIM = 0;
          PROTOCOL_MSN = 1;
          PROTOCOL_YAHOO = 2;
          PROTOCOL_SKYPE = 3;
          PROTOCOL_QQ = 4;
          PROTOCOL_GOOGLE_TALK = 5;
          PROTOCOL_ICQ = 6;
          PROTOCOL_JABBER = 7;
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_EMAIL_URI: ANUri; external name 'CONTENT_EMAIL_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/contact-methods';
          CONTENT_EMAIL_TYPE = 'vnd.android.cursor.dir/email';
          CONTENT_POSTAL_TYPE = 'vnd.android.cursor.dir/postal-address';
          CONTENT_EMAIL_ITEM_TYPE = 'vnd.android.cursor.item/email';
          CONTENT_POSTAL_ITEM_TYPE = 'vnd.android.cursor.item/postal-address';
          CONTENT_IM_ITEM_TYPE = 'vnd.android.cursor.item/jabber-im';
          DEFAULT_SORT_ORDER = 'name ASC';
          PERSON_ID = 'person';
      public
        class function encodePredefinedImProtocol(para1: jint): JLString; static; overload;
        class function encodeCustomImProtocol(para1: JLString): JLString; static; overload;
        class function decodeImProtocol(para1: JLString): JLObject; static; overload;
        class function getDisplayLabel(para1: ACContext; para2: jint; para3: jint; para4: JLCharSequence): JLCharSequence; static; overload; final;
        procedure addPostalLocation(para1: ACContext; para2: jlong; para3: jdouble; para4: jdouble); overload; virtual;
      end;

      InnerPhones = class sealed external 'android.provider' name 'Phones' (JLObject, APBaseColumns, APContacts.InnerPhonesColumns, APContacts.InnerPeopleColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_FILTER_URL: ANUri; external name 'CONTENT_FILTER_URL';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/phone';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/phone';
          DEFAULT_SORT_ORDER = 'name ASC';
          PERSON_ID = 'person';
      public
        class function getDisplayLabel(para1: ACContext; para2: jint; para3: JLCharSequence; para4: Arr1JLCharSequence): JLCharSequence; static; overload; final;
        class function getDisplayLabel(para1: ACContext; para2: jint; para3: JLCharSequence; var para4: array of JLCharSequence): JLCharSequence; static; overload; final;
        class function getDisplayLabel(para1: ACContext; para2: jint; para3: JLCharSequence): JLCharSequence; static; overload; final;
      end;

      InnerPeople = class sealed external 'android.provider' name 'People' (JLObject, APBaseColumns, APContacts.InnerPeopleColumns, APContacts.InnerPhonesColumns, APContacts.InnerPresenceColumns)
      public
        type
          InnerExtensions = class;
          Arr1InnerExtensions = array of InnerExtensions;
          Arr2InnerExtensions = array of Arr1InnerExtensions;
          Arr3InnerExtensions = array of Arr2InnerExtensions;
          InnerContactMethods = class;
          Arr1InnerContactMethods = array of InnerContactMethods;
          Arr2InnerContactMethods = array of Arr1InnerContactMethods;
          Arr3InnerContactMethods = array of Arr2InnerContactMethods;
          InnerPhones = class;
          Arr1InnerPhones = array of InnerPhones;
          Arr2InnerPhones = array of Arr1InnerPhones;
          Arr3InnerPhones = array of Arr2InnerPhones;
          InnerExtensions = class external 'android.provider' name 'Extensions' (JLObject, APBaseColumns, APContacts.InnerExtensionsColumns)
          public
            const
              CONTENT_DIRECTORY = 'extensions';
              DEFAULT_SORT_ORDER = 'name ASC';
              PERSON_ID = 'person';
          end;

          InnerContactMethods = class sealed external 'android.provider' name 'ContactMethods' (JLObject, APBaseColumns, APContacts.InnerContactMethodsColumns, APContacts.InnerPeopleColumns)
          public
            const
              CONTENT_DIRECTORY = 'contact_methods';
              DEFAULT_SORT_ORDER = 'data ASC';
          end;

          InnerPhones = class sealed external 'android.provider' name 'Phones' (JLObject, APBaseColumns, APContacts.InnerPhonesColumns, APContacts.InnerPeopleColumns)
          public
            const
              CONTENT_DIRECTORY = 'phones';
              DEFAULT_SORT_ORDER = 'number ASC';
          end;

      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
          fCONTENT_FILTER_URI: ANUri; external name 'CONTENT_FILTER_URI';
          fDELETED_CONTENT_URI: ANUri; external name 'DELETED_CONTENT_URI';
      public
        const
          CONTENT_TYPE = 'vnd.android.cursor.dir/person';
          CONTENT_ITEM_TYPE = 'vnd.android.cursor.item/person';
          DEFAULT_SORT_ORDER = 'name ASC';
          PRIMARY_PHONE_ID = 'primary_phone';
          PRIMARY_EMAIL_ID = 'primary_email';
          PRIMARY_ORGANIZATION_ID = 'primary_organization';
      public
        class procedure markAsContacted(para1: ACContentResolver; para2: jlong); static; overload;
        class function addToMyContactsGroup(para1: ACContentResolver; para2: jlong): ANUri; static; overload;
        class function addToGroup(para1: ACContentResolver; para2: jlong; para3: JLString): ANUri; static; overload;
        class function addToGroup(para1: ACContentResolver; para2: jlong; para3: jlong): ANUri; static; overload;
        class function createPersonInMyContactsGroup(para1: ACContentResolver; para2: ACContentValues): ANUri; static; overload;
        class function queryGroups(para1: ACContentResolver; para2: jlong): ADCursor; static; overload;
        class procedure setPhotoData(para1: ACContentResolver; para2: ANUri; para3: Arr1jbyte); static; overload;
        class procedure setPhotoData(para1: ACContentResolver; para2: ANUri; var para3: array of jbyte); static; overload;
        class function openContactPhotoInputStream(para1: ACContentResolver; para2: ANUri): JIInputStream; static; overload;
        class function loadContactPhoto(para1: ACContext; para2: ANUri; para3: jint; para4: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
      end;

      InnerSettings = class sealed external 'android.provider' name 'Settings' (JLObject, APBaseColumns, APContacts.InnerSettingsColumns)
      public
        final class var
          fCONTENT_URI: ANUri; external name 'CONTENT_URI';
      public
        const
          CONTENT_DIRECTORY = 'settings';
          DEFAULT_SORT_ORDER = 'key ASC';
          SYNC_EVERYTHING = 'syncEverything';
      public
        class function getSetting(para1: ACContentResolver; para2: JLString; para3: JLString): JLString; static; overload;
        class procedure setSetting(para1: ACContentResolver; para2: JLString; para3: JLString; para4: JLString); static; overload;
      end;

  public
    const
      AUTHORITY = 'contacts';
  public
    final class var
      fCONTENT_URI: ANUri; external name 'CONTENT_URI';
  public
    const
      KIND_EMAIL = 1;
      KIND_POSTAL = 2;
      KIND_IM = 3;
      KIND_ORGANIZATION = 4;
      KIND_PHONE = 5;
  end;

  APMediaStore = class sealed external 'android.provider' name 'MediaStore' (JLObject)
  public
    type
      InnerMediaColumns = interface;
      Arr1InnerMediaColumns = array of InnerMediaColumns;
      Arr2InnerMediaColumns = array of Arr1InnerMediaColumns;
      Arr3InnerMediaColumns = array of Arr2InnerMediaColumns;
      InnerVideo = class;
      Arr1InnerVideo = array of InnerVideo;
      Arr2InnerVideo = array of Arr1InnerVideo;
      Arr3InnerVideo = array of Arr2InnerVideo;
      InnerAudio = class;
      Arr1InnerAudio = array of InnerAudio;
      Arr2InnerAudio = array of Arr1InnerAudio;
      Arr3InnerAudio = array of Arr2InnerAudio;
      InnerImages = class;
      Arr1InnerImages = array of InnerImages;
      Arr2InnerImages = array of Arr1InnerImages;
      Arr3InnerImages = array of Arr2InnerImages;
      InnerFiles = class;
      Arr1InnerFiles = array of InnerFiles;
      Arr2InnerFiles = array of Arr1InnerFiles;
      Arr3InnerFiles = array of Arr2InnerFiles;
      InnerMediaColumns = interface external 'android.provider' name 'MediaColumns' (APBaseColumns)
        const
          DATA = '_data';
          SIZE = '_size';
          DISPLAY_NAME = '_display_name';
          TITLE = 'title';
          DATE_ADDED = 'date_added';
          DATE_MODIFIED = 'date_modified';
          MIME_TYPE = 'mime_type';
      end;

      InnerVideo = class sealed external 'android.provider' name 'Video' (JLObject)
      public
        type
          InnerThumbnails = class;
          Arr1InnerThumbnails = array of InnerThumbnails;
          Arr2InnerThumbnails = array of Arr1InnerThumbnails;
          Arr3InnerThumbnails = array of Arr2InnerThumbnails;
          InnerVideoColumns = interface;
          Arr1InnerVideoColumns = array of InnerVideoColumns;
          Arr2InnerVideoColumns = array of Arr1InnerVideoColumns;
          Arr3InnerVideoColumns = array of Arr2InnerVideoColumns;
          InnerMedia = class;
          Arr1InnerMedia = array of InnerMedia;
          Arr2InnerMedia = array of Arr1InnerMedia;
          Arr3InnerMedia = array of Arr2InnerMedia;
          InnerThumbnails = class external 'android.provider' name 'Thumbnails' (JLObject, APBaseColumns)
          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              DEFAULT_SORT_ORDER = 'video_id ASC';
              DATA = '_data';
              VIDEO_ID = 'video_id';
              KIND = 'kind';
              MINI_KIND = 1;
              FULL_SCREEN_KIND = 2;
              MICRO_KIND = 3;
              WIDTH = 'width';
              HEIGHT = 'height';
          public
            constructor create(); overload;
            class procedure cancelThumbnailRequest(para1: ACContentResolver; para2: jlong); static; overload;
            class function getThumbnail(para1: ACContentResolver; para2: jlong; para3: jint; para4: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
            class function getThumbnail(para1: ACContentResolver; para2: jlong; para3: jlong; para4: jint; para5: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
            class procedure cancelThumbnailRequest(para1: ACContentResolver; para2: jlong; para3: jlong); static; overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

          InnerVideoColumns = interface external 'android.provider' name 'VideoColumns' (APMediaStore.InnerMediaColumns)
            const
              DURATION = 'duration';
              ARTIST = 'artist';
              ALBUM = 'album';
              RESOLUTION = 'resolution';
              DESCRIPTION = 'description';
              IS_PRIVATE = 'isprivate';
              TAGS = 'tags';
              CATEGORY = 'category';
              LANGUAGE = 'language';
              LATITUDE = 'latitude';
              LONGITUDE = 'longitude';
              DATE_TAKEN = 'datetaken';
              MINI_THUMB_MAGIC = 'mini_thumb_magic';
              BUCKET_ID = 'bucket_id';
              BUCKET_DISPLAY_NAME = 'bucket_display_name';
              BOOKMARK = 'bookmark';
          end;

          InnerMedia = class sealed external 'android.provider' name 'Media' (JLObject, APMediaStore.InnerVideo.InnerVideoColumns)
          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/video';
              DEFAULT_SORT_ORDER = 'title';
          public
            constructor create(); overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

      public
        const
          DEFAULT_SORT_ORDER = '_display_name';
      public
        constructor create(); overload;
        class function query(para1: ACContentResolver; para2: ANUri; para3: Arr1JLString): ADCursor; static; overload; final;
        class function query(para1: ACContentResolver; para2: ANUri; var para3: array of JLString): ADCursor; static; overload; final;
      end;

      InnerAudio = class sealed external 'android.provider' name 'Audio' (JLObject)
      public
        type
          InnerAlbumColumns = interface;
          Arr1InnerAlbumColumns = array of InnerAlbumColumns;
          Arr2InnerAlbumColumns = array of Arr1InnerAlbumColumns;
          Arr3InnerAlbumColumns = array of Arr2InnerAlbumColumns;
          InnerArtistColumns = interface;
          Arr1InnerArtistColumns = array of InnerArtistColumns;
          Arr2InnerArtistColumns = array of Arr1InnerArtistColumns;
          Arr3InnerArtistColumns = array of Arr2InnerArtistColumns;
          InnerPlaylistsColumns = interface;
          Arr1InnerPlaylistsColumns = array of InnerPlaylistsColumns;
          Arr2InnerPlaylistsColumns = array of Arr1InnerPlaylistsColumns;
          Arr3InnerPlaylistsColumns = array of Arr2InnerPlaylistsColumns;
          InnerGenresColumns = interface;
          Arr1InnerGenresColumns = array of InnerGenresColumns;
          Arr2InnerGenresColumns = array of Arr1InnerGenresColumns;
          Arr3InnerGenresColumns = array of Arr2InnerGenresColumns;
          InnerAudioColumns = interface;
          Arr1InnerAudioColumns = array of InnerAudioColumns;
          Arr2InnerAudioColumns = array of Arr1InnerAudioColumns;
          Arr3InnerAudioColumns = array of Arr2InnerAudioColumns;
          InnerAlbums = class;
          Arr1InnerAlbums = array of InnerAlbums;
          Arr2InnerAlbums = array of Arr1InnerAlbums;
          Arr3InnerAlbums = array of Arr2InnerAlbums;
          InnerArtists = class;
          Arr1InnerArtists = array of InnerArtists;
          Arr2InnerArtists = array of Arr1InnerArtists;
          Arr3InnerArtists = array of Arr2InnerArtists;
          InnerPlaylists = class;
          Arr1InnerPlaylists = array of InnerPlaylists;
          Arr2InnerPlaylists = array of Arr1InnerPlaylists;
          Arr3InnerPlaylists = array of Arr2InnerPlaylists;
          InnerGenres = class;
          Arr1InnerGenres = array of InnerGenres;
          Arr2InnerGenres = array of Arr1InnerGenres;
          Arr3InnerGenres = array of Arr2InnerGenres;
          InnerMedia = class;
          Arr1InnerMedia = array of InnerMedia;
          Arr2InnerMedia = array of Arr1InnerMedia;
          Arr3InnerMedia = array of Arr2InnerMedia;
          InnerAlbumColumns = interface external 'android.provider' name 'AlbumColumns' 
            const
              ALBUM_ID = 'album_id';
              ALBUM = 'album';
              ARTIST = 'artist';
              NUMBER_OF_SONGS = 'numsongs';
              NUMBER_OF_SONGS_FOR_ARTIST = 'numsongs_by_artist';
              FIRST_YEAR = 'minyear';
              LAST_YEAR = 'maxyear';
              ALBUM_KEY = 'album_key';
              ALBUM_ART = 'album_art';
          end;

          InnerArtistColumns = interface external 'android.provider' name 'ArtistColumns' 
            const
              ARTIST = 'artist';
              ARTIST_KEY = 'artist_key';
              NUMBER_OF_ALBUMS = 'number_of_albums';
              NUMBER_OF_TRACKS = 'number_of_tracks';
          end;

          InnerPlaylistsColumns = interface external 'android.provider' name 'PlaylistsColumns' 
            const
              NAME = 'name';
              DATA = '_data';
              DATE_ADDED = 'date_added';
              DATE_MODIFIED = 'date_modified';
          end;

          InnerGenresColumns = interface external 'android.provider' name 'GenresColumns' 
            const
              NAME = 'name';
          end;

          InnerAudioColumns = interface external 'android.provider' name 'AudioColumns' (APMediaStore.InnerMediaColumns)
            const
              TITLE_KEY = 'title_key';
              DURATION = 'duration';
              BOOKMARK = 'bookmark';
              ARTIST_ID = 'artist_id';
              ARTIST = 'artist';
              ARTIST_KEY = 'artist_key';
              COMPOSER = 'composer';
              ALBUM_ID = 'album_id';
              ALBUM = 'album';
              ALBUM_KEY = 'album_key';
              TRACK = 'track';
              YEAR = 'year';
              IS_MUSIC = 'is_music';
              IS_PODCAST = 'is_podcast';
              IS_RINGTONE = 'is_ringtone';
              IS_ALARM = 'is_alarm';
              IS_NOTIFICATION = 'is_notification';
          end;

          InnerAlbums = class sealed external 'android.provider' name 'Albums' (JLObject, APBaseColumns, APMediaStore.InnerAudio.InnerAlbumColumns)
          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/albums';
              ENTRY_CONTENT_TYPE = 'vnd.android.cursor.item/album';
              DEFAULT_SORT_ORDER = 'album_key';
          public
            constructor create(); overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

          InnerArtists = class sealed external 'android.provider' name 'Artists' (JLObject, APBaseColumns, APMediaStore.InnerAudio.InnerArtistColumns)
          public
            type
              InnerAlbums = class;
              Arr1InnerAlbums = array of InnerAlbums;
              Arr2InnerAlbums = array of Arr1InnerAlbums;
              Arr3InnerAlbums = array of Arr2InnerAlbums;
              InnerAlbums = class sealed external 'android.provider' name 'Albums' (JLObject, APMediaStore.InnerAudio.InnerAlbumColumns)
              public
                constructor create(); overload;
                class function getContentUri(para1: JLString; para2: jlong): ANUri; static; overload; final;
              end;

          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/artists';
              ENTRY_CONTENT_TYPE = 'vnd.android.cursor.item/artist';
              DEFAULT_SORT_ORDER = 'artist_key';
          public
            constructor create(); overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

          InnerPlaylists = class sealed external 'android.provider' name 'Playlists' (JLObject, APBaseColumns, APMediaStore.InnerAudio.InnerPlaylistsColumns)
          public
            type
              InnerMembers = class;
              Arr1InnerMembers = array of InnerMembers;
              Arr2InnerMembers = array of Arr1InnerMembers;
              Arr3InnerMembers = array of Arr2InnerMembers;
              InnerMembers = class sealed external 'android.provider' name 'Members' (JLObject, APMediaStore.InnerAudio.InnerAudioColumns)
              public
                const
                  _ID = '_id';
                  CONTENT_DIRECTORY = 'members';
                  AUDIO_ID = 'audio_id';
                  PLAYLIST_ID = 'playlist_id';
                  PLAY_ORDER = 'play_order';
                  DEFAULT_SORT_ORDER = 'play_order';
              public
                constructor create(); overload;
                class function getContentUri(para1: JLString; para2: jlong): ANUri; static; overload; final;
                class function moveItem(para1: ACContentResolver; para2: jlong; para3: jint; para4: jint): jboolean; static; overload; final;
              end;

          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/playlist';
              ENTRY_CONTENT_TYPE = 'vnd.android.cursor.item/playlist';
              DEFAULT_SORT_ORDER = 'name';
          public
            constructor create(); overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

          InnerGenres = class sealed external 'android.provider' name 'Genres' (JLObject, APBaseColumns, APMediaStore.InnerAudio.InnerGenresColumns)
          public
            type
              InnerMembers = class;
              Arr1InnerMembers = array of InnerMembers;
              Arr2InnerMembers = array of Arr1InnerMembers;
              Arr3InnerMembers = array of Arr2InnerMembers;
              InnerMembers = class sealed external 'android.provider' name 'Members' (JLObject, APMediaStore.InnerAudio.InnerAudioColumns)
              public
                const
                  CONTENT_DIRECTORY = 'members';
                  DEFAULT_SORT_ORDER = 'title_key';
                  AUDIO_ID = 'audio_id';
                  GENRE_ID = 'genre_id';
              public
                constructor create(); overload;
                class function getContentUri(para1: JLString; para2: jlong): ANUri; static; overload; final;
              end;

          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/genre';
              ENTRY_CONTENT_TYPE = 'vnd.android.cursor.item/genre';
              DEFAULT_SORT_ORDER = 'name';
          public
            constructor create(); overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
            class function getContentUriForAudioId(para1: JLString; para2: jint): ANUri; static; overload;
          end;

          InnerMedia = class sealed external 'android.provider' name 'Media' (JLObject, APMediaStore.InnerAudio.InnerAudioColumns)
          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/audio';
              DEFAULT_SORT_ORDER = 'title_key';
              RECORD_SOUND_ACTION = 'android.provider.MediaStore.RECORD_SOUND';
              EXTRA_MAX_BYTES = 'android.provider.MediaStore.extra.MAX_BYTES';
          public
            constructor create(); overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
            class function getContentUriForPath(para1: JLString): ANUri; static; overload;
          end;

      public
        constructor create(); overload;
        class function keyFor(para1: JLString): JLString; static; overload;
      end;

      InnerImages = class sealed external 'android.provider' name 'Images' (JLObject)
      public
        type
          InnerThumbnails = class;
          Arr1InnerThumbnails = array of InnerThumbnails;
          Arr2InnerThumbnails = array of Arr1InnerThumbnails;
          Arr3InnerThumbnails = array of Arr2InnerThumbnails;
          InnerImageColumns = interface;
          Arr1InnerImageColumns = array of InnerImageColumns;
          Arr2InnerImageColumns = array of Arr1InnerImageColumns;
          Arr3InnerImageColumns = array of Arr2InnerImageColumns;
          InnerMedia = class;
          Arr1InnerMedia = array of InnerMedia;
          Arr2InnerMedia = array of Arr1InnerMedia;
          Arr3InnerMedia = array of Arr2InnerMedia;
          InnerThumbnails = class external 'android.provider' name 'Thumbnails' (JLObject, APBaseColumns)
          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              DEFAULT_SORT_ORDER = 'image_id ASC';
              DATA = '_data';
              IMAGE_ID = 'image_id';
              KIND = 'kind';
              MINI_KIND = 1;
              FULL_SCREEN_KIND = 2;
              MICRO_KIND = 3;
              THUMB_DATA = 'thumb_data';
              WIDTH = 'width';
              HEIGHT = 'height';
          public
            constructor create(); overload;
            class function query(para1: ACContentResolver; para2: ANUri; para3: Arr1JLString): ADCursor; static; overload; final;
            class function query(para1: ACContentResolver; para2: ANUri; var para3: array of JLString): ADCursor; static; overload; final;
            class function queryMiniThumbnails(para1: ACContentResolver; para2: ANUri; para3: jint; para4: Arr1JLString): ADCursor; static; overload; final;
            class function queryMiniThumbnails(para1: ACContentResolver; para2: ANUri; para3: jint; var para4: array of JLString): ADCursor; static; overload; final;
            class function queryMiniThumbnail(para1: ACContentResolver; para2: jlong; para3: jint; para4: Arr1JLString): ADCursor; static; overload; final;
            class function queryMiniThumbnail(para1: ACContentResolver; para2: jlong; para3: jint; var para4: array of JLString): ADCursor; static; overload; final;
            class procedure cancelThumbnailRequest(para1: ACContentResolver; para2: jlong); static; overload;
            class function getThumbnail(para1: ACContentResolver; para2: jlong; para3: jint; para4: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
            class procedure cancelThumbnailRequest(para1: ACContentResolver; para2: jlong; para3: jlong); static; overload;
            class function getThumbnail(para1: ACContentResolver; para2: jlong; para3: jlong; para4: jint; para5: AGBitmapFactory.InnerOptions): AGBitmap; static; overload;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

          InnerImageColumns = interface external 'android.provider' name 'ImageColumns' (APMediaStore.InnerMediaColumns)
            const
              DESCRIPTION = 'description';
              PICASA_ID = 'picasa_id';
              IS_PRIVATE = 'isprivate';
              LATITUDE = 'latitude';
              LONGITUDE = 'longitude';
              DATE_TAKEN = 'datetaken';
              ORIENTATION = 'orientation';
              MINI_THUMB_MAGIC = 'mini_thumb_magic';
              BUCKET_ID = 'bucket_id';
              BUCKET_DISPLAY_NAME = 'bucket_display_name';
          end;

          InnerMedia = class sealed external 'android.provider' name 'Media' (JLObject, APMediaStore.InnerImages.InnerImageColumns)
          public
            final class var
              fINTERNAL_CONTENT_URI: ANUri; external name 'INTERNAL_CONTENT_URI';
              fEXTERNAL_CONTENT_URI: ANUri; external name 'EXTERNAL_CONTENT_URI';
          public
            const
              CONTENT_TYPE = 'vnd.android.cursor.dir/image';
              DEFAULT_SORT_ORDER = 'bucket_display_name';
          public
            constructor create(); overload;
            class function query(para1: ACContentResolver; para2: ANUri; para3: Arr1JLString): ADCursor; static; overload; final;
            class function query(para1: ACContentResolver; para2: ANUri; var para3: array of JLString): ADCursor; static; overload; final;
            class function query(para1: ACContentResolver; para2: ANUri; para3: Arr1JLString; para4: JLString; para5: JLString): ADCursor; static; overload; final;
            class function query(para1: ACContentResolver; para2: ANUri; var para3: array of JLString; para4: JLString; para5: JLString): ADCursor; static; overload; final;
            class function query(para1: ACContentResolver; para2: ANUri; para3: Arr1JLString; para4: JLString; para5: Arr1JLString; para6: JLString): ADCursor; static; overload; final;
            class function query(para1: ACContentResolver; para2: ANUri; var para3: array of JLString; para4: JLString; var para5: array of JLString; para6: JLString): ADCursor; static; overload; final;
            class function getBitmap(para1: ACContentResolver; para2: ANUri): AGBitmap; static; overload; final;  // throws java.io.FileNotFoundException, java.io.IOException
            class function insertImage(para1: ACContentResolver; para2: JLString; para3: JLString; para4: JLString): JLString; static; overload; final;  // throws java.io.FileNotFoundException
            class function insertImage(para1: ACContentResolver; para2: AGBitmap; para3: JLString; para4: JLString): JLString; static; overload; final;
            class function getContentUri(para1: JLString): ANUri; static; overload;
          end;

      public
        constructor create(); overload;
      end;

      InnerFiles = class sealed external 'android.provider' name 'Files' (JLObject)
      public
        type
          InnerFileColumns = interface;
          Arr1InnerFileColumns = array of InnerFileColumns;
          Arr2InnerFileColumns = array of Arr1InnerFileColumns;
          Arr3InnerFileColumns = array of Arr2InnerFileColumns;
          InnerFileColumns = interface external 'android.provider' name 'FileColumns' (APMediaStore.InnerMediaColumns)
            const
              PARENT = 'parent';
              MIME_TYPE = 'mime_type';
              TITLE = 'title';
              MEDIA_TYPE = 'media_type';
              MEDIA_TYPE_NONE = 0;
              MEDIA_TYPE_IMAGE = 1;
              MEDIA_TYPE_AUDIO = 2;
              MEDIA_TYPE_VIDEO = 3;
              MEDIA_TYPE_PLAYLIST = 4;
          end;

      public
        constructor create(); overload;
        class function getContentUri(para1: JLString): ANUri; static; overload;
        class function getContentUri(para1: JLString; para2: jlong): ANUri; static; overload; final;
      end;

  public
    const
      AUTHORITY = 'media';
      INTENT_ACTION_MUSIC_PLAYER = 'android.intent.action.MUSIC_PLAYER';
      INTENT_ACTION_MEDIA_SEARCH = 'android.intent.action.MEDIA_SEARCH';
      INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH = 'android.media.action.MEDIA_PLAY_FROM_SEARCH';
      EXTRA_MEDIA_ARTIST = 'android.intent.extra.artist';
      EXTRA_MEDIA_ALBUM = 'android.intent.extra.album';
      EXTRA_MEDIA_TITLE = 'android.intent.extra.title';
      EXTRA_MEDIA_FOCUS = 'android.intent.extra.focus';
      EXTRA_SCREEN_ORIENTATION = 'android.intent.extra.screenOrientation';
      EXTRA_FULL_SCREEN = 'android.intent.extra.fullScreen';
      EXTRA_SHOW_ACTION_ICONS = 'android.intent.extra.showActionIcons';
      EXTRA_FINISH_ON_COMPLETION = 'android.intent.extra.finishOnCompletion';
      INTENT_ACTION_STILL_IMAGE_CAMERA = 'android.media.action.STILL_IMAGE_CAMERA';
      INTENT_ACTION_VIDEO_CAMERA = 'android.media.action.VIDEO_CAMERA';
      ACTION_IMAGE_CAPTURE = 'android.media.action.IMAGE_CAPTURE';
      ACTION_VIDEO_CAPTURE = 'android.media.action.VIDEO_CAPTURE';
      EXTRA_VIDEO_QUALITY = 'android.intent.extra.videoQuality';
      EXTRA_SIZE_LIMIT = 'android.intent.extra.sizeLimit';
      EXTRA_DURATION_LIMIT = 'android.intent.extra.durationLimit';
      EXTRA_OUTPUT = 'output';
      UNKNOWN_STRING = '<unknown>';
      MEDIA_SCANNER_VOLUME = 'volume';
      MEDIA_IGNORE_FILENAME = '.nomedia';
  public
    constructor create(); overload;
    class function getMediaScannerUri(): ANUri; static; overload;
    class function getVersion(para1: ACContext): JLString; static; overload;
  end;

  APPreferenceGroup = class abstract external 'android.preference' name 'PreferenceGroup' (APPreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setOrderingAsAdded(para1: jboolean); overload; virtual;
    function isOrderingAsAdded(): jboolean; overload; virtual;
    procedure addItemFromInflater(para1: APPreference); overload; virtual;
    function getPreferenceCount(): jint; overload; virtual;
    function getPreference(para1: jint): APPreference; overload; virtual;
    function addPreference(para1: APPreference): jboolean; overload; virtual;
    function removePreference(para1: APPreference): jboolean; overload; virtual;
    procedure removeAll(); overload; virtual;
  strict protected
    function onPrepareAddPreference(para1: APPreference): jboolean; overload; virtual;
  public
    function findPreference(para1: JLCharSequence): APPreference; overload; virtual;
  strict protected
    function isOnSameScreenAsChildren(): jboolean; overload; virtual;
    procedure onAttachedToActivity(); overload; virtual;
    procedure onPrepareForRemoval(); overload; virtual;
  public
    procedure setEnabled(para1: jboolean); overload; virtual;
  strict protected
    procedure dispatchSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure dispatchRestoreInstanceState(para1: AOBundle); overload; virtual;
  end;

  APRingtonePreference = class external 'android.preference' name 'RingtonePreference' (APPreference, APPreferenceManager.InnerOnActivityResultListener)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    function getRingtoneType(): jint; overload; virtual;
    procedure setRingtoneType(para1: jint); overload; virtual;
    function getShowDefault(): jboolean; overload; virtual;
    procedure setShowDefault(para1: jboolean); overload; virtual;
    function getShowSilent(): jboolean; overload; virtual;
    procedure setShowSilent(para1: jboolean); overload; virtual;
  strict protected
    procedure onClick(); overload; virtual;
    procedure onPrepareRingtonePickerIntent(para1: ACIntent); overload; virtual;
    procedure onSaveRingtone(para1: ANUri); overload; virtual;
    function onRestoreRingtone(): ANUri; overload; virtual;
    function onGetDefaultValue(para1: ACRTypedArray; para2: jint): JLObject; overload; virtual;
    procedure onSetInitialValue(para1: jboolean; para2: JLObject); overload; virtual;
    procedure onAttachedToHierarchy(para1: APPreferenceManager); overload; virtual;
  public
    function onActivityResult(para1: jint; para2: jint; para3: ACIntent): jboolean; overload; virtual;
  end;

  APTwoStatePreference = class abstract external 'android.preference' name 'TwoStatePreference' (APPreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
  strict protected
    procedure onClick(); overload; virtual;
  public
    procedure setChecked(para1: jboolean); overload; virtual;
    function isChecked(): jboolean; overload; virtual;
    function shouldDisableDependents(): jboolean; overload; virtual;
    procedure setSummaryOn(para1: JLCharSequence); overload; virtual;
    procedure setSummaryOn(para1: jint); overload; virtual;
    function getSummaryOn(): JLCharSequence; overload; virtual;
    procedure setSummaryOff(para1: JLCharSequence); overload; virtual;
    procedure setSummaryOff(para1: jint); overload; virtual;
    function getSummaryOff(): JLCharSequence; overload; virtual;
    function getDisableDependentsState(): jboolean; overload; virtual;
    procedure setDisableDependentsState(para1: jboolean); overload; virtual;
  strict protected
    function onGetDefaultValue(para1: ACRTypedArray; para2: jint): JLObject; overload; virtual;
    procedure onSetInitialValue(para1: jboolean; para2: JLObject); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  end;

  ARProgramFragmentFixedFunction = class external 'android.renderscript' name 'ProgramFragmentFixedFunction' (ARProgramFragment)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        type
          InnerFormat = class;
          Arr1InnerFormat = array of InnerFormat;
          Arr2InnerFormat = array of Arr1InnerFormat;
          Arr3InnerFormat = array of Arr2InnerFormat;
          InnerEnvMode = class;
          Arr1InnerEnvMode = array of InnerEnvMode;
          Arr2InnerEnvMode = array of Arr1InnerEnvMode;
          Arr3InnerEnvMode = array of Arr2InnerEnvMode;
          InnerFormat = class sealed external 'android.renderscript' name 'Format' (JLEnum)
          public
            final class var
              fALPHA: ARProgramFragmentFixedFunction.InnerBuilder.InnerFormat; external name 'ALPHA';
              fLUMINANCE_ALPHA: ARProgramFragmentFixedFunction.InnerBuilder.InnerFormat; external name 'LUMINANCE_ALPHA';
              fRGB: ARProgramFragmentFixedFunction.InnerBuilder.InnerFormat; external name 'RGB';
              fRGBA: ARProgramFragmentFixedFunction.InnerBuilder.InnerFormat; external name 'RGBA';
          public
            class function values(): ARProgramFragmentFixedFunction.InnerBuilder.Arr1InnerFormat; static; overload;
            class function valueOf(para1: JLString): ARProgramFragmentFixedFunction.InnerBuilder.InnerFormat; static; overload;
          end;

          InnerEnvMode = class sealed external 'android.renderscript' name 'EnvMode' (JLEnum)
          public
            final class var
              fDECAL: ARProgramFragmentFixedFunction.InnerBuilder.InnerEnvMode; external name 'DECAL';
              fMODULATE: ARProgramFragmentFixedFunction.InnerBuilder.InnerEnvMode; external name 'MODULATE';
              fREPLACE: ARProgramFragmentFixedFunction.InnerBuilder.InnerEnvMode; external name 'REPLACE';
          public
            class function values(): ARProgramFragmentFixedFunction.InnerBuilder.Arr1InnerEnvMode; static; overload;
            class function valueOf(para1: JLString): ARProgramFragmentFixedFunction.InnerBuilder.InnerEnvMode; static; overload;
          end;

      public
        const
          MAX_TEXTURE = 2;
      public
        constructor create(para1: ARRenderScript); overload;
        function setTexture(para1: ARProgramFragmentFixedFunction.InnerBuilder.InnerEnvMode; para2: ARProgramFragmentFixedFunction.InnerBuilder.InnerFormat; para3: jint): ARProgramFragmentFixedFunction.InnerBuilder; overload; virtual;  // throws java.lang.IllegalArgumentException
        function setPointSpriteTexCoordinateReplacement(para1: jboolean): ARProgramFragmentFixedFunction.InnerBuilder; overload; virtual;
        function setVaryingColor(para1: jboolean): ARProgramFragmentFixedFunction.InnerBuilder; overload; virtual;
        function create_(): ARProgramFragmentFixedFunction; external name 'create'; overload; virtual;
      end;

  end;

  ARProgramVertexFixedFunction = class external 'android.renderscript' name 'ProgramVertexFixedFunction' (ARProgramVertex)
  public
    type
      InnerConstants = class;
      Arr1InnerConstants = array of InnerConstants;
      Arr2InnerConstants = array of Arr1InnerConstants;
      Arr3InnerConstants = array of Arr2InnerConstants;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerConstants = class external 'android.renderscript' name 'Constants' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        procedure destroy(); overload; virtual;
        procedure setModelview(para1: ARMatrix4f); overload; virtual;
        procedure setProjection(para1: ARMatrix4f); overload; virtual;
        procedure setTexture(para1: ARMatrix4f); overload; virtual;
      end;

      InnerBuilder = class external 'android.renderscript' name 'Builder' (JLObject)
      public
        constructor create(para1: ARRenderScript); overload;
        function setTextureMatrixEnable(para1: jboolean): ARProgramVertexFixedFunction.InnerBuilder; overload; virtual;
        function create_(): ARProgramVertexFixedFunction; external name 'create'; overload; virtual;
      end;

  public
    procedure bindConstants(para1: ARProgramVertexFixedFunction.InnerConstants); overload; virtual;
  end;

  ATMDateKeyListener = class external 'android.text.method' name 'DateKeyListener' (ATMNumberKeyListener)
  public
    final class var
      fCHARACTERS: Arr1jchar; external name 'CHARACTERS';
  public
    constructor create(); overload;
    function getInputType(): jint; overload; virtual;
  strict protected
    function getAcceptedChars(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMDateKeyListener; static; overload;
  end;

  ATMDateTimeKeyListener = class external 'android.text.method' name 'DateTimeKeyListener' (ATMNumberKeyListener)
  public
    final class var
      fCHARACTERS: Arr1jchar; external name 'CHARACTERS';
  public
    constructor create(); overload;
    function getInputType(): jint; overload; virtual;
  strict protected
    function getAcceptedChars(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMDateTimeKeyListener; static; overload;
  end;

  ATMDialerKeyListener = class external 'android.text.method' name 'DialerKeyListener' (ATMNumberKeyListener)
  public
    final class var
      fCHARACTERS: Arr1jchar; external name 'CHARACTERS';
  public
    constructor create(); overload;
  strict protected
    function getAcceptedChars(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMDialerKeyListener; static; overload;
    function getInputType(): jint; overload; virtual;
  strict protected
    function lookup(para1: AVKeyEvent; para2: ATSpannable): jint; overload; virtual;
  end;

  ATMDigitsKeyListener = class external 'android.text.method' name 'DigitsKeyListener' (ATMNumberKeyListener)
  public
    constructor create(); overload;
    constructor create(para1: jboolean; para2: jboolean); overload;
  strict protected
    function getAcceptedChars(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMDigitsKeyListener; static; overload;
    class function getInstance(para1: jboolean; para2: jboolean): ATMDigitsKeyListener; static; overload;
    class function getInstance(para1: JLString): ATMDigitsKeyListener; static; overload;
    function getInputType(): jint; overload; virtual;
    function filter(para1: JLCharSequence; para2: jint; para3: jint; para4: ATSpanned; para5: jint; para6: jint): JLCharSequence; overload; virtual;
  end;

  ATMTimeKeyListener = class external 'android.text.method' name 'TimeKeyListener' (ATMNumberKeyListener)
  public
    final class var
      fCHARACTERS: Arr1jchar; external name 'CHARACTERS';
  public
    constructor create(); overload;
    function getInputType(): jint; overload; virtual;
  strict protected
    function getAcceptedChars(): Arr1jchar; overload; virtual;
  public
    class function getInstance(): ATMTimeKeyListener; static; overload;
  end;

  ATMMultiTapKeyListener = class external 'android.text.method' name 'MultiTapKeyListener' (ATMBaseKeyListener, ATSpanWatcher)
  public
    constructor create(para1: ATMTextKeyListener.InnerCapitalize; para2: jboolean); overload;
    class function getInstance(para1: jboolean; para2: ATMTextKeyListener.InnerCapitalize): ATMMultiTapKeyListener; static; overload;
    function getInputType(): jint; overload; virtual;
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    procedure onSpanChanged(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure onSpanAdded(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint); overload; virtual;
    procedure onSpanRemoved(para1: ATSpannable; para2: JLObject; para3: jint; para4: jint); overload; virtual;
  end;

  ATMQwertyKeyListener = class external 'android.text.method' name 'QwertyKeyListener' (ATMBaseKeyListener)
  public
    constructor create(para1: ATMTextKeyListener.InnerCapitalize; para2: jboolean); overload;
    class function getInstance(para1: jboolean; para2: ATMTextKeyListener.InnerCapitalize): ATMQwertyKeyListener; static; overload;
    class function getInstanceForFullKeyboard(): ATMQwertyKeyListener; static; overload;
    function getInputType(): jint; overload; virtual;
    function onKeyDown(para1: AVView; para2: ATEditable; para3: jint; para4: AVKeyEvent): jboolean; overload; virtual;
    class procedure markAsReplaced(para1: ATSpannable; para2: jint; para3: jint; para4: JLString); static; overload;
  end;

  ATMLinkMovementMethod = class external 'android.text.method' name 'LinkMovementMethod' (ATMScrollingMovementMethod)
  public
    constructor create(); overload;
  strict protected
    function handleMovementKey(para1: AWTextView; para2: ATSpannable; para3: jint; para4: jint; para5: AVKeyEvent): jboolean; overload; virtual;
    function up(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function down(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function left(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
    function right(para1: AWTextView; para2: ATSpannable): jboolean; overload; virtual;
  public
    function onTouchEvent(para1: AWTextView; para2: ATSpannable; para3: AVMotionEvent): jboolean; overload; virtual;
    procedure initialize(para1: AWTextView; para2: ATSpannable); overload; virtual;
    procedure onTakeFocus(para1: AWTextView; para2: ATSpannable; para3: jint); overload; virtual;
    class function getInstance(): ATMMovementMethod; static; overload;
  end;

  ATSBulletSpan = class external 'android.text.style' name 'BulletSpan' (JLObject, ATSLeadingMarginSpan, ATParcelableSpan)
  public
    const
      STANDARD_GAP_WIDTH = 2;
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getLeadingMargin(para1: jboolean): jint; overload; virtual;
    procedure drawLeadingMargin(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jboolean; para12: ATLayout); overload; virtual;
  end;

  ATSQuoteSpan = class external 'android.text.style' name 'QuoteSpan' (JLObject, ATSLeadingMarginSpan, ATParcelableSpan)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getColor(): jint; overload; virtual;
    function getLeadingMargin(para1: jboolean): jint; overload; virtual;
    procedure drawLeadingMargin(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jboolean; para12: ATLayout); overload; virtual;
  end;

  ATSDrawableMarginSpan = class external 'android.text.style' name 'DrawableMarginSpan' (JLObject, ATSLeadingMarginSpan, ATSLineHeightSpan)
  public
    constructor create(para1: AGDDrawable); overload;
    constructor create(para1: AGDDrawable; para2: jint); overload;
    function getLeadingMargin(para1: jboolean): jint; overload; virtual;
    procedure drawLeadingMargin(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jboolean; para12: ATLayout); overload; virtual;
    procedure chooseHeight(para1: JLCharSequence; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGPaint.InnerFontMetricsInt); overload; virtual;
  end;

  ATSIconMarginSpan = class external 'android.text.style' name 'IconMarginSpan' (JLObject, ATSLeadingMarginSpan, ATSLineHeightSpan)
  public
    constructor create(para1: AGBitmap); overload;
    constructor create(para1: AGBitmap; para2: jint); overload;
    function getLeadingMargin(para1: jboolean): jint; overload; virtual;
    procedure drawLeadingMargin(para1: AGCanvas; para2: AGPaint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLCharSequence; para9: jint; para10: jint; para11: jboolean; para12: ATLayout); overload; virtual;
    procedure chooseHeight(para1: JLCharSequence; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGPaint.InnerFontMetricsInt); overload; virtual;
  end;

  ATSAbsoluteSizeSpan = class external 'android.text.style' name 'AbsoluteSizeSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getSize(): jint; overload; virtual;
    function getDip(): jboolean; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSRelativeSizeSpan = class external 'android.text.style' name 'RelativeSizeSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(para1: jfloat); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getSizeChange(): jfloat; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSReplacementSpan = class abstract external 'android.text.style' name 'ReplacementSpan' (ATSMetricAffectingSpan)
  public
    constructor create(); overload;
    function getSize(para1: AGPaint; para2: JLCharSequence; para3: jint; para4: jint; para5: AGPaint.InnerFontMetricsInt): jint; overload; virtual; abstract;
    procedure draw(para1: AGCanvas; para2: JLCharSequence; para3: jint; para4: jint; para5: jfloat; para6: jint; para7: jint; para8: jint; para9: AGPaint); overload; virtual; abstract;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
  end;

  ATSScaleXSpan = class external 'android.text.style' name 'ScaleXSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(para1: jfloat); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getScaleX(): jfloat; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSStyleSpan = class external 'android.text.style' name 'StyleSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getStyle(): jint; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSSubscriptSpan = class external 'android.text.style' name 'SubscriptSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSSuperscriptSpan = class external 'android.text.style' name 'SuperscriptSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSTextAppearanceSpan = class external 'android.text.style' name 'TextAppearanceSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint; para4: ACRColorStateList; para5: ACRColorStateList); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getFamily(): JLString; overload; virtual;
    function getTextColor(): ACRColorStateList; overload; virtual;
    function getLinkTextColor(): ACRColorStateList; overload; virtual;
    function getTextSize(): jint; overload; virtual;
    function getTextStyle(): jint; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  ATSTypefaceSpan = class external 'android.text.style' name 'TypefaceSpan' (ATSMetricAffectingSpan, ATParcelableSpan)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: AOParcel); overload;
    function getSpanTypeId(): jint; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
    function getFamily(): JLString; overload; virtual;
    procedure updateDrawState(para1: ATTextPaint); overload; virtual;
    procedure updateMeasureState(para1: ATTextPaint); overload; virtual;
  end;

  AWHeaderViewListAdapter = class external 'android.widget' name 'HeaderViewListAdapter' (JLObject, AWWrapperListAdapter, AWFilterable)
  public
    constructor create(para1: JUArrayList; para2: JUArrayList; para3: AWListAdapter); overload;
    function getHeadersCount(): jint; overload; virtual;
    function getFootersCount(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function removeHeader(para1: AVView): jboolean; overload; virtual;
    function removeFooter(para1: AVView): jboolean; overload; virtual;
    function getCount(): jint; overload; virtual;
    function areAllItemsEnabled(): jboolean; overload; virtual;
    function isEnabled(para1: jint): jboolean; overload; virtual;
    function getItem(para1: jint): JLObject; overload; virtual;
    function getItemId(para1: jint): jlong; overload; virtual;
    function hasStableIds(): jboolean; overload; virtual;
    function getView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    function getItemViewType(para1: jint): jint; overload; virtual;
    function getViewTypeCount(): jint; overload; virtual;
    procedure registerDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    procedure unregisterDataSetObserver(para1: ADDataSetObserver); overload; virtual;
    function getFilter(): AWFilter; overload; virtual;
    function getWrappedAdapter(): AWListAdapter; overload; virtual;
  end;

  AWArrayAdapter = class external 'android.widget' name 'ArrayAdapter' (AWBaseAdapter, AWFilterable)
  public
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: Arr1JLObject); overload;
    constructor create(para1: ACContext; para2: jint; const para3: array of JLObject); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint; para4: Arr1JLObject); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint; const para4: array of JLObject); overload;
    constructor create(para1: ACContext; para2: jint; para3: JUList); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint; para4: JUList); overload;
    procedure add(para1: JLObject); overload; virtual;
    procedure addAll(para1: JUCollection); overload; virtual;
    procedure addAll(para1: Arr1JLObject); overload; virtual;
    procedure addAll(const para1: array of JLObject); overload; virtual;
    procedure insert(para1: JLObject; para2: jint); overload; virtual;
    procedure remove(para1: JLObject); overload; virtual;
    procedure clear(); overload; virtual;
    procedure sort(para1: JUComparator); overload; virtual;
    procedure notifyDataSetChanged(); overload; virtual;
    procedure setNotifyOnChange(para1: jboolean); overload; virtual;
    function getContext(): ACContext; overload; virtual;
    function getCount(): jint; overload; virtual;
    function getItem(para1: jint): JLObject; overload; virtual;
    function getPosition(para1: JLObject): jint; overload; virtual;
    function getItemId(para1: jint): jlong; overload; virtual;
    function getView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    procedure setDropDownViewResource(para1: jint); overload; virtual;
    function getDropDownView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    class function createFromResource(para1: ACContext; para2: jint; para3: jint): AWArrayAdapter; static; overload;
    function getFilter(): AWFilter; overload; virtual;
  end;

  AWCursorAdapter = class abstract external 'android.widget' name 'CursorAdapter' (AWBaseAdapter, AWFilterable)
  public
    const
      FLAG_AUTO_REQUERY = 1;
      FLAG_REGISTER_CONTENT_OBSERVER = 2;
  public
    constructor create(para1: ACContext; para2: ADCursor); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jboolean); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint); overload;
  strict protected
    procedure init(para1: ACContext; para2: ADCursor; para3: jboolean); overload; virtual;
  public
    function getCursor(): ADCursor; overload; virtual;
    function getCount(): jint; overload; virtual;
    function getItem(para1: jint): JLObject; overload; virtual;
    function getItemId(para1: jint): jlong; overload; virtual;
    function hasStableIds(): jboolean; overload; virtual;
    function getView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    function getDropDownView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    function newView(para1: ACContext; para2: ADCursor; para3: AVViewGroup): AVView; overload; virtual; abstract;
    function newDropDownView(para1: ACContext; para2: ADCursor; para3: AVViewGroup): AVView; overload; virtual;
    procedure bindView(para1: AVView; para2: ACContext; para3: ADCursor); overload; virtual; abstract;
    procedure changeCursor(para1: ADCursor); overload; virtual;
    function swapCursor(para1: ADCursor): ADCursor; overload; virtual;
    function convertToString(para1: ADCursor): JLCharSequence; overload; virtual;
    function runQueryOnBackgroundThread(para1: JLCharSequence): ADCursor; overload; virtual;
    function getFilter(): AWFilter; overload; virtual;
    function getFilterQueryProvider(): AWFilterQueryProvider; overload; virtual;
    procedure setFilterQueryProvider(para1: AWFilterQueryProvider); overload; virtual;
  strict protected
    procedure onContentChanged(); overload; virtual;
  end;

  AWSimpleAdapter = class external 'android.widget' name 'SimpleAdapter' (AWBaseAdapter, AWFilterable)
  public
    type
      InnerViewBinder = interface;
      Arr1InnerViewBinder = array of InnerViewBinder;
      Arr2InnerViewBinder = array of Arr1InnerViewBinder;
      Arr3InnerViewBinder = array of Arr2InnerViewBinder;
      InnerViewBinder = interface external 'android.widget' name 'ViewBinder' 
        function setViewValue(para1: AVView; para2: JLObject; para3: JLString): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext; para2: JUList; para3: jint; para4: Arr1JLString; para5: Arr1jint); overload;
    constructor create(para1: ACContext; para2: JUList; para3: jint; const para4: array of JLString; const para5: array of jint); overload;
    function getCount(): jint; overload; virtual;
    function getItem(para1: jint): JLObject; overload; virtual;
    function getItemId(para1: jint): jlong; overload; virtual;
    function getView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    procedure setDropDownViewResource(para1: jint); overload; virtual;
    function getDropDownView(para1: jint; para2: AVView; para3: AVViewGroup): AVView; overload; virtual;
    function getViewBinder(): AWSimpleAdapter.InnerViewBinder; overload; virtual;
    procedure setViewBinder(para1: AWSimpleAdapter.InnerViewBinder); overload; virtual;
    procedure setViewImage(para1: AWImageView; para2: jint); overload; virtual;
    procedure setViewImage(para1: AWImageView; para2: JLString); overload; virtual;
    procedure setViewText(para1: AWTextView; para2: JLString); overload; virtual;
    function getFilter(): AWFilter; overload; virtual;
  end;

  AWResourceCursorTreeAdapter = class abstract external 'android.widget' name 'ResourceCursorTreeAdapter' (AWCursorTreeAdapter)
  public
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint); overload;
    function newChildView(para1: ACContext; para2: ADCursor; para3: jboolean; para4: AVViewGroup): AVView; overload; virtual;
    function newGroupView(para1: ACContext; para2: ADCursor; para3: jboolean; para4: AVViewGroup): AVView; overload; virtual;
  end;

  ANTIsoDep = class sealed external 'android.nfc.tech' name 'IsoDep' (ANTBasicTagTechnology)
  public
    class function get(para1: ANTag): ANTIsoDep; static; overload;
    procedure setTimeout(para1: jint); overload; virtual;
    function getTimeout(): jint; overload; virtual;
    function getHistoricalBytes(): Arr1jbyte; overload; virtual;
    function getHiLayerResponse(): Arr1jbyte; overload; virtual;
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTMifareClassic = class sealed external 'android.nfc.tech' name 'MifareClassic' (ANTBasicTagTechnology)
  public
    final class var
      fKEY_DEFAULT: Arr1jbyte; external name 'KEY_DEFAULT';
      fKEY_MIFARE_APPLICATION_DIRECTORY: Arr1jbyte; external name 'KEY_MIFARE_APPLICATION_DIRECTORY';
      fKEY_NFC_FORUM: Arr1jbyte; external name 'KEY_NFC_FORUM';
  public
    const
      TYPE_UNKNOWN = -1;
      TYPE_CLASSIC = 0;
      TYPE_PLUS = 1;
      TYPE_PRO = 2;
      SIZE_1K = 1024;
      SIZE_2K = 2048;
      SIZE_4K = 4096;
      SIZE_MINI = 320;
      BLOCK_SIZE = 16;
  public
    class function get(para1: ANTag): ANTMifareClassic; static; overload;
    function getType(): jint; overload; virtual;
    function getSize(): jint; overload; virtual;
    function getSectorCount(): jint; overload; virtual;
    function getBlockCount(): jint; overload; virtual;
    function getBlockCountInSector(para1: jint): jint; overload; virtual;
    function blockToSector(para1: jint): jint; overload; virtual;
    function sectorToBlock(para1: jint): jint; overload; virtual;
    function authenticateSectorWithKeyA(para1: jint; para2: Arr1jbyte): jboolean; overload; virtual;  // throws java.io.IOException
    function authenticateSectorWithKeyA(para1: jint; var para2: array of jbyte): jboolean; overload; virtual;  // throws java.io.IOException
    function authenticateSectorWithKeyB(para1: jint; para2: Arr1jbyte): jboolean; overload; virtual;  // throws java.io.IOException
    function authenticateSectorWithKeyB(para1: jint; var para2: array of jbyte): jboolean; overload; virtual;  // throws java.io.IOException
    function readBlock(para1: jint): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    procedure writeBlock(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure writeBlock(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure increment(para1: jint; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure decrement(para1: jint; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure transfer(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure restore(para1: jint); overload; virtual;  // throws java.io.IOException
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure setTimeout(para1: jint); overload; virtual;
    function getTimeout(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTMifareUltralight = class sealed external 'android.nfc.tech' name 'MifareUltralight' (ANTBasicTagTechnology)
  public
    const
      TYPE_UNKNOWN = -1;
      TYPE_ULTRALIGHT = 1;
      TYPE_ULTRALIGHT_C = 2;
      PAGE_SIZE = 4;
  public
    class function get(para1: ANTag): ANTMifareUltralight; static; overload;
    function getType(): jint; overload; virtual;
    function readPages(para1: jint): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    procedure writePage(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure writePage(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.io.IOException
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure setTimeout(para1: jint); overload; virtual;
    function getTimeout(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTNdef = class sealed external 'android.nfc.tech' name 'Ndef' (ANTBasicTagTechnology)
  public
    const
      NFC_FORUM_TYPE_1 = 'org.nfcforum.ndef.type1';
      NFC_FORUM_TYPE_2 = 'org.nfcforum.ndef.type2';
      NFC_FORUM_TYPE_3 = 'org.nfcforum.ndef.type3';
      NFC_FORUM_TYPE_4 = 'org.nfcforum.ndef.type4';
      MIFARE_CLASSIC = 'com.nxp.ndef.mifareclassic';
  public
    class function get(para1: ANTag): ANTNdef; static; overload;
    function getCachedNdefMessage(): ANNdefMessage; overload; virtual;
    function getType(): JLString; overload; virtual;
    function getMaxSize(): jint; overload; virtual;
    function isWritable(): jboolean; overload; virtual;
    function getNdefMessage(): ANNdefMessage; overload; virtual;  // throws java.io.IOException, android.nfc.FormatException
    procedure writeNdefMessage(para1: ANNdefMessage); overload; virtual;  // throws java.io.IOException, android.nfc.FormatException
    function canMakeReadOnly(): jboolean; overload; virtual;
    function makeReadOnly(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTNdefFormatable = class sealed external 'android.nfc.tech' name 'NdefFormatable' (ANTBasicTagTechnology)
  public
    class function get(para1: ANTag): ANTNdefFormatable; static; overload;
    procedure format(para1: ANNdefMessage); overload; virtual;  // throws java.io.IOException, android.nfc.FormatException
    procedure formatReadOnly(para1: ANNdefMessage); overload; virtual;  // throws java.io.IOException, android.nfc.FormatException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTNfcA = class sealed external 'android.nfc.tech' name 'NfcA' (ANTBasicTagTechnology)
  public
    class function get(para1: ANTag): ANTNfcA; static; overload;
    function getAtqa(): Arr1jbyte; overload; virtual;
    function getSak(): jshort; overload; virtual;
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure setTimeout(para1: jint); overload; virtual;
    function getTimeout(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTNfcB = class sealed external 'android.nfc.tech' name 'NfcB' (ANTBasicTagTechnology)
  public
    class function get(para1: ANTag): ANTNfcB; static; overload;
    function getApplicationData(): Arr1jbyte; overload; virtual;
    function getProtocolInfo(): Arr1jbyte; overload; virtual;
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTNfcF = class sealed external 'android.nfc.tech' name 'NfcF' (ANTBasicTagTechnology)
  public
    class function get(para1: ANTag): ANTNfcF; static; overload;
    function getSystemCode(): Arr1jbyte; overload; virtual;
    function getManufacturer(): Arr1jbyte; overload; virtual;
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure setTimeout(para1: jint); overload; virtual;
    function getTimeout(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  ANTNfcV = class sealed external 'android.nfc.tech' name 'NfcV' (ANTBasicTagTechnology)
  public
    class function get(para1: ANTag): ANTNfcV; static; overload;
    function getResponseFlags(): jbyte; overload; virtual;
    function getDsfId(): jbyte; overload; virtual;
    function transceive(para1: Arr1jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function transceive(var para1: array of jbyte): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getMaxTransceiveLength(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure connect(); overload; virtual;  // throws java.io.IOException
    function isConnected(): jboolean; overload; virtual;
    function getTag(): ANTag; overload; virtual;
  end;

  AUBase64InputStream = class external 'android.util' name 'Base64InputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream; para2: jint); overload;
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  end;

  JIBufferedInputStream = class external 'java.io' name 'BufferedInputStream' (JIFilterInputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fcount: jint; external name 'count';
      fmarklimit: jint; external name 'marklimit';
      fmarkpos: jint; external name 'markpos';
      fpos: jint; external name 'pos';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: jint); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIDataInputStream = class external 'java.io' name 'DataInputStream' (JIFilterInputStream, JIDataInput)
  public
    constructor create(para1: JIInputStream); overload;
    function read(para1: Arr1jbyte): jint; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual; final;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual; final;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual; final;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual; final;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual; final;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual; final;  // throws java.io.IOException
    function readFloat(): jfloat; overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    function readInt(): jint; overload; virtual; final;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual; final;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual; final;  // throws java.io.IOException
    function readShort(): jshort; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual; final;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual; final;  // throws java.io.IOException
    class function readUTF(para1: JIDataInput): JLString; static; overload; final;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload; virtual; final;  // throws java.io.IOException
  end;

  JILineNumberInputStream = class external 'java.io' name 'LineNumberInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function getLineNumber(): jint; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure setLineNumber(para1: jint); overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIPushbackInputStream = class external 'java.io' name 'PushbackInputStream' (JIFilterInputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fpos: jint; external name 'pos';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: jint); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  JSDigestInputStream = class external 'java.security' name 'DigestInputStream' (JIFilterInputStream)
  strict protected
    var
      fdigest: JSMessageDigest; external name 'digest';
  public
    constructor create(para1: JIInputStream; para2: JSMessageDigest); overload;
    function getMessageDigest(): JSMessageDigest; overload; virtual;
    procedure setMessageDigest(para1: JSMessageDigest); overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure &on(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUZCheckedInputStream = class external 'java.util.zip' name 'CheckedInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream; para2: JUZChecksum); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function getChecksum(): JUZChecksum; overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JUZDeflaterInputStream = class external 'java.util.zip' name 'DeflaterInputStream' (JIFilterInputStream)
  strict protected
    final var
      fdef: JUZDeflater; external name 'def';
      fbuf: Arr1jbyte; external name 'buf';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JUZDeflater); overload;
    constructor create(para1: JIInputStream; para2: JUZDeflater; para3: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  JUZInflaterInputStream = class external 'java.util.zip' name 'InflaterInputStream' (JIFilterInputStream)
  strict protected
    var
      finf: JUZInflater; external name 'inf';
      fbuf: Arr1jbyte; external name 'buf';
      flen: jint; external name 'len';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JUZInflater); overload;
    constructor create(para1: JIInputStream; para2: JUZInflater; para3: jint); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  strict protected
    procedure fill(); overload; virtual;  // throws java.io.IOException
  public
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
  end;

  JCCipherInputStream = class external 'javax.crypto' name 'CipherInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream; para2: JCCipher); overload;
  strict protected
    constructor create(para1: JIInputStream); overload;
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
  end;

  JILineNumberReader = class external 'java.io' name 'LineNumberReader' (JIBufferedReader)
  public
    constructor create(para1: JIReader); overload;
    constructor create(para1: JIReader; para2: jint); overload;
    function getLineNumber(): jint; overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure setLineNumber(para1: jint); overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIPushbackReader = class external 'java.io' name 'PushbackReader' (JIFilterReader)
  public
    constructor create(para1: JIReader); overload;
    constructor create(para1: JIReader; para2: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jchar); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jchar); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: jint); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIFileReader = class external 'java.io' name 'FileReader' (JIInputStreamReader)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFileDescriptor); overload;
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
  end;

  JNCSAbstractInterruptibleChannel = class abstract external 'java.nio.channels.spi' name 'AbstractInterruptibleChannel' (JLObject, JNCChannel, JNCInterruptibleChannel)
  strict protected
    constructor create(); overload;
  public
    function isOpen(): jboolean; overload; virtual; final;
    procedure close(); overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure &begin(); overload; virtual; final;
    procedure &end(para1: jboolean); overload; virtual; final;  // throws java.nio.channels.AsynchronousCloseException
    procedure implCloseChannel(); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCScatteringByteChannel = interface external 'java.nio.channels' name 'ScatteringByteChannel' (JNCReadableByteChannel)
    function read(para1: Arr1JNByteBuffer): jlong; overload;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
  end;

  JNCByteChannel = interface external 'java.nio.channels' name 'ByteChannel' (JNCReadableByteChannel, JNCWritableByteChannel)
  end;

  JNCGatheringByteChannel = interface external 'java.nio.channels' name 'GatheringByteChannel' (JNCWritableByteChannel)
    function write(para1: Arr1JNByteBuffer): jlong; overload;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
  end;

  AOParcelFileDescriptor = class external 'android.os' name 'ParcelFileDescriptor' (JLObject, AOParcelable)
  public
    type
      InnerAutoCloseOutputStream = class;
      Arr1InnerAutoCloseOutputStream = array of InnerAutoCloseOutputStream;
      Arr2InnerAutoCloseOutputStream = array of Arr1InnerAutoCloseOutputStream;
      Arr3InnerAutoCloseOutputStream = array of Arr2InnerAutoCloseOutputStream;
      InnerAutoCloseInputStream = class;
      Arr1InnerAutoCloseInputStream = array of InnerAutoCloseInputStream;
      Arr2InnerAutoCloseInputStream = array of Arr1InnerAutoCloseInputStream;
      Arr3InnerAutoCloseInputStream = array of Arr2InnerAutoCloseInputStream;
      InnerAutoCloseOutputStream = class external 'android.os' name 'AutoCloseOutputStream' (JIFileOutputStream)
      public
        constructor create(para1: AOParcelFileDescriptor); overload;
        procedure close(); overload; virtual;  // throws java.io.IOException
      end;

      InnerAutoCloseInputStream = class external 'android.os' name 'AutoCloseInputStream' (JIFileInputStream)
      public
        constructor create(para1: AOParcelFileDescriptor); overload;
        procedure close(); overload; virtual;  // throws java.io.IOException
      end;

  public
    const
      MODE_WORLD_READABLE = 1;
      MODE_WORLD_WRITEABLE = 2;
      MODE_READ_ONLY = 268435456;
      MODE_WRITE_ONLY = 536870912;
      MODE_READ_WRITE = 805306368;
      MODE_CREATE = 134217728;
      MODE_TRUNCATE = 67108864;
      MODE_APPEND = 33554432;
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AOParcelFileDescriptor); overload;
    class function open(para1: JIFile; para2: jint): AOParcelFileDescriptor; static; overload;  // throws java.io.FileNotFoundException
    class function dup(para1: JIFileDescriptor): AOParcelFileDescriptor; static; overload;  // throws java.io.IOException
    function dup(): AOParcelFileDescriptor; overload; virtual;  // throws java.io.IOException
    class function fromFd(para1: jint): AOParcelFileDescriptor; static; overload;  // throws java.io.IOException
    class function adoptFd(para1: jint): AOParcelFileDescriptor; static; overload;
    class function fromSocket(para1: JNSocket): AOParcelFileDescriptor; static; overload;
    class function fromDatagramSocket(para1: JNDatagramSocket): AOParcelFileDescriptor; static; overload;
    class function createPipe(): Arr1AOParcelFileDescriptor; static; overload;  // throws java.io.IOException
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
    function getStatSize(): jlong; overload; virtual;
    function getFd(): jint; overload; virtual;
    function detachFd(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  public
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  AUBase64OutputStream = class external 'android.util' name 'Base64OutputStream' (JIFilterOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: jint); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIBufferedOutputStream = class external 'java.io' name 'BufferedOutputStream' (JIFilterOutputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fcount: jint; external name 'count';
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: jint); overload;
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
  end;

  JIDataOutputStream = class external 'java.io' name 'DataOutputStream' (JIFilterOutputStream, JIDataOutput)
  strict protected
    var
      fwritten: jint; external name 'written';
  public
    constructor create(para1: JIOutputStream); overload;
    procedure flush(); overload; virtual;  // throws java.io.IOException
    function size(): jint; overload; virtual; final;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual; final;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual; final;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual; final;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual; final;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload; virtual; final;  // throws java.io.IOException
  end;

  JIPrintStream = class external 'java.io' name 'PrintStream' (JIFilterOutputStream, JLAppendable, JICloseable)
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: jboolean); overload;
    constructor create(para1: JIOutputStream; para2: jboolean; para3: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    function checkError(): jboolean; overload; virtual;
  strict protected
    procedure clearError(); overload; virtual;
  public
    procedure close(); overload; virtual;
    procedure flush(); overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JIPrintStream; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JIPrintStream; overload; virtual;
    function format(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintStream; overload; virtual;
    function format(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JLString; para2: Arr1JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JLString; const para2: array of JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintStream; overload; virtual;
    procedure print(para1: Arr1jchar); overload; virtual;
    procedure print(var para1: array of jchar); overload; virtual;
    procedure print(para1: jchar); overload; virtual;
    procedure print(para1: jdouble); overload; virtual;
    procedure print(para1: jfloat); overload; virtual;
    procedure print(para1: jint); overload; virtual;
    procedure print(para1: jlong); overload; virtual;
    procedure print(para1: JLObject); overload; virtual;
    procedure print(para1: JLString); overload; virtual;
    procedure print(para1: jboolean); overload; virtual;
    procedure println(); overload; virtual;
    procedure println(para1: Arr1jchar); overload; virtual;
    procedure println(var para1: array of jchar); overload; virtual;
    procedure println(para1: jchar); overload; virtual;
    procedure println(para1: jdouble); overload; virtual;
    procedure println(para1: jfloat); overload; virtual;
    procedure println(para1: jint); overload; virtual;
    procedure println(para1: jlong); overload; virtual;
    procedure println(para1: JLObject); overload; virtual;
    procedure println(para1: JLString); overload; virtual;
    procedure println(para1: jboolean); overload; virtual;
  strict protected
    procedure setError(); overload; virtual;
  public
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    function append(para1: jchar): JIPrintStream; overload; virtual;
    function append(para1: JLCharSequence): JIPrintStream; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIPrintStream; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JSDigestOutputStream = class external 'java.security' name 'DigestOutputStream' (JIFilterOutputStream)
  strict protected
    var
      fdigest: JSMessageDigest; external name 'digest';
  public
    constructor create(para1: JIOutputStream; para2: JSMessageDigest); overload;
    function getMessageDigest(): JSMessageDigest; overload; virtual;
    procedure setMessageDigest(para1: JSMessageDigest); overload; virtual;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure &on(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUZCheckedOutputStream = class external 'java.util.zip' name 'CheckedOutputStream' (JIFilterOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: JUZChecksum); overload;
    function getChecksum(): JUZChecksum; overload; virtual;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JUZDeflaterOutputStream = class external 'java.util.zip' name 'DeflaterOutputStream' (JIFilterOutputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fdef: JUZDeflater; external name 'def';
  public
    constructor create(para1: JIOutputStream; para2: JUZDeflater); overload;
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JUZDeflater; para3: jint); overload;
  strict protected
    procedure deflate(); overload; virtual;  // throws java.io.IOException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
  end;

  JUZInflaterOutputStream = class external 'java.util.zip' name 'InflaterOutputStream' (JIFilterOutputStream)
  strict protected
    final var
      finf: JUZInflater; external name 'inf';
      fbuf: Arr1jbyte; external name 'buf';
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JUZInflater); overload;
    constructor create(para1: JIOutputStream; para2: JUZInflater; para3: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException, java.util.zip.ZipException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException, java.util.zip.ZipException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException, java.util.zip.ZipException
  end;

  JCCipherOutputStream = class external 'javax.crypto' name 'CipherOutputStream' (JIFilterOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: JCCipher); overload;
  strict protected
    constructor create(para1: JIOutputStream); overload;
  public
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIFileWriter = class external 'java.io' name 'FileWriter' (JIOutputStreamWriter)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIFileDescriptor); overload;
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException
  end;

  JISerializablePermission = class sealed external 'java.io' name 'SerializablePermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JLRuntimePermission = class sealed external 'java.lang' name 'RuntimePermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JLRReflectPermission = class sealed external 'java.lang.reflect' name 'ReflectPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JNNetPermission = class sealed external 'java.net' name 'NetPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSSecurityPermission = class sealed external 'java.security' name 'SecurityPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSSQLPermission = class sealed external 'java.sql' name 'SQLPermission' (JSBasicPermission, JSGuard, JISerializable)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JUPropertyPermission = class sealed external 'java.util' name 'PropertyPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JULLoggingPermission = class sealed external 'java.util.logging' name 'LoggingPermission' (JSBasicPermission, JSGuard, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JNSSSLPermission = class sealed external 'javax.net.ssl' name 'SSLPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSAAuthPermission = class sealed external 'javax.security.auth' name 'AuthPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
  end;

  JSCallableStatement = interface external 'java.sql' name 'CallableStatement' (JSPreparedStatement)
    function getArray(para1: jint): JSArray; overload;  // throws java.sql.SQLException
    function getArray(para1: JLString): JSArray; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint; para2: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: JLString): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBlob(para1: jint): JSBlob; overload;  // throws java.sql.SQLException
    function getBlob(para1: JLString): JSBlob; overload;  // throws java.sql.SQLException
    function getBoolean(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getBoolean(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function getByte(para1: jint): jbyte; overload;  // throws java.sql.SQLException
    function getByte(para1: JLString): jbyte; overload;  // throws java.sql.SQLException
    function getBytes(para1: jint): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getBytes(para1: JLString): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getClob(para1: jint): JSClob; overload;  // throws java.sql.SQLException
    function getClob(para1: JLString): JSClob; overload;  // throws java.sql.SQLException
    function getDate(para1: jint): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: jint; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getDouble(para1: jint): jdouble; overload;  // throws java.sql.SQLException
    function getDouble(para1: JLString): jdouble; overload;  // throws java.sql.SQLException
    function getFloat(para1: jint): jfloat; overload;  // throws java.sql.SQLException
    function getFloat(para1: JLString): jfloat; overload;  // throws java.sql.SQLException
    function getInt(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getInt(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function getLong(para1: jint): jlong; overload;  // throws java.sql.SQLException
    function getLong(para1: JLString): jlong; overload;  // throws java.sql.SQLException
    function getObject(para1: jint): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: jint; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getRef(para1: jint): JSRef; overload;  // throws java.sql.SQLException
    function getRef(para1: JLString): JSRef; overload;  // throws java.sql.SQLException
    function getShort(para1: jint): jshort; overload;  // throws java.sql.SQLException
    function getShort(para1: JLString): jshort; overload;  // throws java.sql.SQLException
    function getString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getTime(para1: jint): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: jint; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getURL(para1: jint): JNURL; overload;  // throws java.sql.SQLException
    function getURL(para1: JLString): JNURL; overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: jint; para2: jint; para3: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: jint; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: JLString; para2: jint; para3: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: JLString; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: JLString; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: JLString; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setByte(para1: JLString; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: JLString; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: JLString; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setInt(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setLong(para1: JLString; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setShort(para1: JLString; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setURL(para1: JLString; para2: JNURL); overload;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload;  // throws java.sql.SQLException
    function getRowId(para1: jint): JSRowId; overload;  // throws java.sql.SQLException
    function getRowId(para1: JLString): JSRowId; overload;  // throws java.sql.SQLException
    procedure setRowId(para1: JLString; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setNString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    function getNClob(para1: jint): JSNClob; overload;  // throws java.sql.SQLException
    function getNClob(para1: JLString): JSNClob; overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: JLString; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    function getSQLXML(para1: jint): JSSQLXML; overload;  // throws java.sql.SQLException
    function getSQLXML(para1: JLString): JSSQLXML; overload;  // throws java.sql.SQLException
    function getNString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getNString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JSProvider = class abstract external 'java.security' name 'Provider' (JUProperties)
  public
    type
      InnerService = class;
      Arr1InnerService = array of InnerService;
      Arr2InnerService = array of Arr1InnerService;
      Arr3InnerService = array of Arr2InnerService;
      InnerService = class external 'java.security' name 'Service' (JLObject)
      public
        constructor create(para1: JSProvider; para2: JLString; para3: JLString; para4: JLString; para5: JUList; para6: JUMap); overload;
        function getType(): JLString; overload; virtual; final;
        function getAlgorithm(): JLString; overload; virtual; final;
        function getProvider(): JSProvider; overload; virtual; final;
        function getClassName(): JLString; overload; virtual; final;
        function getAttribute(para1: JLString): JLString; overload; virtual; final;
        function newInstance(para1: JLObject): JLObject; overload; virtual;  // throws java.security.NoSuchAlgorithmException
        function supportsParameter(para1: JLObject): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(para1: JLString; para2: jdouble; para3: JLString); overload;
  public
    function getName(): JLString; overload; virtual;
    function getVersion(): jdouble; overload; virtual;
    function getInfo(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    procedure load(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure putAll(para1: JUMap); overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function getService(para1: JLString; para2: JLString): JSProvider.InnerService; overload; virtual;
    function getServices(): JUSet; overload; virtual;
  strict protected
    procedure putService(para1: JSProvider.InnerService); overload; virtual;
    procedure removeService(para1: JSProvider.InnerService); overload; virtual;
  end;

  JUCThreadPoolExecutor = class external 'java.util.concurrent' name 'ThreadPoolExecutor' (JUCAbstractExecutorService)
  public
    type
      InnerDiscardOldestPolicy = class;
      Arr1InnerDiscardOldestPolicy = array of InnerDiscardOldestPolicy;
      Arr2InnerDiscardOldestPolicy = array of Arr1InnerDiscardOldestPolicy;
      Arr3InnerDiscardOldestPolicy = array of Arr2InnerDiscardOldestPolicy;
      InnerDiscardPolicy = class;
      Arr1InnerDiscardPolicy = array of InnerDiscardPolicy;
      Arr2InnerDiscardPolicy = array of Arr1InnerDiscardPolicy;
      Arr3InnerDiscardPolicy = array of Arr2InnerDiscardPolicy;
      InnerAbortPolicy = class;
      Arr1InnerAbortPolicy = array of InnerAbortPolicy;
      Arr2InnerAbortPolicy = array of Arr1InnerAbortPolicy;
      Arr3InnerAbortPolicy = array of Arr2InnerAbortPolicy;
      InnerCallerRunsPolicy = class;
      Arr1InnerCallerRunsPolicy = array of InnerCallerRunsPolicy;
      Arr2InnerCallerRunsPolicy = array of Arr1InnerCallerRunsPolicy;
      Arr3InnerCallerRunsPolicy = array of Arr2InnerCallerRunsPolicy;
      InnerDiscardOldestPolicy = class external 'java.util.concurrent' name 'DiscardOldestPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

      InnerDiscardPolicy = class external 'java.util.concurrent' name 'DiscardPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

      InnerAbortPolicy = class external 'java.util.concurrent' name 'AbortPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

      InnerCallerRunsPolicy = class external 'java.util.concurrent' name 'CallerRunsPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

  public
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue); overload;
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue; para6: JUCThreadFactory); overload;
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue; para6: JUCRejectedExecutionHandler); overload;
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue; para6: JUCThreadFactory; para7: JUCRejectedExecutionHandler); overload;
    procedure execute(para1: JLRunnable); overload; virtual;
    procedure shutdown(); overload; virtual;
    function shutdownNow(): JUList; overload; virtual;
    function isShutdown(): jboolean; overload; virtual;
    function isTerminating(): jboolean; overload; virtual;
    function isTerminated(): jboolean; overload; virtual;
    function awaitTermination(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure setThreadFactory(para1: JUCThreadFactory); overload; virtual;
    function getThreadFactory(): JUCThreadFactory; overload; virtual;
    procedure setRejectedExecutionHandler(para1: JUCRejectedExecutionHandler); overload; virtual;
    function getRejectedExecutionHandler(): JUCRejectedExecutionHandler; overload; virtual;
    procedure setCorePoolSize(para1: jint); overload; virtual;
    function getCorePoolSize(): jint; overload; virtual;
    function prestartCoreThread(): jboolean; overload; virtual;
    function prestartAllCoreThreads(): jint; overload; virtual;
    function allowsCoreThreadTimeOut(): jboolean; overload; virtual;
    procedure allowCoreThreadTimeOut(para1: jboolean); overload; virtual;
    procedure setMaximumPoolSize(para1: jint); overload; virtual;
    function getMaximumPoolSize(): jint; overload; virtual;
    procedure setKeepAliveTime(para1: jlong; para2: JUCTimeUnit); overload; virtual;
    function getKeepAliveTime(para1: JUCTimeUnit): jlong; overload; virtual;
    function getQueue(): JUCBlockingQueue; overload; virtual;
    function remove(para1: JLRunnable): jboolean; overload; virtual;
    procedure purge(); overload; virtual;
    function getPoolSize(): jint; overload; virtual;
    function getActiveCount(): jint; overload; virtual;
    function getLargestPoolSize(): jint; overload; virtual;
    function getTaskCount(): jlong; overload; virtual;
    function getCompletedTaskCount(): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    procedure beforeExecute(para1: JLThread; para2: JLRunnable); overload; virtual;
    procedure afterExecute(para1: JLRunnable; para2: JLThrowable); overload; virtual;
    procedure terminated(); overload; virtual;
  end;

  OAHCSAllowAllHostnameVerifier = class external 'org.apache.http.conn.ssl' name 'AllowAllHostnameVerifier' (OAHCSAbstractVerifier)
  public
    constructor create(); overload;
    procedure verify(para1: JLString; para2: Arr1JLString; para3: Arr1JLString); overload; virtual; final;
    procedure verify(para1: JLString; var para2: array of JLString; var para3: array of JLString); overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
  end;

  OAHCSBrowserCompatHostnameVerifier = class external 'org.apache.http.conn.ssl' name 'BrowserCompatHostnameVerifier' (OAHCSAbstractVerifier)
  public
    constructor create(); overload;
    procedure verify(para1: JLString; para2: Arr1JLString; para3: Arr1JLString); overload; virtual; final;  // throws javax.net.ssl.SSLException
    procedure verify(para1: JLString; var para2: array of JLString; var para3: array of JLString); overload; virtual; final;  // throws javax.net.ssl.SSLException
    function toString(): JLString; overload; virtual; final;
  end;

  OAHCSStrictHostnameVerifier = class external 'org.apache.http.conn.ssl' name 'StrictHostnameVerifier' (OAHCSAbstractVerifier)
  public
    constructor create(); overload;
    procedure verify(para1: JLString; para2: Arr1JLString; para3: Arr1JLString); overload; virtual; final;  // throws javax.net.ssl.SSLException
    procedure verify(para1: JLString; var para2: array of JLString; var para3: array of JLString); overload; virtual; final;  // throws javax.net.ssl.SSLException
    function toString(): JLString; overload; virtual; final;
  end;

  ATApplicationTestCase = class abstract external 'android.test' name 'ApplicationTestCase' (ATAndroidTestCase)
  public
    constructor create(para1: JLClass); overload;
    function getApplication(): AAApplication; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure createApplication(); overload; virtual; final;
    procedure terminateApplication(); overload; virtual; final;
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    function getSystemContext(): ACContext; overload; virtual;
    procedure testApplicationTestCaseSetUpProperly(); overload; virtual; final;  // throws java.lang.Exception
  end;

  ATLoaderTestCase = class external 'android.test' name 'LoaderTestCase' (ATAndroidTestCase)
  public
    constructor create(); overload;
    function getLoaderResultSynchronously(para1: ACLoader): JLObject; overload; virtual;
  end;

  ATProviderTestCase2 = class abstract external 'android.test' name 'ProviderTestCase2' (ATAndroidTestCase)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    function getProvider(): ACContentProvider; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    function getMockContentResolver(): ATMMockContentResolver; overload; virtual;
    function getMockContext(): ATIsolatedContext; overload; virtual;
    class function newResolverWithContentProviderFromSql(para1: ACContext; para2: JLString; para3: JLClass; para4: JLString; para5: JLString; para6: jint; para7: JLString): ACContentResolver; static; overload;  // throws java.lang.IllegalAccessException, java.lang.InstantiationException
  end;

  ATServiceTestCase = class abstract external 'android.test' name 'ServiceTestCase' (ATAndroidTestCase)
  public
    constructor create(para1: JLClass); overload;
    function getService(): AAService; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure setupService(); overload; virtual;
    procedure startService(para1: ACIntent); overload; virtual;
    function bindService(para1: ACIntent): AOIBinder; overload; virtual;
    procedure shutdownService(); overload; virtual;
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    procedure setApplication(para1: AAApplication); overload; virtual;
    function getApplication(): AAApplication; overload; virtual;
    function getSystemContext(): ACContext; overload; virtual;
    procedure testServiceTestCaseSetUpProperly(); overload; virtual;  // throws java.lang.Exception
  end;

  ATActivityTestCase = class abstract external 'android.test' name 'ActivityTestCase' (ATInstrumentationTestCase)
  public
    constructor create(); overload;
  strict protected
    function getActivity(): AAActivity; overload; virtual;
    procedure setActivity(para1: AAActivity); overload; virtual;
    procedure scrubClass(para1: JLClass); overload; virtual;  // throws java.lang.IllegalAccessException
  end;

  ATProviderTestCase = class abstract external 'android.test' name 'ProviderTestCase' (ATInstrumentationTestCase)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    function getProvider(): ACContentProvider; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    function getMockContentResolver(): ATMMockContentResolver; overload; virtual;
    function getMockContext(): ATIsolatedContext; overload; virtual;
    class function newResolverWithContentProviderFromSql(para1: ACContext; para2: JLClass; para3: JLString; para4: JLString; para5: jint; para6: JLString): ACContentResolver; static; overload;  // throws java.lang.IllegalAccessException, java.lang.InstantiationException
  end;

  ATSingleLaunchActivityTestCase = class abstract external 'android.test' name 'SingleLaunchActivityTestCase' (ATInstrumentationTestCase)
  public
    constructor create(para1: JLString; para2: JLClass); overload;
    function getActivity(): AAActivity; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    procedure testActivityTestCaseSetUpProperly(); overload; virtual;  // throws java.lang.Exception
  end;

  ATSyncBaseInstrumentation = class external 'android.test' name 'SyncBaseInstrumentation' (ATInstrumentationTestCase)
  public
    constructor create(); overload;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure syncProvider(para1: ANUri; para2: JLString; para3: JLString); overload; virtual;  // throws java.lang.Exception
    procedure cancelSyncsandDisableAutoSync(); overload; virtual;
  end;

  OAHISocketHttpClientConnection = class external 'org.apache.http.impl' name 'SocketHttpClientConnection' (OAHIAbstractHttpClientConnection, OAHHttpInetConnection)
  public
    constructor create(); overload;
  strict protected
    procedure assertNotOpen(); overload; virtual;
    procedure assertOpen(); overload; virtual;
    function createSessionInputBuffer(para1: JNSocket; para2: jint; para3: OAHPHttpParams): OAHISessionInputBuffer; overload; virtual;  // throws java.io.IOException
    function createSessionOutputBuffer(para1: JNSocket; para2: jint; para3: OAHPHttpParams): OAHISessionOutputBuffer; overload; virtual;  // throws java.io.IOException
    procedure bind(para1: JNSocket; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
  public
    function isOpen(): jboolean; overload; virtual;
  strict protected
    function getSocket(): JNSocket; overload; virtual;
  public
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getRemoteAddress(): JNInetAddress; overload; virtual;
    function getRemotePort(): jint; overload; virtual;
    procedure setSocketTimeout(para1: jint); overload; virtual;
    function getSocketTimeout(): jint; overload; virtual;
    procedure shutdown(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  OAHICAbstractClientConnAdapter = class abstract external 'org.apache.http.impl.conn' name 'AbstractClientConnAdapter' (JLObject, OAHCManagedClientConnection)
  strict protected
    constructor create(para1: OAHCClientConnectionManager; para2: OAHCOperatedClientConnection); overload;
    procedure detach(); overload; virtual;
    function getWrappedConnection(): OAHCOperatedClientConnection; overload; virtual;
    function getManager(): OAHCClientConnectionManager; overload; virtual;
    procedure assertNotAborted(); overload; virtual; final;  // throws java.io.InterruptedIOException
    procedure assertValid(para1: OAHCOperatedClientConnection); overload; virtual; final;
  public
    function isOpen(): jboolean; overload; virtual;
    function isStale(): jboolean; overload; virtual;
    procedure setSocketTimeout(para1: jint); overload; virtual;
    function getSocketTimeout(): jint; overload; virtual;
    function getMetrics(): OAHHttpConnectionMetrics; overload; virtual;
    procedure flush(); overload; virtual;  // throws java.io.IOException
    function isResponseAvailable(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure receiveResponseEntity(para1: OAHHttpResponse); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function receiveResponseHeader(): OAHHttpResponse; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendRequestEntity(para1: OAHHttpEntityEnclosingRequest); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendRequestHeader(para1: OAHHttpRequest); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getRemoteAddress(): JNInetAddress; overload; virtual;
    function getRemotePort(): jint; overload; virtual;
    function isSecure(): jboolean; overload; virtual;
    function getSSLSession(): JNSSSLSession; overload; virtual;
    procedure markReusable(); overload; virtual;
    procedure unmarkReusable(); overload; virtual;
    function isMarkedReusable(): jboolean; overload; virtual;
    procedure setIdleDuration(para1: jlong; para2: JUCTimeUnit); overload; virtual;
    procedure releaseConnection(); overload; virtual;
    procedure abortConnection(); overload; virtual;
  end;

  OAHISocketHttpServerConnection = class external 'org.apache.http.impl' name 'SocketHttpServerConnection' (OAHIAbstractHttpServerConnection, OAHHttpInetConnection)
  public
    constructor create(); overload;
  strict protected
    procedure assertNotOpen(); overload; virtual;
    procedure assertOpen(); overload; virtual;
    function createHttpDataReceiver(para1: JNSocket; para2: jint; para3: OAHPHttpParams): OAHISessionInputBuffer; overload; virtual;  // throws java.io.IOException
    function createHttpDataTransmitter(para1: JNSocket; para2: jint; para3: OAHPHttpParams): OAHISessionOutputBuffer; overload; virtual;  // throws java.io.IOException
    procedure bind(para1: JNSocket; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    function getSocket(): JNSocket; overload; virtual;
  public
    function isOpen(): jboolean; overload; virtual;
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getRemoteAddress(): JNInetAddress; overload; virtual;
    function getRemotePort(): jint; overload; virtual;
    procedure setSocketTimeout(para1: jint); overload; virtual;
    function getSocketTimeout(): jint; overload; virtual;
    procedure shutdown(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  OAHCEUrlEncodedFormEntity = class external 'org.apache.http.client.entity' name 'UrlEncodedFormEntity' (OAHEStringEntity)
  public
    constructor create(para1: JUList; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JUList); overload;  // throws java.io.UnsupportedEncodingException
  end;

  OAHCMHttpRequestBase = class abstract external 'org.apache.http.client.methods' name 'HttpRequestBase' (OAHMAbstractHttpMessage, OAHCMHttpUriRequest, OAHCMAbortableHttpRequest, JLCloneable)
  public
    constructor create(); overload;
    function getMethod(): JLString; overload; virtual; abstract;
    function getProtocolVersion(): OAHProtocolVersion; overload; virtual;
    function getURI(): JNURI; overload; virtual;
    function getRequestLine(): OAHRequestLine; overload; virtual;
    procedure setURI(para1: JNURI); overload; virtual;
    procedure setConnectionRequest(para1: OAHCClientConnectionRequest); overload; virtual;  // throws java.io.IOException
    procedure setReleaseTrigger(para1: OAHCConnectionReleaseTrigger); overload; virtual;  // throws java.io.IOException
    procedure abort(); overload; virtual;
    function isAborted(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHICRequestWrapper = class external 'org.apache.http.impl.client' name 'RequestWrapper' (OAHMAbstractHttpMessage, OAHCMHttpUriRequest)
  public
    constructor create(para1: OAHHttpRequest); overload;  // throws org.apache.http.ProtocolException
    procedure resetHeaders(); overload; virtual;
    function getMethod(): JLString; overload; virtual;
    procedure setMethod(para1: JLString); overload; virtual;
    function getProtocolVersion(): OAHProtocolVersion; overload; virtual;
    procedure setProtocolVersion(para1: OAHProtocolVersion); overload; virtual;
    function getURI(): JNURI; overload; virtual;
    procedure setURI(para1: JNURI); overload; virtual;
    function getRequestLine(): OAHRequestLine; overload; virtual;
    procedure abort(); overload; virtual;  // throws java.lang.UnsupportedOperationException
    function isAborted(): jboolean; overload; virtual;
    function getOriginal(): OAHHttpRequest; overload; virtual;
    function isRepeatable(): jboolean; overload; virtual;
    function getExecCount(): jint; overload; virtual;
    procedure incrementExecCount(); overload; virtual;
  end;

  OAHMBasicHttpEntityEnclosingRequest = class external 'org.apache.http.message' name 'BasicHttpEntityEnclosingRequest' (OAHMBasicHttpRequest, OAHHttpEntityEnclosingRequest)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: OAHProtocolVersion); overload;
    constructor create(para1: OAHRequestLine); overload;
    function getEntity(): OAHHttpEntity; overload; virtual;
    procedure setEntity(para1: OAHHttpEntity); overload; virtual;
    function expectContinue(): jboolean; overload; virtual;
  end;

  OAHIABasicScheme = class external 'org.apache.http.impl.auth' name 'BasicScheme' (OAHIARFC2617Scheme)
  public
    constructor create(); overload;
    function getSchemeName(): JLString; overload; virtual;
    procedure processChallenge(para1: OAHHeader); overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
    function isComplete(): jboolean; overload; virtual;
    function isConnectionBased(): jboolean; overload; virtual;
    function authenticate(para1: OAHACredentials; para2: OAHHttpRequest): OAHHeader; overload; virtual;  // throws org.apache.http.auth.AuthenticationException
    class function authenticate(para1: OAHACredentials; para2: JLString; para3: jboolean): OAHHeader; static; overload;
  end;

  OAHIADigestScheme = class external 'org.apache.http.impl.auth' name 'DigestScheme' (OAHIARFC2617Scheme)
  public
    constructor create(); overload;
    procedure processChallenge(para1: OAHHeader); overload; virtual;  // throws org.apache.http.auth.MalformedChallengeException
    function isComplete(): jboolean; overload; virtual;
    function getSchemeName(): JLString; overload; virtual;
    function isConnectionBased(): jboolean; overload; virtual;
    procedure overrideParamter(para1: JLString; para2: JLString); overload; virtual;
    function authenticate(para1: OAHACredentials; para2: OAHHttpRequest): OAHHeader; overload; virtual;  // throws org.apache.http.auth.AuthenticationException
    class function createCnonce(): JLString; static; overload;
  end;

  OAHICBasicClientCookie2 = class external 'org.apache.http.impl.cookie' name 'BasicClientCookie2' (OAHICBasicClientCookie, OAHCSetCookie2)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getPorts(): Arr1jint; overload; virtual;
    procedure setPorts(para1: Arr1jint); overload; virtual;
    procedure setPorts(var para1: array of jint); overload; virtual;
    function getCommentURL(): JLString; overload; virtual;
    procedure setCommentURL(para1: JLString); overload; virtual;
    procedure setDiscard(para1: jboolean); overload; virtual;
    function isPersistent(): jboolean; overload; virtual;
    function isExpired(para1: JUDate): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHICBrowserCompatSpec = class external 'org.apache.http.impl.cookie' name 'BrowserCompatSpec' (OAHICCookieSpecBase)
  strict protected
    final class var
      fDATE_PATTERNS: Arr1JLString; external name 'DATE_PATTERNS';
  public
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    constructor create(); overload;
    function parse(para1: OAHHeader; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function formatCookies(para1: JUList): JUList; overload; virtual;
    function getVersion(): jint; overload; virtual;
    function getVersionHeader(): OAHHeader; overload; virtual;
  end;

  OAHICNetscapeDraftSpec = class external 'org.apache.http.impl.cookie' name 'NetscapeDraftSpec' (OAHICCookieSpecBase)
  strict protected
    const
      EXPIRES_PATTERN = 'EEE, dd-MMM-yyyy HH:mm:ss z';
  public
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    constructor create(); overload;
    function parse(para1: OAHHeader; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function formatCookies(para1: JUList): JUList; overload; virtual;
    function getVersion(): jint; overload; virtual;
    function getVersionHeader(): OAHHeader; overload; virtual;
  end;

  OAHICRFC2109Spec = class external 'org.apache.http.impl.cookie' name 'RFC2109Spec' (OAHICCookieSpecBase)
  public
    constructor create(para1: Arr1JLString; para2: jboolean); overload;
    constructor create(const para1: array of JLString; para2: jboolean); overload;
    constructor create(); overload;
    function parse(para1: OAHHeader; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function formatCookies(para1: JUList): JUList; overload; virtual;
  strict protected
    procedure formatParamAsVer(para1: OAHUCharArrayBuffer; para2: JLString; para3: JLString; para4: jint); overload; virtual;
    procedure formatCookieAsVer(para1: OAHUCharArrayBuffer; para2: OAHCCookie; para3: jint); overload; virtual;
  public
    function getVersion(): jint; overload; virtual;
    function getVersionHeader(): OAHHeader; overload; virtual;
  end;

  OWDCDATASection = interface external 'org.w3c.dom' name 'CDATASection' (OWDText)
  end;

  OAHAInvalidCredentialsException = class external 'org.apache.http.auth' name 'InvalidCredentialsException' (OAHAAuthenticationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHIANTLMEngineException = class external 'org.apache.http.impl.auth' name 'NTLMEngineException' (OAHAAuthenticationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  OAHCCircularRedirectException = class external 'org.apache.http.client' name 'CircularRedirectException' (OAHCRedirectException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JTDateFormat = class abstract external 'java.text' name 'DateFormat' (JTFormat)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTFormat.InnerField)
      public
        final class var
          fERA: JTDateFormat.InnerField; external name 'ERA';
          fYEAR: JTDateFormat.InnerField; external name 'YEAR';
          fMONTH: JTDateFormat.InnerField; external name 'MONTH';
          fHOUR_OF_DAY0: JTDateFormat.InnerField; external name 'HOUR_OF_DAY0';
          fHOUR_OF_DAY1: JTDateFormat.InnerField; external name 'HOUR_OF_DAY1';
          fMINUTE: JTDateFormat.InnerField; external name 'MINUTE';
          fSECOND: JTDateFormat.InnerField; external name 'SECOND';
          fMILLISECOND: JTDateFormat.InnerField; external name 'MILLISECOND';
          fDAY_OF_WEEK: JTDateFormat.InnerField; external name 'DAY_OF_WEEK';
          fDAY_OF_MONTH: JTDateFormat.InnerField; external name 'DAY_OF_MONTH';
          fDAY_OF_YEAR: JTDateFormat.InnerField; external name 'DAY_OF_YEAR';
          fDAY_OF_WEEK_IN_MONTH: JTDateFormat.InnerField; external name 'DAY_OF_WEEK_IN_MONTH';
          fWEEK_OF_YEAR: JTDateFormat.InnerField; external name 'WEEK_OF_YEAR';
          fWEEK_OF_MONTH: JTDateFormat.InnerField; external name 'WEEK_OF_MONTH';
          fAM_PM: JTDateFormat.InnerField; external name 'AM_PM';
          fHOUR0: JTDateFormat.InnerField; external name 'HOUR0';
          fHOUR1: JTDateFormat.InnerField; external name 'HOUR1';
          fTIME_ZONE: JTDateFormat.InnerField; external name 'TIME_ZONE';
      strict protected
        constructor create(para1: JLString; para2: jint); overload;
      public
        function getCalendarField(): jint; overload; virtual;
        class function ofCalendarField(para1: jint): JTDateFormat.InnerField; static; overload;
      end;

  strict protected
    var
      fcalendar: JUCalendar; external name 'calendar';
      fnumberFormat: JTNumberFormat; external name 'numberFormat';
  public
    const
      DEFAULT = 2;
      FULL = 0;
      LONG = 1;
      MEDIUM = 2;
      SHORT = 3;
      ERA_FIELD = 0;
      YEAR_FIELD = 1;
      MONTH_FIELD = 2;
      DATE_FIELD = 3;
      HOUR_OF_DAY1_FIELD = 4;
      HOUR_OF_DAY0_FIELD = 5;
      MINUTE_FIELD = 6;
      SECOND_FIELD = 7;
      MILLISECOND_FIELD = 8;
      DAY_OF_WEEK_FIELD = 9;
      DAY_OF_YEAR_FIELD = 10;
      DAY_OF_WEEK_IN_MONTH_FIELD = 11;
      WEEK_OF_YEAR_FIELD = 12;
      WEEK_OF_MONTH_FIELD = 13;
      AM_PM_FIELD = 14;
      HOUR1_FIELD = 15;
      HOUR0_FIELD = 16;
      TIMEZONE_FIELD = 17;
  strict protected
    constructor create(); overload;
  public
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function format(para1: JUDate): JLString; overload; virtual; final;
    function format(para1: JUDate; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    function getCalendar(): JUCalendar; overload; virtual;
    class function getDateInstance(): JTDateFormat; static; overload; final;
    class function getDateInstance(para1: jint): JTDateFormat; static; overload; final;
    class function getDateInstance(para1: jint; para2: JULocale): JTDateFormat; static; overload; final;
    class function getDateTimeInstance(): JTDateFormat; static; overload; final;
    class function getDateTimeInstance(para1: jint; para2: jint): JTDateFormat; static; overload; final;
    class function getDateTimeInstance(para1: jint; para2: jint; para3: JULocale): JTDateFormat; static; overload; final;
    class function getInstance(): JTDateFormat; static; overload; final;
    function getNumberFormat(): JTNumberFormat; overload; virtual;
    class function getTimeInstance(): JTDateFormat; static; overload; final;
    class function getTimeInstance(para1: jint): JTDateFormat; static; overload; final;
    class function getTimeInstance(para1: jint; para2: JULocale): JTDateFormat; static; overload; final;
    function getTimeZone(): JUTimeZone; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isLenient(): jboolean; overload; virtual;
    function parse(para1: JLString): JUDate; overload; virtual;  // throws java.text.ParseException
    function parse(para1: JLString; para2: JTParsePosition): JUDate; overload; virtual; abstract;
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual;
    procedure setCalendar(para1: JUCalendar); overload; virtual;
    procedure setLenient(para1: jboolean); overload; virtual;
    procedure setNumberFormat(para1: JTNumberFormat); overload; virtual;
    procedure setTimeZone(para1: JUTimeZone); overload; virtual;
  end;

  JTFieldPosition = class external 'java.text' name 'FieldPosition' (JLObject)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: JTFormat.InnerField); overload;
    constructor create(para1: JTFormat.InnerField; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getBeginIndex(): jint; overload; virtual;
    function getEndIndex(): jint; overload; virtual;
    function getField(): jint; overload; virtual;
    function getFieldAttribute(): JTFormat.InnerField; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure setBeginIndex(para1: jint); overload; virtual;
    procedure setEndIndex(para1: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTMessageFormat = class external 'java.text' name 'MessageFormat' (JTFormat)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTFormat.InnerField)
      public
        final class var
          fARGUMENT: JTMessageFormat.InnerField; external name 'ARGUMENT';
      strict protected
        constructor create(para1: JLString); overload;
      end;

  public
    constructor create(para1: JLString; para2: JULocale); overload;
    constructor create(para1: JLString); overload;
    procedure applyPattern(para1: JLString); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function format(para1: Arr1JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function format(var para1: array of JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    class function format(para1: JLString; para2: Arr1JLObject): JLString; static; overload;
    class function format(para1: JLString; const para2: array of JLObject): JLString; static; overload;
    function getFormats(): Arr1JTFormat; overload; virtual;
    function getFormatsByArgumentIndex(): Arr1JTFormat; overload; virtual;
    procedure setFormatByArgumentIndex(para1: jint; para2: JTFormat); overload; virtual;
    procedure setFormatsByArgumentIndex(para1: Arr1JTFormat); overload; virtual;
    procedure setFormatsByArgumentIndex(var para1: array of JTFormat); overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function parse(para1: JLString): Arr1JLObject; overload; virtual;  // throws java.text.ParseException
    function parse(para1: JLString; para2: JTParsePosition): Arr1JLObject; overload; virtual;
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual;
    procedure setFormat(para1: jint; para2: JTFormat); overload; virtual;
    procedure setFormats(para1: Arr1JTFormat); overload; virtual;
    procedure setFormats(var para1: array of JTFormat); overload; virtual;
    procedure setLocale(para1: JULocale); overload; virtual;
    function toPattern(): JLString; overload; virtual;
  end;

  JTNumberFormat = class abstract external 'java.text' name 'NumberFormat' (JTFormat)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTFormat.InnerField)
      public
        final class var
          fSIGN: JTNumberFormat.InnerField; external name 'SIGN';
          fINTEGER: JTNumberFormat.InnerField; external name 'INTEGER';
          fFRACTION: JTNumberFormat.InnerField; external name 'FRACTION';
          fEXPONENT: JTNumberFormat.InnerField; external name 'EXPONENT';
          fEXPONENT_SIGN: JTNumberFormat.InnerField; external name 'EXPONENT_SIGN';
          fEXPONENT_SYMBOL: JTNumberFormat.InnerField; external name 'EXPONENT_SYMBOL';
          fDECIMAL_SEPARATOR: JTNumberFormat.InnerField; external name 'DECIMAL_SEPARATOR';
          fGROUPING_SEPARATOR: JTNumberFormat.InnerField; external name 'GROUPING_SEPARATOR';
          fPERCENT: JTNumberFormat.InnerField; external name 'PERCENT';
          fPERMILLE: JTNumberFormat.InnerField; external name 'PERMILLE';
          fCURRENCY: JTNumberFormat.InnerField; external name 'CURRENCY';
      strict protected
        constructor create(para1: JLString); overload;
      end;

  public
    const
      INTEGER_FIELD = 0;
      FRACTION_FIELD = 1;
  strict protected
    constructor create(); overload;
  public
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function format(para1: jdouble): JLString; overload; virtual; final;
    function format(para1: jdouble; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function format(para1: jlong): JLString; overload; virtual; final;
    function format(para1: jlong; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    function getCurrency(): JUCurrency; overload; virtual;
    class function getCurrencyInstance(): JTNumberFormat; static; overload; final;
    class function getCurrencyInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getIntegerInstance(): JTNumberFormat; static; overload; final;
    class function getIntegerInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getInstance(): JTNumberFormat; static; overload; final;
    class function getInstance(para1: JULocale): JTNumberFormat; static; overload;
    function getMaximumFractionDigits(): jint; overload; virtual;
    function getMaximumIntegerDigits(): jint; overload; virtual;
    function getMinimumFractionDigits(): jint; overload; virtual;
    function getMinimumIntegerDigits(): jint; overload; virtual;
    class function getNumberInstance(): JTNumberFormat; static; overload; final;
    class function getNumberInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getPercentInstance(): JTNumberFormat; static; overload; final;
    class function getPercentInstance(para1: JULocale): JTNumberFormat; static; overload;
    function hashCode(): jint; overload; virtual;
    function isGroupingUsed(): jboolean; overload; virtual;
    function isParseIntegerOnly(): jboolean; overload; virtual;
    function parse(para1: JLString): JLNumber; overload; virtual;  // throws java.text.ParseException
    function parse(para1: JLString; para2: JTParsePosition): JLNumber; overload; virtual; abstract;
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual; final;
    procedure setCurrency(para1: JUCurrency); overload; virtual;
    procedure setGroupingUsed(para1: jboolean); overload; virtual;
    procedure setMaximumFractionDigits(para1: jint); overload; virtual;
    procedure setMaximumIntegerDigits(para1: jint); overload; virtual;
    procedure setMinimumFractionDigits(para1: jint); overload; virtual;
    procedure setMinimumIntegerDigits(para1: jint); overload; virtual;
    procedure setParseIntegerOnly(para1: jboolean); overload; virtual;
    function getRoundingMode(): JMRoundingMode; overload; virtual;
    procedure setRoundingMode(para1: JMRoundingMode); overload; virtual;
  end;

  JSIRSAMultiPrimePrivateCrtKey = interface external 'java.security.interfaces' name 'RSAMultiPrimePrivateCrtKey' (JSIRSAPrivateKey)
    const
      serialVersionUID = jlong(618058533534628008);
    function getCrtCoefficient(): JMBigInteger; overload;
    function getOtherPrimeInfo(): Arr1JSSRSAOtherPrimeInfo; overload;
    function getPrimeP(): JMBigInteger; overload;
    function getPrimeQ(): JMBigInteger; overload;
    function getPrimeExponentP(): JMBigInteger; overload;
    function getPrimeExponentQ(): JMBigInteger; overload;
    function getPublicExponent(): JMBigInteger; overload;
  end;

  JSIRSAPrivateCrtKey = interface external 'java.security.interfaces' name 'RSAPrivateCrtKey' (JSIRSAPrivateKey)
    const
      serialVersionUID = jlong(-5682214253527700368);
    function getCrtCoefficient(): JMBigInteger; overload;
    function getPrimeP(): JMBigInteger; overload;
    function getPrimeQ(): JMBigInteger; overload;
    function getPrimeExponentP(): JMBigInteger; overload;
    function getPrimeExponentQ(): JMBigInteger; overload;
    function getPublicExponent(): JMBigInteger; overload;
  end;

  ATSpannableStringBuilder = class external 'android.text' name 'SpannableStringBuilder' (JLObject, JLCharSequence, ATGetChars, ATSpannable, ATEditable, JLAppendable)
  public
    constructor create(); overload;
    constructor create(para1: JLCharSequence); overload;
    constructor create(para1: JLCharSequence; para2: jint; para3: jint); overload;
    class function valueOf(para1: JLCharSequence): ATSpannableStringBuilder; static; overload;
    function charAt(para1: jint): jchar; overload; virtual;
    function length(): jint; overload; virtual;
    function insert(para1: jint; para2: JLCharSequence; para3: jint; para4: jint): ATSpannableStringBuilder; overload; virtual;
    function insert(para1: jint; para2: JLCharSequence): ATSpannableStringBuilder; overload; virtual;
    function delete(para1: jint; para2: jint): ATSpannableStringBuilder; overload; virtual;
    procedure clear(); overload; virtual;
    procedure clearSpans(); overload; virtual;
    function append(para1: JLCharSequence): ATSpannableStringBuilder; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): ATSpannableStringBuilder; overload; virtual;
    function append(para1: jchar): ATSpannableStringBuilder; overload; virtual;
    function replace(para1: jint; para2: jint; para3: JLCharSequence): ATSpannableStringBuilder; overload; virtual;
    function replace(para1: jint; para2: jint; para3: JLCharSequence; para4: jint; para5: jint): ATSpannableStringBuilder; overload; virtual;
    procedure setSpan(para1: JLObject; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure removeSpan(para1: JLObject); overload; virtual;
    function getSpanStart(para1: JLObject): jint; overload; virtual;
    function getSpanEnd(para1: JLObject): jint; overload; virtual;
    function getSpanFlags(para1: JLObject): jint; overload; virtual;
    function getSpans(para1: jint; para2: jint; para3: JLClass): Arr1JLObject; overload; virtual;
    function nextSpanTransition(para1: jint; para2: jint; para3: JLClass): jint; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    procedure getChars(para1: jint; para2: jint; para3: Arr1jchar; para4: jint); overload; virtual;
    procedure getChars(para1: jint; para2: jint; var para3: array of jchar; para4: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getTextRunCursor(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: AGPaint): jint; overload; virtual;
    procedure setFilters(para1: Arr1ATInputFilter); overload; virtual;
    procedure setFilters(var para1: array of ATInputFilter); overload; virtual;
    function getFilters(): Arr1ATInputFilter; overload; virtual;
    function append(para1: jchar): ATEditable; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): ATEditable; overload; virtual;
    function append(para1: JLCharSequence): ATEditable; overload; virtual;
    function delete(para1: jint; para2: jint): ATEditable; overload; virtual;
    function insert(para1: jint; para2: JLCharSequence): ATEditable; overload; virtual;
    function insert(para1: jint; para2: JLCharSequence; para3: jint; para4: jint): ATEditable; overload; virtual;
    function replace(para1: jint; para2: jint; para3: JLCharSequence): ATEditable; overload; virtual;
    function replace(para1: jint; para2: jint; para3: JLCharSequence; para4: jint; para5: jint): ATEditable; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JUCConcurrentSkipListMap = class external 'java.util.concurrent' name 'ConcurrentSkipListMap' (JUAbstractMap, JUCConcurrentNavigableMap, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: JUSortedMap); overload;
    function clone(): JUCConcurrentSkipListMap; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function keySet(): JUNavigableSet; overload; virtual;
    function navigableKeySet(): JUNavigableSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function descendingMap(): JUCConcurrentNavigableMap; overload; virtual;
    function descendingKeySet(): JUNavigableSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function putIfAbsent(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function firstKey(): JLObject; overload; virtual;
    function lastKey(): JLObject; overload; virtual;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUCConcurrentNavigableMap; overload; virtual;
    function headMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload; virtual;
    function tailMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: JLObject): JUCConcurrentNavigableMap; overload; virtual;
    function headMap(para1: JLObject): JUCConcurrentNavigableMap; overload; virtual;
    function tailMap(para1: JLObject): JUCConcurrentNavigableMap; overload; virtual;
    function lowerEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function lowerKey(para1: JLObject): JLObject; overload; virtual;
    function floorEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function floorKey(para1: JLObject): JLObject; overload; virtual;
    function ceilingEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function ceilingKey(para1: JLObject): JLObject; overload; virtual;
    function higherEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function higherKey(para1: JLObject): JLObject; overload; virtual;
    function firstEntry(): JUMap.InnerEntry; overload; virtual;
    function lastEntry(): JUMap.InnerEntry; overload; virtual;
    function pollFirstEntry(): JUMap.InnerEntry; overload; virtual;
    function pollLastEntry(): JUMap.InnerEntry; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function keySet(): JUSet; overload; virtual;
    function tailMap(para1: JLObject): JUSortedMap; overload; virtual;
    function headMap(para1: JLObject): JUSortedMap; overload; virtual;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload; virtual;
    function tailMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function headMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableMap; overload; virtual;
    function descendingMap(): JUNavigableMap; overload; virtual;
  end;

  JULinkedList = class external 'java.util' name 'LinkedList' (JUAbstractSequentialList, JUList, JUDeque, JUQueue, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    procedure addFirst(para1: JLObject); overload; virtual;
    procedure addLast(para1: JLObject); overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function getFirst(): JLObject; overload; virtual;
    function getLast(): JLObject; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function removeFirst(): JLObject; overload; virtual;
    function removeLast(): JLObject; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function offerFirst(para1: JLObject): jboolean; overload; virtual;
    function offerLast(para1: JLObject): jboolean; overload; virtual;
    function peekFirst(): JLObject; overload; virtual;
    function peekLast(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function pop(): JLObject; overload; virtual;
    procedure push(para1: JLObject); overload; virtual;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload; virtual;
    function removeLastOccurrence(para1: JLObject): jboolean; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function remove(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function element(): JLObject; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
  end;

  JUStack = class external 'java.util' name 'Stack' (JUVector)
  public
    constructor create(); overload;
    function empty(): jboolean; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function pop(): JLObject; overload; virtual;
    function push(para1: JLObject): JLObject; overload; virtual;
    function search(para1: JLObject): jint; overload; virtual;
  end;

  JUCLinkedBlockingDeque = class external 'java.util.concurrent' name 'LinkedBlockingDeque' (JUAbstractQueue, JUCBlockingDeque, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUCollection); overload;
    procedure addFirst(para1: JLObject); overload; virtual;
    procedure addLast(para1: JLObject); overload; virtual;
    function offerFirst(para1: JLObject): jboolean; overload; virtual;
    function offerLast(para1: JLObject): jboolean; overload; virtual;
    procedure putFirst(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    procedure putLast(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offerFirst(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function offerLast(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function removeFirst(): JLObject; overload; virtual;
    function removeLast(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function takeFirst(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function takeLast(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function pollFirst(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function pollLast(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function getFirst(): JLObject; overload; virtual;
    function getLast(): JLObject; overload; virtual;
    function peekFirst(): JLObject; overload; virtual;
    function peekLast(): JLObject; overload; virtual;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload; virtual;
    function removeLastOccurrence(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function remove(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function element(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    procedure push(para1: JLObject); overload; virtual;
    function pop(): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
  end;

  ADSSQLiteCursor = class external 'android.database.sqlite' name 'SQLiteCursor' (ADAbstractWindowedCursor)
  public
    constructor create(para1: ADSSQLiteDatabase; para2: ADSSQLiteCursorDriver; para3: JLString; para4: ADSSQLiteQuery); overload;
    constructor create(para1: ADSSQLiteCursorDriver; para2: JLString; para3: ADSSQLiteQuery); overload;
    function getDatabase(): ADSSQLiteDatabase; overload; virtual;
    function onMove(para1: jint; para2: jint): jboolean; overload; virtual;
    function getCount(): jint; overload; virtual;
    function getColumnIndex(para1: JLString): jint; overload; virtual;
    function getColumnNames(): Arr1JLString; overload; virtual;
    procedure deactivate(); overload; virtual;
    procedure close(); overload; virtual;
    function requery(): jboolean; overload; virtual;
    procedure setWindow(para1: ADCursorWindow); overload; virtual;
    procedure setSelectionArguments(para1: Arr1JLString); overload; virtual;
    procedure setSelectionArguments(var para1: array of JLString); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  end;

  AAApplication = class external 'android.app' name 'Application' (ACContextWrapper, ACComponentCallbacks2)
  public
    type
      InnerActivityLifecycleCallbacks = interface;
      Arr1InnerActivityLifecycleCallbacks = array of InnerActivityLifecycleCallbacks;
      Arr2InnerActivityLifecycleCallbacks = array of Arr1InnerActivityLifecycleCallbacks;
      Arr3InnerActivityLifecycleCallbacks = array of Arr2InnerActivityLifecycleCallbacks;
      InnerActivityLifecycleCallbacks = interface external 'android.app' name 'ActivityLifecycleCallbacks' 
        procedure onActivityCreated(para1: AAActivity; para2: AOBundle); overload;
        procedure onActivityStarted(para1: AAActivity); overload;
        procedure onActivityResumed(para1: AAActivity); overload;
        procedure onActivityPaused(para1: AAActivity); overload;
        procedure onActivityStopped(para1: AAActivity); overload;
        procedure onActivitySaveInstanceState(para1: AAActivity; para2: AOBundle); overload;
        procedure onActivityDestroyed(para1: AAActivity); overload;
      end;

  public
    constructor create(); overload;
    procedure onCreate(); overload; virtual;
    procedure onTerminate(); overload; virtual;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    procedure onLowMemory(); overload; virtual;
    procedure onTrimMemory(para1: jint); overload; virtual;
    procedure registerComponentCallbacks(para1: ACComponentCallbacks); overload; virtual;
    procedure unregisterComponentCallbacks(para1: ACComponentCallbacks); overload; virtual;
    procedure registerActivityLifecycleCallbacks(para1: AAApplication.InnerActivityLifecycleCallbacks); overload; virtual;
    procedure unregisterActivityLifecycleCallbacks(para1: AAApplication.InnerActivityLifecycleCallbacks); overload; virtual;
  end;

  AAService = class abstract external 'android.app' name 'Service' (ACContextWrapper, ACComponentCallbacks2)
  public
    const
      START_CONTINUATION_MASK = 15;
      START_STICKY_COMPATIBILITY = 0;
      START_STICKY = 1;
      START_NOT_STICKY = 2;
      START_REDELIVER_INTENT = 3;
      START_FLAG_REDELIVERY = 1;
      START_FLAG_RETRY = 2;
  public
    constructor create(); overload;
    function getApplication(): AAApplication; overload; virtual; final;
    procedure onCreate(); overload; virtual;
    procedure onStart(para1: ACIntent; para2: jint); overload; virtual;
    function onStartCommand(para1: ACIntent; para2: jint; para3: jint): jint; overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    procedure onLowMemory(); overload; virtual;
    procedure onTrimMemory(para1: jint); overload; virtual;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual; abstract;
    function onUnbind(para1: ACIntent): jboolean; overload; virtual;
    procedure onRebind(para1: ACIntent); overload; virtual;
    procedure onTaskRemoved(para1: ACIntent); overload; virtual;
    procedure stopSelf(); overload; virtual; final;
    procedure stopSelf(para1: jint); overload; virtual; final;
    function stopSelfResult(para1: jint): jboolean; overload; virtual; final;
    procedure startForeground(para1: jint; para2: AANotification); overload; virtual; final;
    procedure stopForeground(para1: jboolean); overload; virtual; final;
  strict protected
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; para3: Arr1JLString); overload; virtual;
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; var para3: array of JLString); overload; virtual;
  end;

  AABBackupAgent = class abstract external 'android.app.backup' name 'BackupAgent' (ACContextWrapper)
  public
    const
      TYPE_FILE = 1;
      TYPE_DIRECTORY = 2;
  public
    constructor create(); overload;
    procedure onCreate(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onBackup(para1: AOParcelFileDescriptor; para2: AABBackupDataOutput; para3: AOParcelFileDescriptor); overload; virtual; abstract;  // throws java.io.IOException
    procedure onRestore(para1: AABBackupDataInput; para2: jint; para3: AOParcelFileDescriptor); overload; virtual; abstract;  // throws java.io.IOException
    procedure onFullBackup(para1: AABFullBackupDataOutput); overload; virtual;  // throws java.io.IOException
    procedure fullBackupFile(para1: JIFile; para2: AABFullBackupDataOutput); overload; virtual; final;
    procedure onRestoreFile(para1: AOParcelFileDescriptor; para2: jlong; para3: JIFile; para4: jint; para5: jlong; para6: jlong); overload; virtual;  // throws java.io.IOException
  end;

  ACMutableContextWrapper = class external 'android.content' name 'MutableContextWrapper' (ACContextWrapper)
  public
    constructor create(para1: ACContext); overload;
    procedure setBaseContext(para1: ACContext); overload; virtual;
  end;

  ATIsolatedContext = class external 'android.test' name 'IsolatedContext' (ACContextWrapper)
  public
    constructor create(para1: ACContentResolver; para2: ACContext); overload;
    function getAndClearBroadcastIntents(): JUList; overload; virtual;
    function getContentResolver(): ACContentResolver; overload; virtual;
    function bindService(para1: ACIntent; para2: ACServiceConnection; para3: jint): jboolean; overload; virtual;
    function registerReceiver(para1: ACBroadcastReceiver; para2: ACIntentFilter): ACIntent; overload; virtual;
    procedure unregisterReceiver(para1: ACBroadcastReceiver); overload; virtual;
    procedure sendBroadcast(para1: ACIntent); overload; virtual;
    procedure sendOrderedBroadcast(para1: ACIntent; para2: JLString); overload; virtual;
    function checkUriPermission(para1: ANUri; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: jint): jint; overload; virtual;
    function checkUriPermission(para1: ANUri; para2: jint; para3: jint; para4: jint): jint; overload; virtual;
    function getSystemService(para1: JLString): JLObject; overload; virtual;
    function getFilesDir(): JIFile; overload; virtual;
  end;

  ATRenamingDelegatingContext = class external 'android.test' name 'RenamingDelegatingContext' (ACContextWrapper)
  public
    constructor create(para1: ACContext; para2: JLString); overload;
    constructor create(para1: ACContext; para2: ACContext; para3: JLString); overload;
    class function providerWithRenamedContext(para1: JLClass; para2: ACContext; para3: JLString): ACContentProvider; static; overload;  // throws java.lang.IllegalAccessException, java.lang.InstantiationException
    class function providerWithRenamedContext(para1: JLClass; para2: ACContext; para3: JLString; para4: jboolean): ACContentProvider; static; overload;  // throws java.lang.IllegalAccessException, java.lang.InstantiationException
    procedure makeExistingFilesAndDbsAccessible(); overload; virtual;
    function getDatabasePrefix(): JLString; overload; virtual;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory): ADSSQLiteDatabase; overload; virtual;
    function openOrCreateDatabase(para1: JLString; para2: jint; para3: ADSSQLiteDatabase.InnerCursorFactory; para4: ADDatabaseErrorHandler): ADSSQLiteDatabase; overload; virtual;
    function deleteDatabase(para1: JLString): jboolean; overload; virtual;
    function getDatabasePath(para1: JLString): JIFile; overload; virtual;
    function databaseList(): Arr1JLString; overload; virtual;
    function openFileInput(para1: JLString): JIFileInputStream; overload; virtual;  // throws java.io.FileNotFoundException
    function openFileOutput(para1: JLString; para2: jint): JIFileOutputStream; overload; virtual;  // throws java.io.FileNotFoundException
    function getFileStreamPath(para1: JLString): JIFile; overload; virtual;
    function deleteFile(para1: JLString): jboolean; overload; virtual;
    function fileList(): Arr1JLString; overload; virtual;
    function getCacheDir(): JIFile; overload; virtual;
  end;

  AVContextThemeWrapper = class external 'android.view' name 'ContextThemeWrapper' (ACContextWrapper)
  public
    constructor create(); overload;
    constructor create(para1: ACContext; para2: jint); overload;
  strict protected
    procedure attachBaseContext(para1: ACContext); overload; virtual;
  public
    procedure setTheme(para1: jint); overload; virtual;
    function getTheme(): ACRResources.InnerTheme; overload; virtual;
    function getSystemService(para1: JLString): JLObject; overload; virtual;
  strict protected
    procedure onApplyThemeResource(para1: ACRResources.InnerTheme; para2: jint; para3: jboolean); overload; virtual;
  end;

  AGDBitmapDrawable = class external 'android.graphics.drawable' name 'BitmapDrawable' (AGDDrawable)
  public
    constructor create(); overload;
    constructor create(para1: ACRResources); overload;
    constructor create(para1: AGBitmap); overload;
    constructor create(para1: ACRResources; para2: AGBitmap); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: ACRResources; para2: JLString); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: ACRResources; para2: JIInputStream); overload;
    function getPaint(): AGPaint; overload; virtual; final;
    function getBitmap(): AGBitmap; overload; virtual; final;
    procedure setTargetDensity(para1: AGCanvas); overload; virtual;
    procedure setTargetDensity(para1: AUDisplayMetrics); overload; virtual;
    procedure setTargetDensity(para1: jint); overload; virtual;
    function getGravity(): jint; overload; virtual;
    procedure setGravity(para1: jint); overload; virtual;
    procedure setAntiAlias(para1: jboolean); overload; virtual;
    procedure setFilterBitmap(para1: jboolean); overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    function getTileModeX(): AGShader.InnerTileMode; overload; virtual;
    function getTileModeY(): AGShader.InnerTileMode; overload; virtual;
    procedure setTileModeX(para1: AGShader.InnerTileMode); overload; virtual;
    procedure setTileModeY(para1: AGShader.InnerTileMode); overload; virtual; final;
    procedure setTileModeXY(para1: AGShader.InnerTileMode; para2: AGShader.InnerTileMode); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
  strict protected
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    procedure draw(para1: AGCanvas); overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual; final;
  end;

  AGDClipDrawable = class external 'android.graphics.drawable' name 'ClipDrawable' (AGDDrawable, AGDDrawable.InnerCallback)
  public
    const
      HORIZONTAL = 1;
      VERTICAL = 2;
  public
    constructor create(para1: AGDDrawable; para2: jint; para3: jint); overload;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function isStateful(): jboolean; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    procedure draw(para1: AGCanvas); overload; virtual;
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
  end;

  AGDColorDrawable = class external 'android.graphics.drawable' name 'ColorDrawable' (AGDDrawable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    function getChangingConfigurations(): jint; overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getColor(): jint; overload; virtual;
    procedure setColor(para1: jint); overload; virtual;
    function getAlpha(): jint; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
  end;

  AGDDrawableContainer = class external 'android.graphics.drawable' name 'DrawableContainer' (AGDDrawable, AGDDrawable.InnerCallback)
  public
    type
      InnerDrawableContainerState = class;
      Arr1InnerDrawableContainerState = array of InnerDrawableContainerState;
      Arr2InnerDrawableContainerState = array of Arr1InnerDrawableContainerState;
      Arr3InnerDrawableContainerState = array of Arr2InnerDrawableContainerState;
      InnerDrawableContainerState = class abstract external 'android.graphics.drawable' name 'DrawableContainerState' (AGDDrawable.InnerConstantState)
      public
        function getChangingConfigurations(): jint; overload; virtual;
        function addChild(para1: AGDDrawable): jint; overload; virtual; final;
        function getChildCount(): jint; overload; virtual; final;
        function getChildren(): Arr1AGDDrawable; overload; virtual; final;
        procedure setVariablePadding(para1: jboolean); overload; virtual; final;
        function getConstantPadding(): AGRect; overload; virtual; final;
        procedure setConstantSize(para1: jboolean); overload; virtual; final;
        function isConstantSize(): jboolean; overload; virtual; final;
        function getConstantWidth(): jint; overload; virtual; final;
        function getConstantHeight(): jint; overload; virtual; final;
        function getConstantMinimumWidth(): jint; overload; virtual; final;
        function getConstantMinimumHeight(): jint; overload; virtual; final;
      strict protected
        procedure computeConstantSize(); overload; virtual;
      public
        procedure setEnterFadeDuration(para1: jint); overload; virtual; final;
        function getEnterFadeDuration(): jint; overload; virtual; final;
        procedure setExitFadeDuration(para1: jint); overload; virtual; final;
        function getExitFadeDuration(): jint; overload; virtual; final;
        function getOpacity(): jint; overload; virtual; final;
        function isStateful(): jboolean; overload; virtual; final;
        procedure growArray(para1: jint; para2: jint); overload; virtual;
        function canConstantState(): jboolean; overload; virtual;
      end;

  public
    constructor create(); overload;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    procedure setEnterFadeDuration(para1: jint); overload; virtual;
    procedure setExitFadeDuration(para1: jint); overload; virtual;
  strict protected
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    function isStateful(): jboolean; overload; virtual;
    procedure jumpToCurrentState(); overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
  public
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getMinimumWidth(): jint; overload; virtual;
    function getMinimumHeight(): jint; overload; virtual;
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function selectDrawable(para1: jint): jboolean; overload; virtual;
    function getCurrent(): AGDDrawable; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  strict protected
    procedure setConstantState(para1: AGDDrawableContainer.InnerDrawableContainerState); overload; virtual;
  end;

  AGDGradientDrawable = class external 'android.graphics.drawable' name 'GradientDrawable' (AGDDrawable)
  public
    type
      InnerOrientation = class;
      Arr1InnerOrientation = array of InnerOrientation;
      Arr2InnerOrientation = array of Arr1InnerOrientation;
      Arr3InnerOrientation = array of Arr2InnerOrientation;
      InnerOrientation = class sealed external 'android.graphics.drawable' name 'Orientation' (JLEnum)
      public
        final class var
          fBL_TR: AGDGradientDrawable.InnerOrientation; external name 'BL_TR';
          fBOTTOM_TOP: AGDGradientDrawable.InnerOrientation; external name 'BOTTOM_TOP';
          fBR_TL: AGDGradientDrawable.InnerOrientation; external name 'BR_TL';
          fLEFT_RIGHT: AGDGradientDrawable.InnerOrientation; external name 'LEFT_RIGHT';
          fRIGHT_LEFT: AGDGradientDrawable.InnerOrientation; external name 'RIGHT_LEFT';
          fTL_BR: AGDGradientDrawable.InnerOrientation; external name 'TL_BR';
          fTOP_BOTTOM: AGDGradientDrawable.InnerOrientation; external name 'TOP_BOTTOM';
          fTR_BL: AGDGradientDrawable.InnerOrientation; external name 'TR_BL';
      public
        class function values(): AGDGradientDrawable.Arr1InnerOrientation; static; overload;
        class function valueOf(para1: JLString): AGDGradientDrawable.InnerOrientation; static; overload;
      end;

  public
    const
      RECTANGLE = 0;
      OVAL = 1;
      LINE = 2;
      RING = 3;
      LINEAR_GRADIENT = 0;
      RADIAL_GRADIENT = 1;
      SWEEP_GRADIENT = 2;
  public
    constructor create(); overload;
    constructor create(para1: AGDGradientDrawable.InnerOrientation; para2: Arr1jint); overload;
    constructor create(para1: AGDGradientDrawable.InnerOrientation; const para2: array of jint); overload;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    procedure setCornerRadii(para1: Arr1jfloat); overload; virtual;
    procedure setCornerRadii(var para1: array of jfloat); overload; virtual;
    procedure setCornerRadius(para1: jfloat); overload; virtual;
    procedure setStroke(para1: jint; para2: jint); overload; virtual;
    procedure setStroke(para1: jint; para2: jint; para3: jfloat; para4: jfloat); overload; virtual;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    procedure setShape(para1: jint); overload; virtual;
    procedure setGradientType(para1: jint); overload; virtual;
    procedure setGradientCenter(para1: jfloat; para2: jfloat); overload; virtual;
    procedure setGradientRadius(para1: jfloat); overload; virtual;
    procedure setUseLevel(para1: jboolean); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    procedure setColor(para1: jint); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
  strict protected
    procedure onBoundsChange(para1: AGRect); overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
  public
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDInsetDrawable = class external 'android.graphics.drawable' name 'InsetDrawable' (AGDDrawable, AGDDrawable.InnerCallback)
  public
    constructor create(para1: AGDDrawable; para2: jint); overload;
    constructor create(para1: AGDDrawable; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function isStateful(): jboolean; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDLayerDrawable = class external 'android.graphics.drawable' name 'LayerDrawable' (AGDDrawable, AGDDrawable.InnerCallback)
  public
    constructor create(para1: Arr1AGDDrawable); overload;
    constructor create(const para1: array of AGDDrawable); overload;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function findDrawableByLayerId(para1: jint): AGDDrawable; overload; virtual;
    procedure setId(para1: jint; para2: jint); overload; virtual;
    function getNumberOfLayers(): jint; overload; virtual;
    function getDrawable(para1: jint): AGDDrawable; overload; virtual;
    function getId(para1: jint): jint; overload; virtual;
    function setDrawableByLayerId(para1: jint; para2: AGDDrawable): jboolean; overload; virtual;
    procedure setLayerInset(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    procedure setOpacity(para1: jint); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function isStateful(): jboolean; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDNinePatchDrawable = class external 'android.graphics.drawable' name 'NinePatchDrawable' (AGDDrawable)
  public
    constructor create(para1: AGBitmap; para2: Arr1jbyte; para3: AGRect; para4: JLString); overload;
    constructor create(para1: AGBitmap; const para2: array of jbyte; para3: AGRect; para4: JLString); overload;
    constructor create(para1: ACRResources; para2: AGBitmap; para3: Arr1jbyte; para4: AGRect; para5: JLString); overload;
    constructor create(para1: ACRResources; para2: AGBitmap; const para3: array of jbyte; para4: AGRect; para5: JLString); overload;
    constructor create(para1: AGNinePatch); overload;
    constructor create(para1: ACRResources; para2: AGNinePatch); overload;
    procedure setTargetDensity(para1: AGCanvas); overload; virtual;
    procedure setTargetDensity(para1: AUDisplayMetrics); overload; virtual;
    procedure setTargetDensity(para1: jint); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    procedure setFilterBitmap(para1: jboolean); overload; virtual;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getPaint(): AGPaint; overload; virtual;
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getMinimumWidth(): jint; overload; virtual;
    function getMinimumHeight(): jint; overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function getTransparentRegion(): AGRegion; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDPictureDrawable = class external 'android.graphics.drawable' name 'PictureDrawable' (AGDDrawable)
  public
    constructor create(para1: AGPicture); overload;
    function getPicture(): AGPicture; overload; virtual;
    procedure setPicture(para1: AGPicture); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getOpacity(): jint; overload; virtual;
    procedure setFilterBitmap(para1: jboolean); overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
  end;

  AGDRotateDrawable = class external 'android.graphics.drawable' name 'RotateDrawable' (AGDDrawable, AGDDrawable.InnerCallback)
  public
    constructor create(); overload;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getDrawable(): AGDDrawable; overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function isStateful(): jboolean; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDScaleDrawable = class external 'android.graphics.drawable' name 'ScaleDrawable' (AGDDrawable, AGDDrawable.InnerCallback)
  public
    constructor create(para1: AGDDrawable; para2: jint; para3: jfloat; para4: jfloat); overload;
    function getDrawable(): AGDDrawable; overload; virtual;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    function isStateful(): jboolean; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
    function onLevelChange(para1: jint): jboolean; overload; virtual;
    procedure onBoundsChange(para1: AGRect); overload; virtual;
  public
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDShapeDrawable = class external 'android.graphics.drawable' name 'ShapeDrawable' (AGDDrawable)
  public
    type
      InnerShaderFactory = class;
      Arr1InnerShaderFactory = array of InnerShaderFactory;
      Arr2InnerShaderFactory = array of Arr1InnerShaderFactory;
      Arr3InnerShaderFactory = array of Arr2InnerShaderFactory;
      InnerShaderFactory = class abstract external 'android.graphics.drawable' name 'ShaderFactory' (JLObject)
      public
        constructor create(); overload;
        function resize(para1: jint; para2: jint): AGShader; overload; virtual; abstract;
      end;

  public
    constructor create(); overload;
    constructor create(para1: AGDSShape); overload;
    function getShape(): AGDSShape; overload; virtual;
    procedure setShape(para1: AGDSShape); overload; virtual;
    procedure setShaderFactory(para1: AGDShapeDrawable.InnerShaderFactory); overload; virtual;
    function getShaderFactory(): AGDShapeDrawable.InnerShaderFactory; overload; virtual;
    function getPaint(): AGPaint; overload; virtual;
    procedure setPadding(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setPadding(para1: AGRect); overload; virtual;
    procedure setIntrinsicWidth(para1: jint); overload; virtual;
    procedure setIntrinsicHeight(para1: jint); overload; virtual;
    function getIntrinsicWidth(): jint; overload; virtual;
    function getIntrinsicHeight(): jint; overload; virtual;
    function getPadding(para1: AGRect): jboolean; overload; virtual;
  strict protected
    procedure onDraw(para1: AGDSShape; para2: AGCanvas; para3: AGPaint); overload; virtual;
  public
    procedure draw(para1: AGCanvas); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    function getOpacity(): jint; overload; virtual;
    procedure setDither(para1: jboolean); overload; virtual;
  strict protected
    procedure onBoundsChange(para1: AGRect); overload; virtual;
    function inflateTag(para1: JLString; para2: ACRResources; para3: OXVXmlPullParser; para4: AUAttributeSet): jboolean; overload; virtual;
  public
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getConstantState(): AGDDrawable.InnerConstantState; overload; virtual;
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AVView = class external 'android.view' name 'View' (JLObject, AGDDrawable.InnerCallback, AVKeyEvent.InnerCallback, AVAAccessibilityEventSource)
  public
    type
      InnerAccessibilityDelegate = class;
      Arr1InnerAccessibilityDelegate = array of InnerAccessibilityDelegate;
      Arr2InnerAccessibilityDelegate = array of Arr1InnerAccessibilityDelegate;
      Arr3InnerAccessibilityDelegate = array of Arr2InnerAccessibilityDelegate;
      InnerOnAttachStateChangeListener = interface;
      Arr1InnerOnAttachStateChangeListener = array of InnerOnAttachStateChangeListener;
      Arr2InnerOnAttachStateChangeListener = array of Arr1InnerOnAttachStateChangeListener;
      Arr3InnerOnAttachStateChangeListener = array of Arr2InnerOnAttachStateChangeListener;
      InnerOnSystemUiVisibilityChangeListener = interface;
      Arr1InnerOnSystemUiVisibilityChangeListener = array of InnerOnSystemUiVisibilityChangeListener;
      Arr2InnerOnSystemUiVisibilityChangeListener = array of Arr1InnerOnSystemUiVisibilityChangeListener;
      Arr3InnerOnSystemUiVisibilityChangeListener = array of Arr2InnerOnSystemUiVisibilityChangeListener;
      InnerOnClickListener = interface;
      Arr1InnerOnClickListener = array of InnerOnClickListener;
      Arr2InnerOnClickListener = array of Arr1InnerOnClickListener;
      Arr3InnerOnClickListener = array of Arr2InnerOnClickListener;
      InnerOnFocusChangeListener = interface;
      Arr1InnerOnFocusChangeListener = array of InnerOnFocusChangeListener;
      Arr2InnerOnFocusChangeListener = array of Arr1InnerOnFocusChangeListener;
      Arr3InnerOnFocusChangeListener = array of Arr2InnerOnFocusChangeListener;
      InnerOnDragListener = interface;
      Arr1InnerOnDragListener = array of InnerOnDragListener;
      Arr2InnerOnDragListener = array of Arr1InnerOnDragListener;
      Arr3InnerOnDragListener = array of Arr2InnerOnDragListener;
      InnerOnLongClickListener = interface;
      Arr1InnerOnLongClickListener = array of InnerOnLongClickListener;
      Arr2InnerOnLongClickListener = array of Arr1InnerOnLongClickListener;
      Arr3InnerOnLongClickListener = array of Arr2InnerOnLongClickListener;
      InnerOnGenericMotionListener = interface;
      Arr1InnerOnGenericMotionListener = array of InnerOnGenericMotionListener;
      Arr2InnerOnGenericMotionListener = array of Arr1InnerOnGenericMotionListener;
      Arr3InnerOnGenericMotionListener = array of Arr2InnerOnGenericMotionListener;
      InnerOnHoverListener = interface;
      Arr1InnerOnHoverListener = array of InnerOnHoverListener;
      Arr2InnerOnHoverListener = array of Arr1InnerOnHoverListener;
      Arr3InnerOnHoverListener = array of Arr2InnerOnHoverListener;
      InnerOnTouchListener = interface;
      Arr1InnerOnTouchListener = array of InnerOnTouchListener;
      Arr2InnerOnTouchListener = array of Arr1InnerOnTouchListener;
      Arr3InnerOnTouchListener = array of Arr2InnerOnTouchListener;
      InnerOnKeyListener = interface;
      Arr1InnerOnKeyListener = array of InnerOnKeyListener;
      Arr2InnerOnKeyListener = array of Arr1InnerOnKeyListener;
      Arr3InnerOnKeyListener = array of Arr2InnerOnKeyListener;
      InnerMeasureSpec = class;
      Arr1InnerMeasureSpec = array of InnerMeasureSpec;
      Arr2InnerMeasureSpec = array of Arr1InnerMeasureSpec;
      Arr3InnerMeasureSpec = array of Arr2InnerMeasureSpec;
      InnerDragShadowBuilder = class;
      Arr1InnerDragShadowBuilder = array of InnerDragShadowBuilder;
      Arr2InnerDragShadowBuilder = array of Arr1InnerDragShadowBuilder;
      Arr3InnerDragShadowBuilder = array of Arr2InnerDragShadowBuilder;
      InnerOnLayoutChangeListener = interface;
      Arr1InnerOnLayoutChangeListener = array of InnerOnLayoutChangeListener;
      Arr2InnerOnLayoutChangeListener = array of Arr1InnerOnLayoutChangeListener;
      Arr3InnerOnLayoutChangeListener = array of Arr2InnerOnLayoutChangeListener;
      InnerBaseSavedState = class;
      Arr1InnerBaseSavedState = array of InnerBaseSavedState;
      Arr2InnerBaseSavedState = array of Arr1InnerBaseSavedState;
      Arr3InnerBaseSavedState = array of Arr2InnerBaseSavedState;
      InnerOnCreateContextMenuListener = interface;
      Arr1InnerOnCreateContextMenuListener = array of InnerOnCreateContextMenuListener;
      Arr2InnerOnCreateContextMenuListener = array of Arr1InnerOnCreateContextMenuListener;
      Arr3InnerOnCreateContextMenuListener = array of Arr2InnerOnCreateContextMenuListener;
      InnerAccessibilityDelegate = class external 'android.view' name 'AccessibilityDelegate' (JLObject)
      public
        constructor create(); overload;
        procedure sendAccessibilityEvent(para1: AVView; para2: jint); overload; virtual;
        procedure sendAccessibilityEventUnchecked(para1: AVView; para2: AVAAccessibilityEvent); overload; virtual;
        function dispatchPopulateAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent): jboolean; overload; virtual;
        procedure onPopulateAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent); overload; virtual;
        procedure onInitializeAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent); overload; virtual;
        procedure onInitializeAccessibilityNodeInfo(para1: AVView; para2: AVAAccessibilityNodeInfo); overload; virtual;
        function onRequestSendAccessibilityEvent(para1: AVViewGroup; para2: AVView; para3: AVAAccessibilityEvent): jboolean; overload; virtual;
      end;

      InnerOnAttachStateChangeListener = interface external 'android.view' name 'OnAttachStateChangeListener' 
        procedure onViewAttachedToWindow(para1: AVView); overload;
        procedure onViewDetachedFromWindow(para1: AVView); overload;
      end;

      InnerOnSystemUiVisibilityChangeListener = interface external 'android.view' name 'OnSystemUiVisibilityChangeListener' 
        procedure onSystemUiVisibilityChange(para1: jint); overload;
      end;

      InnerOnClickListener = interface external 'android.view' name 'OnClickListener' 
        procedure onClick(para1: AVView); overload;
      end;

      InnerOnFocusChangeListener = interface external 'android.view' name 'OnFocusChangeListener' 
        procedure onFocusChange(para1: AVView; para2: jboolean); overload;
      end;

      InnerOnDragListener = interface external 'android.view' name 'OnDragListener' 
        function onDrag(para1: AVView; para2: AVDragEvent): jboolean; overload;
      end;

      InnerOnLongClickListener = interface external 'android.view' name 'OnLongClickListener' 
        function onLongClick(para1: AVView): jboolean; overload;
      end;

      InnerOnGenericMotionListener = interface external 'android.view' name 'OnGenericMotionListener' 
        function onGenericMotion(para1: AVView; para2: AVMotionEvent): jboolean; overload;
      end;

      InnerOnHoverListener = interface external 'android.view' name 'OnHoverListener' 
        function onHover(para1: AVView; para2: AVMotionEvent): jboolean; overload;
      end;

      InnerOnTouchListener = interface external 'android.view' name 'OnTouchListener' 
        function onTouch(para1: AVView; para2: AVMotionEvent): jboolean; overload;
      end;

      InnerOnKeyListener = interface external 'android.view' name 'OnKeyListener' 
        function onKey(para1: AVView; para2: jint; para3: AVKeyEvent): jboolean; overload;
      end;

      InnerMeasureSpec = class external 'android.view' name 'MeasureSpec' (JLObject)
      public
        const
          UNSPECIFIED = 0;
          EXACTLY = 1073741824;
          AT_MOST = -2147483648;
      public
        constructor create(); overload;
        class function makeMeasureSpec(para1: jint; para2: jint): jint; static; overload;
        class function getMode(para1: jint): jint; static; overload;
        class function getSize(para1: jint): jint; static; overload;
        class function toString(para1: jint): JLString; static; overload;
      end;

      InnerDragShadowBuilder = class external 'android.view' name 'DragShadowBuilder' (JLObject)
      public
        constructor create(para1: AVView); overload;
        constructor create(); overload;
        function getView(): AVView; overload; virtual; final;
        procedure onProvideShadowMetrics(para1: AGPoint; para2: AGPoint); overload; virtual;
        procedure onDrawShadow(para1: AGCanvas); overload; virtual;
      end;

      InnerOnLayoutChangeListener = interface external 'android.view' name 'OnLayoutChangeListener' 
        procedure onLayoutChange(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint); overload;
      end;

      InnerBaseSavedState = class external 'android.view' name 'BaseSavedState' (AVAbsSavedState)
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(para1: AOParcel); overload;
        constructor create(para1: AOParcelable); overload;
      end;

      InnerOnCreateContextMenuListener = interface external 'android.view' name 'OnCreateContextMenuListener' 
        procedure onCreateContextMenu(para1: AVContextMenu; para2: AVView; para3: AVContextMenu.InnerContextMenuInfo); overload;
      end;

  strict protected
    const
      VIEW_LOG_TAG = 'View';
  public
    const
      NO_ID = -1;
      VISIBLE = 0;
      INVISIBLE = 4;
      GONE = 8;
      DRAWING_CACHE_QUALITY_LOW = 524288;
      DRAWING_CACHE_QUALITY_HIGH = 1048576;
      DRAWING_CACHE_QUALITY_AUTO = 0;
      SCROLLBARS_INSIDE_OVERLAY = 0;
      SCROLLBARS_INSIDE_INSET = 16777216;
      SCROLLBARS_OUTSIDE_OVERLAY = 33554432;
      SCROLLBARS_OUTSIDE_INSET = 50331648;
      KEEP_SCREEN_ON = 67108864;
      SOUND_EFFECTS_ENABLED = 134217728;
      HAPTIC_FEEDBACK_ENABLED = 268435456;
      FOCUSABLES_ALL = 0;
      FOCUSABLES_TOUCH_MODE = 1;
      FOCUS_BACKWARD = 1;
      FOCUS_FORWARD = 2;
      FOCUS_LEFT = 17;
      FOCUS_UP = 33;
      FOCUS_RIGHT = 66;
      FOCUS_DOWN = 130;
      MEASURED_SIZE_MASK = 16777215;
      MEASURED_STATE_MASK = -16777216;
      MEASURED_HEIGHT_STATE_SHIFT = 16;
      MEASURED_STATE_TOO_SMALL = 16777216;
  strict protected
    final class var
      fEMPTY_STATE_SET: Arr1jint; external name 'EMPTY_STATE_SET';
      fENABLED_STATE_SET: Arr1jint; external name 'ENABLED_STATE_SET';
      fFOCUSED_STATE_SET: Arr1jint; external name 'FOCUSED_STATE_SET';
      fSELECTED_STATE_SET: Arr1jint; external name 'SELECTED_STATE_SET';
      fWINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'WINDOW_FOCUSED_STATE_SET';
      fENABLED_FOCUSED_STATE_SET: Arr1jint; external name 'ENABLED_FOCUSED_STATE_SET';
      fENABLED_SELECTED_STATE_SET: Arr1jint; external name 'ENABLED_SELECTED_STATE_SET';
      fENABLED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'ENABLED_WINDOW_FOCUSED_STATE_SET';
      fFOCUSED_SELECTED_STATE_SET: Arr1jint; external name 'FOCUSED_SELECTED_STATE_SET';
      fFOCUSED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'FOCUSED_WINDOW_FOCUSED_STATE_SET';
      fSELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'SELECTED_WINDOW_FOCUSED_STATE_SET';
      fENABLED_FOCUSED_SELECTED_STATE_SET: Arr1jint; external name 'ENABLED_FOCUSED_SELECTED_STATE_SET';
      fENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET';
      fENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET';
      fFOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET';
      fENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_SELECTED_STATE_SET: Arr1jint; external name 'PRESSED_SELECTED_STATE_SET';
      fPRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_FOCUSED_STATE_SET';
      fPRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_FOCUSED_SELECTED_STATE_SET: Arr1jint; external name 'PRESSED_FOCUSED_SELECTED_STATE_SET';
      fPRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_ENABLED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_STATE_SET';
      fPRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_ENABLED_SELECTED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_SELECTED_STATE_SET';
      fPRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_ENABLED_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_FOCUSED_STATE_SET';
      fPRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET';
      fPRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET';
      fPRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET: Arr1jint; external name 'PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET';
  public
    const
      OVER_SCROLL_ALWAYS = 0;
      OVER_SCROLL_IF_CONTENT_SCROLLS = 1;
      OVER_SCROLL_NEVER = 2;
      SYSTEM_UI_FLAG_VISIBLE = 0;
      SYSTEM_UI_FLAG_LOW_PROFILE = 1;
      SYSTEM_UI_FLAG_HIDE_NAVIGATION = 2;
      STATUS_BAR_HIDDEN = 1;
      STATUS_BAR_VISIBLE = 0;
      FIND_VIEWS_WITH_TEXT = 1;
      FIND_VIEWS_WITH_CONTENT_DESCRIPTION = 2;
      SCROLLBAR_POSITION_DEFAULT = 0;
      SCROLLBAR_POSITION_LEFT = 1;
      SCROLLBAR_POSITION_RIGHT = 2;
      LAYER_TYPE_NONE = 0;
      LAYER_TYPE_SOFTWARE = 1;
      LAYER_TYPE_HARDWARE = 2;
  public
    class var
      fALPHA: AUProperty; external name 'ALPHA';
      fTRANSLATION_X: AUProperty; external name 'TRANSLATION_X';
      fTRANSLATION_Y: AUProperty; external name 'TRANSLATION_Y';
      fX: AUProperty; external name 'X';
      fY: AUProperty; external name 'Y';
      fROTATION: AUProperty; external name 'ROTATION';
      fROTATION_X: AUProperty; external name 'ROTATION_X';
      fROTATION_Y: AUProperty; external name 'ROTATION_Y';
      fSCALE_X: AUProperty; external name 'SCALE_X';
      fSCALE_Y: AUProperty; external name 'SCALE_Y';
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure initializeFadingEdge(para1: ACRTypedArray); overload; virtual;
  public
    function getVerticalFadingEdgeLength(): jint; overload; virtual;
    procedure setFadingEdgeLength(para1: jint); overload; virtual;
    function getHorizontalFadingEdgeLength(): jint; overload; virtual;
    function getVerticalScrollbarWidth(): jint; overload; virtual;
  strict protected
    function getHorizontalScrollbarHeight(): jint; overload; virtual;
    procedure initializeScrollbars(para1: ACRTypedArray); overload; virtual;
  public
    procedure setVerticalScrollbarPosition(para1: jint); overload; virtual;
    function getVerticalScrollbarPosition(): jint; overload; virtual;
    procedure setOnFocusChangeListener(para1: AVView.InnerOnFocusChangeListener); overload; virtual;
    procedure addOnLayoutChangeListener(para1: AVView.InnerOnLayoutChangeListener); overload; virtual;
    procedure removeOnLayoutChangeListener(para1: AVView.InnerOnLayoutChangeListener); overload; virtual;
    procedure addOnAttachStateChangeListener(para1: AVView.InnerOnAttachStateChangeListener); overload; virtual;
    procedure removeOnAttachStateChangeListener(para1: AVView.InnerOnAttachStateChangeListener); overload; virtual;
    function getOnFocusChangeListener(): AVView.InnerOnFocusChangeListener; overload; virtual;
    procedure setOnClickListener(para1: AVView.InnerOnClickListener); overload; virtual;
    procedure setOnLongClickListener(para1: AVView.InnerOnLongClickListener); overload; virtual;
    procedure setOnCreateContextMenuListener(para1: AVView.InnerOnCreateContextMenuListener); overload; virtual;
    function performClick(): jboolean; overload; virtual;
    function performLongClick(): jboolean; overload; virtual;
    function showContextMenu(): jboolean; overload; virtual;
    function startActionMode(para1: AVActionMode.InnerCallback): AVActionMode; overload; virtual;
    procedure setOnKeyListener(para1: AVView.InnerOnKeyListener); overload; virtual;
    procedure setOnTouchListener(para1: AVView.InnerOnTouchListener); overload; virtual;
    procedure setOnGenericMotionListener(para1: AVView.InnerOnGenericMotionListener); overload; virtual;
    procedure setOnHoverListener(para1: AVView.InnerOnHoverListener); overload; virtual;
    procedure setOnDragListener(para1: AVView.InnerOnDragListener); overload; virtual;
    function requestRectangleOnScreen(para1: AGRect): jboolean; overload; virtual;
    function requestRectangleOnScreen(para1: AGRect; para2: jboolean): jboolean; overload; virtual;
    procedure clearFocus(); overload; virtual;
    function hasFocus(): jboolean; overload; virtual;
    function hasFocusable(): jboolean; overload; virtual;
  strict protected
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
  public
    procedure sendAccessibilityEvent(para1: jint); overload; virtual;
    procedure sendAccessibilityEventUnchecked(para1: AVAAccessibilityEvent); overload; virtual;
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    function createAccessibilityNodeInfo(): AVAAccessibilityNodeInfo; overload; virtual;
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
    procedure setAccessibilityDelegate(para1: AVView.InnerAccessibilityDelegate); overload; virtual;
    function getContentDescription(): JLCharSequence; overload; virtual;
    procedure setContentDescription(para1: JLCharSequence); overload; virtual;
    function isFocused(): jboolean; overload; virtual;
    function findFocus(): AVView; overload; virtual;
    procedure setScrollContainer(para1: jboolean); overload; virtual;
    function getDrawingCacheQuality(): jint; overload; virtual;
    procedure setDrawingCacheQuality(para1: jint); overload; virtual;
    function getKeepScreenOn(): jboolean; overload; virtual;
    procedure setKeepScreenOn(para1: jboolean); overload; virtual;
    function getNextFocusLeftId(): jint; overload; virtual;
    procedure setNextFocusLeftId(para1: jint); overload; virtual;
    function getNextFocusRightId(): jint; overload; virtual;
    procedure setNextFocusRightId(para1: jint); overload; virtual;
    function getNextFocusUpId(): jint; overload; virtual;
    procedure setNextFocusUpId(para1: jint); overload; virtual;
    function getNextFocusDownId(): jint; overload; virtual;
    procedure setNextFocusDownId(para1: jint); overload; virtual;
    function getNextFocusForwardId(): jint; overload; virtual;
    procedure setNextFocusForwardId(para1: jint); overload; virtual;
    function isShown(): jboolean; overload; virtual;
  strict protected
    function fitSystemWindows(para1: AGRect): jboolean; overload; virtual;
  public
    procedure setFitsSystemWindows(para1: jboolean); overload; virtual;
    function fitsSystemWindows(): jboolean; overload; virtual;
    function getVisibility(): jint; overload; virtual;
    procedure setVisibility(para1: jint); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
    procedure setFocusableInTouchMode(para1: jboolean); overload; virtual;
    procedure setSoundEffectsEnabled(para1: jboolean); overload; virtual;
    function isSoundEffectsEnabled(): jboolean; overload; virtual;
    procedure setHapticFeedbackEnabled(para1: jboolean); overload; virtual;
    function isHapticFeedbackEnabled(): jboolean; overload; virtual;
    procedure setWillNotDraw(para1: jboolean); overload; virtual;
    function willNotDraw(): jboolean; overload; virtual;
    procedure setWillNotCacheDrawing(para1: jboolean); overload; virtual;
    function willNotCacheDrawing(): jboolean; overload; virtual;
    function isClickable(): jboolean; overload; virtual;
    procedure setClickable(para1: jboolean); overload; virtual;
    function isLongClickable(): jboolean; overload; virtual;
    procedure setLongClickable(para1: jboolean); overload; virtual;
    procedure setPressed(para1: jboolean); overload; virtual;
  strict protected
    procedure dispatchSetPressed(para1: jboolean); overload; virtual;
  public
    function isPressed(): jboolean; overload; virtual;
    function isSaveEnabled(): jboolean; overload; virtual;
    procedure setSaveEnabled(para1: jboolean); overload; virtual;
    function getFilterTouchesWhenObscured(): jboolean; overload; virtual;
    procedure setFilterTouchesWhenObscured(para1: jboolean); overload; virtual;
    function isSaveFromParentEnabled(): jboolean; overload; virtual;
    procedure setSaveFromParentEnabled(para1: jboolean); overload; virtual;
    function isFocusable(): jboolean; overload; virtual; final;
    function isFocusableInTouchMode(): jboolean; overload; virtual; final;
    function focusSearch(para1: jint): AVView; overload; virtual;
    function dispatchUnhandledMove(para1: AVView; para2: jint): jboolean; overload; virtual;
    function getFocusables(para1: jint): JUArrayList; overload; virtual;
    procedure addFocusables(para1: JUArrayList; para2: jint); overload; virtual;
    procedure addFocusables(para1: JUArrayList; para2: jint; para3: jint); overload; virtual;
    procedure findViewsWithText(para1: JUArrayList; para2: JLCharSequence; para3: jint); overload; virtual;
    function getTouchables(): JUArrayList; overload; virtual;
    procedure addTouchables(para1: JUArrayList); overload; virtual;
    function requestFocus(): jboolean; overload; virtual; final;
    function requestFocus(para1: jint): jboolean; overload; virtual; final;
    function requestFocus(para1: jint; para2: AGRect): jboolean; overload; virtual;
    function requestFocusFromTouch(): jboolean; overload; virtual; final;
    procedure onStartTemporaryDetach(); overload; virtual;
    procedure onFinishTemporaryDetach(); overload; virtual;
    function getKeyDispatcherState(): AVKeyEvent.InnerDispatcherState; overload; virtual;
    function dispatchKeyEventPreIme(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchKeyShortcutEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onFilterTouchEventForSecurity(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    function dispatchHoverEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchGenericPointerEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchGenericFocusedEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  public
    procedure dispatchWindowFocusChanged(para1: jboolean); overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
    function hasWindowFocus(): jboolean; overload; virtual;
  strict protected
    procedure dispatchVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
    procedure onVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
  public
    procedure dispatchDisplayHint(para1: jint); overload; virtual;
  strict protected
    procedure onDisplayHint(para1: jint); overload; virtual;
  public
    procedure dispatchWindowVisibilityChanged(para1: jint); overload; virtual;
  strict protected
    procedure onWindowVisibilityChanged(para1: jint); overload; virtual;
  public
    function getWindowVisibility(): jint; overload; virtual;
    procedure getWindowVisibleDisplayFrame(para1: AGRect); overload; virtual;
    procedure dispatchConfigurationChanged(para1: ACRConfiguration); overload; virtual;
  strict protected
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
  public
    function isInTouchMode(): jboolean; overload; virtual;
    function getContext(): ACContext; overload; virtual; final;
    function onKeyPreIme(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyLongPress(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyShortcut(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onCheckIsTextEditor(): jboolean; overload; virtual;
    function onCreateInputConnection(para1: AVIEditorInfo): AVIInputConnection; overload; virtual;
    function checkInputConnectionProxy(para1: AVView): jboolean; overload; virtual;
    procedure createContextMenu(para1: AVContextMenu); overload; virtual;
  strict protected
    function getContextMenuInfo(): AVContextMenu.InnerContextMenuInfo; overload; virtual;
    procedure onCreateContextMenu(para1: AVContextMenu); overload; virtual;
  public
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onHoverEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function isHovered(): jboolean; overload; virtual;
    procedure setHovered(para1: jboolean); overload; virtual;
    procedure onHoverChanged(para1: jboolean); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure cancelLongPress(); overload; virtual;
    procedure setTouchDelegate(para1: AVTouchDelegate); overload; virtual;
    function getTouchDelegate(): AVTouchDelegate; overload; virtual;
    procedure bringToFront(); overload; virtual;
  strict protected
    procedure onScrollChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
  public
    function getParent(): AVViewParent; overload; virtual; final;
    procedure setScrollX(para1: jint); overload; virtual;
    procedure setScrollY(para1: jint); overload; virtual;
    function getScrollX(): jint; overload; virtual; final;
    function getScrollY(): jint; overload; virtual; final;
    function getWidth(): jint; overload; virtual; final;
    function getHeight(): jint; overload; virtual; final;
    procedure getDrawingRect(para1: AGRect); overload; virtual;
    function getMeasuredWidth(): jint; overload; virtual; final;
    function getMeasuredWidthAndState(): jint; overload; virtual; final;
    function getMeasuredHeight(): jint; overload; virtual; final;
    function getMeasuredHeightAndState(): jint; overload; virtual; final;
    function getMeasuredState(): jint; overload; virtual; final;
    function getMatrix(): AGMatrix; overload; virtual;
    procedure setCameraDistance(para1: jfloat); overload; virtual;
    function getRotation(): jfloat; overload; virtual;
    procedure setRotation(para1: jfloat); overload; virtual;
    function getRotationY(): jfloat; overload; virtual;
    procedure setRotationY(para1: jfloat); overload; virtual;
    function getRotationX(): jfloat; overload; virtual;
    procedure setRotationX(para1: jfloat); overload; virtual;
    function getScaleX(): jfloat; overload; virtual;
    procedure setScaleX(para1: jfloat); overload; virtual;
    function getScaleY(): jfloat; overload; virtual;
    procedure setScaleY(para1: jfloat); overload; virtual;
    function getPivotX(): jfloat; overload; virtual;
    procedure setPivotX(para1: jfloat); overload; virtual;
    function getPivotY(): jfloat; overload; virtual;
    procedure setPivotY(para1: jfloat); overload; virtual;
    function getAlpha(): jfloat; overload; virtual;
    procedure setAlpha(para1: jfloat); overload; virtual;
    function getTop(): jint; overload; virtual; final;
    procedure setTop(para1: jint); overload; virtual; final;
    function getBottom(): jint; overload; virtual; final;
    function isDirty(): jboolean; overload; virtual;
    procedure setBottom(para1: jint); overload; virtual; final;
    function getLeft(): jint; overload; virtual; final;
    procedure setLeft(para1: jint); overload; virtual; final;
    function getRight(): jint; overload; virtual; final;
    procedure setRight(para1: jint); overload; virtual; final;
    function getX(): jfloat; overload; virtual;
    procedure setX(para1: jfloat); overload; virtual;
    function getY(): jfloat; overload; virtual;
    procedure setY(para1: jfloat); overload; virtual;
    function getTranslationX(): jfloat; overload; virtual;
    procedure setTranslationX(para1: jfloat); overload; virtual;
    function getTranslationY(): jfloat; overload; virtual;
    procedure setTranslationY(para1: jfloat); overload; virtual;
    procedure getHitRect(para1: AGRect); overload; virtual;
    procedure getFocusedRect(para1: AGRect); overload; virtual;
    function getGlobalVisibleRect(para1: AGRect; para2: AGPoint): jboolean; overload; virtual;
    function getGlobalVisibleRect(para1: AGRect): jboolean; overload; virtual; final;
    function getLocalVisibleRect(para1: AGRect): jboolean; overload; virtual; final;
    procedure offsetTopAndBottom(para1: jint); overload; virtual;
    procedure offsetLeftAndRight(para1: jint); overload; virtual;
    function getLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    procedure setLayoutParams(para1: AVViewGroup_LayoutParams); overload; virtual;
    procedure scrollTo(para1: jint; para2: jint); overload; virtual;
    procedure scrollBy(para1: jint; para2: jint); overload; virtual;
  strict protected
    function awakenScrollBars(): jboolean; overload; virtual;
    function awakenScrollBars(para1: jint): jboolean; overload; virtual;
    function awakenScrollBars(para1: jint; para2: jboolean): jboolean; overload; virtual;
  public
    procedure invalidate(para1: AGRect); overload; virtual;
    procedure invalidate(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure invalidate(); overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    function getHandler(): AOHandler; overload; virtual;
    function post(para1: JLRunnable): jboolean; overload; virtual;
    function postDelayed(para1: JLRunnable; para2: jlong): jboolean; overload; virtual;
    function removeCallbacks(para1: JLRunnable): jboolean; overload; virtual;
    procedure postInvalidate(); overload; virtual;
    procedure postInvalidate(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure postInvalidateDelayed(para1: jlong); overload; virtual;
    procedure postInvalidateDelayed(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure computeScroll(); overload; virtual;
    function isHorizontalFadingEdgeEnabled(): jboolean; overload; virtual;
    procedure setHorizontalFadingEdgeEnabled(para1: jboolean); overload; virtual;
    function isVerticalFadingEdgeEnabled(): jboolean; overload; virtual;
    procedure setVerticalFadingEdgeEnabled(para1: jboolean); overload; virtual;
  strict protected
    function getTopFadingEdgeStrength(): jfloat; overload; virtual;
    function getBottomFadingEdgeStrength(): jfloat; overload; virtual;
    function getLeftFadingEdgeStrength(): jfloat; overload; virtual;
    function getRightFadingEdgeStrength(): jfloat; overload; virtual;
  public
    function isHorizontalScrollBarEnabled(): jboolean; overload; virtual;
    procedure setHorizontalScrollBarEnabled(para1: jboolean); overload; virtual;
    function isVerticalScrollBarEnabled(): jboolean; overload; virtual;
    procedure setVerticalScrollBarEnabled(para1: jboolean); overload; virtual;
    procedure setScrollbarFadingEnabled(para1: jboolean); overload; virtual;
    function isScrollbarFadingEnabled(): jboolean; overload; virtual;
    procedure setScrollBarStyle(para1: jint); overload; virtual;
    function getScrollBarStyle(): jint; overload; virtual;
  strict protected
    function computeHorizontalScrollRange(): jint; overload; virtual;
    function computeHorizontalScrollOffset(): jint; overload; virtual;
    function computeHorizontalScrollExtent(): jint; overload; virtual;
    function computeVerticalScrollRange(): jint; overload; virtual;
    function computeVerticalScrollOffset(): jint; overload; virtual;
    function computeVerticalScrollExtent(): jint; overload; virtual;
  public
    function canScrollHorizontally(para1: jint): jboolean; overload; virtual;
    function canScrollVertically(para1: jint): jboolean; overload; virtual;
  strict protected
    procedure onDrawScrollBars(para1: AGCanvas); overload; virtual; final;
    procedure onDraw(para1: AGCanvas); overload; virtual;
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    function getWindowAttachCount(): jint; overload; virtual;
  public
    function getWindowToken(): AOIBinder; overload; virtual;
    function getApplicationWindowToken(): AOIBinder; overload; virtual;
    procedure saveHierarchyState(para1: AUSparseArray); overload; virtual;
  strict protected
    procedure dispatchSaveInstanceState(para1: AUSparseArray); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
  public
    procedure restoreHierarchyState(para1: AUSparseArray); overload; virtual;
  strict protected
    procedure dispatchRestoreInstanceState(para1: AUSparseArray); overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  public
    function getDrawingTime(): jlong; overload; virtual;
    procedure setDuplicateParentStateEnabled(para1: jboolean); overload; virtual;
    function isDuplicateParentStateEnabled(): jboolean; overload; virtual;
    procedure setLayerType(para1: jint; para2: AGPaint); overload; virtual;
    function getLayerType(): jint; overload; virtual;
    procedure buildLayer(); overload; virtual;
    procedure setDrawingCacheEnabled(para1: jboolean); overload; virtual;
    function isDrawingCacheEnabled(): jboolean; overload; virtual;
    function getDrawingCache(): AGBitmap; overload; virtual;
    function getDrawingCache(para1: jboolean): AGBitmap; overload; virtual;
    procedure destroyDrawingCache(); overload; virtual;
    procedure setDrawingCacheBackgroundColor(para1: jint); overload; virtual;
    function getDrawingCacheBackgroundColor(): jint; overload; virtual;
    procedure buildDrawingCache(); overload; virtual;
    procedure buildDrawingCache(para1: jboolean); overload; virtual;
    function isInEditMode(): jboolean; overload; virtual;
  strict protected
    function isPaddingOffsetRequired(): jboolean; overload; virtual;
    function getLeftPaddingOffset(): jint; overload; virtual;
    function getRightPaddingOffset(): jint; overload; virtual;
    function getTopPaddingOffset(): jint; overload; virtual;
    function getBottomPaddingOffset(): jint; overload; virtual;
  public
    function isHardwareAccelerated(): jboolean; overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    function getSolidColor(): jint; overload; virtual;
    function isLayoutRequested(): jboolean; overload; virtual;
    procedure layout(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure onFinishInflate(); overload; virtual;
  public
    function getResources(): ACRResources; overload; virtual;
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
    procedure scheduleDrawable(para1: AGDDrawable; para2: JLRunnable; para3: jlong); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable; para2: JLRunnable); overload; virtual;
    procedure unscheduleDrawable(para1: AGDDrawable); overload; virtual;
  strict protected
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
    procedure drawableStateChanged(); overload; virtual;
  public
    procedure refreshDrawableState(); overload; virtual;
    function getDrawableState(): Arr1jint; overload; virtual; final;
  strict protected
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
    class function mergeDrawableStates(para1: Arr1jint; para2: Arr1jint): Arr1jint; static; overload;
    class function mergeDrawableStates(var para1: array of jint; var para2: array of jint): Arr1jint; static; overload;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
    procedure setBackgroundColor(para1: jint); overload; virtual;
    procedure setBackgroundResource(para1: jint); overload; virtual;
    procedure setBackgroundDrawable(para1: AGDDrawable); overload; virtual;
    function getBackground(): AGDDrawable; overload; virtual;
    procedure setPadding(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getPaddingTop(): jint; overload; virtual;
    function getPaddingBottom(): jint; overload; virtual;
    function getPaddingLeft(): jint; overload; virtual;
    function getPaddingRight(): jint; overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
  strict protected
    procedure dispatchSetSelected(para1: jboolean); overload; virtual;
  public
    function isSelected(): jboolean; overload; virtual;
    procedure setActivated(para1: jboolean); overload; virtual;
  strict protected
    procedure dispatchSetActivated(para1: jboolean); overload; virtual;
  public
    function isActivated(): jboolean; overload; virtual;
    function getViewTreeObserver(): AVViewTreeObserver; overload; virtual;
    function getRootView(): AVView; overload; virtual;
    procedure getLocationOnScreen(para1: Arr1jint); overload; virtual;
    procedure getLocationOnScreen(var para1: array of jint); overload; virtual;
    procedure getLocationInWindow(para1: Arr1jint); overload; virtual;
    procedure getLocationInWindow(var para1: array of jint); overload; virtual;
    function findViewById(para1: jint): AVView; overload; virtual; final;
    function findViewWithTag(para1: JLObject): AVView; overload; virtual; final;
    procedure setId(para1: jint); overload; virtual;
    function getId(): jint; overload; virtual;
    function getTag(): JLObject; overload; virtual;
    procedure setTag(para1: JLObject); overload; virtual;
    function getTag(para1: jint): JLObject; overload; virtual;
    procedure setTag(para1: jint; para2: JLObject); overload; virtual;
    function getBaseline(): jint; overload; virtual;
    procedure requestLayout(); overload; virtual;
    procedure forceLayout(); overload; virtual;
    procedure measure(para1: jint; para2: jint); overload; virtual; final;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure setMeasuredDimension(para1: jint; para2: jint); overload; virtual; final;
  public
    class function combineMeasuredStates(para1: jint; para2: jint): jint; static; overload;
    class function resolveSize(para1: jint; para2: jint): jint; static; overload;
    class function resolveSizeAndState(para1: jint; para2: jint; para3: jint): jint; static; overload;
    class function getDefaultSize(para1: jint; para2: jint): jint; static; overload;
  strict protected
    function getSuggestedMinimumHeight(): jint; overload; virtual;
    function getSuggestedMinimumWidth(): jint; overload; virtual;
  public
    procedure setMinimumHeight(para1: jint); overload; virtual;
    procedure setMinimumWidth(para1: jint); overload; virtual;
    function getAnimation(): AVAAnimation; overload; virtual;
    procedure startAnimation(para1: AVAAnimation); overload; virtual;
    procedure clearAnimation(); overload; virtual;
    procedure setAnimation(para1: AVAAnimation); overload; virtual;
  strict protected
    procedure onAnimationStart(); overload; virtual;
    procedure onAnimationEnd(); overload; virtual;
    function onSetAlpha(para1: jint): jboolean; overload; virtual;
  public
    procedure playSoundEffect(para1: jint); overload; virtual;
    function performHapticFeedback(para1: jint): jboolean; overload; virtual;
    function performHapticFeedback(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure setSystemUiVisibility(para1: jint); overload; virtual;
    function getSystemUiVisibility(): jint; overload; virtual;
    procedure setOnSystemUiVisibilityChangeListener(para1: AVView.InnerOnSystemUiVisibilityChangeListener); overload; virtual;
    procedure dispatchSystemUiVisibilityChanged(para1: jint); overload; virtual;
    function startDrag(para1: ACClipData; para2: AVView.InnerDragShadowBuilder; para3: JLObject; para4: jint): jboolean; overload; virtual; final;
    function onDragEvent(para1: AVDragEvent): jboolean; overload; virtual;
    function dispatchDragEvent(para1: AVDragEvent): jboolean; overload; virtual;
    class function inflate(para1: ACContext; para2: jint; para3: AVViewGroup): AVView; static; overload;
  strict protected
    function overScrollBy(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jboolean): jboolean; overload; virtual;
    procedure onOverScrolled(para1: jint; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
  public
    function getOverScrollMode(): jint; overload; virtual;
    procedure setOverScrollMode(para1: jint); overload; virtual;
    function animate(): AVViewPropertyAnimator; overload; virtual;
  end;

  APPreferenceCategory = class external 'android.preference' name 'PreferenceCategory' (APPreferenceGroup)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
  strict protected
    function onPrepareAddPreference(para1: APPreference): jboolean; overload; virtual;
  public
    function isEnabled(): jboolean; overload; virtual;
  end;

  APCheckBoxPreference = class external 'android.preference' name 'CheckBoxPreference' (APTwoStatePreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
  strict protected
    procedure onBindView(para1: AVView); overload; virtual;
  end;

  APSwitchPreference = class external 'android.preference' name 'SwitchPreference' (APTwoStatePreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
  strict protected
    procedure onBindView(para1: AVView); overload; virtual;
  public
    procedure setSwitchTextOn(para1: JLCharSequence); overload; virtual;
    procedure setSwitchTextOff(para1: JLCharSequence); overload; virtual;
    procedure setSwitchTextOn(para1: jint); overload; virtual;
    procedure setSwitchTextOff(para1: jint); overload; virtual;
    function getSwitchTextOn(): JLCharSequence; overload; virtual;
    function getSwitchTextOff(): JLCharSequence; overload; virtual;
  end;

  ATSDynamicDrawableSpan = class abstract external 'android.text.style' name 'DynamicDrawableSpan' (ATSReplacementSpan)
  public
    const
      ALIGN_BOTTOM = 0;
      ALIGN_BASELINE = 1;
  strict protected
    final var
      fmVerticalAlignment: jint; external name 'mVerticalAlignment';
  public
    constructor create(); overload;
  strict protected
    constructor create(para1: jint); overload;
  public
    function getVerticalAlignment(): jint; overload; virtual;
    function getDrawable(): AGDDrawable; overload; virtual; abstract;
    function getSize(para1: AGPaint; para2: JLCharSequence; para3: jint; para4: jint; para5: AGPaint.InnerFontMetricsInt): jint; overload; virtual;
    procedure draw(para1: AGCanvas; para2: JLCharSequence; para3: jint; para4: jint; para5: jfloat; para6: jint; para7: jint; para8: jint; para9: AGPaint); overload; virtual;
  end;

  AWResourceCursorAdapter = class abstract external 'android.widget' name 'ResourceCursorAdapter' (AWCursorAdapter)
  public
    constructor create(para1: ACContext; para2: jint; para3: ADCursor); overload;
    constructor create(para1: ACContext; para2: jint; para3: ADCursor; para4: jboolean); overload;
    constructor create(para1: ACContext; para2: jint; para3: ADCursor; para4: jint); overload;
    function newView(para1: ACContext; para2: ADCursor; para3: AVViewGroup): AVView; overload; virtual;
    function newDropDownView(para1: ACContext; para2: ADCursor; para3: AVViewGroup): AVView; overload; virtual;
    procedure setViewResource(para1: jint); overload; virtual;
    procedure setDropDownViewResource(para1: jint); overload; virtual;
  end;

  AWSimpleCursorTreeAdapter = class abstract external 'android.widget' name 'SimpleCursorTreeAdapter' (AWResourceCursorTreeAdapter)
  public
    type
      InnerViewBinder = interface;
      Arr1InnerViewBinder = array of InnerViewBinder;
      Arr2InnerViewBinder = array of Arr1InnerViewBinder;
      Arr3InnerViewBinder = array of Arr2InnerViewBinder;
      InnerViewBinder = interface external 'android.widget' name 'ViewBinder' 
        function setViewValue(para1: AVView; para2: ADCursor; para3: jint): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint; para5: Arr1JLString; para6: Arr1jint; para7: jint; para8: jint; para9: Arr1JLString; para10: Arr1jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint; const para5: array of JLString; const para6: array of jint; para7: jint; para8: jint; const para9: array of JLString; const para10: array of jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint; para5: Arr1JLString; para6: Arr1jint; para7: jint; para8: Arr1JLString; para9: Arr1jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: jint; const para5: array of JLString; const para6: array of jint; para7: jint; const para8: array of JLString; const para9: array of jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; para4: Arr1JLString; para5: Arr1jint; para6: jint; para7: Arr1JLString; para8: Arr1jint); overload;
    constructor create(para1: ACContext; para2: ADCursor; para3: jint; const para4: array of JLString; const para5: array of jint; para6: jint; const para7: array of JLString; const para8: array of jint); overload;
    function getViewBinder(): AWSimpleCursorTreeAdapter.InnerViewBinder; overload; virtual;
    procedure setViewBinder(para1: AWSimpleCursorTreeAdapter.InnerViewBinder); overload; virtual;
  strict protected
    procedure bindChildView(para1: AVView; para2: ACContext; para3: ADCursor; para4: jboolean); overload; virtual;
    procedure bindGroupView(para1: AVView; para2: ACContext; para3: ADCursor; para4: jboolean); overload; virtual;
    procedure setViewImage(para1: AWImageView; para2: JLString); overload; virtual;
  public
    procedure setViewText(para1: AWTextView; para2: JLString); overload; virtual;
  end;

  JUZGZIPInputStream = class external 'java.util.zip' name 'GZIPInputStream' (JUZInflaterInputStream)
  public
    const
      GZIP_MAGIC = 35615;
  strict protected
    var
      fcrc: JUZCRC32; external name 'crc';
      feos: jboolean; external name 'eos';
  public
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    constructor create(para1: JIInputStream; para2: jint); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  end;

  JUZZipInputStream = class external 'java.util.zip' name 'ZipInputStream' (JUZInflaterInputStream)
  public
    constructor create(para1: JIInputStream); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure closeEntry(); overload; virtual;  // throws java.io.IOException
    function getNextEntry(): JUZZipEntry; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
  strict protected
    function createZipEntry(para1: JLString): JUZZipEntry; overload; virtual;
  end;

  JNCSelectableChannel = class abstract external 'java.nio.channels' name 'SelectableChannel' (JNCSAbstractInterruptibleChannel, JNCChannel)
  strict protected
    constructor create(); overload;
  public
    function blockingLock(): JLObject; overload; virtual; abstract;
    function configureBlocking(para1: jboolean): JNCSelectableChannel; overload; virtual; abstract;  // throws java.io.IOException
    function isBlocking(): jboolean; overload; virtual; abstract;
    function isRegistered(): jboolean; overload; virtual; abstract;
    function keyFor(para1: JNCSelector): JNCSelectionKey; overload; virtual; abstract;
    function provider(): JNCSSelectorProvider; overload; virtual; abstract;
    function register(para1: JNCSelector; para2: jint): JNCSelectionKey; overload; virtual; final;  // throws java.nio.channels.ClosedChannelException
    function register(para1: JNCSelector; para2: jint; para3: JLObject): JNCSelectionKey; overload; virtual; abstract;  // throws java.nio.channels.ClosedChannelException
    function validOps(): jint; overload; virtual; abstract;
  end;

  JNCFileChannel = class abstract external 'java.nio.channels' name 'FileChannel' (JNCSAbstractInterruptibleChannel, JNCGatheringByteChannel, JNCScatteringByteChannel, JNCByteChannel)
  public
    type
      InnerMapMode = class;
      Arr1InnerMapMode = array of InnerMapMode;
      Arr2InnerMapMode = array of Arr1InnerMapMode;
      Arr3InnerMapMode = array of Arr2InnerMapMode;
      InnerMapMode = class external 'java.nio.channels' name 'MapMode' (JLObject)
      public
        final class var
          fPRIVATE: JNCFileChannel.InnerMapMode; external name 'PRIVATE';
          fREAD_ONLY: JNCFileChannel.InnerMapMode; external name 'READ_ONLY';
          fREAD_WRITE: JNCFileChannel.InnerMapMode; external name 'READ_WRITE';
      public
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    procedure force(para1: jboolean); overload; virtual; abstract;  // throws java.io.IOException
    function lock(): JNCFileLock; overload; virtual; final;  // throws java.io.IOException
    function lock(para1: jlong; para2: jlong; para3: jboolean): JNCFileLock; overload; virtual; abstract;  // throws java.io.IOException
    function map(para1: JNCFileChannel.InnerMapMode; para2: jlong; para3: jlong): JNMappedByteBuffer; overload; virtual; abstract;  // throws java.io.IOException
    function position(): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function position(para1: jlong): JNCFileChannel; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer; para2: jlong): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function size(): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function transferFrom(para1: JNCReadableByteChannel; para2: jlong; para3: jlong): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function transferTo(para1: jlong; para2: jlong; para3: JNCWritableByteChannel): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function truncate(para1: jlong): JNCFileChannel; overload; virtual; abstract;  // throws java.io.IOException
    function tryLock(): JNCFileLock; overload; virtual; final;  // throws java.io.IOException
    function tryLock(para1: jlong; para2: jlong; para3: jboolean): JNCFileLock; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: JNByteBuffer; para2: jlong): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
  end;

  ACRAssetFileDescriptor = class external 'android.content.res' name 'AssetFileDescriptor' (JLObject, AOParcelable)
  public
    type
      InnerAutoCloseOutputStream = class;
      Arr1InnerAutoCloseOutputStream = array of InnerAutoCloseOutputStream;
      Arr2InnerAutoCloseOutputStream = array of Arr1InnerAutoCloseOutputStream;
      Arr3InnerAutoCloseOutputStream = array of Arr2InnerAutoCloseOutputStream;
      InnerAutoCloseInputStream = class;
      Arr1InnerAutoCloseInputStream = array of InnerAutoCloseInputStream;
      Arr2InnerAutoCloseInputStream = array of Arr1InnerAutoCloseInputStream;
      Arr3InnerAutoCloseInputStream = array of Arr2InnerAutoCloseInputStream;
      InnerAutoCloseOutputStream = class external 'android.content.res' name 'AutoCloseOutputStream' (AOParcelFileDescriptor.InnerAutoCloseOutputStream)
      public
        constructor create(para1: ACRAssetFileDescriptor); overload;  // throws java.io.IOException
        procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
        procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
        procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
        procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
        procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
      end;

      InnerAutoCloseInputStream = class external 'android.content.res' name 'AutoCloseInputStream' (AOParcelFileDescriptor.InnerAutoCloseInputStream)
      public
        constructor create(para1: ACRAssetFileDescriptor); overload;  // throws java.io.IOException
        function available(): jint; overload; virtual;  // throws java.io.IOException
        function read(): jint; overload; virtual;  // throws java.io.IOException
        function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
        function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
        function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
        function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
        function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
        procedure mark(para1: jint); overload; virtual;
        function markSupported(): jboolean; overload; virtual;
        procedure reset(); overload; virtual;  // throws java.io.IOException
      end;

  public
    const
      UNKNOWN_LENGTH = jlong(-1);
  public
    final class var
      fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
  public
    constructor create(para1: AOParcelFileDescriptor; para2: jlong; para3: jlong); overload;
    function getParcelFileDescriptor(): AOParcelFileDescriptor; overload; virtual;
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
    function getStartOffset(): jlong; overload; virtual;
    function getLength(): jlong; overload; virtual;
    function getDeclaredLength(): jlong; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function createInputStream(): JIFileInputStream; overload; virtual;  // throws java.io.IOException
    function createOutputStream(): JIFileOutputStream; overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
    function describeContents(): jint; overload; virtual;
    procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
  end;

  JUZGZIPOutputStream = class external 'java.util.zip' name 'GZIPOutputStream' (JUZDeflaterOutputStream)
  strict protected
    var
      fcrc: JUZCRC32; external name 'crc';
  public
    constructor create(para1: JIOutputStream); overload;  // throws java.io.IOException
    constructor create(para1: JIOutputStream; para2: jint); overload;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JUZZipOutputStream = class external 'java.util.zip' name 'ZipOutputStream' (JUZDeflaterOutputStream)
  public
    const
      DEFLATED = 8;
      STORED = 0;
  public
    constructor create(para1: JIOutputStream); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure closeEntry(); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure putNextEntry(para1: JUZZipEntry); overload; virtual;  // throws java.io.IOException
    procedure setComment(para1: JLString); overload; virtual;
    procedure setLevel(para1: jint); overload; virtual;
    procedure setMethod(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JSAuthProvider = class abstract external 'java.security' name 'AuthProvider' (JSProvider)
  strict protected
    constructor create(para1: JLString; para2: jdouble; para3: JLString); overload;
  public
    procedure login(para1: JSASubject; para2: JSACCallbackHandler); overload; virtual; abstract;  // throws javax.security.auth.login.LoginException
    procedure logout(); overload; virtual; abstract;  // throws javax.security.auth.login.LoginException
    procedure setCallbackHandler(para1: JSACCallbackHandler); overload; virtual; abstract;
  end;

  JUCScheduledThreadPoolExecutor = class external 'java.util.concurrent' name 'ScheduledThreadPoolExecutor' (JUCThreadPoolExecutor, JUCScheduledExecutorService)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JUCThreadFactory); overload;
    constructor create(para1: jint; para2: JUCRejectedExecutionHandler); overload;
    constructor create(para1: jint; para2: JUCThreadFactory; para3: JUCRejectedExecutionHandler); overload;
  strict protected
    function decorateTask(para1: JLRunnable; para2: JUCRunnableScheduledFuture): JUCRunnableScheduledFuture; overload; virtual;
    function decorateTask(para1: JUCCallable; para2: JUCRunnableScheduledFuture): JUCRunnableScheduledFuture; overload; virtual;
  public
    function schedule(para1: JLRunnable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    function schedule(para1: JUCCallable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    function scheduleAtFixedRate(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    function scheduleWithFixedDelay(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    procedure execute(para1: JLRunnable); overload; virtual;
    function submit(para1: JLRunnable): JUCFuture; overload; virtual;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload; virtual;
    function submit(para1: JUCCallable): JUCFuture; overload; virtual;
    procedure setContinueExistingPeriodicTasksAfterShutdownPolicy(para1: jboolean); overload; virtual;
    function getContinueExistingPeriodicTasksAfterShutdownPolicy(): jboolean; overload; virtual;
    procedure setExecuteExistingDelayedTasksAfterShutdownPolicy(para1: jboolean); overload; virtual;
    function getExecuteExistingDelayedTasksAfterShutdownPolicy(): jboolean; overload; virtual;
    procedure shutdown(); overload; virtual;
    function shutdownNow(): JUList; overload; virtual;
    function getQueue(): JUCBlockingQueue; overload; virtual;
  end;

  ATActivityInstrumentationTestCase = class abstract external 'android.test' name 'ActivityInstrumentationTestCase' (ATActivityTestCase)
  public
    constructor create(para1: JLString; para2: JLClass); overload;
    constructor create(para1: JLString; para2: JLClass; para3: jboolean); overload;
    function getActivity(): AAActivity; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    procedure testActivityTestCaseSetUpProperly(); overload; virtual;  // throws java.lang.Exception
  end;

  ATActivityInstrumentationTestCase2 = class abstract external 'android.test' name 'ActivityInstrumentationTestCase2' (ATActivityTestCase)
  public
    constructor create(para1: JLString; para2: JLClass); overload;
    constructor create(para1: JLClass); overload;
    function getActivity(): AAActivity; overload; virtual;
    procedure setActivityIntent(para1: ACIntent); overload; virtual;
    procedure setActivityInitialTouchMode(para1: jboolean); overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
    procedure runTest(); overload; virtual;  // throws java.lang.Throwable
  end;

  ATActivityUnitTestCase = class abstract external 'android.test' name 'ActivityUnitTestCase' (ATActivityTestCase)
  public
    constructor create(para1: JLClass); overload;
    function getActivity(): AAActivity; overload; virtual;
  strict protected
    procedure setUp(); overload; virtual;  // throws java.lang.Exception
    function startActivity(para1: ACIntent; para2: AOBundle; para3: JLObject): AAActivity; overload; virtual;
    procedure tearDown(); overload; virtual;  // throws java.lang.Exception
  public
    procedure setApplication(para1: AAApplication); overload; virtual;
    procedure setActivityContext(para1: ACContext); overload; virtual;
    function getRequestedOrientation(): jint; overload; virtual;
    function getStartedActivityIntent(): ACIntent; overload; virtual;
    function getStartedActivityRequest(): jint; overload; virtual;
    function isFinishCalled(): jboolean; overload; virtual;
    function getFinishedActivityRequest(): jint; overload; virtual;
  end;

  OAHIDefaultHttpClientConnection = class external 'org.apache.http.impl' name 'DefaultHttpClientConnection' (OAHISocketHttpClientConnection)
  public
    constructor create(); overload;
    procedure bind(para1: JNSocket; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
  end;

  OAHICDefaultClientConnection = class external 'org.apache.http.impl.conn' name 'DefaultClientConnection' (OAHISocketHttpClientConnection, OAHCOperatedClientConnection)
  public
    constructor create(); overload;
    function getTargetHost(): OAHHttpHost; overload; virtual; final;
    function isSecure(): jboolean; overload; virtual; final;
    function getSocket(): JNSocket; overload; virtual; final;
    procedure opening(para1: JNSocket; para2: OAHHttpHost); overload; virtual;  // throws java.io.IOException
    procedure openCompleted(para1: jboolean; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure shutdown(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    function createSessionInputBuffer(para1: JNSocket; para2: jint; para3: OAHPHttpParams): OAHISessionInputBuffer; overload; virtual;  // throws java.io.IOException
    function createSessionOutputBuffer(para1: JNSocket; para2: jint; para3: OAHPHttpParams): OAHISessionOutputBuffer; overload; virtual;  // throws java.io.IOException
    function createResponseParser(para1: OAHISessionInputBuffer; para2: OAHHttpResponseFactory; para3: OAHPHttpParams): OAHIHttpMessageParser; overload; virtual;
  public
    procedure update(para1: JNSocket; para2: OAHHttpHost; para3: jboolean; para4: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    function receiveResponseHeader(): OAHHttpResponse; overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
    procedure sendRequestHeader(para1: OAHHttpRequest); overload; virtual;  // throws org.apache.http.HttpException, java.io.IOException
  end;

  OAHICAbstractPooledConnAdapter = class abstract external 'org.apache.http.impl.conn' name 'AbstractPooledConnAdapter' (OAHICAbstractClientConnAdapter)
  strict protected
    var
      fpoolEntry: OAHICAbstractPoolEntry; external name 'poolEntry';
  strict protected
    constructor create(para1: OAHCClientConnectionManager; para2: OAHICAbstractPoolEntry); overload;
    procedure assertAttached(); overload; virtual; final;
    procedure detach(); overload; virtual;
  public
    function getRoute(): OAHCRHttpRoute; overload; virtual;
    procedure open(para1: OAHCRHttpRoute; para2: OAHPHttpContext; para3: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure tunnelTarget(para1: jboolean; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure tunnelProxy(para1: OAHHttpHost; para2: jboolean; para3: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure layerProtocol(para1: OAHPHttpContext; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure shutdown(); overload; virtual;  // throws java.io.IOException
    function getState(): JLObject; overload; virtual;
    procedure setState(para1: JLObject); overload; virtual;
  end;

  OAHIDefaultHttpServerConnection = class external 'org.apache.http.impl' name 'DefaultHttpServerConnection' (OAHISocketHttpServerConnection)
  public
    constructor create(); overload;
    procedure bind(para1: JNSocket; para2: OAHPHttpParams); overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
  end;

  OAHCMHttpDelete = class external 'org.apache.http.client.methods' name 'HttpDelete' (OAHCMHttpRequestBase)
  public
    const
      METHOD_NAME = 'DELETE';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
  end;

  OAHCMHttpEntityEnclosingRequestBase = class abstract external 'org.apache.http.client.methods' name 'HttpEntityEnclosingRequestBase' (OAHCMHttpRequestBase, OAHHttpEntityEnclosingRequest)
  public
    constructor create(); overload;
    function getEntity(): OAHHttpEntity; overload; virtual;
    procedure setEntity(para1: OAHHttpEntity); overload; virtual;
    function expectContinue(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  OAHCMHttpGet = class external 'org.apache.http.client.methods' name 'HttpGet' (OAHCMHttpRequestBase)
  public
    const
      METHOD_NAME = 'GET';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
  end;

  OAHCMHttpHead = class external 'org.apache.http.client.methods' name 'HttpHead' (OAHCMHttpRequestBase)
  public
    const
      METHOD_NAME = 'HEAD';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
  end;

  OAHCMHttpOptions = class external 'org.apache.http.client.methods' name 'HttpOptions' (OAHCMHttpRequestBase)
  public
    const
      METHOD_NAME = 'OPTIONS';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
    function getAllowedMethods(para1: OAHHttpResponse): JUSet; overload; virtual;
  end;

  OAHCMHttpTrace = class external 'org.apache.http.client.methods' name 'HttpTrace' (OAHCMHttpRequestBase)
  public
    const
      METHOD_NAME = 'TRACE';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
  end;

  OAHICEntityEnclosingRequestWrapper = class external 'org.apache.http.impl.client' name 'EntityEnclosingRequestWrapper' (OAHICRequestWrapper, OAHHttpEntityEnclosingRequest)
  public
    constructor create(para1: OAHHttpEntityEnclosingRequest); overload;  // throws org.apache.http.ProtocolException
    function getEntity(): OAHHttpEntity; overload; virtual;
    procedure setEntity(para1: OAHHttpEntity); overload; virtual;
    function expectContinue(): jboolean; overload; virtual;
    function isRepeatable(): jboolean; overload; virtual;
  end;

  OAHICRFC2965Spec = class external 'org.apache.http.impl.cookie' name 'RFC2965Spec' (OAHICRFC2109Spec)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString; para2: jboolean); overload;
    constructor create(const para1: array of JLString; para2: jboolean); overload;
    function parse(para1: OAHHeader; para2: OAHCCookieOrigin): JUList; overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    procedure validate(para1: OAHCCookie; para2: OAHCCookieOrigin); overload; virtual;  // throws org.apache.http.cookie.MalformedCookieException
    function match(para1: OAHCCookie; para2: OAHCCookieOrigin): jboolean; overload; virtual;
  strict protected
    procedure formatCookieAsVer(para1: OAHUCharArrayBuffer; para2: OAHCCookie; para3: jint); overload; virtual;
  public
    function getVersion(): jint; overload; virtual;
    function getVersionHeader(): OAHHeader; overload; virtual;
  end;

  JTSimpleDateFormat = class external 'java.text' name 'SimpleDateFormat' (JTDateFormat)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JTDateFormatSymbols); overload;
    constructor create(para1: JLString; para2: JULocale); overload;
    procedure applyLocalizedPattern(para1: JLString); overload; virtual;
    procedure applyPattern(para1: JLString); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function format(para1: JUDate; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function get2DigitYearStart(): JUDate; overload; virtual;
    function getDateFormatSymbols(): JTDateFormatSymbols; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function parse(para1: JLString; para2: JTParsePosition): JUDate; overload; virtual;
    procedure set2DigitYearStart(para1: JUDate); overload; virtual;
    procedure setDateFormatSymbols(para1: JTDateFormatSymbols); overload; virtual;
    function toLocalizedPattern(): JLString; overload; virtual;
    function toPattern(): JLString; overload; virtual;
  end;

  JTChoiceFormat = class external 'java.text' name 'ChoiceFormat' (JTNumberFormat)
  public
    constructor create(para1: Arr1jdouble; para2: Arr1JLString); overload;
    constructor create(const para1: array of jdouble; const para2: array of JLString); overload;
    constructor create(para1: JLString); overload;
    procedure applyPattern(para1: JLString); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function format(para1: jdouble; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function format(para1: jlong; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function getFormats(): Arr1JLObject; overload; virtual;
    function getLimits(): Arr1jdouble; overload; virtual;
    function hashCode(): jint; overload; virtual;
    class function nextDouble(para1: jdouble): jdouble; static; overload; final;
    class function nextDouble(para1: jdouble; para2: jboolean): jdouble; static; overload;
    function parse(para1: JLString; para2: JTParsePosition): JLNumber; overload; virtual;
    class function previousDouble(para1: jdouble): jdouble; static; overload; final;
    procedure setChoices(para1: Arr1jdouble; para2: Arr1JLString); overload; virtual;
    procedure setChoices(var para1: array of jdouble; var para2: array of JLString); overload; virtual;
    function toPattern(): JLString; overload; virtual;
  end;

  JTDecimalFormat = class external 'java.text' name 'DecimalFormat' (JTNumberFormat)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JTDecimalFormatSymbols); overload;
    procedure applyLocalizedPattern(para1: JLString); overload; virtual;
    procedure applyPattern(para1: JLString); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function format(para1: jdouble; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function format(para1: jlong; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function getDecimalFormatSymbols(): JTDecimalFormatSymbols; overload; virtual;
    function getCurrency(): JUCurrency; overload; virtual;
    function getGroupingSize(): jint; overload; virtual;
    function getMultiplier(): jint; overload; virtual;
    function getNegativePrefix(): JLString; overload; virtual;
    function getNegativeSuffix(): JLString; overload; virtual;
    function getPositivePrefix(): JLString; overload; virtual;
    function getPositiveSuffix(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isDecimalSeparatorAlwaysShown(): jboolean; overload; virtual;
    function isParseBigDecimal(): jboolean; overload; virtual;
    procedure setParseIntegerOnly(para1: jboolean); overload; virtual;
    function isParseIntegerOnly(): jboolean; overload; virtual;
    function parse(para1: JLString; para2: JTParsePosition): JLNumber; overload; virtual;
    procedure setDecimalFormatSymbols(para1: JTDecimalFormatSymbols); overload; virtual;
    procedure setCurrency(para1: JUCurrency); overload; virtual;
    procedure setDecimalSeparatorAlwaysShown(para1: jboolean); overload; virtual;
    procedure setGroupingSize(para1: jint); overload; virtual;
    procedure setGroupingUsed(para1: jboolean); overload; virtual;
    function isGroupingUsed(): jboolean; overload; virtual;
    procedure setMaximumFractionDigits(para1: jint); overload; virtual;
    procedure setMaximumIntegerDigits(para1: jint); overload; virtual;
    procedure setMinimumFractionDigits(para1: jint); overload; virtual;
    procedure setMinimumIntegerDigits(para1: jint); overload; virtual;
    procedure setMultiplier(para1: jint); overload; virtual;
    procedure setNegativePrefix(para1: JLString); overload; virtual;
    procedure setNegativeSuffix(para1: JLString); overload; virtual;
    procedure setPositivePrefix(para1: JLString); overload; virtual;
    procedure setPositiveSuffix(para1: JLString); overload; virtual;
    procedure setParseBigDecimal(para1: jboolean); overload; virtual;
    function toLocalizedPattern(): JLString; overload; virtual;
    function toPattern(): JLString; overload; virtual;
    function getRoundingMode(): JMRoundingMode; overload; virtual;
    procedure setRoundingMode(para1: JMRoundingMode); overload; virtual;
  end;

  ATMMockApplication = class external 'android.test.mock' name 'MockApplication' (AAApplication)
  public
    constructor create(); overload;
    procedure onCreate(); overload; virtual;
    procedure onTerminate(); overload; virtual;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
  end;

  AAAccessibilityService = class abstract external 'android.accessibilityservice' name 'AccessibilityService' (AAService)
  public
    const
      SERVICE_INTERFACE = 'android.accessibilityservice.AccessibilityService';
      SERVICE_META_DATA = 'android.accessibilityservice';
  public
    constructor create(); overload;
    procedure onAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual; abstract;
    procedure onInterrupt(); overload; virtual; abstract;
  strict protected
    procedure onServiceConnected(); overload; virtual;
  public
    procedure setServiceInfo(para1: AAAccessibilityServiceInfo); overload; virtual; final;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual; final;
  end;

  AAIntentService = class abstract external 'android.app' name 'IntentService' (AAService)
  public
    constructor create(para1: JLString); overload;
    procedure setIntentRedelivery(para1: jboolean); overload; virtual;
    procedure onCreate(); overload; virtual;
    procedure onStart(para1: ACIntent; para2: jint); overload; virtual;
    function onStartCommand(para1: ACIntent; para2: jint; para3: jint): jint; overload; virtual;
    procedure onDestroy(); overload; virtual;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual;
  strict protected
    procedure onHandleIntent(para1: ACIntent); overload; virtual; abstract;
  end;

  AIAbstractInputMethodService = class abstract external 'android.inputmethodservice' name 'AbstractInputMethodService' (AAService, AVKeyEvent.InnerCallback)
  public
    type
      InnerAbstractInputMethodSessionImpl = class;
      Arr1InnerAbstractInputMethodSessionImpl = array of InnerAbstractInputMethodSessionImpl;
      Arr2InnerAbstractInputMethodSessionImpl = array of Arr1InnerAbstractInputMethodSessionImpl;
      Arr3InnerAbstractInputMethodSessionImpl = array of Arr2InnerAbstractInputMethodSessionImpl;
      InnerAbstractInputMethodImpl = class;
      Arr1InnerAbstractInputMethodImpl = array of InnerAbstractInputMethodImpl;
      Arr2InnerAbstractInputMethodImpl = array of Arr1InnerAbstractInputMethodImpl;
      Arr3InnerAbstractInputMethodImpl = array of Arr2InnerAbstractInputMethodImpl;
      InnerAbstractInputMethodSessionImpl = class abstract external 'android.inputmethodservice' name 'AbstractInputMethodSessionImpl' 
      end;

      InnerAbstractInputMethodImpl = class abstract external 'android.inputmethodservice' name 'AbstractInputMethodImpl' 
      end;

  public
    constructor create(); overload;
    function getKeyDispatcherState(): AVKeyEvent.InnerDispatcherState; overload; virtual;
    function onCreateInputMethodInterface(): AIAbstractInputMethodService.InnerAbstractInputMethodImpl; overload; virtual; abstract;
    function onCreateInputMethodSessionInterface(): AIAbstractInputMethodService.InnerAbstractInputMethodSessionImpl; overload; virtual; abstract;
  strict protected
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; para3: Arr1JLString); overload; virtual;
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; var para3: array of JLString); overload; virtual;
  public
    function onBind(para1: ACIntent): AOIBinder; overload; virtual; final;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  end;

  ANVpnService = class external 'android.net' name 'VpnService' (AAService)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.net' name 'Builder' 
      end;

  public
    const
      SERVICE_INTERFACE = 'android.net.VpnService';
  public
    constructor create(); overload;
    class function prepare(para1: ACContext): ACIntent; static; overload;
    function protect(para1: jint): jboolean; overload; virtual;
    function protect(para1: JNSocket): jboolean; overload; virtual;
    function protect(para1: JNDatagramSocket): jboolean; overload; virtual;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual;
    procedure onRevoke(); overload; virtual;
  end;

  ASTSpellCheckerService = class abstract external 'android.service.textservice' name 'SpellCheckerService' (AAService)
  public
    type
      InnerSession = class;
      Arr1InnerSession = array of InnerSession;
      Arr2InnerSession = array of Arr1InnerSession;
      Arr3InnerSession = array of Arr2InnerSession;
      InnerSession = class abstract external 'android.service.textservice' name 'Session' (JLObject)
      public
        constructor create(); overload;
        procedure onCreate(); overload; virtual; abstract;
        function onGetSuggestions(para1: AVTTextInfo; para2: jint): AVTSuggestionsInfo; overload; virtual; abstract;
        function onGetSuggestionsMultiple(para1: Arr1AVTTextInfo; para2: jint; para3: jboolean): Arr1AVTSuggestionsInfo; overload; virtual;
        function onGetSuggestionsMultiple(var para1: array of AVTTextInfo; para2: jint; para3: jboolean): Arr1AVTSuggestionsInfo; overload; virtual;
        procedure onCancel(); overload; virtual;
        function getLocale(): JLString; overload; virtual;
        function getBundle(): AOBundle; overload; virtual;
      end;

  public
    const
      SERVICE_INTERFACE = 'android.service.textservice.SpellCheckerService';
  public
    constructor create(); overload;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual; final;
    function createSession(): ASTSpellCheckerService.InnerSession; overload; virtual; abstract;
  end;

  ASWWallpaperService = class abstract external 'android.service.wallpaper' name 'WallpaperService' (AAService)
  public
    type
      InnerEngine = class;
      Arr1InnerEngine = array of InnerEngine;
      Arr2InnerEngine = array of Arr1InnerEngine;
      Arr3InnerEngine = array of Arr2InnerEngine;
      InnerEngine = class external 'android.service.wallpaper' name 'Engine' 
      end;

  public
    const
      SERVICE_INTERFACE = 'android.service.wallpaper.WallpaperService';
      SERVICE_META_DATA = 'android.service.wallpaper';
  public
    constructor create(); overload;
    procedure onCreate(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual; final;
    function onCreateEngine(): ASWWallpaperService.InnerEngine; overload; virtual; abstract;
  strict protected
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; para3: Arr1JLString); overload; virtual;
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; var para3: array of JLString); overload; virtual;
  end;

  ASRecognitionService = class abstract external 'android.speech' name 'RecognitionService' (AAService)
  public
    type
      InnerCallback = class;
      Arr1InnerCallback = array of InnerCallback;
      Arr2InnerCallback = array of Arr1InnerCallback;
      Arr3InnerCallback = array of Arr2InnerCallback;
      InnerCallback = class external 'android.speech' name 'Callback' 
      end;

  public
    const
      SERVICE_INTERFACE = 'android.speech.RecognitionService';
      SERVICE_META_DATA = 'android.speech';
  public
    constructor create(); overload;
  strict protected
    procedure onStartListening(para1: ACIntent; para2: ASRecognitionService.InnerCallback); overload; virtual; abstract;
    procedure onCancel(para1: ASRecognitionService.InnerCallback); overload; virtual; abstract;
    procedure onStopListening(para1: ASRecognitionService.InnerCallback); overload; virtual; abstract;
  public
    function onBind(para1: ACIntent): AOIBinder; overload; virtual; final;
    procedure onDestroy(); overload; virtual;
  end;

  ASTTextToSpeechService = class abstract external 'android.speech.tts' name 'TextToSpeechService' (AAService)
  public
    constructor create(); overload;
    procedure onCreate(); overload; virtual;
    procedure onDestroy(); overload; virtual;
  strict protected
    function onIsLanguageAvailable(para1: JLString; para2: JLString; para3: JLString): jint; overload; virtual; abstract;
    function onGetLanguage(): Arr1JLString; overload; virtual; abstract;
    function onLoadLanguage(para1: JLString; para2: JLString; para3: JLString): jint; overload; virtual; abstract;
    procedure onStop(); overload; virtual; abstract;
    procedure onSynthesizeText(para1: ASTSynthesisRequest; para2: ASTSynthesisCallback); overload; virtual; abstract;
  public
    function onBind(para1: ACIntent): AOIBinder; overload; virtual;
  end;

  AWRemoteViewsService = class abstract external 'android.widget' name 'RemoteViewsService' (AAService)
  public
    type
      InnerRemoteViewsFactory = interface;
      Arr1InnerRemoteViewsFactory = array of InnerRemoteViewsFactory;
      Arr2InnerRemoteViewsFactory = array of Arr1InnerRemoteViewsFactory;
      Arr3InnerRemoteViewsFactory = array of Arr2InnerRemoteViewsFactory;
      InnerRemoteViewsFactory = interface external 'android.widget' name 'RemoteViewsFactory' 
        procedure onCreate(); overload;
        procedure onDataSetChanged(); overload;
        procedure onDestroy(); overload;
        function getCount(): jint; overload;
        function getViewAt(para1: jint): AWRemoteViews; overload;
        function getLoadingView(): AWRemoteViews; overload;
        function getViewTypeCount(): jint; overload;
        function getItemId(para1: jint): jlong; overload;
        function hasStableIds(): jboolean; overload;
      end;

  public
    constructor create(); overload;
    function onBind(para1: ACIntent): AOIBinder; overload; virtual;
    function onGetViewFactory(para1: ACIntent): AWRemoteViewsService.InnerRemoteViewsFactory; overload; virtual; abstract;
  end;

  AABBackupAgentHelper = class external 'android.app.backup' name 'BackupAgentHelper' (AABBackupAgent)
  public
    constructor create(); overload;
    procedure onBackup(para1: AOParcelFileDescriptor; para2: AABBackupDataOutput; para3: AOParcelFileDescriptor); overload; virtual;  // throws java.io.IOException
    procedure onRestore(para1: AABBackupDataInput; para2: jint; para3: AOParcelFileDescriptor); overload; virtual;  // throws java.io.IOException
    procedure addHelper(para1: JLString; para2: AABBackupHelper); overload; virtual;
  end;

  AGDAnimationDrawable = class external 'android.graphics.drawable' name 'AnimationDrawable' (AGDDrawableContainer, JLRunnable, AGDAnimatable)
  public
    constructor create(); overload;
    function setVisible(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
    function isRunning(): jboolean; overload; virtual;
    procedure run(); overload; virtual;
    procedure unscheduleSelf(para1: JLRunnable); overload; virtual;
    function getNumberOfFrames(): jint; overload; virtual;
    function getFrame(para1: jint): AGDDrawable; overload; virtual;
    function getDuration(para1: jint): jint; overload; virtual;
    function isOneShot(): jboolean; overload; virtual;
    procedure setOneShot(para1: jboolean); overload; virtual;
    procedure addFrame(para1: AGDDrawable; para2: jint); overload; virtual;
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDLevelListDrawable = class external 'android.graphics.drawable' name 'LevelListDrawable' (AGDDrawableContainer)
  public
    constructor create(); overload;
    procedure addLevel(para1: jint; para2: jint; para3: AGDDrawable); overload; virtual;
  strict protected
    function onLevelChange(para1: jint): jboolean; overload; virtual;
  public
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDStateListDrawable = class external 'android.graphics.drawable' name 'StateListDrawable' (AGDDrawableContainer)
  public
    constructor create(); overload;
    procedure addState(para1: Arr1jint; para2: AGDDrawable); overload; virtual;
    procedure addState(var para1: array of jint; para2: AGDDrawable); overload; virtual;
    function isStateful(): jboolean; overload; virtual;
  strict protected
    function onStateChange(para1: Arr1jint): jboolean; overload; virtual;
    function onStateChange(var para1: array of jint): jboolean; overload; virtual;
  public
    procedure inflate(para1: ACRResources; para2: OXVXmlPullParser; para3: AUAttributeSet); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function mutate(): AGDDrawable; overload; virtual;
  end;

  AGDTransitionDrawable = class external 'android.graphics.drawable' name 'TransitionDrawable' (AGDLayerDrawable, AGDDrawable.InnerCallback)
  public
    constructor create(para1: Arr1AGDDrawable); overload;
    constructor create(const para1: array of AGDDrawable); overload;
    procedure startTransition(para1: jint); overload; virtual;
    procedure resetTransition(); overload; virtual;
    procedure reverseTransition(para1: jint); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    procedure setCrossFadeEnabled(para1: jboolean); overload; virtual;
    function isCrossFadeEnabled(): jboolean; overload; virtual;
  end;

  AGDPaintDrawable = class external 'android.graphics.drawable' name 'PaintDrawable' (AGDShapeDrawable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure setCornerRadius(para1: jfloat); overload; virtual;
    procedure setCornerRadii(para1: Arr1jfloat); overload; virtual;
    procedure setCornerRadii(var para1: array of jfloat); overload; virtual;
  strict protected
    function inflateTag(para1: JLString; para2: ACRResources; para3: OXVXmlPullParser; para4: AUAttributeSet): jboolean; overload; virtual;
  end;

  AAActivity = class external 'android.app' name 'Activity' (AVContextThemeWrapper, AVLayoutInflater.InnerFactory2, AVWindow.InnerCallback, AVKeyEvent.InnerCallback, AVView.InnerOnCreateContextMenuListener, ACComponentCallbacks2)
  public
    const
      RESULT_CANCELED = 0;
      RESULT_OK = -1;
      RESULT_FIRST_USER = 1;
  strict protected
    final class var
      fFOCUSED_STATE_SET: Arr1jint; external name 'FOCUSED_STATE_SET';
  public
    const
      DEFAULT_KEYS_DISABLE = 0;
      DEFAULT_KEYS_DIALER = 1;
      DEFAULT_KEYS_SHORTCUT = 2;
      DEFAULT_KEYS_SEARCH_LOCAL = 3;
      DEFAULT_KEYS_SEARCH_GLOBAL = 4;
  public
    constructor create(); overload;
    function getIntent(): ACIntent; overload; virtual;
    procedure setIntent(para1: ACIntent); overload; virtual;
    function getApplication(): AAApplication; overload; virtual; final;
    function isChild(): jboolean; overload; virtual; final;
    function getParent(): AAActivity; overload; virtual; final;
    function getWindowManager(): AVWindowManager; overload; virtual;
    function getWindow(): AVWindow; overload; virtual;
    function getLoaderManager(): AALoaderManager; overload; virtual;
    function getCurrentFocus(): AVView; overload; virtual;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
    procedure onPostCreate(para1: AOBundle); overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onRestart(); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure onPostResume(); overload; virtual;
    procedure onNewIntent(para1: ACIntent); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onUserLeaveHint(); overload; virtual;
  public
    function onCreateThumbnail(para1: AGBitmap; para2: AGCanvas): jboolean; overload; virtual;
    function onCreateDescription(): JLCharSequence; overload; virtual;
  strict protected
    procedure onStop(); overload; virtual;
    procedure onDestroy(); overload; virtual;
  public
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    function getChangingConfigurations(): jint; overload; virtual;
    function getLastNonConfigurationInstance(): JLObject; overload; virtual;
    function onRetainNonConfigurationInstance(): JLObject; overload; virtual;
    procedure onLowMemory(); overload; virtual;
    procedure onTrimMemory(para1: jint); overload; virtual;
    function getFragmentManager(): AAFragmentManager; overload; virtual;
    procedure onAttachFragment(para1: AAFragment); overload; virtual;
    function managedQuery(para1: ANUri; para2: Arr1JLString; para3: JLString; para4: Arr1JLString; para5: JLString): ADCursor; overload; virtual; final;
    function managedQuery(para1: ANUri; var para2: array of JLString; para3: JLString; var para4: array of JLString; para5: JLString): ADCursor; overload; virtual; final;
    procedure startManagingCursor(para1: ADCursor); overload; virtual;
    procedure stopManagingCursor(para1: ADCursor); overload; virtual;
    function findViewById(para1: jint): AVView; overload; virtual;
    function getActionBar(): AAActionBar; overload; virtual;
    procedure setContentView(para1: jint); overload; virtual;
    procedure setContentView(para1: AVView); overload; virtual;
    procedure setContentView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addContentView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure setFinishOnTouchOutside(para1: jboolean); overload; virtual;
    procedure setDefaultKeyMode(para1: jint); overload; virtual; final;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyLongPress(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    procedure onBackPressed(); overload; virtual;
    function onKeyShortcut(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure onUserInteraction(); overload; virtual;
    procedure onWindowAttributesChanged(para1: AVWindowManager.InnerLayoutParams); overload; virtual;
    procedure onContentChanged(); overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    function hasWindowFocus(): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchKeyShortcutEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    function onCreatePanelView(para1: jint): AVView; overload; virtual;
    function onCreatePanelMenu(para1: jint; para2: AVMenu): jboolean; overload; virtual;
    function onPreparePanel(para1: jint; para2: AVView; para3: AVMenu): jboolean; overload; virtual;
    function onMenuOpened(para1: jint; para2: AVMenu): jboolean; overload; virtual;
    function onMenuItemSelected(para1: jint; para2: AVMenuItem): jboolean; overload; virtual;
    procedure onPanelClosed(para1: jint; para2: AVMenu); overload; virtual;
    procedure invalidateOptionsMenu(); overload; virtual;
    function onCreateOptionsMenu(para1: AVMenu): jboolean; overload; virtual;
    function onPrepareOptionsMenu(para1: AVMenu): jboolean; overload; virtual;
    function onOptionsItemSelected(para1: AVMenuItem): jboolean; overload; virtual;
    procedure onOptionsMenuClosed(para1: AVMenu); overload; virtual;
    procedure openOptionsMenu(); overload; virtual;
    procedure closeOptionsMenu(); overload; virtual;
    procedure onCreateContextMenu(para1: AVContextMenu; para2: AVView; para3: AVContextMenu.InnerContextMenuInfo); overload; virtual;
    procedure registerForContextMenu(para1: AVView); overload; virtual;
    procedure unregisterForContextMenu(para1: AVView); overload; virtual;
    procedure openContextMenu(para1: AVView); overload; virtual;
    procedure closeContextMenu(); overload; virtual;
    function onContextItemSelected(para1: AVMenuItem): jboolean; overload; virtual;
    procedure onContextMenuClosed(para1: AVMenu); overload; virtual;
  strict protected
    function onCreateDialog(para1: jint): AADialog; overload; virtual;
    function onCreateDialog(para1: jint; para2: AOBundle): AADialog; overload; virtual;
    procedure onPrepareDialog(para1: jint; para2: AADialog); overload; virtual;
    procedure onPrepareDialog(para1: jint; para2: AADialog; para3: AOBundle); overload; virtual;
  public
    procedure showDialog(para1: jint); overload; virtual; final;
    function showDialog(para1: jint; para2: AOBundle): jboolean; overload; virtual; final;
    procedure dismissDialog(para1: jint); overload; virtual; final;
    procedure removeDialog(para1: jint); overload; virtual; final;
    function onSearchRequested(): jboolean; overload; virtual;
    procedure startSearch(para1: JLString; para2: jboolean; para3: AOBundle; para4: jboolean); overload; virtual;
    procedure triggerSearch(para1: JLString; para2: AOBundle); overload; virtual;
    procedure takeKeyEvents(para1: jboolean); overload; virtual;
    function requestWindowFeature(para1: jint): jboolean; overload; virtual; final;
    procedure setFeatureDrawableResource(para1: jint; para2: jint); overload; virtual; final;
    procedure setFeatureDrawableUri(para1: jint; para2: ANUri); overload; virtual; final;
    procedure setFeatureDrawable(para1: jint; para2: AGDDrawable); overload; virtual; final;
    procedure setFeatureDrawableAlpha(para1: jint; para2: jint); overload; virtual; final;
    function getLayoutInflater(): AVLayoutInflater; overload; virtual;
    function getMenuInflater(): AVMenuInflater; overload; virtual;
  strict protected
    procedure onApplyThemeResource(para1: ACRResources.InnerTheme; para2: jint; para3: jboolean); overload; virtual;
  public
    procedure startActivityForResult(para1: ACIntent; para2: jint); overload; virtual;
    procedure startIntentSenderForResult(para1: ACIntentSender; para2: jint; para3: ACIntent; para4: jint; para5: jint; para6: jint); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    procedure startActivity(para1: ACIntent); overload; virtual;
    procedure startActivities(para1: Arr1ACIntent); overload; virtual;
    procedure startActivities(var para1: array of ACIntent); overload; virtual;
    procedure startIntentSender(para1: ACIntentSender; para2: ACIntent; para3: jint; para4: jint; para5: jint); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    function startActivityIfNeeded(para1: ACIntent; para2: jint): jboolean; overload; virtual;
    function startNextMatchingActivity(para1: ACIntent): jboolean; overload; virtual;
    procedure startActivityFromChild(para1: AAActivity; para2: ACIntent; para3: jint); overload; virtual;
    procedure startActivityFromFragment(para1: AAFragment; para2: ACIntent; para3: jint); overload; virtual;
    procedure startIntentSenderFromChild(para1: AAActivity; para2: ACIntentSender; para3: jint; para4: ACIntent; para5: jint; para6: jint; para7: jint); overload; virtual;  // throws android.content.IntentSender$SendIntentException
    procedure overridePendingTransition(para1: jint; para2: jint); overload; virtual;
    procedure setResult(para1: jint); overload; virtual; final;
    procedure setResult(para1: jint; para2: ACIntent); overload; virtual; final;
    function getCallingPackage(): JLString; overload; virtual;
    function getCallingActivity(): ACComponentName; overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    function isFinishing(): jboolean; overload; virtual;
    function isChangingConfigurations(): jboolean; overload; virtual;
    procedure recreate(); overload; virtual;
    procedure finish(); overload; virtual;
    procedure finishFromChild(para1: AAActivity); overload; virtual;
    procedure finishActivity(para1: jint); overload; virtual;
    procedure finishActivityFromChild(para1: AAActivity; para2: jint); overload; virtual;
  strict protected
    procedure onActivityResult(para1: jint; para2: jint; para3: ACIntent); overload; virtual;
  public
    function createPendingResult(para1: jint; para2: ACIntent; para3: jint): AAPendingIntent; overload; virtual;
    procedure setRequestedOrientation(para1: jint); overload; virtual;
    function getRequestedOrientation(): jint; overload; virtual;
    function getTaskId(): jint; overload; virtual;
    function isTaskRoot(): jboolean; overload; virtual;
    function moveTaskToBack(para1: jboolean): jboolean; overload; virtual;
    function getLocalClassName(): JLString; overload; virtual;
    function getComponentName(): ACComponentName; overload; virtual;
    function getPreferences(para1: jint): ACSharedPreferences; overload; virtual;
    function getSystemService(para1: JLString): JLObject; overload; virtual;
    procedure setTitle(para1: JLCharSequence); overload; virtual;
    procedure setTitle(para1: jint); overload; virtual;
    procedure setTitleColor(para1: jint); overload; virtual;
    function getTitle(): JLCharSequence; overload; virtual; final;
    function getTitleColor(): jint; overload; virtual; final;
  strict protected
    procedure onTitleChanged(para1: JLCharSequence; para2: jint); overload; virtual;
    procedure onChildTitleChanged(para1: AAActivity; para2: JLCharSequence); overload; virtual;
  public
    procedure setProgressBarVisibility(para1: jboolean); overload; virtual; final;
    procedure setProgressBarIndeterminateVisibility(para1: jboolean); overload; virtual; final;
    procedure setProgressBarIndeterminate(para1: jboolean); overload; virtual; final;
    procedure setProgress(para1: jint); overload; virtual; final;
    procedure setSecondaryProgress(para1: jint); overload; virtual; final;
    procedure setVolumeControlStream(para1: jint); overload; virtual; final;
    function getVolumeControlStream(): jint; overload; virtual; final;
    procedure runOnUiThread(para1: JLRunnable); overload; virtual; final;
    function onCreateView(para1: JLString; para2: ACContext; para3: AUAttributeSet): AVView; overload; virtual;
    function onCreateView(para1: AVView; para2: JLString; para3: ACContext; para4: AUAttributeSet): AVView; overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual;
    function startActionMode(para1: AVActionMode.InnerCallback): AVActionMode; overload; virtual;
    function onWindowStartingActionMode(para1: AVActionMode.InnerCallback): AVActionMode; overload; virtual;
    procedure onActionModeStarted(para1: AVActionMode); overload; virtual;
    procedure onActionModeFinished(para1: AVActionMode); overload; virtual;
  end;

  AADialog = class external 'android.app' name 'Dialog' (JLObject, ACDialogInterface, AVWindow.InnerCallback, AVKeyEvent.InnerCallback, AVView.InnerOnCreateContextMenuListener)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
  strict protected
    constructor create(para1: ACContext; para2: jboolean; para3: ACDialogInterface.InnerOnCancelListener); overload;
  public
    function getContext(): ACContext; overload; virtual; final;
    function getActionBar(): AAActionBar; overload; virtual;
    procedure setOwnerActivity(para1: AAActivity); overload; virtual; final;
    function getOwnerActivity(): AAActivity; overload; virtual; final;
    function isShowing(): jboolean; overload; virtual;
    procedure show(); overload; virtual;
    procedure hide(); overload; virtual;
    procedure dismiss(); overload; virtual;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onStop(); overload; virtual;
  public
    function onSaveInstanceState(): AOBundle; overload; virtual;
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
    function getWindow(): AVWindow; overload; virtual;
    function getCurrentFocus(): AVView; overload; virtual;
    function findViewById(para1: jint): AVView; overload; virtual;
    procedure setContentView(para1: jint); overload; virtual;
    procedure setContentView(para1: AVView); overload; virtual;
    procedure setContentView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addContentView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure setTitle(para1: JLCharSequence); overload; virtual;
    procedure setTitle(para1: jint); overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyLongPress(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    procedure onBackPressed(); overload; virtual;
    function onKeyShortcut(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure onWindowAttributesChanged(para1: AVWindowManager.InnerLayoutParams); overload; virtual;
    procedure onContentChanged(); overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchKeyShortcutEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    function onCreatePanelView(para1: jint): AVView; overload; virtual;
    function onCreatePanelMenu(para1: jint; para2: AVMenu): jboolean; overload; virtual;
    function onPreparePanel(para1: jint; para2: AVView; para3: AVMenu): jboolean; overload; virtual;
    function onMenuOpened(para1: jint; para2: AVMenu): jboolean; overload; virtual;
    function onMenuItemSelected(para1: jint; para2: AVMenuItem): jboolean; overload; virtual;
    procedure onPanelClosed(para1: jint; para2: AVMenu); overload; virtual;
    function onCreateOptionsMenu(para1: AVMenu): jboolean; overload; virtual;
    function onPrepareOptionsMenu(para1: AVMenu): jboolean; overload; virtual;
    function onOptionsItemSelected(para1: AVMenuItem): jboolean; overload; virtual;
    procedure onOptionsMenuClosed(para1: AVMenu); overload; virtual;
    procedure openOptionsMenu(); overload; virtual;
    procedure closeOptionsMenu(); overload; virtual;
    procedure invalidateOptionsMenu(); overload; virtual;
    procedure onCreateContextMenu(para1: AVContextMenu; para2: AVView; para3: AVContextMenu.InnerContextMenuInfo); overload; virtual;
    procedure registerForContextMenu(para1: AVView); overload; virtual;
    procedure unregisterForContextMenu(para1: AVView); overload; virtual;
    procedure openContextMenu(para1: AVView); overload; virtual;
    function onContextItemSelected(para1: AVMenuItem): jboolean; overload; virtual;
    procedure onContextMenuClosed(para1: AVMenu); overload; virtual;
    function onSearchRequested(): jboolean; overload; virtual;
    function onWindowStartingActionMode(para1: AVActionMode.InnerCallback): AVActionMode; overload; virtual;
    procedure onActionModeStarted(para1: AVActionMode); overload; virtual;
    procedure onActionModeFinished(para1: AVActionMode); overload; virtual;
    procedure takeKeyEvents(para1: jboolean); overload; virtual;
    function requestWindowFeature(para1: jint): jboolean; overload; virtual; final;
    procedure setFeatureDrawableResource(para1: jint; para2: jint); overload; virtual; final;
    procedure setFeatureDrawableUri(para1: jint; para2: ANUri); overload; virtual; final;
    procedure setFeatureDrawable(para1: jint; para2: AGDDrawable); overload; virtual; final;
    procedure setFeatureDrawableAlpha(para1: jint; para2: jint); overload; virtual; final;
    function getLayoutInflater(): AVLayoutInflater; overload; virtual;
    procedure setCancelable(para1: jboolean); overload; virtual;
    procedure setCanceledOnTouchOutside(para1: jboolean); overload; virtual;
    procedure cancel(); overload; virtual;
    procedure setOnCancelListener(para1: ACDialogInterface.InnerOnCancelListener); overload; virtual;
    procedure setCancelMessage(para1: AOMessage); overload; virtual;
    procedure setOnDismissListener(para1: ACDialogInterface.InnerOnDismissListener); overload; virtual;
    procedure setOnShowListener(para1: ACDialogInterface.InnerOnShowListener); overload; virtual;
    procedure setDismissMessage(para1: AOMessage); overload; virtual;
    procedure setVolumeControlStream(para1: jint); overload; virtual; final;
    function getVolumeControlStream(): jint; overload; virtual; final;
    procedure setOnKeyListener(para1: ACDialogInterface.InnerOnKeyListener); overload; virtual;
  end;

  AAFragment = class external 'android.app' name 'Fragment' (JLObject, ACComponentCallbacks2, AVView.InnerOnCreateContextMenuListener)
  public
    type
      InnerInstantiationException = class;
      Arr1InnerInstantiationException = array of InnerInstantiationException;
      Arr2InnerInstantiationException = array of Arr1InnerInstantiationException;
      Arr3InnerInstantiationException = array of Arr2InnerInstantiationException;
      InnerSavedState = class;
      Arr1InnerSavedState = array of InnerSavedState;
      Arr2InnerSavedState = array of Arr1InnerSavedState;
      Arr3InnerSavedState = array of Arr2InnerSavedState;
      InnerInstantiationException = class external 'android.app' name 'InstantiationException' (AUAndroidRuntimeException)
      public
        constructor create(para1: JLString; para2: JLException); overload;
      end;

      InnerSavedState = class external 'android.app' name 'SavedState' (JLObject, AOParcelable)
      public
        final class var
          fCREATOR: AOParcelable.InnerClassLoaderCreator; external name 'CREATOR';
      public
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
      end;

  public
    constructor create(); overload;
    class function instantiate(para1: ACContext; para2: JLString): AAFragment; static; overload;
    class function instantiate(para1: ACContext; para2: JLString; para3: AOBundle): AAFragment; static; overload;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function getId(): jint; overload; virtual; final;
    function getTag(): JLString; overload; virtual; final;
    procedure setArguments(para1: AOBundle); overload; virtual;
    function getArguments(): AOBundle; overload; virtual; final;
    procedure setInitialSavedState(para1: AAFragment.InnerSavedState); overload; virtual;
    procedure setTargetFragment(para1: AAFragment; para2: jint); overload; virtual;
    function getTargetFragment(): AAFragment; overload; virtual; final;
    function getTargetRequestCode(): jint; overload; virtual; final;
    function getActivity(): AAActivity; overload; virtual; final;
    function getResources(): ACRResources; overload; virtual; final;
    function getText(para1: jint): JLCharSequence; overload; virtual; final;
    function getString(para1: jint): JLString; overload; virtual; final;
    function getString(para1: jint; para2: Arr1JLObject): JLString; overload; virtual; final;
    function getString(para1: jint; const para2: array of JLObject): JLString; overload; virtual; final;
    function getFragmentManager(): AAFragmentManager; overload; virtual; final;
    function isAdded(): jboolean; overload; virtual; final;
    function isDetached(): jboolean; overload; virtual; final;
    function isRemoving(): jboolean; overload; virtual; final;
    function isInLayout(): jboolean; overload; virtual; final;
    function isResumed(): jboolean; overload; virtual; final;
    function isVisible(): jboolean; overload; virtual; final;
    function isHidden(): jboolean; overload; virtual; final;
    procedure onHiddenChanged(para1: jboolean); overload; virtual;
    procedure setRetainInstance(para1: jboolean); overload; virtual;
    function getRetainInstance(): jboolean; overload; virtual; final;
    procedure setHasOptionsMenu(para1: jboolean); overload; virtual;
    procedure setMenuVisibility(para1: jboolean); overload; virtual;
    function getLoaderManager(): AALoaderManager; overload; virtual;
    procedure startActivity(para1: ACIntent); overload; virtual;
    procedure startActivityForResult(para1: ACIntent; para2: jint); overload; virtual;
    procedure onActivityResult(para1: jint; para2: jint; para3: ACIntent); overload; virtual;
    procedure onInflate(para1: AUAttributeSet; para2: AOBundle); overload; virtual;
    procedure onInflate(para1: AAActivity; para2: AUAttributeSet; para3: AOBundle); overload; virtual;
    procedure onAttach(para1: AAActivity); overload; virtual;
    function onCreateAnimator(para1: jint; para2: jboolean; para3: jint): AAAnimator; overload; virtual;
    procedure onCreate(para1: AOBundle); overload; virtual;
    procedure onViewCreated(para1: AVView; para2: AOBundle); overload; virtual;
    function onCreateView(para1: AVLayoutInflater; para2: AVViewGroup; para3: AOBundle): AVView; overload; virtual;
    function getView(): AVView; overload; virtual;
    procedure onActivityCreated(para1: AOBundle); overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onStop(); overload; virtual;
    procedure onLowMemory(); overload; virtual;
    procedure onTrimMemory(para1: jint); overload; virtual;
    procedure onDestroyView(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onDetach(); overload; virtual;
    procedure onCreateOptionsMenu(para1: AVMenu; para2: AVMenuInflater); overload; virtual;
    procedure onPrepareOptionsMenu(para1: AVMenu); overload; virtual;
    procedure onDestroyOptionsMenu(); overload; virtual;
    function onOptionsItemSelected(para1: AVMenuItem): jboolean; overload; virtual;
    procedure onOptionsMenuClosed(para1: AVMenu); overload; virtual;
    procedure onCreateContextMenu(para1: AVContextMenu; para2: AVView; para3: AVContextMenu.InnerContextMenuInfo); overload; virtual;
    procedure registerForContextMenu(para1: AVView); overload; virtual;
    procedure unregisterForContextMenu(para1: AVView); overload; virtual;
    function onContextItemSelected(para1: AVMenuItem): jboolean; overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual;
  end;

  AIKeyboardView = class external 'android.inputmethodservice' name 'KeyboardView' (AVView, AVView.InnerOnClickListener)
  public
    type
      InnerOnKeyboardActionListener = interface;
      Arr1InnerOnKeyboardActionListener = array of InnerOnKeyboardActionListener;
      Arr2InnerOnKeyboardActionListener = array of Arr1InnerOnKeyboardActionListener;
      Arr3InnerOnKeyboardActionListener = array of Arr2InnerOnKeyboardActionListener;
      InnerOnKeyboardActionListener = interface external 'android.inputmethodservice' name 'OnKeyboardActionListener' 
        procedure onPress(para1: jint); overload;
        procedure onRelease(para1: jint); overload;
        procedure onKey(para1: jint; para2: Arr1jint); overload;
        procedure onKey(para1: jint; var para2: array of jint); overload;
        procedure onText(para1: JLCharSequence); overload;
        procedure swipeLeft(); overload;
        procedure swipeRight(); overload;
        procedure swipeDown(); overload;
        procedure swipeUp(); overload;
      end;

  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setOnKeyboardActionListener(para1: AIKeyboardView.InnerOnKeyboardActionListener); overload; virtual;
  strict protected
    function getOnKeyboardActionListener(): AIKeyboardView.InnerOnKeyboardActionListener; overload; virtual;
  public
    procedure setKeyboard(para1: AIKeyboard); overload; virtual;
    function getKeyboard(): AIKeyboard; overload; virtual;
    function setShifted(para1: jboolean): jboolean; overload; virtual;
    function isShifted(): jboolean; overload; virtual;
    procedure setPreviewEnabled(para1: jboolean); overload; virtual;
    function isPreviewEnabled(): jboolean; overload; virtual;
    procedure setVerticalCorrection(para1: jint); overload; virtual;
    procedure setPopupParent(para1: AVView); overload; virtual;
    procedure setPopupOffset(para1: jint; para2: jint); overload; virtual;
    procedure setProximityCorrectionEnabled(para1: jboolean); overload; virtual;
    function isProximityCorrectionEnabled(): jboolean; overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
    procedure invalidateAllKeys(); overload; virtual;
    procedure invalidateKey(para1: jint); overload; virtual;
  strict protected
    function onLongPress(para1: AIKeyboard.InnerKey): jboolean; overload; virtual;
  public
    function onHoverEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    procedure swipeRight(); overload; virtual;
    procedure swipeLeft(); overload; virtual;
    procedure swipeUp(); overload; virtual;
    procedure swipeDown(); overload; virtual;
  public
    procedure closing(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    function handleBack(): jboolean; overload; virtual;
    procedure onClick(para1: AVView); overload; virtual;
  end;

  AVSurfaceView = class external 'android.view' name 'SurfaceView' (AVView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getHolder(): AVSurfaceHolder; overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onWindowVisibilityChanged(para1: jint); overload; virtual;
  public
    procedure setVisibility(para1: jint); overload; virtual;
  strict protected
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function gatherTransparentRegion(para1: AGRegion): jboolean; overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
  strict protected
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
  public
    procedure setZOrderMediaOverlay(para1: jboolean); overload; virtual;
    procedure setZOrderOnTop(para1: jboolean); overload; virtual;
  end;

  AVTextureView = class external 'android.view' name 'TextureView' (AVView)
  public
    type
      InnerSurfaceTextureListener = interface;
      Arr1InnerSurfaceTextureListener = array of InnerSurfaceTextureListener;
      Arr2InnerSurfaceTextureListener = array of Arr1InnerSurfaceTextureListener;
      Arr3InnerSurfaceTextureListener = array of Arr2InnerSurfaceTextureListener;
      InnerSurfaceTextureListener = interface external 'android.view' name 'SurfaceTextureListener' 
        procedure onSurfaceTextureAvailable(para1: AGSurfaceTexture; para2: jint; para3: jint); overload;
        procedure onSurfaceTextureSizeChanged(para1: AGSurfaceTexture; para2: jint; para3: jint); overload;
        function onSurfaceTextureDestroyed(para1: AGSurfaceTexture): jboolean; overload;
        procedure onSurfaceTextureUpdated(para1: AGSurfaceTexture); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function isOpaque(): jboolean; overload; virtual;
    procedure setOpaque(para1: jboolean); overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    procedure setLayerType(para1: jint; para2: AGPaint); overload; virtual;
    function getLayerType(): jint; overload; virtual;
    procedure buildLayer(); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual; final;
  strict protected
    procedure onDraw(para1: AGCanvas); overload; virtual; final;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
  public
    procedure setTransform(para1: AGMatrix); overload; virtual;
    function getTransform(para1: AGMatrix): AGMatrix; overload; virtual;
    function getBitmap(): AGBitmap; overload; virtual;
    function getBitmap(para1: jint; para2: jint): AGBitmap; overload; virtual;
    function getBitmap(para1: AGBitmap): AGBitmap; overload; virtual;
    function isAvailable(): jboolean; overload; virtual;
    function lockCanvas(): AGCanvas; overload; virtual;
    function lockCanvas(para1: AGRect): AGCanvas; overload; virtual;
    procedure unlockCanvasAndPost(para1: AGCanvas); overload; virtual;
    function getSurfaceTexture(): AGSurfaceTexture; overload; virtual;
    function getSurfaceTextureListener(): AVTextureView.InnerSurfaceTextureListener; overload; virtual;
    procedure setSurfaceTextureListener(para1: AVTextureView.InnerSurfaceTextureListener); overload; virtual;
  end;

  AVViewGroup = class abstract external 'android.view' name 'ViewGroup' (AVView, AVViewParent, AVViewManager)
  public
    type
      InnerOnHierarchyChangeListener = interface;
      Arr1InnerOnHierarchyChangeListener = array of InnerOnHierarchyChangeListener;
      Arr2InnerOnHierarchyChangeListener = array of Arr1InnerOnHierarchyChangeListener;
      Arr3InnerOnHierarchyChangeListener = array of Arr2InnerOnHierarchyChangeListener;
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerMarginLayoutParams = class;
      Arr1InnerMarginLayoutParams = array of InnerMarginLayoutParams;
      Arr2InnerMarginLayoutParams = array of Arr1InnerMarginLayoutParams;
      Arr3InnerMarginLayoutParams = array of Arr2InnerMarginLayoutParams;
      InnerOnHierarchyChangeListener = interface external 'android.view' name 'OnHierarchyChangeListener' 
        procedure onChildViewAdded(para1: AVView; para2: AVView); overload;
        procedure onChildViewRemoved(para1: AVView; para2: AVView); overload;
      end;

      InnerLayoutParams = class external 'android.view' name 'LayoutParams' (JLObject)
      public
        const
          FILL_PARENT = -1;
          MATCH_PARENT = -1;
          WRAP_CONTENT = -2;
      public
        var
          fwidth: jint; external name 'width';
          fheight: jint; external name 'height';
          flayoutAnimationParameters: AVALayoutAnimationController.InnerAnimationParameters; external name 'layoutAnimationParameters';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
      strict protected
        procedure setBaseAttributes(para1: ACRTypedArray; para2: jint; para3: jint); overload; virtual;
      end;

      InnerMarginLayoutParams = class external 'android.view' name 'MarginLayoutParams' (InnerLayoutParams)
      public
        var
          fleftMargin: jint; external name 'leftMargin';
          ftopMargin: jint; external name 'topMargin';
          frightMargin: jint; external name 'rightMargin';
          fbottomMargin: jint; external name 'bottomMargin';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        procedure setMargins(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
      end;

  public
    const
      FOCUS_BEFORE_DESCENDANTS = 131072;
      FOCUS_AFTER_DESCENDANTS = 262144;
      FOCUS_BLOCK_DESCENDANTS = 393216;
      PERSISTENT_NO_CACHE = 0;
      PERSISTENT_ANIMATION_CACHE = 1;
      PERSISTENT_SCROLLING_CACHE = 2;
      PERSISTENT_ALL_CACHES = 3;
  strict protected
    const
      CLIP_TO_PADDING_MASK = 34;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getDescendantFocusability(): jint; overload; virtual;
    procedure setDescendantFocusability(para1: jint); overload; virtual;
    procedure requestChildFocus(para1: AVView; para2: AVView); overload; virtual;
    procedure focusableViewAvailable(para1: AVView); overload; virtual;
    function showContextMenuForChild(para1: AVView): jboolean; overload; virtual;
    function startActionModeForChild(para1: AVView; para2: AVActionMode.InnerCallback): AVActionMode; overload; virtual;
    function focusSearch(para1: AVView; para2: jint): AVView; overload; virtual;
    function requestChildRectangleOnScreen(para1: AVView; para2: AGRect; para3: jboolean): jboolean; overload; virtual;
    function requestSendAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent): jboolean; overload; virtual;
    function onRequestSendAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent): jboolean; overload; virtual;
    function dispatchUnhandledMove(para1: AVView; para2: jint): jboolean; overload; virtual;
    procedure clearChildFocus(para1: AVView); overload; virtual;
    procedure clearFocus(); overload; virtual;
    function getFocusedChild(): AVView; overload; virtual;
    function hasFocus(): jboolean; overload; virtual;
    function findFocus(): AVView; overload; virtual;
    function hasFocusable(): jboolean; overload; virtual;
    procedure addFocusables(para1: JUArrayList; para2: jint); overload; virtual;
    procedure addFocusables(para1: JUArrayList; para2: jint; para3: jint); overload; virtual;
    procedure findViewsWithText(para1: JUArrayList; para2: JLCharSequence; para3: jint); overload; virtual;
    procedure dispatchWindowFocusChanged(para1: jboolean); overload; virtual;
    procedure addTouchables(para1: JUArrayList); overload; virtual;
    procedure dispatchDisplayHint(para1: jint); overload; virtual;
  strict protected
    procedure dispatchVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
  public
    procedure dispatchWindowVisibilityChanged(para1: jint); overload; virtual;
    procedure dispatchConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    procedure recomputeViewAttributes(para1: AVView); overload; virtual;
    procedure bringChildToFront(para1: AVView); overload; virtual;
    function dispatchDragEvent(para1: AVDragEvent): jboolean; overload; virtual;
    procedure dispatchSystemUiVisibilityChanged(para1: jint); overload; virtual;
    function dispatchKeyEventPreIme(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchKeyShortcutEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    function dispatchHoverEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  public
    function onInterceptHoverEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    function dispatchGenericPointerEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchGenericFocusedEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  public
    function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure setMotionEventSplittingEnabled(para1: jboolean); overload; virtual;
    function isMotionEventSplittingEnabled(): jboolean; overload; virtual;
    procedure requestDisallowInterceptTouchEvent(para1: jboolean); overload; virtual;
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function requestFocus(para1: jint; para2: AGRect): jboolean; overload; virtual;
  strict protected
    function onRequestFocusInDescendants(para1: jint; para2: AGRect): jboolean; overload; virtual;
  public
    procedure setPadding(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  strict protected
    procedure dispatchSaveInstanceState(para1: AUSparseArray); overload; virtual;
    procedure dispatchFreezeSelfOnly(para1: AUSparseArray); overload; virtual;
    procedure dispatchRestoreInstanceState(para1: AUSparseArray); overload; virtual;
    procedure dispatchThawSelfOnly(para1: AUSparseArray); overload; virtual;
    procedure setChildrenDrawingCacheEnabled(para1: jboolean); overload; virtual;
    procedure onAnimationStart(); overload; virtual;
    procedure onAnimationEnd(); overload; virtual;
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
    function getChildDrawingOrder(para1: jint; para2: jint): jint; overload; virtual;
    function drawChild(para1: AGCanvas; para2: AVView; para3: jlong): jboolean; overload; virtual;
  public
    procedure setClipChildren(para1: jboolean); overload; virtual;
    procedure setClipToPadding(para1: jboolean); overload; virtual;
    procedure dispatchSetSelected(para1: jboolean); overload; virtual;
    procedure dispatchSetActivated(para1: jboolean); overload; virtual;
  strict protected
    procedure dispatchSetPressed(para1: jboolean); overload; virtual;
    procedure setStaticTransformationsEnabled(para1: jboolean); overload; virtual;
    function getChildStaticTransformation(para1: AVView; para2: AVATransformation): jboolean; overload; virtual;
  public
    procedure addView(para1: AVView); overload; virtual;
    procedure addView(para1: AVView; para2: jint); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: jint); overload; virtual;
    procedure addView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    procedure updateViewLayout(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
  strict protected
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
  public
    procedure setOnHierarchyChangeListener(para1: AVViewGroup.InnerOnHierarchyChangeListener); overload; virtual;
  strict protected
    function addViewInLayout(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function addViewInLayout(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams; para4: jboolean): jboolean; overload; virtual;
    procedure cleanupLayoutState(para1: AVView); overload; virtual;
    procedure attachLayoutAnimationParameters(para1: AVView; para2: AVViewGroup_LayoutParams; para3: jint; para4: jint); overload; virtual;
  public
    procedure removeView(para1: AVView); overload; virtual;
    procedure removeViewInLayout(para1: AVView); overload; virtual;
    procedure removeViewsInLayout(para1: jint; para2: jint); overload; virtual;
    procedure removeViewAt(para1: jint); overload; virtual;
    procedure removeViews(para1: jint; para2: jint); overload; virtual;
    procedure setLayoutTransition(para1: AALayoutTransition); overload; virtual;
    function getLayoutTransition(): AALayoutTransition; overload; virtual;
    procedure removeAllViews(); overload; virtual;
    procedure removeAllViewsInLayout(); overload; virtual;
  strict protected
    procedure removeDetachedView(para1: AVView; para2: jboolean); overload; virtual;
    procedure attachViewToParent(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    procedure detachViewFromParent(para1: AVView); overload; virtual;
    procedure detachViewFromParent(para1: jint); overload; virtual;
    procedure detachViewsFromParent(para1: jint; para2: jint); overload; virtual;
    procedure detachAllViewsFromParent(); overload; virtual;
  public
    procedure invalidateChild(para1: AVView; para2: AGRect); overload; virtual; final;
    function invalidateChildInParent(para1: Arr1jint; para2: AGRect): AVViewParent; overload; virtual;
    function invalidateChildInParent(var para1: array of jint; para2: AGRect): AVViewParent; overload; virtual;
    procedure offsetDescendantRectToMyCoords(para1: AVView; para2: AGRect); overload; virtual; final;
    procedure offsetRectIntoDescendantCoords(para1: AVView; para2: AGRect); overload; virtual; final;
    function getChildVisibleRect(para1: AVView; para2: AGRect; para3: AGPoint): jboolean; overload; virtual;
    procedure layout(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; final;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual; abstract;
    function canAnimate(): jboolean; overload; virtual;
  public
    procedure startLayoutAnimation(); overload; virtual;
    procedure scheduleLayoutAnimation(); overload; virtual;
    procedure setLayoutAnimation(para1: AVALayoutAnimationController); overload; virtual;
    function getLayoutAnimation(): AVALayoutAnimationController; overload; virtual;
    function isAnimationCacheEnabled(): jboolean; overload; virtual;
    procedure setAnimationCacheEnabled(para1: jboolean); overload; virtual;
    function isAlwaysDrawnWithCacheEnabled(): jboolean; overload; virtual;
    procedure setAlwaysDrawnWithCacheEnabled(para1: jboolean); overload; virtual;
  strict protected
    function isChildrenDrawnWithCacheEnabled(): jboolean; overload; virtual;
    procedure setChildrenDrawnWithCacheEnabled(para1: jboolean); overload; virtual;
    function isChildrenDrawingOrderEnabled(): jboolean; overload; virtual;
    procedure setChildrenDrawingOrderEnabled(para1: jboolean); overload; virtual;
  public
    function getPersistentDrawingCache(): jint; overload; virtual;
    procedure setPersistentDrawingCache(para1: jint); overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  strict protected
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    procedure debug(para1: jint); overload; virtual;
  public
    function indexOfChild(para1: AVView): jint; overload; virtual;
    function getChildCount(): jint; overload; virtual;
    function getChildAt(para1: jint): AVView; overload; virtual;
  strict protected
    procedure measureChildren(para1: jint; para2: jint); overload; virtual;
    procedure measureChild(para1: AVView; para2: jint; para3: jint); overload; virtual;
    procedure measureChildWithMargins(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    class function getChildMeasureSpec(para1: jint; para2: jint; para3: jint): jint; static; overload;
    procedure clearDisappearingChildren(); overload; virtual;
    procedure startViewTransition(para1: AVView); overload; virtual;
    procedure endViewTransition(para1: AVView); overload; virtual;
    function gatherTransparentRegion(para1: AGRegion): jboolean; overload; virtual;
    procedure requestTransparentRegion(para1: AVView); overload; virtual;
  strict protected
    function fitSystemWindows(para1: AGRect): jboolean; overload; virtual;
  public
    function getLayoutAnimationListener(): AVAAnimation.InnerAnimationListener; overload; virtual;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
  strict protected
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
  public
    procedure setAddStatesFromChildren(para1: jboolean); overload; virtual;
    function addStatesFromChildren(): jboolean; overload; virtual;
    procedure childDrawableStateChanged(para1: AVView); overload; virtual;
    procedure setLayoutAnimationListener(para1: AVAAnimation.InnerAnimationListener); overload; virtual;
  strict protected
    procedure resetResolvedLayoutDirection(); overload; virtual;
    procedure resetResolvedTextDirection(); overload; virtual;
  public
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
  end;

  AVViewStub = class sealed external 'android.view' name 'ViewStub' (AVView)
  public
    type
      InnerOnInflateListener = interface;
      Arr1InnerOnInflateListener = array of InnerOnInflateListener;
      Arr2InnerOnInflateListener = array of Arr1InnerOnInflateListener;
      Arr3InnerOnInflateListener = array of Arr2InnerOnInflateListener;
      InnerOnInflateListener = interface external 'android.view' name 'OnInflateListener' 
        procedure onInflate(para1: AVViewStub; para2: AVView); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getInflatedId(): jint; overload; virtual;
    procedure setInflatedId(para1: jint); overload; virtual;
    function getLayoutResource(): jint; overload; virtual;
    procedure setLayoutResource(para1: jint); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    procedure draw(para1: AGCanvas); overload; virtual;
  strict protected
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
  public
    procedure setVisibility(para1: jint); overload; virtual;
    function inflate(): AVView; overload; virtual;
    procedure setOnInflateListener(para1: AVViewStub.InnerOnInflateListener); overload; virtual;
  end;

  AWAnalogClock = class external 'android.widget' name 'AnalogClock' (AVView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
  end;

  AWImageView = class external 'android.widget' name 'ImageView' (AVView)
  public
    type
      InnerScaleType = class;
      Arr1InnerScaleType = array of InnerScaleType;
      Arr2InnerScaleType = array of Arr1InnerScaleType;
      Arr3InnerScaleType = array of Arr2InnerScaleType;
      InnerScaleType = class sealed external 'android.widget' name 'ScaleType' (JLEnum)
      public
        final class var
          fCENTER: AWImageView.InnerScaleType; external name 'CENTER';
          fCENTER_CROP: AWImageView.InnerScaleType; external name 'CENTER_CROP';
          fCENTER_INSIDE: AWImageView.InnerScaleType; external name 'CENTER_INSIDE';
          fFIT_CENTER: AWImageView.InnerScaleType; external name 'FIT_CENTER';
          fFIT_END: AWImageView.InnerScaleType; external name 'FIT_END';
          fFIT_START: AWImageView.InnerScaleType; external name 'FIT_START';
          fFIT_XY: AWImageView.InnerScaleType; external name 'FIT_XY';
          fMATRIX: AWImageView.InnerScaleType; external name 'MATRIX';
      public
        class function values(): AWImageView.Arr1InnerScaleType; static; overload;
        class function valueOf(para1: JLString): AWImageView.InnerScaleType; static; overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
  strict protected
    function onSetAlpha(para1: jint): jboolean; overload; virtual;
  public
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure setAdjustViewBounds(para1: jboolean); overload; virtual;
    procedure setMaxWidth(para1: jint); overload; virtual;
    procedure setMaxHeight(para1: jint); overload; virtual;
    function getDrawable(): AGDDrawable; overload; virtual;
    procedure setImageResource(para1: jint); overload; virtual;
    procedure setImageURI(para1: ANUri); overload; virtual;
    procedure setImageDrawable(para1: AGDDrawable); overload; virtual;
    procedure setImageBitmap(para1: AGBitmap); overload; virtual;
    procedure setImageState(para1: Arr1jint; para2: jboolean); overload; virtual;
    procedure setImageState(var para1: array of jint; para2: jboolean); overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
    procedure setImageLevel(para1: jint); overload; virtual;
    procedure setScaleType(para1: AWImageView.InnerScaleType); overload; virtual;
    function getScaleType(): AWImageView.InnerScaleType; overload; virtual;
    function getImageMatrix(): AGMatrix; overload; virtual;
    procedure setImageMatrix(para1: AGMatrix); overload; virtual;
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    function setFrame(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    procedure drawableStateChanged(); overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    function getBaseline(): jint; overload; virtual;
    procedure setBaseline(para1: jint); overload; virtual;
    procedure setBaselineAlignBottom(para1: jboolean); overload; virtual;
    function getBaselineAlignBottom(): jboolean; overload; virtual;
    procedure setColorFilter(para1: jint; para2: AGPorterDuff.InnerMode); overload; virtual; final;
    procedure setColorFilter(para1: jint); overload; virtual; final;
    procedure clearColorFilter(); overload; virtual; final;
    procedure setColorFilter(para1: AGColorFilter); overload; virtual;
    procedure setAlpha(para1: jint); overload; virtual;
  end;

  AWPopupWindow = class external 'android.widget' name 'PopupWindow' (JLObject)
  public
    type
      InnerOnDismissListener = interface;
      Arr1InnerOnDismissListener = array of InnerOnDismissListener;
      Arr2InnerOnDismissListener = array of Arr1InnerOnDismissListener;
      Arr3InnerOnDismissListener = array of Arr2InnerOnDismissListener;
      InnerOnDismissListener = interface external 'android.widget' name 'OnDismissListener' 
        procedure onDismiss(); overload;
      end;

  public
    const
      INPUT_METHOD_FROM_FOCUSABLE = 0;
      INPUT_METHOD_NEEDED = 1;
      INPUT_METHOD_NOT_NEEDED = 2;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint; para4: jint); overload;
    constructor create(); overload;
    constructor create(para1: AVView); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: AVView; para2: jint; para3: jint); overload;
    constructor create(para1: AVView; para2: jint; para3: jint; para4: jboolean); overload;
    function getBackground(): AGDDrawable; overload; virtual;
    procedure setBackgroundDrawable(para1: AGDDrawable); overload; virtual;
    function getAnimationStyle(): jint; overload; virtual;
    procedure setIgnoreCheekPress(); overload; virtual;
    procedure setAnimationStyle(para1: jint); overload; virtual;
    function getContentView(): AVView; overload; virtual;
    procedure setContentView(para1: AVView); overload; virtual;
    procedure setTouchInterceptor(para1: AVView.InnerOnTouchListener); overload; virtual;
    function isFocusable(): jboolean; overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
    function getInputMethodMode(): jint; overload; virtual;
    procedure setInputMethodMode(para1: jint); overload; virtual;
    procedure setSoftInputMode(para1: jint); overload; virtual;
    function getSoftInputMode(): jint; overload; virtual;
    function isTouchable(): jboolean; overload; virtual;
    procedure setTouchable(para1: jboolean); overload; virtual;
    function isOutsideTouchable(): jboolean; overload; virtual;
    procedure setOutsideTouchable(para1: jboolean); overload; virtual;
    function isClippingEnabled(): jboolean; overload; virtual;
    procedure setClippingEnabled(para1: jboolean); overload; virtual;
    function isSplitTouchEnabled(): jboolean; overload; virtual;
    procedure setSplitTouchEnabled(para1: jboolean); overload; virtual;
    procedure setWindowLayoutMode(para1: jint; para2: jint); overload; virtual;
    function getHeight(): jint; overload; virtual;
    procedure setHeight(para1: jint); overload; virtual;
    function getWidth(): jint; overload; virtual;
    procedure setWidth(para1: jint); overload; virtual;
    function isShowing(): jboolean; overload; virtual;
    procedure showAtLocation(para1: AVView; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure showAsDropDown(para1: AVView); overload; virtual;
    procedure showAsDropDown(para1: AVView; para2: jint; para3: jint); overload; virtual;
    function isAboveAnchor(): jboolean; overload; virtual;
    function getMaxAvailableHeight(para1: AVView): jint; overload; virtual;
    function getMaxAvailableHeight(para1: AVView; para2: jint): jint; overload; virtual;
    procedure dismiss(); overload; virtual;
    procedure setOnDismissListener(para1: AWPopupWindow.InnerOnDismissListener); overload; virtual;
    procedure update(); overload; virtual;
    procedure update(para1: jint; para2: jint); overload; virtual;
    procedure update(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure update(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure update(para1: AVView; para2: jint; para3: jint); overload; virtual;
    procedure update(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  end;

  AWProgressBar = class external 'android.widget' name 'ProgressBar' (AVView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function isIndeterminate(): jboolean; overload; virtual;
    procedure setIndeterminate(para1: jboolean); overload; virtual;
    function getIndeterminateDrawable(): AGDDrawable; overload; virtual;
    procedure setIndeterminateDrawable(para1: AGDDrawable); overload; virtual;
    function getProgressDrawable(): AGDDrawable; overload; virtual;
    procedure setProgressDrawable(para1: AGDDrawable); overload; virtual;
  strict protected
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
    procedure postInvalidate(); overload; virtual;
    procedure setProgress(para1: jint); overload; virtual;
    procedure setSecondaryProgress(para1: jint); overload; virtual;
    function getProgress(): jint; overload; virtual;
    function getSecondaryProgress(): jint; overload; virtual;
    function getMax(): jint; overload; virtual;
    procedure setMax(para1: jint); overload; virtual;
    procedure incrementProgressBy(para1: jint); overload; virtual; final;
    procedure incrementSecondaryProgressBy(para1: jint); overload; virtual; final;
    procedure setInterpolator(para1: ACContext; para2: jint); overload; virtual;
    procedure setInterpolator(para1: AVAInterpolator); overload; virtual;
    function getInterpolator(): AVAInterpolator; overload; virtual;
    procedure setVisibility(para1: jint); overload; virtual;
  strict protected
    procedure onVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
  public
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
  strict protected
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure drawableStateChanged(); overload; virtual;
  public
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  end;

  AWSpace = class sealed external 'android.widget' name 'Space' (AVView)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    procedure draw(para1: AGCanvas); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  end;

  AWTextView = class external 'android.widget' name 'TextView' (AVView, AVViewTreeObserver.InnerOnPreDrawListener)
  public
    type
      InnerBufferType = class;
      Arr1InnerBufferType = array of InnerBufferType;
      Arr2InnerBufferType = array of Arr1InnerBufferType;
      Arr3InnerBufferType = array of Arr2InnerBufferType;
      InnerSavedState = class;
      Arr1InnerSavedState = array of InnerSavedState;
      Arr2InnerSavedState = array of Arr1InnerSavedState;
      Arr3InnerSavedState = array of Arr2InnerSavedState;
      InnerOnEditorActionListener = interface;
      Arr1InnerOnEditorActionListener = array of InnerOnEditorActionListener;
      Arr2InnerOnEditorActionListener = array of Arr1InnerOnEditorActionListener;
      Arr3InnerOnEditorActionListener = array of Arr2InnerOnEditorActionListener;
      InnerBufferType = class sealed external 'android.widget' name 'BufferType' (JLEnum)
      public
        final class var
          fEDITABLE: AWTextView.InnerBufferType; external name 'EDITABLE';
          fNORMAL: AWTextView.InnerBufferType; external name 'NORMAL';
          fSPANNABLE: AWTextView.InnerBufferType; external name 'SPANNABLE';
      public
        class function values(): AWTextView.Arr1InnerBufferType; static; overload;
        class function valueOf(para1: JLString): AWTextView.InnerBufferType; static; overload;
      end;

      InnerSavedState = class external 'android.widget' name 'SavedState' (AVView.InnerBaseSavedState)
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerOnEditorActionListener = interface external 'android.widget' name 'OnEditorActionListener' 
        function onEditorAction(para1: AWTextView; para2: jint; para3: AVKeyEvent): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure setTypeface(para1: AGTypeface; para2: jint); overload; virtual;
  strict protected
    function getDefaultEditable(): jboolean; overload; virtual;
    function getDefaultMovementMethod(): ATMMovementMethod; overload; virtual;
  public
    function getText(): JLCharSequence; overload; virtual;
    function length(): jint; overload; virtual;
    function getEditableText(): ATEditable; overload; virtual;
    function getLineHeight(): jint; overload; virtual;
    function getLayout(): ATLayout; overload; virtual; final;
    function getKeyListener(): ATMKeyListener; overload; virtual; final;
    procedure setKeyListener(para1: ATMKeyListener); overload; virtual;
    function getMovementMethod(): ATMMovementMethod; overload; virtual; final;
    procedure setMovementMethod(para1: ATMMovementMethod); overload; virtual; final;
    function getTransformationMethod(): ATMTransformationMethod; overload; virtual; final;
    procedure setTransformationMethod(para1: ATMTransformationMethod); overload; virtual; final;
    function getCompoundPaddingTop(): jint; overload; virtual;
    function getCompoundPaddingBottom(): jint; overload; virtual;
    function getCompoundPaddingLeft(): jint; overload; virtual;
    function getCompoundPaddingRight(): jint; overload; virtual;
    function getExtendedPaddingTop(): jint; overload; virtual;
    function getExtendedPaddingBottom(): jint; overload; virtual;
    function getTotalPaddingLeft(): jint; overload; virtual;
    function getTotalPaddingRight(): jint; overload; virtual;
    function getTotalPaddingTop(): jint; overload; virtual;
    function getTotalPaddingBottom(): jint; overload; virtual;
    procedure setCompoundDrawables(para1: AGDDrawable; para2: AGDDrawable; para3: AGDDrawable; para4: AGDDrawable); overload; virtual;
    procedure setCompoundDrawablesWithIntrinsicBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setCompoundDrawablesWithIntrinsicBounds(para1: AGDDrawable; para2: AGDDrawable; para3: AGDDrawable; para4: AGDDrawable); overload; virtual;
    function getCompoundDrawables(): Arr1AGDDrawable; overload; virtual;
    procedure setCompoundDrawablePadding(para1: jint); overload; virtual;
    function getCompoundDrawablePadding(): jint; overload; virtual;
    procedure setPadding(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getAutoLinkMask(): jint; overload; virtual; final;
    procedure setTextAppearance(para1: ACContext; para2: jint); overload; virtual;
    function getTextSize(): jfloat; overload; virtual;
    procedure setTextSize(para1: jfloat); overload; virtual;
    procedure setTextSize(para1: jint; para2: jfloat); overload; virtual;
    function getTextScaleX(): jfloat; overload; virtual;
    procedure setTextScaleX(para1: jfloat); overload; virtual;
    procedure setTypeface(para1: AGTypeface); overload; virtual;
    function getTypeface(): AGTypeface; overload; virtual;
    procedure setTextColor(para1: jint); overload; virtual;
    procedure setTextColor(para1: ACRColorStateList); overload; virtual;
    function getTextColors(): ACRColorStateList; overload; virtual; final;
    function getCurrentTextColor(): jint; overload; virtual; final;
    procedure setHighlightColor(para1: jint); overload; virtual;
    procedure setShadowLayer(para1: jfloat; para2: jfloat; para3: jfloat; para4: jint); overload; virtual;
    function getPaint(): ATTextPaint; overload; virtual;
    procedure setAutoLinkMask(para1: jint); overload; virtual; final;
    procedure setLinksClickable(para1: jboolean); overload; virtual; final;
    function getLinksClickable(): jboolean; overload; virtual; final;
    function getUrls(): Arr1ATSURLSpan; overload; virtual;
    procedure setHintTextColor(para1: jint); overload; virtual; final;
    procedure setHintTextColor(para1: ACRColorStateList); overload; virtual; final;
    function getHintTextColors(): ACRColorStateList; overload; virtual; final;
    function getCurrentHintTextColor(): jint; overload; virtual; final;
    procedure setLinkTextColor(para1: jint); overload; virtual; final;
    procedure setLinkTextColor(para1: ACRColorStateList); overload; virtual; final;
    function getLinkTextColors(): ACRColorStateList; overload; virtual; final;
    procedure setGravity(para1: jint); overload; virtual;
    function getGravity(): jint; overload; virtual;
    function getPaintFlags(): jint; overload; virtual;
    procedure setPaintFlags(para1: jint); overload; virtual;
    procedure setHorizontallyScrolling(para1: jboolean); overload; virtual;
    procedure setMinLines(para1: jint); overload; virtual;
    procedure setMinHeight(para1: jint); overload; virtual;
    procedure setMaxLines(para1: jint); overload; virtual;
    procedure setMaxHeight(para1: jint); overload; virtual;
    procedure setLines(para1: jint); overload; virtual;
    procedure setHeight(para1: jint); overload; virtual;
    procedure setMinEms(para1: jint); overload; virtual;
    procedure setMinWidth(para1: jint); overload; virtual;
    procedure setMaxEms(para1: jint); overload; virtual;
    procedure setMaxWidth(para1: jint); overload; virtual;
    procedure setEms(para1: jint); overload; virtual;
    procedure setWidth(para1: jint); overload; virtual;
    procedure setLineSpacing(para1: jfloat; para2: jfloat); overload; virtual;
    procedure append(para1: JLCharSequence); overload; virtual; final;
    procedure append(para1: JLCharSequence; para2: jint; para3: jint); overload; virtual;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
  public
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
    procedure setFreezesText(para1: jboolean); overload; virtual;
    function getFreezesText(): jboolean; overload; virtual;
    procedure setEditableFactory(para1: ATEditable.InnerFactory); overload; virtual; final;
    procedure setSpannableFactory(para1: ATSpannable.InnerFactory); overload; virtual; final;
    procedure setText(para1: JLCharSequence); overload; virtual; final;
    procedure setTextKeepState(para1: JLCharSequence); overload; virtual; final;
    procedure setText(para1: JLCharSequence; para2: AWTextView.InnerBufferType); overload; virtual;
    procedure setText(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; final;
    procedure setText(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; final;
    procedure setTextKeepState(para1: JLCharSequence; para2: AWTextView.InnerBufferType); overload; virtual; final;
    procedure setText(para1: jint); overload; virtual; final;
    procedure setText(para1: jint; para2: AWTextView.InnerBufferType); overload; virtual; final;
    procedure setHint(para1: JLCharSequence); overload; virtual; final;
    procedure setHint(para1: jint); overload; virtual; final;
    function getHint(): JLCharSequence; overload; virtual;
    procedure setInputType(para1: jint); overload; virtual;
    procedure setRawInputType(para1: jint); overload; virtual;
    function getInputType(): jint; overload; virtual;
    procedure setImeOptions(para1: jint); overload; virtual;
    function getImeOptions(): jint; overload; virtual;
    procedure setImeActionLabel(para1: JLCharSequence; para2: jint); overload; virtual;
    function getImeActionLabel(): JLCharSequence; overload; virtual;
    function getImeActionId(): jint; overload; virtual;
    procedure setOnEditorActionListener(para1: AWTextView.InnerOnEditorActionListener); overload; virtual;
    procedure onEditorAction(para1: jint); overload; virtual;
    procedure setPrivateImeOptions(para1: JLString); overload; virtual;
    function getPrivateImeOptions(): JLString; overload; virtual;
    procedure setInputExtras(para1: jint); overload; virtual;  // throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
    function getInputExtras(para1: jboolean): AOBundle; overload; virtual;
    function getError(): JLCharSequence; overload; virtual;
    procedure setError(para1: JLCharSequence); overload; virtual;
    procedure setError(para1: JLCharSequence; para2: AGDDrawable); overload; virtual;
  strict protected
    function setFrame(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
  public
    procedure setFilters(para1: Arr1ATInputFilter); overload; virtual;
    procedure setFilters(var para1: array of ATInputFilter); overload; virtual;
    function getFilters(): Arr1ATInputFilter; overload; virtual;
    function onPreDraw(): jboolean; overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    function isPaddingOffsetRequired(): jboolean; overload; virtual;
    function getLeftPaddingOffset(): jint; overload; virtual;
    function getTopPaddingOffset(): jint; overload; virtual;
    function getBottomPaddingOffset(): jint; overload; virtual;
    function getRightPaddingOffset(): jint; overload; virtual;
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
    procedure invalidateDrawable(para1: AGDDrawable); overload; virtual;
  strict protected
    function onSetAlpha(para1: jint): jboolean; overload; virtual;
  public
    function isTextSelectable(): jboolean; overload; virtual;
    procedure setTextIsSelectable(para1: jboolean); overload; virtual;
  strict protected
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    procedure getFocusedRect(para1: AGRect); overload; virtual;
    function getLineCount(): jint; overload; virtual;
    function getLineBounds(para1: jint; para2: AGRect): jint; overload; virtual;
    function getBaseline(): jint; overload; virtual;
    function onKeyPreIme(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onCheckIsTextEditor(): jboolean; overload; virtual;
    function onCreateInputConnection(para1: AVIEditorInfo): AVIInputConnection; overload; virtual;
    function extractText(para1: AVIExtractedTextRequest; para2: AVIExtractedText): jboolean; overload; virtual;
    procedure setExtractedText(para1: AVIExtractedText); overload; virtual;
    procedure onCommitCompletion(para1: AVICompletionInfo); overload; virtual;
    procedure onCommitCorrection(para1: AVICorrectionInfo); overload; virtual;
    procedure beginBatchEdit(); overload; virtual;
    procedure endBatchEdit(); overload; virtual;
    procedure onBeginBatchEdit(); overload; virtual;
    procedure onEndBatchEdit(); overload; virtual;
    function onPrivateIMECommand(para1: JLString; para2: AOBundle): jboolean; overload; virtual;
  strict protected
    procedure resetResolvedLayoutDirection(); overload; virtual;
  public
    procedure setIncludeFontPadding(para1: jboolean); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function bringPointIntoView(para1: jint): jboolean; overload; virtual;
    function moveCursorToVisibleOffset(): jboolean; overload; virtual;
    procedure computeScroll(); overload; virtual;
    procedure debug(para1: jint); overload; virtual;
    function getSelectionStart(): jint; overload; virtual;
    function getSelectionEnd(): jint; overload; virtual;
    function hasSelection(): jboolean; overload; virtual;
    procedure setSingleLine(); overload; virtual;
    procedure setAllCaps(para1: jboolean); overload; virtual;
    procedure setSingleLine(para1: jboolean); overload; virtual;
    procedure setEllipsize(para1: ATTextUtils.InnerTruncateAt); overload; virtual;
    procedure setMarqueeRepeatLimit(para1: jint); overload; virtual;
    function getEllipsize(): ATTextUtils.InnerTruncateAt; overload; virtual;
    procedure setSelectAllOnFocus(para1: jboolean); overload; virtual;
    procedure setCursorVisible(para1: jboolean); overload; virtual;
  strict protected
    procedure onTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onSelectionChanged(para1: jint; para2: jint); overload; virtual;
  public
    procedure addTextChangedListener(para1: ATTextWatcher); overload; virtual;
    procedure removeTextChangedListener(para1: ATTextWatcher); overload; virtual;
    procedure onStartTemporaryDetach(); overload; virtual;
    procedure onFinishTemporaryDetach(); overload; virtual;
  strict protected
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
  public
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
  strict protected
    procedure onVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
  public
    procedure clearComposingText(); overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function didTouchFocusSelect(): jboolean; overload; virtual;
    procedure cancelLongPress(); overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure setScroller(para1: AWScroller); overload; virtual;
  strict protected
    function getLeftFadingEdgeStrength(): jfloat; overload; virtual;
    function getRightFadingEdgeStrength(): jfloat; overload; virtual;
    function computeHorizontalScrollRange(): jint; overload; virtual;
    function computeVerticalScrollRange(): jint; overload; virtual;
    function computeVerticalScrollExtent(): jint; overload; virtual;
  public
    procedure findViewsWithText(para1: JUArrayList; para2: JLCharSequence; para3: jint); overload; virtual;
    class function getTextColors(para1: ACContext; para2: ACRTypedArray): ACRColorStateList; static; overload;
    class function getTextColor(para1: ACContext; para2: ACRTypedArray; para3: jint): jint; static; overload;
    function onKeyShortcut(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
    procedure sendAccessibilityEvent(para1: jint); overload; virtual;
  strict protected
    procedure onCreateContextMenu(para1: AVContextMenu); overload; virtual;
  public
    function isInputMethodTarget(): jboolean; overload; virtual;
    function onTextContextMenuItem(para1: jint): jboolean; overload; virtual;
    function performLongClick(): jboolean; overload; virtual;
  strict protected
    procedure onScrollChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  public
    function isSuggestionsEnabled(): jboolean; overload; virtual;
    procedure setCustomSelectionActionModeCallback(para1: AVActionMode.InnerCallback); overload; virtual;
    function getCustomSelectionActionModeCallback(): AVActionMode.InnerCallback; overload; virtual;
    function getOffsetForPosition(para1: jfloat; para2: jfloat): jint; overload; virtual;
    function onDragEvent(para1: AVDragEvent): jboolean; overload; virtual;
  strict protected
    procedure resolveTextDirection(); overload; virtual;
    procedure resolveDrawables(); overload; virtual;
    procedure resetResolvedDrawables(); overload; virtual;
  end;

  AWZoomButtonsController = class external 'android.widget' name 'ZoomButtonsController' (JLObject, AVView.InnerOnTouchListener)
  public
    type
      InnerOnZoomListener = interface;
      Arr1InnerOnZoomListener = array of InnerOnZoomListener;
      Arr2InnerOnZoomListener = array of Arr1InnerOnZoomListener;
      Arr3InnerOnZoomListener = array of Arr2InnerOnZoomListener;
      InnerOnZoomListener = interface external 'android.widget' name 'OnZoomListener' 
        procedure onVisibilityChanged(para1: jboolean); overload;
        procedure onZoom(para1: jboolean); overload;
      end;

  public
    constructor create(para1: AVView); overload;
    procedure setZoomInEnabled(para1: jboolean); overload; virtual;
    procedure setZoomOutEnabled(para1: jboolean); overload; virtual;
    procedure setZoomSpeed(para1: jlong); overload; virtual;
    procedure setOnZoomListener(para1: AWZoomButtonsController.InnerOnZoomListener); overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
    function isAutoDismissed(): jboolean; overload; virtual;
    procedure setAutoDismissed(para1: jboolean); overload; virtual;
    function isVisible(): jboolean; overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    function getContainer(): AVViewGroup; overload; virtual;
    function getZoomControls(): AVView; overload; virtual;
    function onTouch(para1: AVView; para2: AVMotionEvent): jboolean; overload; virtual;
  end;

  ATSImageSpan = class external 'android.text.style' name 'ImageSpan' (ATSDynamicDrawableSpan)
  public
    constructor create(para1: AGBitmap); overload;
    constructor create(para1: AGBitmap; para2: jint); overload;
    constructor create(para1: ACContext; para2: AGBitmap); overload;
    constructor create(para1: ACContext; para2: AGBitmap; para3: jint); overload;
    constructor create(para1: AGDDrawable); overload;
    constructor create(para1: AGDDrawable; para2: jint); overload;
    constructor create(para1: AGDDrawable; para2: JLString); overload;
    constructor create(para1: AGDDrawable; para2: JLString; para3: jint); overload;
    constructor create(para1: ACContext; para2: ANUri); overload;
    constructor create(para1: ACContext; para2: ANUri; para3: jint); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint); overload;
    function getDrawable(): AGDDrawable; overload; virtual;
    function getSource(): JLString; overload; virtual;
  end;

  AWSimpleCursorAdapter = class external 'android.widget' name 'SimpleCursorAdapter' (AWResourceCursorAdapter)
  public
    type
      InnerCursorToStringConverter = interface;
      Arr1InnerCursorToStringConverter = array of InnerCursorToStringConverter;
      Arr2InnerCursorToStringConverter = array of Arr1InnerCursorToStringConverter;
      Arr3InnerCursorToStringConverter = array of Arr2InnerCursorToStringConverter;
      InnerViewBinder = interface;
      Arr1InnerViewBinder = array of InnerViewBinder;
      Arr2InnerViewBinder = array of Arr1InnerViewBinder;
      Arr3InnerViewBinder = array of Arr2InnerViewBinder;
      InnerCursorToStringConverter = interface external 'android.widget' name 'CursorToStringConverter' 
        function convertToString(para1: ADCursor): JLCharSequence; overload;
      end;

      InnerViewBinder = interface external 'android.widget' name 'ViewBinder' 
        function setViewValue(para1: AVView; para2: ADCursor; para3: jint): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext; para2: jint; para3: ADCursor; para4: Arr1JLString; para5: Arr1jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: ADCursor; const para4: array of JLString; const para5: array of jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: ADCursor; para4: Arr1JLString; para5: Arr1jint; para6: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: ADCursor; const para4: array of JLString; const para5: array of jint; para6: jint); overload;
    procedure bindView(para1: AVView; para2: ACContext; para3: ADCursor); overload; virtual;
    function getViewBinder(): AWSimpleCursorAdapter.InnerViewBinder; overload; virtual;
    procedure setViewBinder(para1: AWSimpleCursorAdapter.InnerViewBinder); overload; virtual;
    procedure setViewImage(para1: AWImageView; para2: JLString); overload; virtual;
    procedure setViewText(para1: AWTextView; para2: JLString); overload; virtual;
    function getStringConversionColumn(): jint; overload; virtual;
    procedure setStringConversionColumn(para1: jint); overload; virtual;
    function getCursorToStringConverter(): AWSimpleCursorAdapter.InnerCursorToStringConverter; overload; virtual;
    procedure setCursorToStringConverter(para1: AWSimpleCursorAdapter.InnerCursorToStringConverter); overload; virtual;
    function convertToString(para1: ADCursor): JLCharSequence; overload; virtual;
    function swapCursor(para1: ADCursor): ADCursor; overload; virtual;
    procedure changeCursorAndColumns(para1: ADCursor; para2: Arr1JLString; para3: Arr1jint); overload; virtual;
    procedure changeCursorAndColumns(para1: ADCursor; var para2: array of JLString; var para3: array of jint); overload; virtual;
  end;

  JUJJarInputStream = class external 'java.util.jar' name 'JarInputStream' (JUZZipInputStream)
  public
    constructor create(para1: JIInputStream; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    function getManifest(): JUJManifest; overload; virtual;
    function getNextJarEntry(): JUJJarEntry; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function getNextEntry(): JUZZipEntry; overload; virtual;  // throws java.io.IOException
  strict protected
    function createZipEntry(para1: JLString): JUZZipEntry; overload; virtual;
  end;

  JNCSAbstractSelectableChannel = class abstract external 'java.nio.channels.spi' name 'AbstractSelectableChannel' (JNCSelectableChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    function provider(): JNCSSelectorProvider; overload; virtual; final;
    function isRegistered(): jboolean; overload; virtual; final;
    function keyFor(para1: JNCSelector): JNCSelectionKey; overload; virtual; final;
    function register(para1: JNCSelector; para2: jint; para3: JLObject): JNCSelectionKey; overload; virtual; final;  // throws java.nio.channels.ClosedChannelException
  strict protected
    procedure implCloseChannel(); overload; virtual; final;  // throws java.io.IOException
    procedure implCloseSelectableChannel(); overload; virtual; abstract;  // throws java.io.IOException
  public
    function isBlocking(): jboolean; overload; virtual; final;
    function blockingLock(): JLObject; overload; virtual; final;
    function configureBlocking(para1: jboolean): JNCSelectableChannel; overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure implConfigureBlocking(para1: jboolean); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JUJJarOutputStream = class external 'java.util.jar' name 'JarOutputStream' (JUZZipOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: JUJManifest); overload;  // throws java.io.IOException
    constructor create(para1: JIOutputStream); overload;  // throws java.io.IOException
    procedure putNextEntry(para1: JUZZipEntry); overload; virtual;  // throws java.io.IOException
  end;

  OAHICTBasicPooledConnAdapter = class external 'org.apache.http.impl.conn.tsccm' name 'BasicPooledConnAdapter' (OAHICAbstractPooledConnAdapter)
  strict protected
    constructor create(para1: OAHICTThreadSafeClientConnManager; para2: OAHICAbstractPoolEntry); overload;
    function getManager(): OAHCClientConnectionManager; overload; virtual;
    function getPoolEntry(): OAHICAbstractPoolEntry; overload; virtual;
    procedure detach(); overload; virtual;
  end;

  OAHCMHttpPost = class external 'org.apache.http.client.methods' name 'HttpPost' (OAHCMHttpEntityEnclosingRequestBase)
  public
    const
      METHOD_NAME = 'POST';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
  end;

  OAHCMHttpPut = class external 'org.apache.http.client.methods' name 'HttpPut' (OAHCMHttpEntityEnclosingRequestBase)
  public
    const
      METHOD_NAME = 'PUT';
  public
    constructor create(); overload;
    constructor create(para1: JNURI); overload;
    constructor create(para1: JLString); overload;
    function getMethod(): JLString; overload; virtual;
  end;

  AIInputMethodService = class external 'android.inputmethodservice' name 'InputMethodService' (AIAbstractInputMethodService)
  public
    type
      InnerInsets = class;
      Arr1InnerInsets = array of InnerInsets;
      Arr2InnerInsets = array of Arr1InnerInsets;
      Arr3InnerInsets = array of Arr2InnerInsets;
      InnerInputMethodSessionImpl = class;
      Arr1InnerInputMethodSessionImpl = array of InnerInputMethodSessionImpl;
      Arr2InnerInputMethodSessionImpl = array of Arr1InnerInputMethodSessionImpl;
      Arr3InnerInputMethodSessionImpl = array of Arr2InnerInputMethodSessionImpl;
      InnerInputMethodImpl = class;
      Arr1InnerInputMethodImpl = array of InnerInputMethodImpl;
      Arr2InnerInputMethodImpl = array of Arr1InnerInputMethodImpl;
      Arr3InnerInputMethodImpl = array of Arr2InnerInputMethodImpl;
      InnerInsets = class sealed external 'android.inputmethodservice' name 'Insets' (JLObject)
      public
        var
          fcontentTopInsets: jint; external name 'contentTopInsets';
          fvisibleTopInsets: jint; external name 'visibleTopInsets';
      public
        final var
          ftouchableRegion: AGRegion; external name 'touchableRegion';
      public
        const
          TOUCHABLE_INSETS_FRAME = 0;
          TOUCHABLE_INSETS_CONTENT = 1;
          TOUCHABLE_INSETS_VISIBLE = 2;
          TOUCHABLE_INSETS_REGION = 3;
      public
        var
          ftouchableInsets: jint; external name 'touchableInsets';
      public
        constructor create(); overload;
      end;

      InnerInputMethodSessionImpl = class external 'android.inputmethodservice' name 'InputMethodSessionImpl' 
      end;

      InnerInputMethodImpl = class external 'android.inputmethodservice' name 'InputMethodImpl' 
      end;

  public
    const
      BACK_DISPOSITION_DEFAULT = 0;
      BACK_DISPOSITION_WILL_NOT_DISMISS = 1;
      BACK_DISPOSITION_WILL_DISMISS = 2;
  public
    constructor create(); overload;
    procedure setTheme(para1: jint); overload; virtual;
    procedure onCreate(); overload; virtual;
    procedure onInitializeInterface(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    function onCreateInputMethodInterface(): AIAbstractInputMethodService.InnerAbstractInputMethodImpl; overload; virtual;
    function onCreateInputMethodSessionInterface(): AIAbstractInputMethodService.InnerAbstractInputMethodSessionImpl; overload; virtual;
    function getLayoutInflater(): AVLayoutInflater; overload; virtual;
    function getWindow(): AADialog; overload; virtual;
    procedure setBackDisposition(para1: jint); overload; virtual;
    function getBackDisposition(): jint; overload; virtual;
    function getMaxWidth(): jint; overload; virtual;
    function getCurrentInputBinding(): AVIInputBinding; overload; virtual;
    function getCurrentInputConnection(): AVIInputConnection; overload; virtual;
    function getCurrentInputStarted(): jboolean; overload; virtual;
    function getCurrentInputEditorInfo(): AVIEditorInfo; overload; virtual;
    procedure updateFullscreenMode(); overload; virtual;
    procedure onConfigureWindow(para1: AVWindow; para2: jboolean; para3: jboolean); overload; virtual;
    function isFullscreenMode(): jboolean; overload; virtual;
    function onEvaluateFullscreenMode(): jboolean; overload; virtual;
    procedure setExtractViewShown(para1: jboolean); overload; virtual;
    function isExtractViewShown(): jboolean; overload; virtual;
    procedure onComputeInsets(para1: AIInputMethodService.InnerInsets); overload; virtual;
    procedure updateInputViewShown(); overload; virtual;
    function isShowInputRequested(): jboolean; overload; virtual;
    function isInputViewShown(): jboolean; overload; virtual;
    function onEvaluateInputViewShown(): jboolean; overload; virtual;
    procedure setCandidatesViewShown(para1: jboolean); overload; virtual;
    function getCandidatesHiddenVisibility(): jint; overload; virtual;
    procedure showStatusIcon(para1: jint); overload; virtual;
    procedure hideStatusIcon(); overload; virtual;
    procedure switchInputMethod(para1: JLString); overload; virtual;
    procedure setExtractView(para1: AVView); overload; virtual;
    procedure setCandidatesView(para1: AVView); overload; virtual;
    procedure setInputView(para1: AVView); overload; virtual;
    function onCreateExtractTextView(): AVView; overload; virtual;
    function onCreateCandidatesView(): AVView; overload; virtual;
    function onCreateInputView(): AVView; overload; virtual;
    procedure onStartInputView(para1: AVIEditorInfo; para2: jboolean); overload; virtual;
    procedure onFinishInputView(para1: jboolean); overload; virtual;
    procedure onStartCandidatesView(para1: AVIEditorInfo; para2: jboolean); overload; virtual;
    procedure onFinishCandidatesView(para1: jboolean); overload; virtual;
    function onShowInputRequested(para1: jint; para2: jboolean): jboolean; overload; virtual;
    procedure showWindow(para1: jboolean); overload; virtual;
    procedure hideWindow(); overload; virtual;
    procedure onWindowShown(); overload; virtual;
    procedure onWindowHidden(); overload; virtual;
    procedure onBindInput(); overload; virtual;
    procedure onUnbindInput(); overload; virtual;
    procedure onStartInput(para1: AVIEditorInfo; para2: jboolean); overload; virtual;
    procedure onFinishInput(); overload; virtual;
    procedure onDisplayCompletions(para1: Arr1AVICompletionInfo); overload; virtual;
    procedure onDisplayCompletions(var para1: array of AVICompletionInfo); overload; virtual;
    procedure onUpdateExtractedText(para1: jint; para2: AVIExtractedText); overload; virtual;
    procedure onUpdateSelection(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure onViewClicked(para1: jboolean); overload; virtual;
    procedure onUpdateCursor(para1: AGRect); overload; virtual;
    procedure requestHideSelf(para1: jint); overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyLongPress(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure onAppPrivateCommand(para1: JLString; para2: AOBundle); overload; virtual;
    procedure sendDownUpKeyEvents(para1: jint); overload; virtual;
    function sendDefaultEditorAction(para1: jboolean): jboolean; overload; virtual;
    procedure sendKeyChar(para1: jchar); overload; virtual;
    procedure onExtractedSelectionChanged(para1: jint; para2: jint); overload; virtual;
    procedure onExtractedTextClicked(); overload; virtual;
    procedure onExtractedCursorMovement(para1: jint; para2: jint); overload; virtual;
    function onExtractTextContextMenuItem(para1: jint): jboolean; overload; virtual;
    function getTextForImeAction(para1: jint): JLCharSequence; overload; virtual;
    procedure onUpdateExtractingVisibility(para1: AVIEditorInfo); overload; virtual;
    procedure onUpdateExtractingViews(para1: AVIEditorInfo); overload; virtual;
    procedure onExtractingInputChanged(para1: AVIEditorInfo); overload; virtual;
  strict protected
    procedure onCurrentInputMethodSubtypeChanged(para1: AVIInputMethodSubtype); overload; virtual;
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; para3: Arr1JLString); overload; virtual;
    procedure dump(para1: JIFileDescriptor; para2: JIPrintWriter; var para3: array of JLString); overload; virtual;
  end;

  AAAccountAuthenticatorActivity = class external 'android.accounts' name 'AccountAuthenticatorActivity' (AAActivity)
  public
    constructor create(); overload;
    procedure setAccountAuthenticatorResult(para1: AOBundle); overload; virtual; final;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  public
    procedure finish(); overload; virtual;
  end;

  AAActivityGroup = class external 'android.app' name 'ActivityGroup' (AAActivity)
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onStop(); overload; virtual;
    procedure onDestroy(); overload; virtual;
  public
    function getCurrentActivity(): AAActivity; overload; virtual;
    function getLocalActivityManager(): AALocalActivityManager; overload; virtual; final;
  end;

  AAAliasActivity = class external 'android.app' name 'AliasActivity' (AAActivity)
  public
    constructor create(); overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  end;

  AAListActivity = class external 'android.app' name 'ListActivity' (AAActivity)
  public
    constructor create(); overload;
  strict protected
    procedure onListItemClick(para1: AWListView; para2: AVView; para3: jint; para4: jlong); overload; virtual;
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
    procedure onDestroy(); overload; virtual;
  public
    procedure onContentChanged(); overload; virtual;
    procedure setListAdapter(para1: AWListAdapter); overload; virtual;
    procedure setSelection(para1: jint); overload; virtual;
    function getSelectedItemPosition(): jint; overload; virtual;
    function getSelectedItemId(): jlong; overload; virtual;
    function getListView(): AWListView; overload; virtual;
    function getListAdapter(): AWListAdapter; overload; virtual;
  end;

  AANativeActivity = class external 'android.app' name 'NativeActivity' (AAActivity, AVSurfaceHolder.InnerCallback2, AVInputQueue.InnerCallback, AVViewTreeObserver.InnerOnGlobalLayoutListener)
  public
    const
      META_DATA_LIB_NAME = 'android.app.lib_name';
      META_DATA_FUNC_NAME = 'android.app.func_name';
  public
    constructor create(); overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onStop(); overload; virtual;
  public
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    procedure onLowMemory(); overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    procedure surfaceCreated(para1: AVSurfaceHolder); overload; virtual;
    procedure surfaceChanged(para1: AVSurfaceHolder; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure surfaceRedrawNeeded(para1: AVSurfaceHolder); overload; virtual;
    procedure surfaceDestroyed(para1: AVSurfaceHolder); overload; virtual;
    procedure onInputQueueCreated(para1: AVInputQueue); overload; virtual;
    procedure onInputQueueDestroyed(para1: AVInputQueue); overload; virtual;
    procedure onGlobalLayout(); overload; virtual;
  end;

  AADialogFragment = class external 'android.app' name 'DialogFragment' (AAFragment, ACDialogInterface.InnerOnCancelListener, ACDialogInterface.InnerOnDismissListener)
  public
    const
      STYLE_NORMAL = 0;
      STYLE_NO_TITLE = 1;
      STYLE_NO_FRAME = 2;
      STYLE_NO_INPUT = 3;
  public
    constructor create(); overload;
    procedure setStyle(para1: jint; para2: jint); overload; virtual;
    procedure show(para1: AAFragmentManager; para2: JLString); overload; virtual;
    function show(para1: AAFragmentTransaction; para2: JLString): jint; overload; virtual;
    procedure dismiss(); overload; virtual;
    procedure dismissAllowingStateLoss(); overload; virtual;
    function getDialog(): AADialog; overload; virtual;
    function getTheme(): jint; overload; virtual;
    procedure setCancelable(para1: jboolean); overload; virtual;
    function isCancelable(): jboolean; overload; virtual;
    procedure setShowsDialog(para1: jboolean); overload; virtual;
    function getShowsDialog(): jboolean; overload; virtual;
    procedure onAttach(para1: AAActivity); overload; virtual;
    procedure onDetach(); overload; virtual;
    procedure onCreate(para1: AOBundle); overload; virtual;
    function onCreateDialog(para1: AOBundle): AADialog; overload; virtual;
    procedure onCancel(para1: ACDialogInterface); overload; virtual;
    procedure onDismiss(para1: ACDialogInterface); overload; virtual;
    procedure onActivityCreated(para1: AOBundle); overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onStop(); overload; virtual;
    procedure onDestroyView(); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual;
  end;

  AAFragmentManager = class abstract external 'android.app' name 'FragmentManager' (JLObject)
  public
    type
      InnerOnBackStackChangedListener = interface;
      Arr1InnerOnBackStackChangedListener = array of InnerOnBackStackChangedListener;
      Arr2InnerOnBackStackChangedListener = array of Arr1InnerOnBackStackChangedListener;
      Arr3InnerOnBackStackChangedListener = array of Arr2InnerOnBackStackChangedListener;
      InnerBackStackEntry = interface;
      Arr1InnerBackStackEntry = array of InnerBackStackEntry;
      Arr2InnerBackStackEntry = array of Arr1InnerBackStackEntry;
      Arr3InnerBackStackEntry = array of Arr2InnerBackStackEntry;
      InnerOnBackStackChangedListener = interface external 'android.app' name 'OnBackStackChangedListener' 
        procedure onBackStackChanged(); overload;
      end;

      InnerBackStackEntry = interface external 'android.app' name 'BackStackEntry' 
        function getId(): jint; overload;
        function getName(): JLString; overload;
        function getBreadCrumbTitleRes(): jint; overload;
        function getBreadCrumbShortTitleRes(): jint; overload;
        function getBreadCrumbTitle(): JLCharSequence; overload;
        function getBreadCrumbShortTitle(): JLCharSequence; overload;
      end;

  public
    const
      POP_BACK_STACK_INCLUSIVE = 1;
  public
    constructor create(); overload;
    function beginTransaction(): AAFragmentTransaction; overload; virtual; abstract;
    function executePendingTransactions(): jboolean; overload; virtual; abstract;
    function findFragmentById(para1: jint): AAFragment; overload; virtual; abstract;
    function findFragmentByTag(para1: JLString): AAFragment; overload; virtual; abstract;
    procedure popBackStack(); overload; virtual; abstract;
    function popBackStackImmediate(): jboolean; overload; virtual; abstract;
    procedure popBackStack(para1: JLString; para2: jint); overload; virtual; abstract;
    function popBackStackImmediate(para1: JLString; para2: jint): jboolean; overload; virtual; abstract;
    procedure popBackStack(para1: jint; para2: jint); overload; virtual; abstract;
    function popBackStackImmediate(para1: jint; para2: jint): jboolean; overload; virtual; abstract;
    function getBackStackEntryCount(): jint; overload; virtual; abstract;
    function getBackStackEntryAt(para1: jint): AAFragmentManager.InnerBackStackEntry; overload; virtual; abstract;
    procedure addOnBackStackChangedListener(para1: AAFragmentManager.InnerOnBackStackChangedListener); overload; virtual; abstract;
    procedure removeOnBackStackChangedListener(para1: AAFragmentManager.InnerOnBackStackChangedListener); overload; virtual; abstract;
    procedure putFragment(para1: AOBundle; para2: JLString; para3: AAFragment); overload; virtual; abstract;
    function getFragment(para1: AOBundle; para2: JLString): AAFragment; overload; virtual; abstract;
    function saveFragmentInstanceState(para1: AAFragment): AAFragment.InnerSavedState; overload; virtual; abstract;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; para4: Arr1JLString); overload; virtual; abstract;
    procedure dump(para1: JLString; para2: JIFileDescriptor; para3: JIPrintWriter; var para4: array of JLString); overload; virtual; abstract;
    class procedure enableDebugLogging(para1: jboolean); static; overload;
    procedure invalidateOptionsMenu(); overload; virtual;
  end;

  AAListFragment = class external 'android.app' name 'ListFragment' (AAFragment)
  public
    constructor create(); overload;
    function onCreateView(para1: AVLayoutInflater; para2: AVViewGroup; para3: AOBundle): AVView; overload; virtual;
    procedure onViewCreated(para1: AVView; para2: AOBundle); overload; virtual;
    procedure onDestroyView(); overload; virtual;
    procedure onListItemClick(para1: AWListView; para2: AVView; para3: jint; para4: jlong); overload; virtual;
    procedure setListAdapter(para1: AWListAdapter); overload; virtual;
    procedure setSelection(para1: jint); overload; virtual;
    function getSelectedItemPosition(): jint; overload; virtual;
    function getSelectedItemId(): jlong; overload; virtual;
    function getListView(): AWListView; overload; virtual;
    procedure setEmptyText(para1: JLCharSequence); overload; virtual;
    procedure setListShown(para1: jboolean); overload; virtual;
    procedure setListShownNoAnimation(para1: jboolean); overload; virtual;
    function getListAdapter(): AWListAdapter; overload; virtual;
  end;

  APPreferenceFragment = class abstract external 'android.preference' name 'PreferenceFragment' (AAFragment)
  public
    type
      InnerOnPreferenceStartFragmentCallback = interface;
      Arr1InnerOnPreferenceStartFragmentCallback = array of InnerOnPreferenceStartFragmentCallback;
      Arr2InnerOnPreferenceStartFragmentCallback = array of Arr1InnerOnPreferenceStartFragmentCallback;
      Arr3InnerOnPreferenceStartFragmentCallback = array of Arr2InnerOnPreferenceStartFragmentCallback;
      InnerOnPreferenceStartFragmentCallback = interface external 'android.preference' name 'OnPreferenceStartFragmentCallback' 
        function onPreferenceStartFragment(para1: APPreferenceFragment; para2: APPreference): jboolean; overload;
      end;

  public
    constructor create(); overload;
    procedure onCreate(para1: AOBundle); overload; virtual;
    function onCreateView(para1: AVLayoutInflater; para2: AVViewGroup; para3: AOBundle): AVView; overload; virtual;
    procedure onActivityCreated(para1: AOBundle); overload; virtual;
    procedure onStart(); overload; virtual;
    procedure onStop(); overload; virtual;
    procedure onDestroyView(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onActivityResult(para1: jint; para2: jint; para3: ACIntent); overload; virtual;
    function getPreferenceManager(): APPreferenceManager; overload; virtual;
    procedure setPreferenceScreen(para1: APPreferenceScreen); overload; virtual;
    function getPreferenceScreen(): APPreferenceScreen; overload; virtual;
    procedure addPreferencesFromIntent(para1: ACIntent); overload; virtual;
    procedure addPreferencesFromResource(para1: jint); overload; virtual;
    function onPreferenceTreeClick(para1: APPreferenceScreen; para2: APPreference): jboolean; overload; virtual;
    function findPreference(para1: JLCharSequence): APPreference; overload; virtual;
  end;

  AWWebViewFragment = class external 'android.webkit' name 'WebViewFragment' (AAFragment)
  public
    constructor create(); overload;
    function onCreateView(para1: AVLayoutInflater; para2: AVViewGroup; para3: AOBundle): AVView; overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure onDestroyView(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    function getWebView(): AWWebView; overload; virtual;
  end;

  AOGLSurfaceView = class external 'android.opengl' name 'GLSurfaceView' (AVSurfaceView, AVSurfaceHolder.InnerCallback)
  public
    type
      InnerEGLConfigChooser = interface;
      Arr1InnerEGLConfigChooser = array of InnerEGLConfigChooser;
      Arr2InnerEGLConfigChooser = array of Arr1InnerEGLConfigChooser;
      Arr3InnerEGLConfigChooser = array of Arr2InnerEGLConfigChooser;
      InnerEGLWindowSurfaceFactory = interface;
      Arr1InnerEGLWindowSurfaceFactory = array of InnerEGLWindowSurfaceFactory;
      Arr2InnerEGLWindowSurfaceFactory = array of Arr1InnerEGLWindowSurfaceFactory;
      Arr3InnerEGLWindowSurfaceFactory = array of Arr2InnerEGLWindowSurfaceFactory;
      InnerEGLContextFactory = interface;
      Arr1InnerEGLContextFactory = array of InnerEGLContextFactory;
      Arr2InnerEGLContextFactory = array of Arr1InnerEGLContextFactory;
      Arr3InnerEGLContextFactory = array of Arr2InnerEGLContextFactory;
      InnerRenderer = interface;
      Arr1InnerRenderer = array of InnerRenderer;
      Arr2InnerRenderer = array of Arr1InnerRenderer;
      Arr3InnerRenderer = array of Arr2InnerRenderer;
      InnerGLWrapper = interface;
      Arr1InnerGLWrapper = array of InnerGLWrapper;
      Arr2InnerGLWrapper = array of Arr1InnerGLWrapper;
      Arr3InnerGLWrapper = array of Arr2InnerGLWrapper;
      InnerEGLConfigChooser = interface external 'android.opengl' name 'EGLConfigChooser' 
        function chooseConfig(para1: JMKEEGL10; para2: JMKEEGLDisplay): JMKEEGLConfig; overload;
      end;

      InnerEGLWindowSurfaceFactory = interface external 'android.opengl' name 'EGLWindowSurfaceFactory' 
        function createWindowSurface(para1: JMKEEGL10; para2: JMKEEGLDisplay; para3: JMKEEGLConfig; para4: JLObject): JMKEEGLSurface; overload;
        procedure destroySurface(para1: JMKEEGL10; para2: JMKEEGLDisplay; para3: JMKEEGLSurface); overload;
      end;

      InnerEGLContextFactory = interface external 'android.opengl' name 'EGLContextFactory' 
        function createContext(para1: JMKEEGL10; para2: JMKEEGLDisplay; para3: JMKEEGLConfig): JMKEEGLContext; overload;
        procedure destroyContext(para1: JMKEEGL10; para2: JMKEEGLDisplay; para3: JMKEEGLContext); overload;
      end;

      InnerRenderer = interface external 'android.opengl' name 'Renderer' 
        procedure onSurfaceCreated(para1: JMKOGL10; para2: JMKEEGLConfig); overload;
        procedure onSurfaceChanged(para1: JMKOGL10; para2: jint; para3: jint); overload;
        procedure onDrawFrame(para1: JMKOGL10); overload;
      end;

      InnerGLWrapper = interface external 'android.opengl' name 'GLWrapper' 
        function wrap(para1: JMKOGL): JMKOGL; overload;
      end;

  public
    const
      RENDERMODE_WHEN_DIRTY = 0;
      RENDERMODE_CONTINUOUSLY = 1;
      DEBUG_CHECK_GL_ERROR = 1;
      DEBUG_LOG_GL_CALLS = 2;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setGLWrapper(para1: AOGLSurfaceView.InnerGLWrapper); overload; virtual;
    procedure setDebugFlags(para1: jint); overload; virtual;
    function getDebugFlags(): jint; overload; virtual;
    procedure setPreserveEGLContextOnPause(para1: jboolean); overload; virtual;
    function getPreserveEGLContextOnPause(): jboolean; overload; virtual;
    procedure setRenderer(para1: AOGLSurfaceView.InnerRenderer); overload; virtual;
    procedure setEGLContextFactory(para1: AOGLSurfaceView.InnerEGLContextFactory); overload; virtual;
    procedure setEGLWindowSurfaceFactory(para1: AOGLSurfaceView.InnerEGLWindowSurfaceFactory); overload; virtual;
    procedure setEGLConfigChooser(para1: AOGLSurfaceView.InnerEGLConfigChooser); overload; virtual;
    procedure setEGLConfigChooser(para1: jboolean); overload; virtual;
    procedure setEGLConfigChooser(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure setEGLContextClientVersion(para1: jint); overload; virtual;
    procedure setRenderMode(para1: jint); overload; virtual;
    function getRenderMode(): jint; overload; virtual;
    procedure requestRender(); overload; virtual;
    procedure surfaceCreated(para1: AVSurfaceHolder); overload; virtual;
    procedure surfaceDestroyed(para1: AVSurfaceHolder); overload; virtual;
    procedure surfaceChanged(para1: AVSurfaceHolder; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure queueEvent(para1: JLRunnable); overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  end;

  ARRSSurfaceView = class external 'android.renderscript' name 'RSSurfaceView' (AVSurfaceView, AVSurfaceHolder.InnerCallback)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure surfaceCreated(para1: AVSurfaceHolder); overload; virtual;
    procedure surfaceDestroyed(para1: AVSurfaceHolder); overload; virtual;
    procedure surfaceChanged(para1: AVSurfaceHolder; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure pause(); overload; virtual;
    procedure resume(); overload; virtual;
    function createRenderScriptGL(para1: ARRenderScriptGL.InnerSurfaceConfig): ARRenderScriptGL; overload; virtual;
    procedure destroyRenderScriptGL(); overload; virtual;
    procedure setRenderScriptGL(para1: ARRenderScriptGL); overload; virtual;
    function getRenderScriptGL(): ARRenderScriptGL; overload; virtual;
  end;

  ARRSTextureView = class external 'android.renderscript' name 'RSTextureView' (AVTextureView, AVTextureView.InnerSurfaceTextureListener)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure onSurfaceTextureAvailable(para1: AGSurfaceTexture; para2: jint; para3: jint); overload; virtual;
    procedure onSurfaceTextureSizeChanged(para1: AGSurfaceTexture; para2: jint; para3: jint); overload; virtual;
    function onSurfaceTextureDestroyed(para1: AGSurfaceTexture): jboolean; overload; virtual;
    procedure onSurfaceTextureUpdated(para1: AGSurfaceTexture); overload; virtual;
    procedure pause(); overload; virtual;
    procedure resume(); overload; virtual;
    function createRenderScriptGL(para1: ARRenderScriptGL.InnerSurfaceConfig): ARRenderScriptGL; overload; virtual;
    procedure destroyRenderScriptGL(); overload; virtual;
    procedure setRenderScriptGL(para1: ARRenderScriptGL); overload; virtual;
    function getRenderScriptGL(): ARRenderScriptGL; overload; virtual;
  end;

  AAActionBar = class abstract external 'android.app' name 'ActionBar' (JLObject)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerOnMenuVisibilityListener = interface;
      Arr1InnerOnMenuVisibilityListener = array of InnerOnMenuVisibilityListener;
      Arr2InnerOnMenuVisibilityListener = array of Arr1InnerOnMenuVisibilityListener;
      Arr3InnerOnMenuVisibilityListener = array of Arr2InnerOnMenuVisibilityListener;
      InnerOnNavigationListener = interface;
      Arr1InnerOnNavigationListener = array of InnerOnNavigationListener;
      Arr2InnerOnNavigationListener = array of Arr1InnerOnNavigationListener;
      Arr3InnerOnNavigationListener = array of Arr2InnerOnNavigationListener;
      InnerLayoutParams = class external 'android.app' name 'LayoutParams' (AVViewGroup.InnerMarginLayoutParams)
      public
        var
          fgravity: jint; external name 'gravity';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jint); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: AAActionBar.InnerLayoutParams); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
      end;

      InnerOnMenuVisibilityListener = interface external 'android.app' name 'OnMenuVisibilityListener' 
        procedure onMenuVisibilityChanged(para1: jboolean); overload;
      end;

      InnerOnNavigationListener = interface external 'android.app' name 'OnNavigationListener' 
        function onNavigationItemSelected(para1: jint; para2: jlong): jboolean; overload;
      end;
      
      InnerTab = class abstract external 'android.app' name 'Tab'
      end;

  public
    const
      NAVIGATION_MODE_STANDARD = 0;
      NAVIGATION_MODE_LIST = 1;
      NAVIGATION_MODE_TABS = 2;
      DISPLAY_USE_LOGO = 1;
      DISPLAY_SHOW_HOME = 2;
      DISPLAY_HOME_AS_UP = 4;
      DISPLAY_SHOW_TITLE = 8;
      DISPLAY_SHOW_CUSTOM = 16;
  public
    constructor create(); overload;
    procedure setCustomView(para1: AVView); overload; virtual; abstract;
    procedure setCustomView(para1: AVView; para2: AAActionBar.InnerLayoutParams); overload; virtual; abstract;
    procedure setCustomView(para1: jint); overload; virtual; abstract;
    procedure setIcon(para1: jint); overload; virtual; abstract;
    procedure setIcon(para1: AGDDrawable); overload; virtual; abstract;
    procedure setLogo(para1: jint); overload; virtual; abstract;
    procedure setLogo(para1: AGDDrawable); overload; virtual; abstract;
    procedure setListNavigationCallbacks(para1: AWSpinnerAdapter; para2: AAActionBar.InnerOnNavigationListener); overload; virtual; abstract;
    procedure setSelectedNavigationItem(para1: jint); overload; virtual; abstract;
    function getSelectedNavigationIndex(): jint; overload; virtual; abstract;
    function getNavigationItemCount(): jint; overload; virtual; abstract;
    procedure setTitle(para1: JLCharSequence); overload; virtual; abstract;
    procedure setTitle(para1: jint); overload; virtual; abstract;
    procedure setSubtitle(para1: JLCharSequence); overload; virtual; abstract;
    procedure setSubtitle(para1: jint); overload; virtual; abstract;
    procedure setDisplayOptions(para1: jint); overload; virtual; abstract;
    procedure setDisplayOptions(para1: jint; para2: jint); overload; virtual; abstract;
    procedure setDisplayUseLogoEnabled(para1: jboolean); overload; virtual; abstract;
    procedure setDisplayShowHomeEnabled(para1: jboolean); overload; virtual; abstract;
    procedure setDisplayHomeAsUpEnabled(para1: jboolean); overload; virtual; abstract;
    procedure setDisplayShowTitleEnabled(para1: jboolean); overload; virtual; abstract;
    procedure setDisplayShowCustomEnabled(para1: jboolean); overload; virtual; abstract;
    procedure setBackgroundDrawable(para1: AGDDrawable); overload; virtual; abstract;
    procedure setStackedBackgroundDrawable(para1: AGDDrawable); overload; virtual;
    procedure setSplitBackgroundDrawable(para1: AGDDrawable); overload; virtual;
    function getCustomView(): AVView; overload; virtual; abstract;
    function getTitle(): JLCharSequence; overload; virtual; abstract;
    function getSubtitle(): JLCharSequence; overload; virtual; abstract;
    function getNavigationMode(): jint; overload; virtual; abstract;
    procedure setNavigationMode(para1: jint); overload; virtual; abstract;
    function getDisplayOptions(): jint; overload; virtual; abstract;
    function newTab(): AAActionBar.InnerTab; overload; virtual; abstract;
    procedure addTab(para1: AAActionBar.InnerTab); overload; virtual; abstract;
    procedure addTab(para1: AAActionBar.InnerTab; para2: jboolean); overload; virtual; abstract;
    procedure addTab(para1: AAActionBar.InnerTab; para2: jint); overload; virtual; abstract;
    procedure addTab(para1: AAActionBar.InnerTab; para2: jint; para3: jboolean); overload; virtual; abstract;
    procedure removeTab(para1: AAActionBar.InnerTab); overload; virtual; abstract;
    procedure removeTabAt(para1: jint); overload; virtual; abstract;
    procedure removeAllTabs(); overload; virtual; abstract;
    procedure selectTab(para1: AAActionBar.InnerTab); overload; virtual; abstract;
    function getSelectedTab(): AAActionBar.InnerTab; overload; virtual; abstract;
    function getTabAt(para1: jint): AAActionBar.InnerTab; overload; virtual; abstract;
    function getTabCount(): jint; overload; virtual; abstract;
    function getHeight(): jint; overload; virtual; abstract;
    procedure show(); overload; virtual; abstract;
    procedure hide(); overload; virtual; abstract;
    function isShowing(): jboolean; overload; virtual; abstract;
    procedure addOnMenuVisibilityListener(para1: AAActionBar.InnerOnMenuVisibilityListener); overload; virtual; abstract;
    procedure removeOnMenuVisibilityListener(para1: AAActionBar.InnerOnMenuVisibilityListener); overload; virtual; abstract;
    procedure setHomeButtonEnabled(para1: jboolean); overload; virtual;
    function getThemedContext(): ACContext; overload; virtual;
  end;

  AWAbsoluteLayout = class external 'android.widget' name 'AbsoluteLayout' (AVViewGroup)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup_LayoutParams)
      public
        var
          fx: jint; external name 'x';
          fy: jint; external name 'y';
      public
        constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        function debug(para1: JLString): JLString; overload; virtual;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  strict protected
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
  end;

  AWAdapterView = class abstract external 'android.widget' name 'AdapterView' (AVViewGroup)
  public
    type
      InnerOnItemSelectedListener = interface;
      Arr1InnerOnItemSelectedListener = array of InnerOnItemSelectedListener;
      Arr2InnerOnItemSelectedListener = array of Arr1InnerOnItemSelectedListener;
      Arr3InnerOnItemSelectedListener = array of Arr2InnerOnItemSelectedListener;
      InnerOnItemLongClickListener = interface;
      Arr1InnerOnItemLongClickListener = array of InnerOnItemLongClickListener;
      Arr2InnerOnItemLongClickListener = array of Arr1InnerOnItemLongClickListener;
      Arr3InnerOnItemLongClickListener = array of Arr2InnerOnItemLongClickListener;
      InnerOnItemClickListener = interface;
      Arr1InnerOnItemClickListener = array of InnerOnItemClickListener;
      Arr2InnerOnItemClickListener = array of Arr1InnerOnItemClickListener;
      Arr3InnerOnItemClickListener = array of Arr2InnerOnItemClickListener;
      InnerAdapterContextMenuInfo = class;
      Arr1InnerAdapterContextMenuInfo = array of InnerAdapterContextMenuInfo;
      Arr2InnerAdapterContextMenuInfo = array of Arr1InnerAdapterContextMenuInfo;
      Arr3InnerAdapterContextMenuInfo = array of Arr2InnerAdapterContextMenuInfo;
      InnerOnItemSelectedListener = interface external 'android.widget' name 'OnItemSelectedListener' 
        procedure onItemSelected(para1: AWAdapterView; para2: AVView; para3: jint; para4: jlong); overload;
        procedure onNothingSelected(para1: AWAdapterView); overload;
      end;

      InnerOnItemLongClickListener = interface external 'android.widget' name 'OnItemLongClickListener' 
        function onItemLongClick(para1: AWAdapterView; para2: AVView; para3: jint; para4: jlong): jboolean; overload;
      end;

      InnerOnItemClickListener = interface external 'android.widget' name 'OnItemClickListener' 
        procedure onItemClick(para1: AWAdapterView; para2: AVView; para3: jint; para4: jlong); overload;
      end;

      InnerAdapterContextMenuInfo = class external 'android.widget' name 'AdapterContextMenuInfo' (JLObject, AVContextMenu.InnerContextMenuInfo)
      public
        var
          ftargetView: AVView; external name 'targetView';
          fposition: jint; external name 'position';
          fid: jlong; external name 'id';
      public
        constructor create(para1: AVView; para2: jint; para3: jlong); overload;
      end;

  public
    const
      ITEM_VIEW_TYPE_IGNORE = -1;
      ITEM_VIEW_TYPE_HEADER_OR_FOOTER = -2;
      INVALID_POSITION = -1;
      INVALID_ROW_ID = jlong(-9223372036854775808);
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setOnItemClickListener(para1: AWAdapterView.InnerOnItemClickListener); overload; virtual;
    function getOnItemClickListener(): AWAdapterView.InnerOnItemClickListener; overload; virtual; final;
    function performItemClick(para1: AVView; para2: jint; para3: jlong): jboolean; overload; virtual;
    procedure setOnItemLongClickListener(para1: AWAdapterView.InnerOnItemLongClickListener); overload; virtual;
    function getOnItemLongClickListener(): AWAdapterView.InnerOnItemLongClickListener; overload; virtual; final;
    procedure setOnItemSelectedListener(para1: AWAdapterView.InnerOnItemSelectedListener); overload; virtual;
    function getOnItemSelectedListener(): AWAdapterView.InnerOnItemSelectedListener; overload; virtual; final;
    function getAdapter(): AWAdapter; overload; virtual; abstract;
    procedure setAdapter(para1: AWAdapter); overload; virtual; abstract;
    procedure addView(para1: AVView); overload; virtual;
    procedure addView(para1: AVView; para2: jint); overload; virtual;
    procedure addView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    procedure removeView(para1: AVView); overload; virtual;
    procedure removeViewAt(para1: jint); overload; virtual;
    procedure removeAllViews(); overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function getSelectedItemPosition(): jint; overload; virtual;
    function getSelectedItemId(): jlong; overload; virtual;
    function getSelectedView(): AVView; overload; virtual; abstract;
    function getSelectedItem(): JLObject; overload; virtual;
    function getCount(): jint; overload; virtual;
    function getPositionForView(para1: AVView): jint; overload; virtual;
    function getFirstVisiblePosition(): jint; overload; virtual;
    function getLastVisiblePosition(): jint; overload; virtual;
    procedure setSelection(para1: jint); overload; virtual; abstract;
    procedure setEmptyView(para1: AVView); overload; virtual;
    function getEmptyView(): AVView; overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
    procedure setFocusableInTouchMode(para1: jboolean); overload; virtual;
    function getItemAtPosition(para1: jint): JLObject; overload; virtual;
    function getItemIdAtPosition(para1: jint): jlong; overload; virtual;
    procedure setOnClickListener(para1: AVView.InnerOnClickListener); overload; virtual;
  strict protected
    procedure dispatchSaveInstanceState(para1: AUSparseArray); overload; virtual;
    procedure dispatchRestoreInstanceState(para1: AUSparseArray); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    function onRequestSendAccessibilityEvent(para1: AVView; para2: AVAAccessibilityEvent): jboolean; overload; virtual;
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  strict protected
    function canAnimate(): jboolean; overload; virtual;
  end;

  AWFrameLayout = class external 'android.widget' name 'FrameLayout' (AVViewGroup)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup.InnerMarginLayoutParams)
      public
        var
          fgravity: jint; external name 'gravity';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jint); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setForegroundGravity(para1: jint); overload; virtual;
  strict protected
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
    function generateDefaultLayoutParams(): AWFrameLayout.InnerLayoutParams; overload; virtual;
  public
    procedure setForeground(para1: AGDDrawable); overload; virtual;
    function getForeground(): AGDDrawable; overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  public
    procedure draw(para1: AGCanvas); overload; virtual;
    function gatherTransparentRegion(para1: AGRegion): jboolean; overload; virtual;
    procedure setMeasureAllChildren(para1: jboolean); overload; virtual;
    function getConsiderGoneChildrenWhenMeasuring(): jboolean; overload; virtual;
    function getMeasureAllChildren(): jboolean; overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AWFrameLayout.InnerLayoutParams; overload; virtual;
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
  strict protected
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWGridLayout = class external 'android.widget' name 'GridLayout' (AVViewGroup)
  public
    type
      InnerAlignment = class;
      Arr1InnerAlignment = array of InnerAlignment;
      Arr2InnerAlignment = array of Arr1InnerAlignment;
      Arr3InnerAlignment = array of Arr2InnerAlignment;
      InnerSpec = class;
      Arr1InnerSpec = array of InnerSpec;
      Arr2InnerSpec = array of Arr1InnerSpec;
      Arr3InnerSpec = array of Arr2InnerSpec;
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerAlignment = class abstract external 'android.widget' name 'Alignment' (JLObject)
      end;

      InnerSpec = class external 'android.widget' name 'Spec' (JLObject)
      public
        function equals(para1: JLObject): jboolean; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup.InnerMarginLayoutParams)
      public
        var
          frowSpec: AWGridLayout.InnerSpec; external name 'rowSpec';
          fcolumnSpec: AWGridLayout.InnerSpec; external name 'columnSpec';
      public
        constructor create(para1: AWGridLayout.InnerSpec; para2: AWGridLayout.InnerSpec); overload;
        constructor create(); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
        constructor create(para1: AWGridLayout.InnerLayoutParams); overload;
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        procedure setGravity(para1: jint); overload; virtual;
      strict protected
        procedure setBaseAttributes(para1: ACRTypedArray; para2: jint; para3: jint); overload; virtual;
      end;

  public
    const
      HORIZONTAL = 0;
      VERTICAL = 1;
      UNDEFINED = -2147483648;
      ALIGN_BOUNDS = 0;
      ALIGN_MARGINS = 1;
  public
    final class var
      fTOP: AWGridLayout.InnerAlignment; external name 'TOP';
      fBOTTOM: AWGridLayout.InnerAlignment; external name 'BOTTOM';
      fRIGHT: AWGridLayout.InnerAlignment; external name 'RIGHT';
      fLEFT: AWGridLayout.InnerAlignment; external name 'LEFT';
      fCENTER: AWGridLayout.InnerAlignment; external name 'CENTER';
      fBASELINE: AWGridLayout.InnerAlignment; external name 'BASELINE';
      fFILL: AWGridLayout.InnerAlignment; external name 'FILL';
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function getRowCount(): jint; overload; virtual;
    procedure setRowCount(para1: jint); overload; virtual;
    function getColumnCount(): jint; overload; virtual;
    procedure setColumnCount(para1: jint); overload; virtual;
    function getUseDefaultMargins(): jboolean; overload; virtual;
    procedure setUseDefaultMargins(para1: jboolean); overload; virtual;
    function getAlignmentMode(): jint; overload; virtual;
    procedure setAlignmentMode(para1: jint); overload; virtual;
    function isRowOrderPreserved(): jboolean; overload; virtual;
    procedure setRowOrderPreserved(para1: jboolean); overload; virtual;
    function isColumnOrderPreserved(): jboolean; overload; virtual;
    procedure setColumnOrderPreserved(para1: jboolean); overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AWGridLayout.InnerLayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWGridLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AWGridLayout.InnerLayoutParams; overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    procedure requestLayout(); overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    class function spec(para1: jint; para2: jint; para3: AWGridLayout.InnerAlignment): AWGridLayout.InnerSpec; static; overload;
    class function spec(para1: jint; para2: AWGridLayout.InnerAlignment): AWGridLayout.InnerSpec; static; overload;
    class function spec(para1: jint; para2: jint): AWGridLayout.InnerSpec; static; overload;
    class function spec(para1: jint): AWGridLayout.InnerSpec; static; overload;
  strict protected
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWLinearLayout = class external 'android.widget' name 'LinearLayout' (AVViewGroup)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup.InnerMarginLayoutParams)
      public
        var
          fweight: jfloat; external name 'weight';
          fgravity: jint; external name 'gravity';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jfloat); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
        function debug(para1: JLString): JLString; overload; virtual;
      end;

  public
    const
      HORIZONTAL = 0;
      VERTICAL = 1;
      SHOW_DIVIDER_NONE = 0;
      SHOW_DIVIDER_BEGINNING = 1;
      SHOW_DIVIDER_MIDDLE = 2;
      SHOW_DIVIDER_END = 4;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setShowDividers(para1: jint); overload; virtual;
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
    function getShowDividers(): jint; overload; virtual;
    procedure setDividerDrawable(para1: AGDDrawable); overload; virtual;
    procedure setDividerPadding(para1: jint); overload; virtual;
    function getDividerPadding(): jint; overload; virtual;
  strict protected
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    function isBaselineAligned(): jboolean; overload; virtual;
    procedure setBaselineAligned(para1: jboolean); overload; virtual;
    function isMeasureWithLargestChildEnabled(): jboolean; overload; virtual;
    procedure setMeasureWithLargestChildEnabled(para1: jboolean); overload; virtual;
    function getBaseline(): jint; overload; virtual;
    function getBaselineAlignedChildIndex(): jint; overload; virtual;
    procedure setBaselineAlignedChildIndex(para1: jint); overload; virtual;
    function getWeightSum(): jfloat; overload; virtual;
    procedure setWeightSum(para1: jfloat); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    procedure setOrientation(para1: jint); overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setGravity(para1: jint); overload; virtual;
    procedure setHorizontalGravity(para1: jint); overload; virtual;
    procedure setVerticalGravity(para1: jint); overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AWLinearLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AWLinearLayout.InnerLayoutParams; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AWLinearLayout.InnerLayoutParams; overload; virtual;
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWRelativeLayout = class external 'android.widget' name 'RelativeLayout' (AVViewGroup)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup.InnerMarginLayoutParams)
      public
        var
          falignWithParent: jboolean; external name 'alignWithParent';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
        function debug(para1: JLString): JLString; overload; virtual;
        procedure addRule(para1: jint); overload; virtual;
        procedure addRule(para1: jint; para2: jint); overload; virtual;
        function getRules(): Arr1jint; overload; virtual;
      end;

  public
    const
      &TRUE = -1;
      LEFT_OF = 0;
      RIGHT_OF = 1;
      ABOVE = 2;
      BELOW = 3;
      ALIGN_BASELINE = 4;
      ALIGN_LEFT = 5;
      ALIGN_TOP = 6;
      ALIGN_RIGHT = 7;
      ALIGN_BOTTOM = 8;
      ALIGN_PARENT_LEFT = 9;
      ALIGN_PARENT_TOP = 10;
      ALIGN_PARENT_RIGHT = 11;
      ALIGN_PARENT_BOTTOM = 12;
      CENTER_IN_PARENT = 13;
      CENTER_HORIZONTAL = 14;
      CENTER_VERTICAL = 15;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
    procedure setIgnoreGravity(para1: jint); overload; virtual;
    procedure setGravity(para1: jint); overload; virtual;
    procedure setHorizontalGravity(para1: jint); overload; virtual;
    procedure setVerticalGravity(para1: jint); overload; virtual;
    function getBaseline(): jint; overload; virtual;
    procedure requestLayout(); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWRelativeLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWSlidingDrawer = class external 'android.widget' name 'SlidingDrawer' (AVViewGroup)
  public
    type
      InnerOnDrawerScrollListener = interface;
      Arr1InnerOnDrawerScrollListener = array of InnerOnDrawerScrollListener;
      Arr2InnerOnDrawerScrollListener = array of Arr1InnerOnDrawerScrollListener;
      Arr3InnerOnDrawerScrollListener = array of Arr2InnerOnDrawerScrollListener;
      InnerOnDrawerCloseListener = interface;
      Arr1InnerOnDrawerCloseListener = array of InnerOnDrawerCloseListener;
      Arr2InnerOnDrawerCloseListener = array of Arr1InnerOnDrawerCloseListener;
      Arr3InnerOnDrawerCloseListener = array of Arr2InnerOnDrawerCloseListener;
      InnerOnDrawerOpenListener = interface;
      Arr1InnerOnDrawerOpenListener = array of InnerOnDrawerOpenListener;
      Arr2InnerOnDrawerOpenListener = array of Arr1InnerOnDrawerOpenListener;
      Arr3InnerOnDrawerOpenListener = array of Arr2InnerOnDrawerOpenListener;
      InnerOnDrawerScrollListener = interface external 'android.widget' name 'OnDrawerScrollListener' 
        procedure onScrollStarted(); overload;
        procedure onScrollEnded(); overload;
      end;

      InnerOnDrawerCloseListener = interface external 'android.widget' name 'OnDrawerCloseListener' 
        procedure onDrawerClosed(); overload;
      end;

      InnerOnDrawerOpenListener = interface external 'android.widget' name 'OnDrawerOpenListener' 
        procedure onDrawerOpened(); overload;
      end;

  public
    const
      ORIENTATION_HORIZONTAL = 0;
      ORIENTATION_VERTICAL = 1;
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onFinishInflate(); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure toggle(); overload; virtual;
    procedure animateToggle(); overload; virtual;
    procedure open(); overload; virtual;
    procedure close(); overload; virtual;
    procedure animateClose(); overload; virtual;
    procedure animateOpen(); overload; virtual;
    procedure setOnDrawerOpenListener(para1: AWSlidingDrawer.InnerOnDrawerOpenListener); overload; virtual;
    procedure setOnDrawerCloseListener(para1: AWSlidingDrawer.InnerOnDrawerCloseListener); overload; virtual;
    procedure setOnDrawerScrollListener(para1: AWSlidingDrawer.InnerOnDrawerScrollListener); overload; virtual;
    function getHandle(): AVView; overload; virtual;
    function getContent(): AVView; overload; virtual;
    procedure unlock(); overload; virtual;
    procedure lock(); overload; virtual;
    function isOpened(): jboolean; overload; virtual;
    function isMoving(): jboolean; overload; virtual;
  end;

  AWImageButton = class external 'android.widget' name 'ImageButton' (AWImageView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    function onSetAlpha(para1: jint): jboolean; overload; virtual;
  end;

  AWQuickContactBadge = class external 'android.widget' name 'QuickContactBadge' (AWImageView, AVView.InnerOnClickListener)
  strict protected
    var
      fmExcludeMimes: Arr1JLString; external name 'mExcludeMimes';
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
  public
    procedure setMode(para1: jint); overload; virtual;
  strict protected
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    procedure setImageToDefault(); overload; virtual;
    procedure assignContactUri(para1: ANUri); overload; virtual;
    procedure assignContactFromEmail(para1: JLString; para2: jboolean); overload; virtual;
    procedure assignContactFromPhone(para1: JLString; para2: jboolean); overload; virtual;
    procedure onClick(para1: AVView); overload; virtual;
    procedure setExcludeMimes(para1: Arr1JLString); overload; virtual;
    procedure setExcludeMimes(var para1: array of JLString); overload; virtual;
  end;

  AWAbsSeekBar = class abstract external 'android.widget' name 'AbsSeekBar' (AWProgressBar)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setThumb(para1: AGDDrawable); overload; virtual;
    function getThumbOffset(): jint; overload; virtual;
    procedure setThumbOffset(para1: jint); overload; virtual;
    procedure setKeyProgressIncrement(para1: jint); overload; virtual;
    function getKeyProgressIncrement(): jint; overload; virtual;
    procedure setMax(para1: jint); overload; virtual;
  strict protected
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
  end;

  AWButton = class external 'android.widget' name 'Button' (AWTextView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  end;

  AWCheckedTextView = class external 'android.widget' name 'CheckedTextView' (AWTextView, AWCheckable)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure toggle(); overload; virtual;
    function isChecked(): jboolean; overload; virtual;
    procedure setChecked(para1: jboolean); overload; virtual;
    procedure setCheckMarkDrawable(para1: jint); overload; virtual;
    procedure setCheckMarkDrawable(para1: AGDDrawable); overload; virtual;
    procedure setPadding(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  strict protected
    procedure onDraw(para1: AGCanvas); overload; virtual;
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
    procedure drawableStateChanged(); overload; virtual;
  public
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
  end;

  AWChronometer = class external 'android.widget' name 'Chronometer' (AWTextView)
  public
    type
      InnerOnChronometerTickListener = interface;
      Arr1InnerOnChronometerTickListener = array of InnerOnChronometerTickListener;
      Arr2InnerOnChronometerTickListener = array of Arr1InnerOnChronometerTickListener;
      Arr3InnerOnChronometerTickListener = array of Arr2InnerOnChronometerTickListener;
      InnerOnChronometerTickListener = interface external 'android.widget' name 'OnChronometerTickListener' 
        procedure onChronometerTick(para1: AWChronometer); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setBase(para1: jlong); overload; virtual;
    function getBase(): jlong; overload; virtual;
    procedure setFormat(para1: JLString); overload; virtual;
    function getFormat(): JLString; overload; virtual;
    procedure setOnChronometerTickListener(para1: AWChronometer.InnerOnChronometerTickListener); overload; virtual;
    function getOnChronometerTickListener(): AWChronometer.InnerOnChronometerTickListener; overload; virtual;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
  strict protected
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onWindowVisibilityChanged(para1: jint); overload; virtual;
  end;

  AWDigitalClock = class external 'android.widget' name 'DigitalClock' (AWTextView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  end;

  AWEditText = class external 'android.widget' name 'EditText' (AWTextView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    function getDefaultEditable(): jboolean; overload; virtual;
    function getDefaultMovementMethod(): ATMMovementMethod; overload; virtual;
  public
    function getText(): ATEditable; overload; virtual;
    procedure setText(para1: JLCharSequence; para2: AWTextView.InnerBufferType); overload; virtual;
    procedure setSelection(para1: jint; para2: jint); overload; virtual;
    procedure setSelection(para1: jint); overload; virtual;
    procedure selectAll(); overload; virtual;
    procedure extendSelection(para1: jint); overload; virtual;
    procedure setEllipsize(para1: ATTextUtils.InnerTruncateAt); overload; virtual;
    function getText(): JLCharSequence; overload; virtual;
  end;

  JNCDatagramChannel = class abstract external 'java.nio.channels' name 'DatagramChannel' (JNCSAbstractSelectableChannel, JNCByteChannel, JNCScatteringByteChannel, JNCGatheringByteChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    class function open(): JNCDatagramChannel; static; overload;  // throws java.io.IOException
    function validOps(): jint; overload; virtual; final;
    function socket(): JNDatagramSocket; overload; virtual; abstract;
    function isConnected(): jboolean; overload; virtual; abstract;
    function connect(para1: JNSocketAddress): JNCDatagramChannel; overload; virtual; abstract;  // throws java.io.IOException
    function disconnect(): JNCDatagramChannel; overload; virtual; abstract;  // throws java.io.IOException
    function receive(para1: JNByteBuffer): JNSocketAddress; overload; virtual; abstract;  // throws java.io.IOException
    function send(para1: JNByteBuffer; para2: JNSocketAddress): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
  end;

  JNCPipe = class abstract external 'java.nio.channels' name 'Pipe' (JLObject)
  public
    type
      InnerSourceChannel = class;
      Arr1InnerSourceChannel = array of InnerSourceChannel;
      Arr2InnerSourceChannel = array of Arr1InnerSourceChannel;
      Arr3InnerSourceChannel = array of Arr2InnerSourceChannel;
      InnerSinkChannel = class;
      Arr1InnerSinkChannel = array of InnerSinkChannel;
      Arr2InnerSinkChannel = array of Arr1InnerSinkChannel;
      Arr3InnerSinkChannel = array of Arr2InnerSinkChannel;
      InnerSourceChannel = class abstract external 'java.nio.channels' name 'SourceChannel' (JNCSAbstractSelectableChannel, JNCReadableByteChannel, JNCScatteringByteChannel)
      strict protected
        constructor create(para1: JNCSSelectorProvider); overload;
      public
        function validOps(): jint; overload; virtual; final;
      end;

      InnerSinkChannel = class abstract external 'java.nio.channels' name 'SinkChannel' (JNCSAbstractSelectableChannel, JNCWritableByteChannel, JNCGatheringByteChannel)
      strict protected
        constructor create(para1: JNCSSelectorProvider); overload;
      public
        function validOps(): jint; overload; virtual; final;
      end;

  strict protected
    constructor create(); overload;
  public
    class function open(): JNCPipe; static; overload;  // throws java.io.IOException
    function sink(): JNCPipe.InnerSinkChannel; overload; virtual; abstract;
    function source(): JNCPipe.InnerSourceChannel; overload; virtual; abstract;
  end;

  JNCServerSocketChannel = class abstract external 'java.nio.channels' name 'ServerSocketChannel' (JNCSAbstractSelectableChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    class function open(): JNCServerSocketChannel; static; overload;  // throws java.io.IOException
    function validOps(): jint; overload; virtual; final;
    function socket(): JNServerSocket; overload; virtual; abstract;
    function accept(): JNCSocketChannel; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCSocketChannel = class abstract external 'java.nio.channels' name 'SocketChannel' (JNCSAbstractSelectableChannel, JNCByteChannel, JNCScatteringByteChannel, JNCGatheringByteChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    class function open(): JNCSocketChannel; static; overload;  // throws java.io.IOException
    class function open(para1: JNSocketAddress): JNCSocketChannel; static; overload;  // throws java.io.IOException
    function validOps(): jint; overload; virtual; final;
    function socket(): JNSocket; overload; virtual; abstract;
    function isConnected(): jboolean; overload; virtual; abstract;
    function isConnectionPending(): jboolean; overload; virtual; abstract;
    function connect(para1: JNSocketAddress): jboolean; overload; virtual; abstract;  // throws java.io.IOException
    function finishConnect(): jboolean; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
  end;

  AATabActivity = class external 'android.app' name 'TabActivity' (AAActivityGroup)
  public
    constructor create(); overload;
    procedure setDefaultTab(para1: JLString); overload; virtual;
    procedure setDefaultTab(para1: jint); overload; virtual;
  strict protected
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
    procedure onPostCreate(para1: AOBundle); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
  public
    procedure onContentChanged(); overload; virtual;
  strict protected
    procedure onChildTitleChanged(para1: AAActivity; para2: JLCharSequence); overload; virtual;
  public
    function getTabHost(): AWTabHost; overload; virtual;
    function getTabWidget(): AWTabWidget; overload; virtual;
  end;

  AALauncherActivity = class abstract external 'android.app' name 'LauncherActivity' (AAListActivity)
  public
    type
      InnerIconResizer = class;
      Arr1InnerIconResizer = array of InnerIconResizer;
      Arr2InnerIconResizer = array of Arr1InnerIconResizer;
      Arr3InnerIconResizer = array of Arr2InnerIconResizer;
      InnerListItem = class;
      Arr1InnerListItem = array of InnerListItem;
      Arr2InnerListItem = array of Arr1InnerListItem;
      Arr3InnerListItem = array of Arr2InnerListItem;
      InnerIconResizer = class external 'android.app' name 'IconResizer' 
      end;

      InnerListItem = class external 'android.app' name 'ListItem' (JLObject)
      public
        var
          fresolveInfo: ACPResolveInfo; external name 'resolveInfo';
          flabel: JLCharSequence; external name 'label';
          ficon: AGDDrawable; external name 'icon';
          fpackageName: JLString; external name 'packageName';
          fclassName: JLString; external name 'className';
          fextras: AOBundle; external name 'extras';
      public
        constructor create(); overload;
      end;

  public
    constructor create(); overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  public
    procedure setTitle(para1: JLCharSequence); overload; virtual;
    procedure setTitle(para1: jint); overload; virtual;
  strict protected
    procedure onSetContentView(); overload; virtual;
    procedure onListItemClick(para1: AWListView; para2: AVView; para3: jint; para4: jlong); overload; virtual;
    function intentForPosition(para1: jint): ACIntent; overload; virtual;
    function itemForPosition(para1: jint): AALauncherActivity.InnerListItem; overload; virtual;
    function getTargetIntent(): ACIntent; overload; virtual;
    function onQueryPackageManager(para1: ACIntent): JUList; overload; virtual;
  public
    function makeListItems(): JUList; overload; virtual;
  end;

  AAFragmentBreadCrumbs = class external 'android.app' name 'FragmentBreadCrumbs' (AVViewGroup, AAFragmentManager.InnerOnBackStackChangedListener)
  public
    type
      InnerOnBreadCrumbClickListener = interface;
      Arr1InnerOnBreadCrumbClickListener = array of InnerOnBreadCrumbClickListener;
      Arr2InnerOnBreadCrumbClickListener = array of Arr1InnerOnBreadCrumbClickListener;
      Arr3InnerOnBreadCrumbClickListener = array of Arr2InnerOnBreadCrumbClickListener;
      InnerOnBreadCrumbClickListener = interface external 'android.app' name 'OnBreadCrumbClickListener' 
        function onBreadCrumbClick(para1: AAFragmentManager.InnerBackStackEntry; para2: jint): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setActivity(para1: AAActivity); overload; virtual;
    procedure setMaxVisible(para1: jint); overload; virtual;
    procedure setParentTitle(para1: JLCharSequence; para2: JLCharSequence; para3: AVView.InnerOnClickListener); overload; virtual;
    procedure setOnBreadCrumbClickListener(para1: AAFragmentBreadCrumbs.InnerOnBreadCrumbClickListener); overload; virtual;
    procedure setTitle(para1: JLCharSequence; para2: JLCharSequence); overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    procedure onBackStackChanged(); overload; virtual;
  end;

  APPreferenceActivity = class abstract external 'android.preference' name 'PreferenceActivity' (AAListActivity, APPreferenceFragment.InnerOnPreferenceStartFragmentCallback)
  public
    type
      InnerHeader = class;
      Arr1InnerHeader = array of InnerHeader;
      Arr2InnerHeader = array of Arr1InnerHeader;
      Arr3InnerHeader = array of Arr2InnerHeader;
      InnerHeader = class sealed external 'android.preference' name 'Header' (JLObject, AOParcelable)
      public
        var
          fid: jlong; external name 'id';
          ftitleRes: jint; external name 'titleRes';
          ftitle: JLCharSequence; external name 'title';
          fsummaryRes: jint; external name 'summaryRes';
          fsummary: JLCharSequence; external name 'summary';
          fbreadCrumbTitleRes: jint; external name 'breadCrumbTitleRes';
          fbreadCrumbTitle: JLCharSequence; external name 'breadCrumbTitle';
          fbreadCrumbShortTitleRes: jint; external name 'breadCrumbShortTitleRes';
          fbreadCrumbShortTitle: JLCharSequence; external name 'breadCrumbShortTitle';
          ficonRes: jint; external name 'iconRes';
          ffragment: JLString; external name 'fragment';
          ffragmentArguments: AOBundle; external name 'fragmentArguments';
          fintent: ACIntent; external name 'intent';
          fextras: AOBundle; external name 'extras';
      public
        final class var
          fCREATOR: AOParcelable.InnerCreator; external name 'CREATOR';
      public
        constructor create(); overload;
        function getTitle(para1: ACRResources): JLCharSequence; overload; virtual;
        function getSummary(para1: ACRResources): JLCharSequence; overload; virtual;
        function getBreadCrumbTitle(para1: ACRResources): JLCharSequence; overload; virtual;
        function getBreadCrumbShortTitle(para1: ACRResources): JLCharSequence; overload; virtual;
        function describeContents(): jint; overload; virtual;
        procedure writeToParcel(para1: AOParcel; para2: jint); overload; virtual;
        procedure readFromParcel(para1: AOParcel); overload; virtual;
      end;

  public
    const
      EXTRA_SHOW_FRAGMENT = ':android:show_fragment';
      EXTRA_SHOW_FRAGMENT_ARGUMENTS = ':android:show_fragment_args';
      EXTRA_SHOW_FRAGMENT_TITLE = ':android:show_fragment_title';
      EXTRA_SHOW_FRAGMENT_SHORT_TITLE = ':android:show_fragment_short_title';
      EXTRA_NO_HEADERS = ':android:no_headers';
      HEADER_ID_UNDEFINED = jlong(-1);
  public
    constructor create(); overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  public
    function hasHeaders(): jboolean; overload; virtual;
    function isMultiPane(): jboolean; overload; virtual;
    function onIsMultiPane(): jboolean; overload; virtual;
    function onIsHidingHeaders(): jboolean; overload; virtual;
    function onGetInitialHeader(): APPreferenceActivity.InnerHeader; overload; virtual;
    function onGetNewHeader(): APPreferenceActivity.InnerHeader; overload; virtual;
    procedure onBuildHeaders(para1: JUList); overload; virtual;
    procedure invalidateHeaders(); overload; virtual;
    procedure loadHeadersFromResource(para1: jint; para2: JUList); overload; virtual;
    procedure setListFooter(para1: AVView); overload; virtual;
  strict protected
    procedure onStop(); overload; virtual;
    procedure onDestroy(); overload; virtual;
    procedure onSaveInstanceState(para1: AOBundle); overload; virtual;
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
    procedure onActivityResult(para1: jint; para2: jint; para3: ACIntent); overload; virtual;
  public
    procedure onContentChanged(); overload; virtual;
  strict protected
    procedure onListItemClick(para1: AWListView; para2: AVView; para3: jint; para4: jlong); overload; virtual;
  public
    procedure onHeaderClick(para1: APPreferenceActivity.InnerHeader; para2: jint); overload; virtual;
    function onBuildStartFragmentIntent(para1: JLString; para2: AOBundle; para3: jint; para4: jint): ACIntent; overload; virtual;
    procedure startWithFragment(para1: JLString; para2: AOBundle; para3: AAFragment; para4: jint); overload; virtual;
    procedure startWithFragment(para1: JLString; para2: AOBundle; para3: AAFragment; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure showBreadCrumbs(para1: JLCharSequence; para2: JLCharSequence); overload; virtual;
    procedure setParentTitle(para1: JLCharSequence; para2: JLCharSequence; para3: AVView.InnerOnClickListener); overload; virtual;
    procedure switchToHeader(para1: JLString; para2: AOBundle); overload; virtual;
    procedure switchToHeader(para1: APPreferenceActivity.InnerHeader); overload; virtual;
    procedure startPreferenceFragment(para1: AAFragment; para2: jboolean); overload; virtual;
    procedure startPreferencePanel(para1: JLString; para2: AOBundle; para3: jint; para4: JLCharSequence; para5: AAFragment; para6: jint); overload; virtual;
    procedure finishPreferencePanel(para1: AAFragment; para2: jint; para3: ACIntent); overload; virtual;
    function onPreferenceStartFragment(para1: APPreferenceFragment; para2: APPreference): jboolean; overload; virtual;
    function getPreferenceManager(): APPreferenceManager; overload; virtual;
    procedure setPreferenceScreen(para1: APPreferenceScreen); overload; virtual;
    function getPreferenceScreen(): APPreferenceScreen; overload; virtual;
    procedure addPreferencesFromIntent(para1: ACIntent); overload; virtual;
    procedure addPreferencesFromResource(para1: jint); overload; virtual;
    function onPreferenceTreeClick(para1: APPreferenceScreen; para2: APPreference): jboolean; overload; virtual;
    function findPreference(para1: JLCharSequence): APPreference; overload; virtual;
  strict protected
    procedure onNewIntent(para1: ACIntent); overload; virtual;
  end;

  AWWebView = class external 'android.webkit' name 'WebView' (AWAbsoluteLayout, AVViewTreeObserver.InnerOnGlobalFocusChangeListener, AVViewGroup.InnerOnHierarchyChangeListener)
  public
    type
      InnerHitTestResult = class;
      Arr1InnerHitTestResult = array of InnerHitTestResult;
      Arr2InnerHitTestResult = array of Arr1InnerHitTestResult;
      Arr3InnerHitTestResult = array of Arr2InnerHitTestResult;
      InnerPictureListener = interface;
      Arr1InnerPictureListener = array of InnerPictureListener;
      Arr2InnerPictureListener = array of Arr1InnerPictureListener;
      Arr3InnerPictureListener = array of Arr2InnerPictureListener;
      InnerWebViewTransport = class;
      Arr1InnerWebViewTransport = array of InnerWebViewTransport;
      Arr2InnerWebViewTransport = array of Arr1InnerWebViewTransport;
      Arr3InnerWebViewTransport = array of Arr2InnerWebViewTransport;
      InnerHitTestResult = class external 'android.webkit' name 'HitTestResult' 
      end;

      InnerPictureListener = interface external 'android.webkit' name 'PictureListener' 
        procedure onNewPicture(para1: AWWebView; para2: AGPicture); overload;
      end;

      InnerWebViewTransport = class external 'android.webkit' name 'WebViewTransport' 
      end;

  public
    const
      SCHEME_TEL = 'tel:';
      SCHEME_MAILTO = 'mailto:';
      SCHEME_GEO = 'geo:0,0?q=';
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint; para4: jboolean); overload;
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure setOverScrollMode(para1: jint); overload; virtual;
    procedure setScrollBarStyle(para1: jint); overload; virtual;
    procedure setHorizontalScrollbarOverlay(para1: jboolean); overload; virtual;
    procedure setVerticalScrollbarOverlay(para1: jboolean); overload; virtual;
    function overlayHorizontalScrollbar(): jboolean; overload; virtual;
    function overlayVerticalScrollbar(): jboolean; overload; virtual;
    function getVisibleTitleHeight(): jint; overload; virtual;
    function getCertificate(): ANHSslCertificate; overload; virtual;
    procedure setCertificate(para1: ANHSslCertificate); overload; virtual;
    procedure savePassword(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure setHttpAuthUsernamePassword(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    function getHttpAuthUsernamePassword(para1: JLString; para2: JLString): Arr1JLString; overload; virtual;
    procedure destroy(); overload; virtual;
    class procedure enablePlatformNotifications(); static; overload;
    class procedure disablePlatformNotifications(); static; overload;
    procedure setNetworkAvailable(para1: jboolean); overload; virtual;
    function saveState(para1: AOBundle): AWWebBackForwardList; overload; virtual;
    function savePicture(para1: AOBundle; para2: JIFile): jboolean; overload; virtual;
    function restorePicture(para1: AOBundle; para2: JIFile): jboolean; overload; virtual;
    function restoreState(para1: AOBundle): AWWebBackForwardList; overload; virtual;
    procedure loadUrl(para1: JLString; para2: JUMap); overload; virtual;
    procedure loadUrl(para1: JLString); overload; virtual;
    procedure postUrl(para1: JLString; para2: Arr1jbyte); overload; virtual;
    procedure postUrl(para1: JLString; var para2: array of jbyte); overload; virtual;
    procedure loadData(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure loadDataWithBaseURL(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure saveWebArchive(para1: JLString); overload; virtual;
    procedure saveWebArchive(para1: JLString; para2: jboolean; para3: AWValueCallback); overload; virtual;
    procedure stopLoading(); overload; virtual;
    procedure reload(); overload; virtual;
    function canGoBack(): jboolean; overload; virtual;
    procedure goBack(); overload; virtual;
    function canGoForward(): jboolean; overload; virtual;
    procedure goForward(); overload; virtual;
    function canGoBackOrForward(para1: jint): jboolean; overload; virtual;
    procedure goBackOrForward(para1: jint); overload; virtual;
    function isPrivateBrowsingEnabled(): jboolean; overload; virtual;
    function pageUp(para1: jboolean): jboolean; overload; virtual;
    function pageDown(para1: jboolean): jboolean; overload; virtual;
    procedure clearView(); overload; virtual;
    function capturePicture(): AGPicture; overload; virtual;
    function getScale(): jfloat; overload; virtual;
    procedure setInitialScale(para1: jint); overload; virtual;
    procedure invokeZoomPicker(); overload; virtual;
    function getHitTestResult(): AWWebView.InnerHitTestResult; overload; virtual;
    procedure requestFocusNodeHref(para1: AOMessage); overload; virtual;
    procedure requestImageRef(para1: AOMessage); overload; virtual;
  strict protected
    function computeHorizontalScrollRange(): jint; overload; virtual;
    function computeHorizontalScrollOffset(): jint; overload; virtual;
    function computeVerticalScrollRange(): jint; overload; virtual;
    function computeVerticalScrollOffset(): jint; overload; virtual;
    function computeVerticalScrollExtent(): jint; overload; virtual;
    procedure onOverScrolled(para1: jint; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
  public
    function getUrl(): JLString; overload; virtual;
    function getOriginalUrl(): JLString; overload; virtual;
    function getTitle(): JLString; overload; virtual;
    function getFavicon(): AGBitmap; overload; virtual;
    function getProgress(): jint; overload; virtual;
    function getContentHeight(): jint; overload; virtual;
    procedure pauseTimers(); overload; virtual;
    procedure resumeTimers(); overload; virtual;
    procedure onPause(); overload; virtual;
    procedure onResume(); overload; virtual;
    procedure freeMemory(); overload; virtual;
    procedure clearCache(para1: jboolean); overload; virtual;
    procedure clearFormData(); overload; virtual;
    procedure clearHistory(); overload; virtual;
    procedure clearSslPreferences(); overload; virtual;
    function copyBackForwardList(): AWWebBackForwardList; overload; virtual;
    procedure findNext(para1: jboolean); overload; virtual;
    function findAll(para1: JLString): jint; overload; virtual;
    function showFindDialog(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    class function findAddress(para1: JLString): JLString; static; overload;
    procedure clearMatches(); overload; virtual;
    procedure documentHasImages(para1: AOMessage); overload; virtual;
    procedure computeScroll(); overload; virtual;
    procedure setWebViewClient(para1: AWWebViewClient); overload; virtual;
    procedure setDownloadListener(para1: AWDownloadListener); overload; virtual;
    procedure setWebChromeClient(para1: AWWebChromeClient); overload; virtual;
    procedure setPictureListener(para1: AWWebView.InnerPictureListener); overload; virtual;
    procedure addJavascriptInterface(para1: JLObject; para2: JLString); overload; virtual;
    procedure removeJavascriptInterface(para1: JLString); overload; virtual;
    function getSettings(): AWWebSettings; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
    function drawChild(para1: AGCanvas; para2: AVView; para3: jlong): jboolean; overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    procedure setLayoutParams(para1: AVViewGroup_LayoutParams); overload; virtual;
    function performLongClick(): jboolean; overload; virtual;
  strict protected
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
  public
    function onCreateInputConnection(para1: AVIEditorInfo): AVIInputConnection; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure emulateShiftHeld(); overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onVisibilityChanged(para1: AVView; para2: jint); overload; virtual;
  public
    procedure onChildViewAdded(para1: AVView; para2: AVView); overload; virtual;
    procedure onChildViewRemoved(para1: AVView; para2: AVView); overload; virtual;
    procedure onGlobalFocusChanged(para1: AVView; para2: AVView); overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
  strict protected
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onScrollChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  public
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function onHoverEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure setMapTrackballToArrowKeys(para1: jboolean); overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure flingScroll(para1: jint; para2: jint); overload; virtual;
    function getZoomControls(): AVView; overload; virtual;
    function canZoomIn(): jboolean; overload; virtual;
    function canZoomOut(): jboolean; overload; virtual;
    function zoomIn(): jboolean; overload; virtual;
    function zoomOut(): jboolean; overload; virtual;
    function requestFocus(para1: jint; para2: AGRect): jboolean; overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function requestChildRectangleOnScreen(para1: AVView; para2: AGRect; para3: jboolean): jboolean; overload; virtual;
    procedure setBackgroundColor(para1: jint); overload; virtual;
    procedure debugDump(); overload; virtual;
  end;

  AAAlertDialog = class external 'android.app' name 'AlertDialog' (AADialog, ACDialogInterface)
  public
    type
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerBuilder = class external 'android.app' name 'Builder' (JLObject)
      public
        constructor create(para1: ACContext); overload;
        constructor create(para1: ACContext; para2: jint); overload;
        function getContext(): ACContext; overload; virtual;
        function setTitle(para1: jint): AAAlertDialog.InnerBuilder; overload; virtual;
        function setTitle(para1: JLCharSequence): AAAlertDialog.InnerBuilder; overload; virtual;
        function setCustomTitle(para1: AVView): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMessage(para1: jint): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMessage(para1: JLCharSequence): AAAlertDialog.InnerBuilder; overload; virtual;
        function setIcon(para1: jint): AAAlertDialog.InnerBuilder; overload; virtual;
        function setIcon(para1: AGDDrawable): AAAlertDialog.InnerBuilder; overload; virtual;
        function setIconAttribute(para1: jint): AAAlertDialog.InnerBuilder; overload; virtual;
        function setPositiveButton(para1: jint; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setPositiveButton(para1: JLCharSequence; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setNegativeButton(para1: jint; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setNegativeButton(para1: JLCharSequence; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setNeutralButton(para1: jint; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setNeutralButton(para1: JLCharSequence; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setCancelable(para1: jboolean): AAAlertDialog.InnerBuilder; overload; virtual;
        function setOnCancelListener(para1: ACDialogInterface.InnerOnCancelListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setOnKeyListener(para1: ACDialogInterface.InnerOnKeyListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setItems(para1: jint; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setItems(para1: Arr1JLCharSequence; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setItems(var para1: array of JLCharSequence; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setAdapter(para1: AWListAdapter; para2: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setCursor(para1: ADCursor; para2: ACDialogInterface.InnerOnClickListener; para3: JLString): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMultiChoiceItems(para1: jint; para2: Arr1jboolean; para3: ACDialogInterface.InnerOnMultiChoiceClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMultiChoiceItems(para1: jint; var para2: array of jboolean; para3: ACDialogInterface.InnerOnMultiChoiceClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMultiChoiceItems(para1: Arr1JLCharSequence; para2: Arr1jboolean; para3: ACDialogInterface.InnerOnMultiChoiceClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMultiChoiceItems(var para1: array of JLCharSequence; var para2: array of jboolean; para3: ACDialogInterface.InnerOnMultiChoiceClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setMultiChoiceItems(para1: ADCursor; para2: JLString; para3: JLString; para4: ACDialogInterface.InnerOnMultiChoiceClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setSingleChoiceItems(para1: jint; para2: jint; para3: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setSingleChoiceItems(para1: ADCursor; para2: jint; para3: JLString; para4: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setSingleChoiceItems(para1: Arr1JLCharSequence; para2: jint; para3: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setSingleChoiceItems(var para1: array of JLCharSequence; para2: jint; para3: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setSingleChoiceItems(para1: AWListAdapter; para2: jint; para3: ACDialogInterface.InnerOnClickListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setOnItemSelectedListener(para1: AWAdapterView.InnerOnItemSelectedListener): AAAlertDialog.InnerBuilder; overload; virtual;
        function setView(para1: AVView): AAAlertDialog.InnerBuilder; overload; virtual;
        function setInverseBackgroundForced(para1: jboolean): AAAlertDialog.InnerBuilder; overload; virtual;
        function create_(): AAAlertDialog; external name 'create'; overload; virtual;
        function show(): AAAlertDialog; overload; virtual;
      end;

  public
    const
      THEME_TRADITIONAL = 1;
      THEME_HOLO_DARK = 2;
      THEME_HOLO_LIGHT = 3;
      THEME_DEVICE_DEFAULT_DARK = 4;
      THEME_DEVICE_DEFAULT_LIGHT = 5;
  strict protected
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: jboolean; para3: ACDialogInterface.InnerOnCancelListener); overload;
  public
    function getButton(para1: jint): AWButton; overload; virtual;
    function getListView(): AWListView; overload; virtual;
    procedure setTitle(para1: JLCharSequence); overload; virtual;
    procedure setCustomTitle(para1: AVView); overload; virtual;
    procedure setMessage(para1: JLCharSequence); overload; virtual;
    procedure setView(para1: AVView); overload; virtual;
    procedure setView(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure setButton(para1: jint; para2: JLCharSequence; para3: AOMessage); overload; virtual;
    procedure setButton(para1: jint; para2: JLCharSequence; para3: ACDialogInterface.InnerOnClickListener); overload; virtual;
    procedure setButton(para1: JLCharSequence; para2: AOMessage); overload; virtual;
    procedure setButton2(para1: JLCharSequence; para2: AOMessage); overload; virtual;
    procedure setButton3(para1: JLCharSequence; para2: AOMessage); overload; virtual;
    procedure setButton(para1: JLCharSequence; para2: ACDialogInterface.InnerOnClickListener); overload; virtual;
    procedure setButton2(para1: JLCharSequence; para2: ACDialogInterface.InnerOnClickListener); overload; virtual;
    procedure setButton3(para1: JLCharSequence; para2: ACDialogInterface.InnerOnClickListener); overload; virtual;
    procedure setIcon(para1: jint); overload; virtual;
    procedure setIcon(para1: AGDDrawable); overload; virtual;
    procedure setIconAttribute(para1: jint); overload; virtual;
    procedure setInverseBackgroundForced(para1: jboolean); overload; virtual;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  public
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
  end;

  APPreferenceScreen = class sealed external 'android.preference' name 'PreferenceScreen' (APPreferenceGroup, AWAdapterView.InnerOnItemClickListener, ACDialogInterface.InnerOnDismissListener)
  public
    function getRootAdapter(): AWListAdapter; overload; virtual;
  strict protected
    function onCreateRootAdapter(): AWListAdapter; overload; virtual;
  public
    procedure bind(para1: AWListView); overload; virtual;
  strict protected
    procedure onClick(); overload; virtual;
  public
    procedure onDismiss(para1: ACDialogInterface); overload; virtual;
    function getDialog(): AADialog; overload; virtual;
    procedure onItemClick(para1: AWAdapterView; para2: AVView; para3: jint; para4: jlong); overload; virtual;
  strict protected
    function isOnSameScreenAsChildren(): jboolean; overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  end;

  ATMCharacterPickerDialog = class external 'android.text.method' name 'CharacterPickerDialog' (AADialog, AWAdapterView.InnerOnItemClickListener, AVView.InnerOnClickListener)
  public
    constructor create(para1: ACContext; para2: AVView; para3: ATEditable; para4: JLString; para5: jboolean); overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  public
    procedure onItemClick(para1: AWAdapterView; para2: AVView; para3: jint; para4: jlong); overload; virtual;
    procedure onClick(para1: AVView); overload; virtual;
  end;

  AWAbsListView = class abstract external 'android.widget' name 'AbsListView' (AWAdapterView, ATTextWatcher, AVViewTreeObserver.InnerOnGlobalLayoutListener, AWFilter.InnerFilterListener, AVViewTreeObserver.InnerOnTouchModeChangeListener)
  public
    type
      InnerRecyclerListener = interface;
      Arr1InnerRecyclerListener = array of InnerRecyclerListener;
      Arr2InnerRecyclerListener = array of Arr1InnerRecyclerListener;
      Arr3InnerRecyclerListener = array of Arr2InnerRecyclerListener;
      InnerSelectionBoundsAdjuster = interface;
      Arr1InnerSelectionBoundsAdjuster = array of InnerSelectionBoundsAdjuster;
      Arr2InnerSelectionBoundsAdjuster = array of Arr1InnerSelectionBoundsAdjuster;
      Arr3InnerSelectionBoundsAdjuster = array of Arr2InnerSelectionBoundsAdjuster;
      InnerOnScrollListener = interface;
      Arr1InnerOnScrollListener = array of InnerOnScrollListener;
      Arr2InnerOnScrollListener = array of Arr1InnerOnScrollListener;
      Arr3InnerOnScrollListener = array of Arr2InnerOnScrollListener;
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerMultiChoiceModeListener = interface;
      Arr1InnerMultiChoiceModeListener = array of InnerMultiChoiceModeListener;
      Arr2InnerMultiChoiceModeListener = array of Arr1InnerMultiChoiceModeListener;
      Arr3InnerMultiChoiceModeListener = array of Arr2InnerMultiChoiceModeListener;
      InnerRecyclerListener = interface external 'android.widget' name 'RecyclerListener' 
        procedure onMovedToScrapHeap(para1: AVView); overload;
      end;

      InnerSelectionBoundsAdjuster = interface external 'android.widget' name 'SelectionBoundsAdjuster' 
        procedure adjustListItemSelectionBounds(para1: AGRect); overload;
      end;

      InnerOnScrollListener = interface external 'android.widget' name 'OnScrollListener' 
        const
          SCROLL_STATE_IDLE = 0;
          SCROLL_STATE_TOUCH_SCROLL = 1;
          SCROLL_STATE_FLING = 2;
        procedure onScrollStateChanged(para1: AWAbsListView; para2: jint); overload;
        procedure onScroll(para1: AWAbsListView; para2: jint; para3: jint; para4: jint); overload;
      end;

      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup_LayoutParams)
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jint); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
      end;

      InnerMultiChoiceModeListener = interface external 'android.widget' name 'MultiChoiceModeListener' (AVActionMode.InnerCallback)
        procedure onItemCheckedStateChanged(para1: AVActionMode; para2: jint; para3: jlong; para4: jboolean); overload;
      end;

  public
    const
      TRANSCRIPT_MODE_DISABLED = 0;
      TRANSCRIPT_MODE_NORMAL = 1;
      TRANSCRIPT_MODE_ALWAYS_SCROLL = 2;
      CHOICE_MODE_NONE = 0;
      CHOICE_MODE_SINGLE = 1;
      CHOICE_MODE_MULTIPLE = 2;
      CHOICE_MODE_MULTIPLE_MODAL = 3;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setOverScrollMode(para1: jint); overload; virtual;
    procedure setAdapter(para1: AWListAdapter); overload; virtual;
    function getCheckedItemCount(): jint; overload; virtual;
    function isItemChecked(para1: jint): jboolean; overload; virtual;
    function getCheckedItemPosition(): jint; overload; virtual;
    function getCheckedItemPositions(): AUSparseBooleanArray; overload; virtual;
    function getCheckedItemIds(): Arr1jlong; overload; virtual;
    procedure clearChoices(); overload; virtual;
    procedure setItemChecked(para1: jint; para2: jboolean); overload; virtual;
    function performItemClick(para1: AVView; para2: jint; para3: jlong): jboolean; overload; virtual;
    function getChoiceMode(): jint; overload; virtual;
    procedure setChoiceMode(para1: jint); overload; virtual;
    procedure setMultiChoiceModeListener(para1: AWAbsListView.InnerMultiChoiceModeListener); overload; virtual;
    procedure setFastScrollEnabled(para1: jboolean); overload; virtual;
    procedure setFastScrollAlwaysVisible(para1: jboolean); overload; virtual;
    function isFastScrollAlwaysVisible(): jboolean; overload; virtual;
    function getVerticalScrollbarWidth(): jint; overload; virtual;
    function isFastScrollEnabled(): jboolean; overload; virtual;
    procedure setVerticalScrollbarPosition(para1: jint); overload; virtual;
    procedure setSmoothScrollbarEnabled(para1: jboolean); overload; virtual;
    function isSmoothScrollbarEnabled(): jboolean; overload; virtual;
    procedure setOnScrollListener(para1: AWAbsListView.InnerOnScrollListener); overload; virtual;
    procedure sendAccessibilityEvent(para1: jint); overload; virtual;
    function isScrollingCacheEnabled(): jboolean; overload; virtual;
    procedure setScrollingCacheEnabled(para1: jboolean); overload; virtual;
    procedure setTextFilterEnabled(para1: jboolean); overload; virtual;
    function isTextFilterEnabled(): jboolean; overload; virtual;
    procedure getFocusedRect(para1: AGRect); overload; virtual;
    function isStackFromBottom(): jboolean; overload; virtual;
    procedure setStackFromBottom(para1: jboolean); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
    procedure setFilterText(para1: JLString); overload; virtual;
    function getTextFilter(): JLCharSequence; overload; virtual;
  strict protected
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
  public
    procedure requestLayout(); overload; virtual;
  strict protected
    function computeVerticalScrollExtent(): jint; overload; virtual;
    function computeVerticalScrollOffset(): jint; overload; virtual;
    function computeVerticalScrollRange(): jint; overload; virtual;
    function getTopFadingEdgeStrength(): jfloat; overload; virtual;
    function getBottomFadingEdgeStrength(): jfloat; overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure layoutChildren(); overload; virtual;
  public
    function getSelectedView(): AVView; overload; virtual;
    function getListPaddingTop(): jint; overload; virtual;
    function getListPaddingBottom(): jint; overload; virtual;
    function getListPaddingLeft(): jint; overload; virtual;
    function getListPaddingRight(): jint; overload; virtual;
  strict protected
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
    function isPaddingOffsetRequired(): jboolean; overload; virtual;
    function getLeftPaddingOffset(): jint; overload; virtual;
    function getTopPaddingOffset(): jint; overload; virtual;
    function getRightPaddingOffset(): jint; overload; virtual;
    function getBottomPaddingOffset(): jint; overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  public
    procedure setDrawSelectorOnTop(para1: jboolean); overload; virtual;
    procedure setSelector(para1: jint); overload; virtual;
    procedure setSelector(para1: AGDDrawable); overload; virtual;
    function getSelector(): AGDDrawable; overload; virtual;
    procedure setScrollIndicators(para1: AVView; para2: AVView); overload; virtual;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
  public
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
    procedure jumpDrawablesToCurrentState(); overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
  strict protected
    function getContextMenuInfo(): AVContextMenu.InnerContextMenuInfo; overload; virtual;
  public
    function showContextMenuForChild(para1: AVView): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
  strict protected
    procedure dispatchSetPressed(para1: jboolean); overload; virtual;
  public
    function pointToPosition(para1: jint; para2: jint): jint; overload; virtual;
    function pointToRowId(para1: jint; para2: jint): jlong; overload; virtual;
    procedure onTouchModeChanged(para1: jboolean); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    procedure onOverScrolled(para1: jint; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
  public
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    procedure requestDisallowInterceptTouchEvent(para1: jboolean); overload; virtual;
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure addTouchables(para1: JUArrayList); overload; virtual;
    procedure setFriction(para1: jfloat); overload; virtual;
    procedure setVelocityScale(para1: jfloat); overload; virtual;
    procedure smoothScrollToPosition(para1: jint); overload; virtual;
    procedure smoothScrollToPositionFromTop(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure smoothScrollToPositionFromTop(para1: jint; para2: jint); overload; virtual;
    procedure smoothScrollToPosition(para1: jint; para2: jint); overload; virtual;
    procedure smoothScrollBy(para1: jint; para2: jint); overload; virtual;
    procedure invalidateViews(); overload; virtual;
  strict protected
    procedure handleDataChanged(); overload; virtual;
    procedure onDisplayHint(para1: jint); overload; virtual;
    function isInFilterMode(): jboolean; overload; virtual;
  public
    function onCreateInputConnection(para1: AVIEditorInfo): AVIInputConnection; overload; virtual;
    function checkInputConnectionProxy(para1: AVView): jboolean; overload; virtual;
    procedure clearTextFilter(); overload; virtual;
    function hasTextFilter(): jboolean; overload; virtual;
    procedure onGlobalLayout(); overload; virtual;
    procedure beforeTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onTextChanged(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure afterTextChanged(para1: ATEditable); overload; virtual;
    procedure onFilterComplete(para1: jint); overload; virtual;
  strict protected
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWAbsListView.InnerLayoutParams; overload; virtual;
  strict protected
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
  public
    procedure setTranscriptMode(para1: jint); overload; virtual;
    function getTranscriptMode(): jint; overload; virtual;
    function getSolidColor(): jint; overload; virtual;
    procedure setCacheColorHint(para1: jint); overload; virtual;
    function getCacheColorHint(): jint; overload; virtual;
    procedure reclaimViews(para1: JUList); overload; virtual;
    procedure setRemoteViewsAdapter(para1: ACIntent); overload; virtual;
    procedure deferNotifyDataSetChanged(); overload; virtual;
    function onRemoteAdapterConnected(): jboolean; overload; virtual;
    procedure onRemoteAdapterDisconnected(); overload; virtual;
    procedure setRecyclerListener(para1: AWAbsListView.InnerRecyclerListener); overload; virtual;
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWAbsSpinner = class abstract external 'android.widget' name 'AbsSpinner' (AWAdapterView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setAdapter(para1: AWSpinnerAdapter); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
  public
    procedure setSelection(para1: jint; para2: jboolean); overload; virtual;
    procedure setSelection(para1: jint); overload; virtual;
    function getSelectedView(): AVView; overload; virtual;
    procedure requestLayout(); overload; virtual;
    function getAdapter(): AWSpinnerAdapter; overload; virtual;
    function getCount(): jint; overload; virtual;
    function pointToPosition(para1: jint; para2: jint): jint; overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    function getAdapter(): AWAdapter; overload; virtual;
  end;

  AWAdapterViewAnimator = class abstract external 'android.widget' name 'AdapterViewAnimator' (AWAdapterView)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setDisplayedChild(para1: jint); overload; virtual;
    function getDisplayedChild(): jint; overload; virtual;
    procedure showNext(); overload; virtual;
    procedure showPrevious(); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
    function getCurrentView(): AVView; overload; virtual;
    function getInAnimation(): AAObjectAnimator; overload; virtual;
    procedure setInAnimation(para1: AAObjectAnimator); overload; virtual;
    function getOutAnimation(): AAObjectAnimator; overload; virtual;
    procedure setOutAnimation(para1: AAObjectAnimator); overload; virtual;
    procedure setInAnimation(para1: ACContext; para2: jint); overload; virtual;
    procedure setOutAnimation(para1: ACContext; para2: jint); overload; virtual;
    procedure setAnimateFirstView(para1: jboolean); overload; virtual;
    function getBaseline(): jint; overload; virtual;
    function getAdapter(): AWAdapter; overload; virtual;
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    procedure setRemoteViewsAdapter(para1: ACIntent); overload; virtual;
    procedure setSelection(para1: jint); overload; virtual;
    function getSelectedView(): AVView; overload; virtual;
    procedure deferNotifyDataSetChanged(); overload; virtual;
    function onRemoteAdapterConnected(): jboolean; overload; virtual;
    procedure onRemoteAdapterDisconnected(); overload; virtual;
    procedure advance(); overload; virtual;
    procedure fyiWillBeAdvancedByHostKThx(); overload; virtual;
  end;

  AWListPopupWindow = class external 'android.widget' name 'ListPopupWindow' (JLObject)
  public
    const
      POSITION_PROMPT_ABOVE = 0;
      POSITION_PROMPT_BELOW = 1;
      MATCH_PARENT = -1;
      WRAP_CONTENT = -2;
      INPUT_METHOD_FROM_FOCUSABLE = 0;
      INPUT_METHOD_NEEDED = 1;
      INPUT_METHOD_NOT_NEEDED = 2;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint; para4: jint); overload;
    procedure setAdapter(para1: AWListAdapter); overload; virtual;
    procedure setPromptPosition(para1: jint); overload; virtual;
    function getPromptPosition(): jint; overload; virtual;
    procedure setModal(para1: jboolean); overload; virtual;
    function isModal(): jboolean; overload; virtual;
    procedure setSoftInputMode(para1: jint); overload; virtual;
    function getSoftInputMode(): jint; overload; virtual;
    procedure setListSelector(para1: AGDDrawable); overload; virtual;
    function getBackground(): AGDDrawable; overload; virtual;
    procedure setBackgroundDrawable(para1: AGDDrawable); overload; virtual;
    procedure setAnimationStyle(para1: jint); overload; virtual;
    function getAnimationStyle(): jint; overload; virtual;
    function getAnchorView(): AVView; overload; virtual;
    procedure setAnchorView(para1: AVView); overload; virtual;
    function getHorizontalOffset(): jint; overload; virtual;
    procedure setHorizontalOffset(para1: jint); overload; virtual;
    function getVerticalOffset(): jint; overload; virtual;
    procedure setVerticalOffset(para1: jint); overload; virtual;
    function getWidth(): jint; overload; virtual;
    procedure setWidth(para1: jint); overload; virtual;
    procedure setContentWidth(para1: jint); overload; virtual;
    function getHeight(): jint; overload; virtual;
    procedure setHeight(para1: jint); overload; virtual;
    procedure setOnItemClickListener(para1: AWAdapterView.InnerOnItemClickListener); overload; virtual;
    procedure setOnItemSelectedListener(para1: AWAdapterView.InnerOnItemSelectedListener); overload; virtual;
    procedure setPromptView(para1: AVView); overload; virtual;
    procedure postShow(); overload; virtual;
    procedure show(); overload; virtual;
    procedure dismiss(); overload; virtual;
    procedure setOnDismissListener(para1: AWPopupWindow.InnerOnDismissListener); overload; virtual;
    procedure setInputMethodMode(para1: jint); overload; virtual;
    function getInputMethodMode(): jint; overload; virtual;
    procedure setSelection(para1: jint); overload; virtual;
    procedure clearListSelection(); overload; virtual;
    function isShowing(): jboolean; overload; virtual;
    function isInputMethodNotNeeded(): jboolean; overload; virtual;
    function performItemClick(para1: jint): jboolean; overload; virtual;
    function getSelectedItem(): JLObject; overload; virtual;
    function getSelectedItemPosition(): jint; overload; virtual;
    function getSelectedItemId(): jlong; overload; virtual;
    function getSelectedView(): AVView; overload; virtual;
    function getListView(): AWListView; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyPreIme(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
  end;

  AAAppWidgetHostView = class external 'android.appwidget' name 'AppWidgetHostView' (AWFrameLayout)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint; para3: jint); overload;
    procedure setAppWidget(para1: jint; para2: AAAppWidgetProviderInfo); overload; virtual;
    function getAppWidgetId(): jint; overload; virtual;
    function getAppWidgetInfo(): AAAppWidgetProviderInfo; overload; virtual;
  strict protected
    procedure dispatchSaveInstanceState(para1: AUSparseArray); overload; virtual;
    procedure dispatchRestoreInstanceState(para1: AUSparseArray); overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWFrameLayout.InnerLayoutParams; overload; virtual;
    procedure updateAppWidget(para1: AWRemoteViews); overload; virtual;
  strict protected
    function drawChild(para1: AGCanvas; para2: AVView; para3: jlong): jboolean; overload; virtual;
    procedure prepareView(para1: AVView); overload; virtual;
    function getDefaultView(): AVView; overload; virtual;
    function getErrorView(): AVView; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AGGestureOverlayView = class external 'android.gesture' name 'GestureOverlayView' (AWFrameLayout)
  public
    type
      InnerOnGesturePerformedListener = interface;
      Arr1InnerOnGesturePerformedListener = array of InnerOnGesturePerformedListener;
      Arr2InnerOnGesturePerformedListener = array of Arr1InnerOnGesturePerformedListener;
      Arr3InnerOnGesturePerformedListener = array of Arr2InnerOnGesturePerformedListener;
      InnerOnGestureListener = interface;
      Arr1InnerOnGestureListener = array of InnerOnGestureListener;
      Arr2InnerOnGestureListener = array of Arr1InnerOnGestureListener;
      Arr3InnerOnGestureListener = array of Arr2InnerOnGestureListener;
      InnerOnGesturingListener = interface;
      Arr1InnerOnGesturingListener = array of InnerOnGesturingListener;
      Arr2InnerOnGesturingListener = array of Arr1InnerOnGesturingListener;
      Arr3InnerOnGesturingListener = array of Arr2InnerOnGesturingListener;
      InnerOnGesturePerformedListener = interface external 'android.gesture' name 'OnGesturePerformedListener' 
        procedure onGesturePerformed(para1: AGGestureOverlayView; para2: AGGesture); overload;
      end;

      InnerOnGestureListener = interface external 'android.gesture' name 'OnGestureListener' 
        procedure onGestureStarted(para1: AGGestureOverlayView; para2: AVMotionEvent); overload;
        procedure onGesture(para1: AGGestureOverlayView; para2: AVMotionEvent); overload;
        procedure onGestureEnded(para1: AGGestureOverlayView; para2: AVMotionEvent); overload;
        procedure onGestureCancelled(para1: AGGestureOverlayView; para2: AVMotionEvent); overload;
      end;

      InnerOnGesturingListener = interface external 'android.gesture' name 'OnGesturingListener' 
        procedure onGesturingStarted(para1: AGGestureOverlayView); overload;
        procedure onGesturingEnded(para1: AGGestureOverlayView); overload;
      end;

  public
    const
      GESTURE_STROKE_TYPE_SINGLE = 0;
      GESTURE_STROKE_TYPE_MULTIPLE = 1;
      ORIENTATION_HORIZONTAL = 0;
      ORIENTATION_VERTICAL = 1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getCurrentStroke(): JUArrayList; overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    procedure setGestureColor(para1: jint); overload; virtual;
    procedure setUncertainGestureColor(para1: jint); overload; virtual;
    function getUncertainGestureColor(): jint; overload; virtual;
    function getGestureColor(): jint; overload; virtual;
    function getGestureStrokeWidth(): jfloat; overload; virtual;
    procedure setGestureStrokeWidth(para1: jfloat); overload; virtual;
    function getGestureStrokeType(): jint; overload; virtual;
    procedure setGestureStrokeType(para1: jint); overload; virtual;
    function getGestureStrokeLengthThreshold(): jfloat; overload; virtual;
    procedure setGestureStrokeLengthThreshold(para1: jfloat); overload; virtual;
    function getGestureStrokeSquarenessTreshold(): jfloat; overload; virtual;
    procedure setGestureStrokeSquarenessTreshold(para1: jfloat); overload; virtual;
    function getGestureStrokeAngleThreshold(): jfloat; overload; virtual;
    procedure setGestureStrokeAngleThreshold(para1: jfloat); overload; virtual;
    function isEventsInterceptionEnabled(): jboolean; overload; virtual;
    procedure setEventsInterceptionEnabled(para1: jboolean); overload; virtual;
    function isFadeEnabled(): jboolean; overload; virtual;
    procedure setFadeEnabled(para1: jboolean); overload; virtual;
    function getGesture(): AGGesture; overload; virtual;
    procedure setGesture(para1: AGGesture); overload; virtual;
    function getGesturePath(): AGPath; overload; virtual;
    function getGesturePath(para1: AGPath): AGPath; overload; virtual;
    function isGestureVisible(): jboolean; overload; virtual;
    procedure setGestureVisible(para1: jboolean); overload; virtual;
    function getFadeOffset(): jlong; overload; virtual;
    procedure setFadeOffset(para1: jlong); overload; virtual;
    procedure addOnGestureListener(para1: AGGestureOverlayView.InnerOnGestureListener); overload; virtual;
    procedure removeOnGestureListener(para1: AGGestureOverlayView.InnerOnGestureListener); overload; virtual;
    procedure removeAllOnGestureListeners(); overload; virtual;
    procedure addOnGesturePerformedListener(para1: AGGestureOverlayView.InnerOnGesturePerformedListener); overload; virtual;
    procedure removeOnGesturePerformedListener(para1: AGGestureOverlayView.InnerOnGesturePerformedListener); overload; virtual;
    procedure removeAllOnGesturePerformedListeners(); overload; virtual;
    procedure addOnGesturingListener(para1: AGGestureOverlayView.InnerOnGesturingListener); overload; virtual;
    procedure removeOnGesturingListener(para1: AGGestureOverlayView.InnerOnGesturingListener); overload; virtual;
    procedure removeAllOnGesturingListeners(); overload; virtual;
    function isGesturing(): jboolean; overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
    procedure clear(para1: jboolean); overload; virtual;
    procedure cancelClearAnimation(); overload; virtual;
    procedure cancelGesture(); overload; virtual;
  strict protected
    procedure onDetachedFromWindow(); overload; virtual;
  public
    function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  end;

  AWCalendarView = class external 'android.widget' name 'CalendarView' (AWFrameLayout)
  public
    type
      InnerOnDateChangeListener = interface;
      Arr1InnerOnDateChangeListener = array of InnerOnDateChangeListener;
      Arr2InnerOnDateChangeListener = array of Arr1InnerOnDateChangeListener;
      Arr3InnerOnDateChangeListener = array of Arr2InnerOnDateChangeListener;
      InnerOnDateChangeListener = interface external 'android.widget' name 'OnDateChangeListener' 
        procedure onSelectedDayChange(para1: AWCalendarView; para2: jint; para3: jint; para4: jint); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
  strict protected
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
  public
    function getMinDate(): jlong; overload; virtual;
    procedure setMinDate(para1: jlong); overload; virtual;
    function getMaxDate(): jlong; overload; virtual;
    procedure setMaxDate(para1: jlong); overload; virtual;
    procedure setShowWeekNumber(para1: jboolean); overload; virtual;
    function getShowWeekNumber(): jboolean; overload; virtual;
    function getFirstDayOfWeek(): jint; overload; virtual;
    procedure setFirstDayOfWeek(para1: jint); overload; virtual;
    procedure setOnDateChangeListener(para1: AWCalendarView.InnerOnDateChangeListener); overload; virtual;
    function getDate(): jlong; overload; virtual;
    procedure setDate(para1: jlong); overload; virtual;
    procedure setDate(para1: jlong; para2: jboolean; para3: jboolean); overload; virtual;
  end;

  AWDatePicker = class external 'android.widget' name 'DatePicker' (AWFrameLayout)
  public
    type
      InnerOnDateChangedListener = interface;
      Arr1InnerOnDateChangedListener = array of InnerOnDateChangedListener;
      Arr2InnerOnDateChangedListener = array of Arr1InnerOnDateChangedListener;
      Arr3InnerOnDateChangedListener = array of Arr2InnerOnDateChangedListener;
      InnerOnDateChangedListener = interface external 'android.widget' name 'OnDateChangedListener' 
        procedure onDateChanged(para1: AWDatePicker; para2: jint; para3: jint; para4: jint); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getMinDate(): jlong; overload; virtual;
    procedure setMinDate(para1: jlong); overload; virtual;
    function getMaxDate(): jlong; overload; virtual;
    procedure setMaxDate(para1: jlong); overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  strict protected
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
  public
    function getCalendarViewShown(): jboolean; overload; virtual;
    function getCalendarView(): AWCalendarView; overload; virtual;
    procedure setCalendarViewShown(para1: jboolean); overload; virtual;
    function getSpinnersShown(): jboolean; overload; virtual;
    procedure setSpinnersShown(para1: jboolean); overload; virtual;
    procedure updateDate(para1: jint; para2: jint; para3: jint); overload; virtual;
  strict protected
    procedure dispatchRestoreInstanceState(para1: AUSparseArray); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  public
    procedure init(para1: jint; para2: jint; para3: jint; para4: AWDatePicker.InnerOnDateChangedListener); overload; virtual;
    function getYear(): jint; overload; virtual;
    function getMonth(): jint; overload; virtual;
    function getDayOfMonth(): jint; overload; virtual;
  end;

  AWHorizontalScrollView = class external 'android.widget' name 'HorizontalScrollView' (AWFrameLayout)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    function getLeftFadingEdgeStrength(): jfloat; overload; virtual;
    function getRightFadingEdgeStrength(): jfloat; overload; virtual;
  public
    function getMaxScrollAmount(): jint; overload; virtual;
    procedure addView(para1: AVView); overload; virtual;
    procedure addView(para1: AVView; para2: jint); overload; virtual;
    procedure addView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    function isFillViewport(): jboolean; overload; virtual;
    procedure setFillViewport(para1: jboolean); overload; virtual;
    function isSmoothScrollingEnabled(): jboolean; overload; virtual;
    procedure setSmoothScrollingEnabled(para1: jboolean); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function executeKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    procedure requestDisallowInterceptTouchEvent(para1: jboolean); overload; virtual;
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    procedure onOverScrolled(para1: jint; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
  public
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    function pageScroll(para1: jint): jboolean; overload; virtual;
    function fullScroll(para1: jint): jboolean; overload; virtual;
    function arrowScroll(para1: jint): jboolean; overload; virtual;
    procedure smoothScrollBy(para1: jint; para2: jint); overload; virtual; final;
    procedure smoothScrollTo(para1: jint; para2: jint); overload; virtual; final;
  strict protected
    function computeHorizontalScrollRange(): jint; overload; virtual;
    function computeHorizontalScrollOffset(): jint; overload; virtual;
    procedure measureChild(para1: AVView; para2: jint; para3: jint); overload; virtual;
    procedure measureChildWithMargins(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    procedure computeScroll(); overload; virtual;
  strict protected
    function computeScrollDeltaToGetChildRectOnScreen(para1: AGRect): jint; overload; virtual;
  public
    procedure requestChildFocus(para1: AVView; para2: AVView); overload; virtual;
  strict protected
    function onRequestFocusInDescendants(para1: jint; para2: AGRect): jboolean; overload; virtual;
  public
    function requestChildRectangleOnScreen(para1: AVView; para2: AGRect; para3: jboolean): jboolean; overload; virtual;
    procedure requestLayout(); overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  public
    procedure fling(para1: jint); overload; virtual;
    procedure scrollTo(para1: jint; para2: jint); overload; virtual;
    procedure setOverScrollMode(para1: jint); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
  end;

  AWMediaController = class external 'android.widget' name 'MediaController' (AWFrameLayout)
  public
    type
      InnerMediaPlayerControl = interface;
      Arr1InnerMediaPlayerControl = array of InnerMediaPlayerControl;
      Arr2InnerMediaPlayerControl = array of Arr1InnerMediaPlayerControl;
      Arr3InnerMediaPlayerControl = array of Arr2InnerMediaPlayerControl;
      InnerMediaPlayerControl = interface external 'android.widget' name 'MediaPlayerControl' 
        procedure start(); overload;
        procedure pause(); overload;
        function getDuration(): jint; overload;
        function getCurrentPosition(): jint; overload;
        procedure seekTo(para1: jint); overload;
        function isPlaying(): jboolean; overload;
        function getBufferPercentage(): jint; overload;
        function canPause(): jboolean; overload;
        function canSeekBackward(): jboolean; overload;
        function canSeekForward(): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: jboolean); overload;
    constructor create(para1: ACContext); overload;
    procedure onFinishInflate(); overload; virtual;
    procedure setMediaPlayer(para1: AWMediaController.InnerMediaPlayerControl); overload; virtual;
    procedure setAnchorView(para1: AVView); overload; virtual;
    procedure show(); overload; virtual;
    procedure show(para1: jint); overload; virtual;
    function isShowing(): jboolean; overload; virtual;
    procedure hide(); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure setPrevNextListeners(para1: AVView.InnerOnClickListener; para2: AVView.InnerOnClickListener); overload; virtual;
  end;

  AWScrollView = class external 'android.widget' name 'ScrollView' (AWFrameLayout)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function shouldDelayChildPressedState(): jboolean; overload; virtual;
  strict protected
    function getTopFadingEdgeStrength(): jfloat; overload; virtual;
    function getBottomFadingEdgeStrength(): jfloat; overload; virtual;
  public
    function getMaxScrollAmount(): jint; overload; virtual;
    procedure addView(para1: AVView); overload; virtual;
    procedure addView(para1: AVView; para2: jint); overload; virtual;
    procedure addView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    function isFillViewport(): jboolean; overload; virtual;
    procedure setFillViewport(para1: jboolean); overload; virtual;
    function isSmoothScrollingEnabled(): jboolean; overload; virtual;
    procedure setSmoothScrollingEnabled(para1: jboolean); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function executeKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    procedure requestDisallowInterceptTouchEvent(para1: jboolean); overload; virtual;
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    procedure onOverScrolled(para1: jint; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
  public
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    function pageScroll(para1: jint): jboolean; overload; virtual;
    function fullScroll(para1: jint): jboolean; overload; virtual;
    function arrowScroll(para1: jint): jboolean; overload; virtual;
    procedure smoothScrollBy(para1: jint; para2: jint); overload; virtual; final;
    procedure smoothScrollTo(para1: jint; para2: jint); overload; virtual; final;
  strict protected
    function computeVerticalScrollRange(): jint; overload; virtual;
    function computeVerticalScrollOffset(): jint; overload; virtual;
    procedure measureChild(para1: AVView; para2: jint; para3: jint); overload; virtual;
    procedure measureChildWithMargins(para1: AVView; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    procedure computeScroll(); overload; virtual;
  strict protected
    function computeScrollDeltaToGetChildRectOnScreen(para1: AGRect): jint; overload; virtual;
  public
    procedure requestChildFocus(para1: AVView; para2: AVView); overload; virtual;
  strict protected
    function onRequestFocusInDescendants(para1: jint; para2: AGRect): jboolean; overload; virtual;
  public
    function requestChildRectangleOnScreen(para1: AVView; para2: AGRect; para3: jboolean): jboolean; overload; virtual;
    procedure requestLayout(); overload; virtual;
  strict protected
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  public
    procedure fling(para1: jint); overload; virtual;
    procedure scrollTo(para1: jint; para2: jint); overload; virtual;
    procedure setOverScrollMode(para1: jint); overload; virtual;
    procedure draw(para1: AGCanvas); overload; virtual;
  end;

  AWTabHost = class external 'android.widget' name 'TabHost' (AWFrameLayout, AVViewTreeObserver.InnerOnTouchModeChangeListener)
  public
    type
      InnerTabContentFactory = interface;
      Arr1InnerTabContentFactory = array of InnerTabContentFactory;
      Arr2InnerTabContentFactory = array of Arr1InnerTabContentFactory;
      Arr3InnerTabContentFactory = array of Arr2InnerTabContentFactory;
      InnerOnTabChangeListener = interface;
      Arr1InnerOnTabChangeListener = array of InnerOnTabChangeListener;
      Arr2InnerOnTabChangeListener = array of Arr1InnerOnTabChangeListener;
      Arr3InnerOnTabChangeListener = array of Arr2InnerOnTabChangeListener;
      InnerTabSpec = class;
      Arr1InnerTabSpec = array of InnerTabSpec;
      Arr2InnerTabSpec = array of Arr1InnerTabSpec;
      Arr3InnerTabSpec = array of Arr2InnerTabSpec;
      InnerTabContentFactory = interface external 'android.widget' name 'TabContentFactory' 
        function createTabContent(para1: JLString): AVView; overload;
      end;

      InnerOnTabChangeListener = interface external 'android.widget' name 'OnTabChangeListener' 
        procedure onTabChanged(para1: JLString); overload;
      end;

      InnerTabSpec = class external 'android.widget' name 'TabSpec' 
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    function newTabSpec(para1: JLString): AWTabHost.InnerTabSpec; overload; virtual;
    procedure setup(); overload; virtual;
    procedure sendAccessibilityEvent(para1: jint); overload; virtual;
    procedure setup(para1: AALocalActivityManager); overload; virtual;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    procedure onTouchModeChanged(para1: jboolean); overload; virtual;
    procedure addTab(para1: AWTabHost.InnerTabSpec); overload; virtual;
    procedure clearAllTabs(); overload; virtual;
    function getTabWidget(): AWTabWidget; overload; virtual;
    function getCurrentTab(): jint; overload; virtual;
    function getCurrentTabTag(): JLString; overload; virtual;
    function getCurrentTabView(): AVView; overload; virtual;
    function getCurrentView(): AVView; overload; virtual;
    procedure setCurrentTabByTag(para1: JLString); overload; virtual;
    function getTabContentView(): AWFrameLayout; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    procedure dispatchWindowFocusChanged(para1: jboolean); overload; virtual;
    procedure setCurrentTab(para1: jint); overload; virtual;
    procedure setOnTabChangedListener(para1: AWTabHost.InnerOnTabChangeListener); overload; virtual;
  end;

  AWTimePicker = class external 'android.widget' name 'TimePicker' (AWFrameLayout)
  public
    type
      InnerOnTimeChangedListener = interface;
      Arr1InnerOnTimeChangedListener = array of InnerOnTimeChangedListener;
      Arr2InnerOnTimeChangedListener = array of Arr1InnerOnTimeChangedListener;
      Arr3InnerOnTimeChangedListener = array of Arr2InnerOnTimeChangedListener;
      InnerOnTimeChangedListener = interface external 'android.widget' name 'OnTimeChangedListener' 
        procedure onTimeChanged(para1: AWTimePicker; para2: jint; para3: jint); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
  strict protected
    procedure onConfigurationChanged(para1: ACRConfiguration); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  public
    procedure setOnTimeChangedListener(para1: AWTimePicker.InnerOnTimeChangedListener); overload; virtual;
    function getCurrentHour(): JLInteger; overload; virtual;
    procedure setCurrentHour(para1: JLInteger); overload; virtual;
    procedure setIs24HourView(para1: JLBoolean); overload; virtual;
    function is24HourView(): jboolean; overload; virtual;
    function getCurrentMinute(): JLInteger; overload; virtual;
    procedure setCurrentMinute(para1: JLInteger); overload; virtual;
    function getBaseline(): jint; overload; virtual;
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  end;

  AWViewAnimator = class external 'android.widget' name 'ViewAnimator' (AWFrameLayout)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setDisplayedChild(para1: jint); overload; virtual;
    function getDisplayedChild(): jint; overload; virtual;
    procedure showNext(); overload; virtual;
    procedure showPrevious(); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    procedure removeAllViews(); overload; virtual;
    procedure removeView(para1: AVView); overload; virtual;
    procedure removeViewAt(para1: jint); overload; virtual;
    procedure removeViewInLayout(para1: AVView); overload; virtual;
    procedure removeViews(para1: jint; para2: jint); overload; virtual;
    procedure removeViewsInLayout(para1: jint; para2: jint); overload; virtual;
    function getCurrentView(): AVView; overload; virtual;
    function getInAnimation(): AVAAnimation; overload; virtual;
    procedure setInAnimation(para1: AVAAnimation); overload; virtual;
    function getOutAnimation(): AVAAnimation; overload; virtual;
    procedure setOutAnimation(para1: AVAAnimation); overload; virtual;
    procedure setInAnimation(para1: ACContext; para2: jint); overload; virtual;
    procedure setOutAnimation(para1: ACContext; para2: jint); overload; virtual;
    procedure setAnimateFirstView(para1: jboolean); overload; virtual;
    function getBaseline(): jint; overload; virtual;
  end;

  AWNumberPicker = class external 'android.widget' name 'NumberPicker' (AWLinearLayout)
  public
    type
      InnerFormatter = interface;
      Arr1InnerFormatter = array of InnerFormatter;
      Arr2InnerFormatter = array of Arr1InnerFormatter;
      Arr3InnerFormatter = array of Arr2InnerFormatter;
      InnerOnScrollListener = interface;
      Arr1InnerOnScrollListener = array of InnerOnScrollListener;
      Arr2InnerOnScrollListener = array of Arr1InnerOnScrollListener;
      Arr3InnerOnScrollListener = array of Arr2InnerOnScrollListener;
      InnerOnValueChangeListener = interface;
      Arr1InnerOnValueChangeListener = array of InnerOnValueChangeListener;
      Arr2InnerOnValueChangeListener = array of Arr1InnerOnValueChangeListener;
      Arr3InnerOnValueChangeListener = array of Arr2InnerOnValueChangeListener;
      InnerFormatter = interface external 'android.widget' name 'Formatter' 
        function format(para1: jint): JLString; overload;
      end;

      InnerOnScrollListener = interface external 'android.widget' name 'OnScrollListener' 
        const
          SCROLL_STATE_IDLE = 0;
          SCROLL_STATE_TOUCH_SCROLL = 1;
          SCROLL_STATE_FLING = 2;
        procedure onScrollStateChange(para1: AWNumberPicker; para2: jint); overload;
      end;

      InnerOnValueChangeListener = interface external 'android.widget' name 'OnValueChangeListener' 
        procedure onValueChange(para1: AWNumberPicker; para2: jint; para3: jint); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function dispatchTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure computeScroll(); overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure scrollBy(para1: jint; para2: jint); overload; virtual;
    function getSolidColor(): jint; overload; virtual;
    procedure setOnValueChangedListener(para1: AWNumberPicker.InnerOnValueChangeListener); overload; virtual;
    procedure setOnScrollListener(para1: AWNumberPicker.InnerOnScrollListener); overload; virtual;
    procedure setFormatter(para1: AWNumberPicker.InnerFormatter); overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    function getWrapSelectorWheel(): jboolean; overload; virtual;
    procedure setWrapSelectorWheel(para1: jboolean); overload; virtual;
    procedure setOnLongPressUpdateInterval(para1: jlong); overload; virtual;
    function getValue(): jint; overload; virtual;
    function getMinValue(): jint; overload; virtual;
    procedure setMinValue(para1: jint); overload; virtual;
    function getMaxValue(): jint; overload; virtual;
    procedure setMaxValue(para1: jint); overload; virtual;
    function getDisplayedValues(): Arr1JLString; overload; virtual;
    procedure setDisplayedValues(para1: Arr1JLString); overload; virtual;
    procedure setDisplayedValues(var para1: array of JLString); overload; virtual;
  strict protected
    function getTopFadingEdgeStrength(): jfloat; overload; virtual;
    function getBottomFadingEdgeStrength(): jfloat; overload; virtual;
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
  public
    procedure draw(para1: AGCanvas); overload; virtual;
  strict protected
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    procedure sendAccessibilityEvent(para1: jint); overload; virtual;
  end;

  AWRadioGroup = class external 'android.widget' name 'RadioGroup' (AWLinearLayout)
  public
    type
      InnerOnCheckedChangeListener = interface;
      Arr1InnerOnCheckedChangeListener = array of InnerOnCheckedChangeListener;
      Arr2InnerOnCheckedChangeListener = array of Arr1InnerOnCheckedChangeListener;
      Arr3InnerOnCheckedChangeListener = array of Arr2InnerOnCheckedChangeListener;
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerOnCheckedChangeListener = interface external 'android.widget' name 'OnCheckedChangeListener' 
        procedure onCheckedChanged(para1: AWRadioGroup; para2: jint); overload;
      end;

      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AWLinearLayout.InnerLayoutParams)
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jfloat); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
      strict protected
        procedure setBaseAttributes(para1: ACRTypedArray; para2: jint; para3: jint); overload; virtual;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setOnHierarchyChangeListener(para1: AVViewGroup.InnerOnHierarchyChangeListener); overload; virtual;
  strict protected
    procedure onFinishInflate(); overload; virtual;
  public
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    procedure check(para1: jint); overload; virtual;
    function getCheckedRadioButtonId(): jint; overload; virtual;
    procedure clearCheck(); overload; virtual;
    procedure setOnCheckedChangeListener(para1: AWRadioGroup.InnerOnCheckedChangeListener); overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AWRadioGroup.InnerLayoutParams; overload; virtual;
  strict protected
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateDefaultLayoutParams(): AWLinearLayout.InnerLayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWLinearLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWSearchView = class external 'android.widget' name 'SearchView' (AWLinearLayout, AVCollapsibleActionView)
  public
    type
      InnerOnSuggestionListener = interface;
      Arr1InnerOnSuggestionListener = array of InnerOnSuggestionListener;
      Arr2InnerOnSuggestionListener = array of Arr1InnerOnSuggestionListener;
      Arr3InnerOnSuggestionListener = array of Arr2InnerOnSuggestionListener;
      InnerOnCloseListener = interface;
      Arr1InnerOnCloseListener = array of InnerOnCloseListener;
      Arr2InnerOnCloseListener = array of Arr1InnerOnCloseListener;
      Arr3InnerOnCloseListener = array of Arr2InnerOnCloseListener;
      InnerOnQueryTextListener = interface;
      Arr1InnerOnQueryTextListener = array of InnerOnQueryTextListener;
      Arr2InnerOnQueryTextListener = array of Arr1InnerOnQueryTextListener;
      Arr3InnerOnQueryTextListener = array of Arr2InnerOnQueryTextListener;
      InnerOnSuggestionListener = interface external 'android.widget' name 'OnSuggestionListener' 
        function onSuggestionSelect(para1: jint): jboolean; overload;
        function onSuggestionClick(para1: jint): jboolean; overload;
      end;

      InnerOnCloseListener = interface external 'android.widget' name 'OnCloseListener' 
        function onClose(): jboolean; overload;
      end;

      InnerOnQueryTextListener = interface external 'android.widget' name 'OnQueryTextListener' 
        function onQueryTextSubmit(para1: JLString): jboolean; overload;
        function onQueryTextChange(para1: JLString): jboolean; overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setSearchableInfo(para1: AASearchableInfo); overload; virtual;
    procedure setImeOptions(para1: jint); overload; virtual;
    procedure setInputType(para1: jint); overload; virtual;
    procedure setOnQueryTextListener(para1: AWSearchView.InnerOnQueryTextListener); overload; virtual;
    procedure setOnCloseListener(para1: AWSearchView.InnerOnCloseListener); overload; virtual;
    procedure setOnQueryTextFocusChangeListener(para1: AVView.InnerOnFocusChangeListener); overload; virtual;
    procedure setOnSuggestionListener(para1: AWSearchView.InnerOnSuggestionListener); overload; virtual;
    procedure setOnSearchClickListener(para1: AVView.InnerOnClickListener); overload; virtual;
    function getQuery(): JLCharSequence; overload; virtual;
    procedure setQuery(para1: JLCharSequence; para2: jboolean); overload; virtual;
    procedure setQueryHint(para1: JLCharSequence); overload; virtual;
    procedure setIconifiedByDefault(para1: jboolean); overload; virtual;
    function isIconfiedByDefault(): jboolean; overload; virtual;
    procedure setIconified(para1: jboolean); overload; virtual;
    function isIconified(): jboolean; overload; virtual;
    procedure setSubmitButtonEnabled(para1: jboolean); overload; virtual;
    function isSubmitButtonEnabled(): jboolean; overload; virtual;
    procedure setQueryRefinementEnabled(para1: jboolean); overload; virtual;
    function isQueryRefinementEnabled(): jboolean; overload; virtual;
    procedure setSuggestionsAdapter(para1: AWCursorAdapter); overload; virtual;
    function getSuggestionsAdapter(): AWCursorAdapter; overload; virtual;
    procedure setMaxWidth(para1: jint); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
    procedure onActionViewCollapsed(); overload; virtual;
    procedure onActionViewExpanded(); overload; virtual;
  end;

  AWTabWidget = class external 'android.widget' name 'TabWidget' (AWLinearLayout, AVView.InnerOnFocusChangeListener)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getChildDrawingOrder(para1: jint; para2: jint): jint; overload; virtual;
  public
    function getChildTabViewAt(para1: jint): AVView; overload; virtual;
    function getTabCount(): jint; overload; virtual;
    procedure setDividerDrawable(para1: AGDDrawable); overload; virtual;
    procedure setDividerDrawable(para1: jint); overload; virtual;
    procedure setLeftStripDrawable(para1: AGDDrawable); overload; virtual;
    procedure setLeftStripDrawable(para1: jint); overload; virtual;
    procedure setRightStripDrawable(para1: AGDDrawable); overload; virtual;
    procedure setRightStripDrawable(para1: jint); overload; virtual;
    procedure setStripEnabled(para1: jboolean); overload; virtual;
    function isStripEnabled(): jboolean; overload; virtual;
    procedure childDrawableStateChanged(para1: AVView); overload; virtual;
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
    procedure setCurrentTab(para1: jint); overload; virtual;
    function dispatchPopulateAccessibilityEvent(para1: AVAAccessibilityEvent): jboolean; overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure focusCurrentTab(para1: jint); overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure addView(para1: AVView); overload; virtual;
    procedure removeAllViews(); overload; virtual;
    procedure sendAccessibilityEventUnchecked(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onFocusChange(para1: AVView; para2: jboolean); overload; virtual;
  end;

  AWTableLayout = class external 'android.widget' name 'TableLayout' (AWLinearLayout)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AWLinearLayout.InnerLayoutParams)
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jfloat); overload;
        constructor create(); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
      strict protected
        procedure setBaseAttributes(para1: ACRTypedArray; para2: jint; para3: jint); overload; virtual;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setOnHierarchyChangeListener(para1: AVViewGroup.InnerOnHierarchyChangeListener); overload; virtual;
    procedure requestLayout(); overload; virtual;
    function isShrinkAllColumns(): jboolean; overload; virtual;
    procedure setShrinkAllColumns(para1: jboolean); overload; virtual;
    function isStretchAllColumns(): jboolean; overload; virtual;
    procedure setStretchAllColumns(para1: jboolean); overload; virtual;
    procedure setColumnCollapsed(para1: jint; para2: jboolean); overload; virtual;
    function isColumnCollapsed(para1: jint): jboolean; overload; virtual;
    procedure setColumnStretchable(para1: jint; para2: jboolean); overload; virtual;
    function isColumnStretchable(para1: jint): jboolean; overload; virtual;
    procedure setColumnShrinkable(para1: jint; para2: jboolean); overload; virtual;
    function isColumnShrinkable(para1: jint): jboolean; overload; virtual;
    procedure addView(para1: AVView); overload; virtual;
    procedure addView(para1: AVView; para2: jint); overload; virtual;
    procedure addView(para1: AVView; para2: AVViewGroup_LayoutParams); overload; virtual;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWTableLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AWLinearLayout.InnerLayoutParams; overload; virtual;
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AWLinearLayout.InnerLayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWLinearLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWTableRow = class external 'android.widget' name 'TableRow' (AWLinearLayout)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AWLinearLayout.InnerLayoutParams)
      public
        var
          fcolumn: jint; external name 'column';
          fspan: jint; external name 'span';
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: jint; para2: jint; para3: jfloat); overload;
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
        constructor create(para1: AVViewGroup.InnerMarginLayoutParams); overload;
      strict protected
        procedure setBaseAttributes(para1: ACRTypedArray; para2: jint; para3: jint); overload; virtual;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setOnHierarchyChangeListener(para1: AVViewGroup.InnerOnHierarchyChangeListener); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function getVirtualChildAt(para1: jint): AVView; overload; virtual;
    function getVirtualChildCount(): jint; overload; virtual;
    function generateLayoutParams(para1: AUAttributeSet): AWTableRow.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AWLinearLayout.InnerLayoutParams; overload; virtual;
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AWLinearLayout.InnerLayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AWLinearLayout.InnerLayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  end;

  AWZoomControls = class external 'android.widget' name 'ZoomControls' (AWLinearLayout)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setOnZoomInClickListener(para1: AVView.InnerOnClickListener); overload; virtual;
    procedure setOnZoomOutClickListener(para1: AVView.InnerOnClickListener); overload; virtual;
    procedure setZoomSpeed(para1: jlong); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure show(); overload; virtual;
    procedure hide(); overload; virtual;
    procedure setIsZoomInEnabled(para1: jboolean); overload; virtual;
    procedure setIsZoomOutEnabled(para1: jboolean); overload; virtual;
    function hasFocus(): jboolean; overload; virtual;
  end;

  AWDialerFilter = class external 'android.widget' name 'DialerFilter' (AWRelativeLayout)
  public
    const
      DIGITS_AND_LETTERS = 1;
      DIGITS_AND_LETTERS_NO_DIGITS = 2;
      DIGITS_AND_LETTERS_NO_LETTERS = 3;
      DIGITS_ONLY = 4;
      LETTERS_ONLY = 5;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
  strict protected
    procedure onFinishInflate(); overload; virtual;
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
  public
    function isQwertyKeyboard(): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function getMode(): jint; overload; virtual;
    procedure setMode(para1: jint); overload; virtual;
    function getLetters(): JLCharSequence; overload; virtual;
    function getDigits(): JLCharSequence; overload; virtual;
    function getFilterText(): JLCharSequence; overload; virtual;
    procedure append(para1: JLString); overload; virtual;
    procedure clearText(); overload; virtual;
    procedure setLettersWatcher(para1: ATTextWatcher); overload; virtual;
    procedure setDigitsWatcher(para1: ATTextWatcher); overload; virtual;
    procedure setFilterWatcher(para1: ATTextWatcher); overload; virtual;
    procedure removeFilterWatcher(para1: ATTextWatcher); overload; virtual;
  strict protected
    procedure onModeChange(para1: jint; para2: jint); overload; virtual;
  end;

  AWTwoLineListItem = class external 'android.widget' name 'TwoLineListItem' (AWRelativeLayout)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onFinishInflate(); overload; virtual;
  public
    function getText1(): AWTextView; overload; virtual;
    function getText2(): AWTextView; overload; virtual;
  end;

  AWZoomButton = class external 'android.widget' name 'ZoomButton' (AWImageButton, AVView.InnerOnLongClickListener)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure setZoomSpeed(para1: jlong); overload; virtual;
    function onLongClick(para1: AVView): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function dispatchUnhandledMove(para1: AVView; para2: jint): jboolean; overload; virtual;
  end;

  AWRatingBar = class external 'android.widget' name 'RatingBar' (AWAbsSeekBar)
  public
    type
      InnerOnRatingBarChangeListener = interface;
      Arr1InnerOnRatingBarChangeListener = array of InnerOnRatingBarChangeListener;
      Arr2InnerOnRatingBarChangeListener = array of Arr1InnerOnRatingBarChangeListener;
      Arr3InnerOnRatingBarChangeListener = array of Arr2InnerOnRatingBarChangeListener;
      InnerOnRatingBarChangeListener = interface external 'android.widget' name 'OnRatingBarChangeListener' 
        procedure onRatingChanged(para1: AWRatingBar; para2: jfloat; para3: jboolean); overload;
      end;

  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    procedure setOnRatingBarChangeListener(para1: AWRatingBar.InnerOnRatingBarChangeListener); overload; virtual;
    function getOnRatingBarChangeListener(): AWRatingBar.InnerOnRatingBarChangeListener; overload; virtual;
    procedure setIsIndicator(para1: jboolean); overload; virtual;
    function isIndicator(): jboolean; overload; virtual;
    procedure setNumStars(para1: jint); overload; virtual;
    function getNumStars(): jint; overload; virtual;
    procedure setRating(para1: jfloat); overload; virtual;
    function getRating(): jfloat; overload; virtual;
    procedure setStepSize(para1: jfloat); overload; virtual;
    function getStepSize(): jfloat; overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    procedure setMax(para1: jint); overload; virtual;
  end;

  AWSeekBar = class external 'android.widget' name 'SeekBar' (AWAbsSeekBar)
  public
    type
      InnerOnSeekBarChangeListener = interface;
      Arr1InnerOnSeekBarChangeListener = array of InnerOnSeekBarChangeListener;
      Arr2InnerOnSeekBarChangeListener = array of Arr1InnerOnSeekBarChangeListener;
      Arr3InnerOnSeekBarChangeListener = array of Arr2InnerOnSeekBarChangeListener;
      InnerOnSeekBarChangeListener = interface external 'android.widget' name 'OnSeekBarChangeListener' 
        procedure onProgressChanged(para1: AWSeekBar; para2: jint; para3: jboolean); overload;
        procedure onStartTrackingTouch(para1: AWSeekBar); overload;
        procedure onStopTrackingTouch(para1: AWSeekBar); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setOnSeekBarChangeListener(para1: AWSeekBar.InnerOnSeekBarChangeListener); overload; virtual;
  end;

  AWCompoundButton = class abstract external 'android.widget' name 'CompoundButton' (AWButton, AWCheckable)
  public
    type
      InnerOnCheckedChangeListener = interface;
      Arr1InnerOnCheckedChangeListener = array of InnerOnCheckedChangeListener;
      Arr2InnerOnCheckedChangeListener = array of Arr1InnerOnCheckedChangeListener;
      Arr3InnerOnCheckedChangeListener = array of Arr2InnerOnCheckedChangeListener;
      InnerOnCheckedChangeListener = interface external 'android.widget' name 'OnCheckedChangeListener' 
        procedure onCheckedChanged(para1: AWCompoundButton; para2: jboolean); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure toggle(); overload; virtual;
    function performClick(): jboolean; overload; virtual;
    function isChecked(): jboolean; overload; virtual;
    procedure setChecked(para1: jboolean); overload; virtual;
    procedure setOnCheckedChangeListener(para1: AWCompoundButton.InnerOnCheckedChangeListener); overload; virtual;
    procedure setButtonDrawable(para1: jint); overload; virtual;
    procedure setButtonDrawable(para1: AGDDrawable); overload; virtual;
    procedure onInitializeAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    procedure onInitializeAccessibilityNodeInfo(para1: AVAAccessibilityNodeInfo); overload; virtual;
  strict protected
    procedure onDraw(para1: AGCanvas); overload; virtual;
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
    procedure drawableStateChanged(); overload; virtual;
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  end;

  AIExtractEditText = class external 'android.inputmethodservice' name 'ExtractEditText' (AWEditText)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure startInternalChanges(); overload; virtual;
    procedure finishInternalChanges(); overload; virtual;
    procedure setExtractedText(para1: AVIExtractedText); overload; virtual;
  strict protected
    procedure onSelectionChanged(para1: jint; para2: jint); overload; virtual;
  public
    function performClick(): jboolean; overload; virtual;
    function onTextContextMenuItem(para1: jint): jboolean; overload; virtual;
    function isInputMethodTarget(): jboolean; overload; virtual;
    function hasVerticalScrollBar(): jboolean; overload; virtual;
    function hasWindowFocus(): jboolean; overload; virtual;
    function isFocused(): jboolean; overload; virtual;
    function hasFocus(): jboolean; overload; virtual;
  end;

  AWAutoCompleteTextView = class external 'android.widget' name 'AutoCompleteTextView' (AWEditText, AWFilter.InnerFilterListener)
  public
    type
      InnerValidator = interface;
      Arr1InnerValidator = array of InnerValidator;
      Arr2InnerValidator = array of Arr1InnerValidator;
      Arr3InnerValidator = array of Arr2InnerValidator;
      InnerValidator = interface external 'android.widget' name 'Validator' 
        function isValid(para1: JLCharSequence): jboolean; overload;
        function fixText(para1: JLCharSequence): JLCharSequence; overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setOnClickListener(para1: AVView.InnerOnClickListener); overload; virtual;
    procedure setCompletionHint(para1: JLCharSequence); overload; virtual;
    function getDropDownWidth(): jint; overload; virtual;
    procedure setDropDownWidth(para1: jint); overload; virtual;
    function getDropDownHeight(): jint; overload; virtual;
    procedure setDropDownHeight(para1: jint); overload; virtual;
    function getDropDownAnchor(): jint; overload; virtual;
    procedure setDropDownAnchor(para1: jint); overload; virtual;
    function getDropDownBackground(): AGDDrawable; overload; virtual;
    procedure setDropDownBackgroundDrawable(para1: AGDDrawable); overload; virtual;
    procedure setDropDownBackgroundResource(para1: jint); overload; virtual;
    procedure setDropDownVerticalOffset(para1: jint); overload; virtual;
    function getDropDownVerticalOffset(): jint; overload; virtual;
    procedure setDropDownHorizontalOffset(para1: jint); overload; virtual;
    function getDropDownHorizontalOffset(): jint; overload; virtual;
    function getThreshold(): jint; overload; virtual;
    procedure setThreshold(para1: jint); overload; virtual;
    procedure setOnItemClickListener(para1: AWAdapterView.InnerOnItemClickListener); overload; virtual;
    procedure setOnItemSelectedListener(para1: AWAdapterView.InnerOnItemSelectedListener); overload; virtual;
    function getItemClickListener(): AWAdapterView.InnerOnItemClickListener; overload; virtual;
    function getItemSelectedListener(): AWAdapterView.InnerOnItemSelectedListener; overload; virtual;
    function getOnItemClickListener(): AWAdapterView.InnerOnItemClickListener; overload; virtual;
    function getOnItemSelectedListener(): AWAdapterView.InnerOnItemSelectedListener; overload; virtual;
    function getAdapter(): AWListAdapter; overload; virtual;
    procedure setAdapter(para1: AWListAdapter); overload; virtual;
    function onKeyPreIme(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function enoughToFilter(): jboolean; overload; virtual;
    function isPopupShowing(): jboolean; overload; virtual;
  strict protected
    function convertSelectionToString(para1: JLObject): JLCharSequence; overload; virtual;
  public
    procedure clearListSelection(); overload; virtual;
    procedure setListSelection(para1: jint); overload; virtual;
    function getListSelection(): jint; overload; virtual;
  strict protected
    procedure performFiltering(para1: JLCharSequence; para2: jint); overload; virtual;
  public
    procedure performCompletion(); overload; virtual;
    procedure onCommitCompletion(para1: AVICompletionInfo); overload; virtual;
    function isPerformingCompletion(): jboolean; overload; virtual;
  strict protected
    procedure replaceText(para1: JLCharSequence); overload; virtual;
  public
    procedure onFilterComplete(para1: jint); overload; virtual;
    procedure onWindowFocusChanged(para1: jboolean); overload; virtual;
  strict protected
    procedure onDisplayHint(para1: jint); overload; virtual;
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
  public
    procedure dismissDropDown(); overload; virtual;
  strict protected
    function setFrame(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
  public
    procedure showDropDown(); overload; virtual;
    procedure setValidator(para1: AWAutoCompleteTextView.InnerValidator); overload; virtual;
    function getValidator(): AWAutoCompleteTextView.InnerValidator; overload; virtual;
    procedure performValidation(); overload; virtual;
  strict protected
    function getFilter(): AWFilter; overload; virtual;
  end;

  AAProgressDialog = class external 'android.app' name 'ProgressDialog' (AAAlertDialog)
  public
    const
      STYLE_SPINNER = 0;
      STYLE_HORIZONTAL = 1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    class function show(para1: ACContext; para2: JLCharSequence; para3: JLCharSequence): AAProgressDialog; static; overload;
    class function show(para1: ACContext; para2: JLCharSequence; para3: JLCharSequence; para4: jboolean): AAProgressDialog; static; overload;
    class function show(para1: ACContext; para2: JLCharSequence; para3: JLCharSequence; para4: jboolean; para5: jboolean): AAProgressDialog; static; overload;
    class function show(para1: ACContext; para2: JLCharSequence; para3: JLCharSequence; para4: jboolean; para5: jboolean; para6: ACDialogInterface.InnerOnCancelListener): AAProgressDialog; static; overload;
  strict protected
    procedure onCreate(para1: AOBundle); overload; virtual;
  public
    procedure onStart(); overload; virtual;
  strict protected
    procedure onStop(); overload; virtual;
  public
    procedure setProgress(para1: jint); overload; virtual;
    procedure setSecondaryProgress(para1: jint); overload; virtual;
    function getProgress(): jint; overload; virtual;
    function getSecondaryProgress(): jint; overload; virtual;
    function getMax(): jint; overload; virtual;
    procedure setMax(para1: jint); overload; virtual;
    procedure incrementProgressBy(para1: jint); overload; virtual;
    procedure incrementSecondaryProgressBy(para1: jint); overload; virtual;
    procedure setProgressDrawable(para1: AGDDrawable); overload; virtual;
    procedure setIndeterminateDrawable(para1: AGDDrawable); overload; virtual;
    procedure setIndeterminate(para1: jboolean); overload; virtual;
    function isIndeterminate(): jboolean; overload; virtual;
    procedure setMessage(para1: JLCharSequence); overload; virtual;
    procedure setProgressStyle(para1: jint); overload; virtual;
    procedure setProgressNumberFormat(para1: JLString); overload; virtual;
    procedure setProgressPercentFormat(para1: JTNumberFormat); overload; virtual;
  end;

  APDialogPreference = class abstract external 'android.preference' name 'DialogPreference' (APPreference, ACDialogInterface.InnerOnClickListener, ACDialogInterface.InnerOnDismissListener, APPreferenceManager.InnerOnActivityDestroyListener)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setDialogTitle(para1: JLCharSequence); overload; virtual;
    procedure setDialogTitle(para1: jint); overload; virtual;
    function getDialogTitle(): JLCharSequence; overload; virtual;
    procedure setDialogMessage(para1: JLCharSequence); overload; virtual;
    procedure setDialogMessage(para1: jint); overload; virtual;
    function getDialogMessage(): JLCharSequence; overload; virtual;
    procedure setDialogIcon(para1: AGDDrawable); overload; virtual;
    procedure setDialogIcon(para1: jint); overload; virtual;
    function getDialogIcon(): AGDDrawable; overload; virtual;
    procedure setPositiveButtonText(para1: JLCharSequence); overload; virtual;
    procedure setPositiveButtonText(para1: jint); overload; virtual;
    function getPositiveButtonText(): JLCharSequence; overload; virtual;
    procedure setNegativeButtonText(para1: JLCharSequence); overload; virtual;
    procedure setNegativeButtonText(para1: jint); overload; virtual;
    function getNegativeButtonText(): JLCharSequence; overload; virtual;
    procedure setDialogLayoutResource(para1: jint); overload; virtual;
    function getDialogLayoutResource(): jint; overload; virtual;
  strict protected
    procedure onPrepareDialogBuilder(para1: AAAlertDialog.InnerBuilder); overload; virtual;
    procedure onClick(); overload; virtual;
    procedure showDialog(para1: AOBundle); overload; virtual;
    function onCreateDialogView(): AVView; overload; virtual;
    procedure onBindDialogView(para1: AVView); overload; virtual;
  public
    procedure onClick(para1: ACDialogInterface; para2: jint); overload; virtual;
    procedure onDismiss(para1: ACDialogInterface); overload; virtual;
  strict protected
    procedure onDialogClosed(para1: jboolean); overload; virtual;
  public
    function getDialog(): AADialog; overload; virtual;
    procedure onActivityDestroy(); overload; virtual;
  strict protected
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  end;

  AWGridView = class external 'android.widget' name 'GridView' (AWAbsListView)
  public
    const
      NO_STRETCH = 0;
      STRETCH_SPACING = 1;
      STRETCH_COLUMN_WIDTH = 2;
      STRETCH_SPACING_UNIFORM = 3;
      AUTO_FIT = -1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getAdapter(): AWListAdapter; overload; virtual;
    procedure setRemoteViewsAdapter(para1: ACIntent); overload; virtual;
    procedure setAdapter(para1: AWListAdapter); overload; virtual;
    procedure smoothScrollToPosition(para1: jint); overload; virtual;
    procedure smoothScrollByOffset(para1: jint); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure attachLayoutAnimationParameters(para1: AVView; para2: AVViewGroup_LayoutParams; para3: jint; para4: jint); overload; virtual;
    procedure layoutChildren(); overload; virtual;
  public
    procedure setSelection(para1: jint); overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
  strict protected
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
  public
    procedure setGravity(para1: jint); overload; virtual;
    procedure setHorizontalSpacing(para1: jint); overload; virtual;
    procedure setVerticalSpacing(para1: jint); overload; virtual;
    procedure setStretchMode(para1: jint); overload; virtual;
    function getStretchMode(): jint; overload; virtual;
    procedure setColumnWidth(para1: jint); overload; virtual;
    procedure setNumColumns(para1: jint); overload; virtual;
    function getNumColumns(): jint; overload; virtual;
  strict protected
    function computeVerticalScrollExtent(): jint; overload; virtual;
    function computeVerticalScrollOffset(): jint; overload; virtual;
    function computeVerticalScrollRange(): jint; overload; virtual;
  public
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    function getAdapter(): AWAdapter; overload; virtual;
  end;

  AWListView = class external 'android.widget' name 'ListView' (AWAbsListView)
  public
    type
      InnerFixedViewInfo = class;
      Arr1InnerFixedViewInfo = array of InnerFixedViewInfo;
      Arr2InnerFixedViewInfo = array of Arr1InnerFixedViewInfo;
      Arr3InnerFixedViewInfo = array of Arr2InnerFixedViewInfo;
      InnerFixedViewInfo = class external 'android.widget' name 'FixedViewInfo' 
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    function getMaxScrollAmount(): jint; overload; virtual;
    procedure addHeaderView(para1: AVView; para2: JLObject; para3: jboolean); overload; virtual;
    procedure addHeaderView(para1: AVView); overload; virtual;
    function getHeaderViewsCount(): jint; overload; virtual;
    function removeHeaderView(para1: AVView): jboolean; overload; virtual;
    procedure addFooterView(para1: AVView; para2: JLObject; para3: jboolean); overload; virtual;
    procedure addFooterView(para1: AVView); overload; virtual;
    function getFooterViewsCount(): jint; overload; virtual;
    function removeFooterView(para1: AVView): jboolean; overload; virtual;
    function getAdapter(): AWListAdapter; overload; virtual;
    procedure setRemoteViewsAdapter(para1: ACIntent); overload; virtual;
    procedure setAdapter(para1: AWListAdapter); overload; virtual;
    function requestChildRectangleOnScreen(para1: AVView; para2: AGRect; para3: jboolean): jboolean; overload; virtual;
    procedure smoothScrollToPosition(para1: jint); overload; virtual;
    procedure smoothScrollByOffset(para1: jint); overload; virtual;
  strict protected
    procedure onSizeChanged(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure layoutChildren(); overload; virtual;
    function canAnimate(): jboolean; overload; virtual;
  public
    procedure setSelection(para1: jint); overload; virtual;
    procedure setSelectionFromTop(para1: jint; para2: jint); overload; virtual;
    procedure setSelectionAfterHeaderView(); overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyMultiple(para1: jint; para2: jint; para3: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure setItemsCanFocus(para1: jboolean); overload; virtual;
    function getItemsCanFocus(): jboolean; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    procedure setCacheColorHint(para1: jint); overload; virtual;
  strict protected
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
    function drawChild(para1: AGCanvas; para2: AVView; para3: jlong): jboolean; overload; virtual;
  public
    function getDivider(): AGDDrawable; overload; virtual;
    procedure setDivider(para1: AGDDrawable); overload; virtual;
    function getDividerHeight(): jint; overload; virtual;
    procedure setDividerHeight(para1: jint); overload; virtual;
    procedure setHeaderDividersEnabled(para1: jboolean); overload; virtual;
    procedure setFooterDividersEnabled(para1: jboolean); overload; virtual;
    procedure setOverscrollHeader(para1: AGDDrawable); overload; virtual;
    function getOverscrollHeader(): AGDDrawable; overload; virtual;
    procedure setOverscrollFooter(para1: AGDDrawable); overload; virtual;
    function getOverscrollFooter(): AGDDrawable; overload; virtual;
  strict protected
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
    procedure onFinishInflate(); overload; virtual;
    function findViewTraversal(para1: jint): AVView; overload; virtual;
    function findViewWithTagTraversal(para1: JLObject): AVView; overload; virtual;
  public
    function getCheckItemIds(): Arr1jlong; overload; virtual;
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    function getAdapter(): AWAdapter; overload; virtual;
  end;

  AWGallery = class external 'android.widget' name 'Gallery' (AWAbsSpinner, AVGestureDetector.InnerOnGestureListener)
  public
    type
      InnerLayoutParams = class;
      Arr1InnerLayoutParams = array of InnerLayoutParams;
      Arr2InnerLayoutParams = array of Arr1InnerLayoutParams;
      Arr3InnerLayoutParams = array of Arr2InnerLayoutParams;
      InnerLayoutParams = class external 'android.widget' name 'LayoutParams' (AVViewGroup_LayoutParams)
      public
        constructor create(para1: ACContext; para2: AUAttributeSet); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: AVViewGroup_LayoutParams); overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setCallbackDuringFling(para1: jboolean); overload; virtual;
    procedure setAnimationDuration(para1: jint); overload; virtual;
    procedure setSpacing(para1: jint); overload; virtual;
    procedure setUnselectedAlpha(para1: jfloat); overload; virtual;
  strict protected
    function getChildStaticTransformation(para1: AVView; para2: AVATransformation): jboolean; overload; virtual;
    function computeHorizontalScrollExtent(): jint; overload; virtual;
    function computeHorizontalScrollOffset(): jint; overload; virtual;
    function computeHorizontalScrollRange(): jint; overload; virtual;
    function checkLayoutParams(para1: AVViewGroup_LayoutParams): jboolean; overload; virtual;
    function generateLayoutParams(para1: AVViewGroup_LayoutParams): AVViewGroup_LayoutParams; overload; virtual;
  public
    function generateLayoutParams(para1: AUAttributeSet): AVViewGroup_LayoutParams; overload; virtual;
  strict protected
    function generateDefaultLayoutParams(): AVViewGroup_LayoutParams; overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onSingleTapUp(para1: AVMotionEvent): jboolean; overload; virtual;
    function onFling(para1: AVMotionEvent; para2: AVMotionEvent; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function onScroll(para1: AVMotionEvent; para2: AVMotionEvent; para3: jfloat; para4: jfloat): jboolean; overload; virtual;
    function onDown(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure onLongPress(para1: AVMotionEvent); overload; virtual;
    procedure onShowPress(para1: AVMotionEvent); overload; virtual;
    procedure dispatchSetSelected(para1: jboolean); overload; virtual;
  strict protected
    procedure dispatchSetPressed(para1: jboolean); overload; virtual;
    function getContextMenuInfo(): AVContextMenu.InnerContextMenuInfo; overload; virtual;
  public
    function showContextMenuForChild(para1: AVView): jboolean; overload; virtual;
    function showContextMenu(): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: AVKeyEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    function onKeyUp(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure setGravity(para1: jint); overload; virtual;
  strict protected
    function getChildDrawingOrder(para1: jint; para2: jint): jint; overload; virtual;
    procedure onFocusChanged(para1: jboolean; para2: jint; para3: AGRect); overload; virtual;
  end;

  AWSpinner = class external 'android.widget' name 'Spinner' (AWAbsSpinner, ACDialogInterface.InnerOnClickListener)
  public
    const
      MODE_DIALOG = 0;
      MODE_DROPDOWN = 1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint; para4: jint); overload;
    procedure setGravity(para1: jint); overload; virtual;
    procedure setAdapter(para1: AWSpinnerAdapter); overload; virtual;
    function getBaseline(): jint; overload; virtual;
  strict protected
    procedure onDetachedFromWindow(); overload; virtual;
  public
    procedure setOnItemClickListener(para1: AWAdapterView.InnerOnItemClickListener); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    function performClick(): jboolean; overload; virtual;
    procedure onClick(para1: ACDialogInterface; para2: jint); overload; virtual;
    procedure setPrompt(para1: JLCharSequence); overload; virtual;
    procedure setPromptId(para1: jint); overload; virtual;
    function getPrompt(): JLCharSequence; overload; virtual;
    procedure setAdapter(para1: AWAdapter); overload; virtual;
  end;

  AWAdapterViewFlipper = class external 'android.widget' name 'AdapterViewFlipper' (AWAdapterViewAnimator)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onWindowVisibilityChanged(para1: jint); overload; virtual;
  public
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    procedure setFlipInterval(para1: jint); overload; virtual;
    procedure startFlipping(); overload; virtual;
    procedure stopFlipping(); overload; virtual;
    procedure showNext(); overload; virtual;
    procedure showPrevious(); overload; virtual;
    function isFlipping(): jboolean; overload; virtual;
    procedure setAutoStart(para1: jboolean); overload; virtual;
    function isAutoStart(): jboolean; overload; virtual;
    procedure fyiWillBeAdvancedByHostKThx(); overload; virtual;
  end;

  AWStackView = class external 'android.widget' name 'StackView' (AWAdapterViewAnimator)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure showNext(); overload; virtual;
    procedure showPrevious(); overload; virtual;
  strict protected
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
  public
    function onGenericMotionEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onInterceptTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  public
    procedure advance(); overload; virtual;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  end;

  AADatePickerDialog = class external 'android.app' name 'DatePickerDialog' (AAAlertDialog, ACDialogInterface.InnerOnClickListener, AWDatePicker.InnerOnDateChangedListener)
  public
    type
      InnerOnDateSetListener = interface;
      Arr1InnerOnDateSetListener = array of InnerOnDateSetListener;
      Arr2InnerOnDateSetListener = array of Arr1InnerOnDateSetListener;
      Arr3InnerOnDateSetListener = array of Arr2InnerOnDateSetListener;
      InnerOnDateSetListener = interface external 'android.app' name 'OnDateSetListener' 
        procedure onDateSet(para1: AWDatePicker; para2: jint; para3: jint; para4: jint); overload;
      end;

  public
    constructor create(para1: ACContext; para2: AADatePickerDialog.InnerOnDateSetListener; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: ACContext; para2: jint; para3: AADatePickerDialog.InnerOnDateSetListener; para4: jint; para5: jint; para6: jint); overload;
    procedure onClick(para1: ACDialogInterface; para2: jint); overload; virtual;
    procedure onDateChanged(para1: AWDatePicker; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getDatePicker(): AWDatePicker; overload; virtual;
    procedure updateDate(para1: jint; para2: jint; para3: jint); overload; virtual;
    function onSaveInstanceState(): AOBundle; overload; virtual;
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
  end;

  AWVideoView = class external 'android.widget' name 'VideoView' (AVSurfaceView, AWMediaController.InnerMediaPlayerControl)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
  public
    function resolveAdjustedSize(para1: jint; para2: jint): jint; overload; virtual;
    procedure setVideoPath(para1: JLString); overload; virtual;
    procedure setVideoURI(para1: ANUri); overload; virtual;
    procedure stopPlayback(); overload; virtual;
    procedure setMediaController(para1: AWMediaController); overload; virtual;
    procedure setOnPreparedListener(para1: AMMediaPlayer.InnerOnPreparedListener); overload; virtual;
    procedure setOnCompletionListener(para1: AMMediaPlayer.InnerOnCompletionListener); overload; virtual;
    procedure setOnErrorListener(para1: AMMediaPlayer.InnerOnErrorListener); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onTrackballEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    function onKeyDown(para1: jint; para2: AVKeyEvent): jboolean; overload; virtual;
    procedure start(); overload; virtual;
    procedure pause(); overload; virtual;
    procedure suspend(); overload; virtual;
    procedure resume(); overload; virtual;
    function getDuration(): jint; overload; virtual;
    function getCurrentPosition(): jint; overload; virtual;
    procedure seekTo(para1: jint); overload; virtual;
    function isPlaying(): jboolean; overload; virtual;
    function getBufferPercentage(): jint; overload; virtual;
    function canPause(): jboolean; overload; virtual;
    function canSeekBackward(): jboolean; overload; virtual;
    function canSeekForward(): jboolean; overload; virtual;
  end;

  AATimePickerDialog = class external 'android.app' name 'TimePickerDialog' (AAAlertDialog, ACDialogInterface.InnerOnClickListener, AWTimePicker.InnerOnTimeChangedListener)
  public
    type
      InnerOnTimeSetListener = interface;
      Arr1InnerOnTimeSetListener = array of InnerOnTimeSetListener;
      Arr2InnerOnTimeSetListener = array of Arr1InnerOnTimeSetListener;
      Arr3InnerOnTimeSetListener = array of Arr2InnerOnTimeSetListener;
      InnerOnTimeSetListener = interface external 'android.app' name 'OnTimeSetListener' 
        procedure onTimeSet(para1: AWTimePicker; para2: jint; para3: jint); overload;
      end;

  public
    constructor create(para1: ACContext; para2: AATimePickerDialog.InnerOnTimeSetListener; para3: jint; para4: jint; para5: jboolean); overload;
    constructor create(para1: ACContext; para2: jint; para3: AATimePickerDialog.InnerOnTimeSetListener; para4: jint; para5: jint; para6: jboolean); overload;
    procedure onClick(para1: ACDialogInterface; para2: jint); overload; virtual;
    procedure updateTime(para1: jint; para2: jint); overload; virtual;
    procedure onTimeChanged(para1: AWTimePicker; para2: jint; para3: jint); overload; virtual;
    function onSaveInstanceState(): AOBundle; overload; virtual;
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
  end;

  AWViewFlipper = class external 'android.widget' name 'ViewFlipper' (AWViewAnimator)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
  strict protected
    procedure onAttachedToWindow(); overload; virtual;
    procedure onDetachedFromWindow(); overload; virtual;
    procedure onWindowVisibilityChanged(para1: jint); overload; virtual;
  public
    procedure setFlipInterval(para1: jint); overload; virtual;
    procedure startFlipping(); overload; virtual;
    procedure stopFlipping(); overload; virtual;
    function isFlipping(): jboolean; overload; virtual;
    procedure setAutoStart(para1: jboolean); overload; virtual;
    function isAutoStart(): jboolean; overload; virtual;
  end;

  AWViewSwitcher = class external 'android.widget' name 'ViewSwitcher' (AWViewAnimator)
  public
    type
      InnerViewFactory = interface;
      Arr1InnerViewFactory = array of InnerViewFactory;
      Arr2InnerViewFactory = array of Arr1InnerViewFactory;
      Arr3InnerViewFactory = array of Arr2InnerViewFactory;
      InnerViewFactory = interface external 'android.widget' name 'ViewFactory' 
        function makeView(): AVView; overload;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    function getNextView(): AVView; overload; virtual;
    procedure setFactory(para1: AWViewSwitcher.InnerViewFactory); overload; virtual;
    procedure reset(); overload; virtual;
  end;

  AWCheckBox = class external 'android.widget' name 'CheckBox' (AWCompoundButton)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  end;

  AWRadioButton = class external 'android.widget' name 'RadioButton' (AWCompoundButton)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure toggle(); overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  end;

  AWSwitch = class external 'android.widget' name 'Switch' (AWCompoundButton)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setSwitchTextAppearance(para1: ACContext; para2: jint); overload; virtual;
    procedure setSwitchTypeface(para1: AGTypeface; para2: jint); overload; virtual;
    procedure setSwitchTypeface(para1: AGTypeface); overload; virtual;
    function getTextOn(): JLCharSequence; overload; virtual;
    procedure setTextOn(para1: JLCharSequence); overload; virtual;
    function getTextOff(): JLCharSequence; overload; virtual;
    procedure setTextOff(para1: JLCharSequence); overload; virtual;
    procedure onMeasure(para1: jint; para2: jint); overload; virtual;
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
    function onTouchEvent(para1: AVMotionEvent): jboolean; overload; virtual;
    procedure setChecked(para1: jboolean); overload; virtual;
  strict protected
    procedure onLayout(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure onDraw(para1: AGCanvas); overload; virtual;
  public
    function getCompoundPaddingRight(): jint; overload; virtual;
  strict protected
    function onCreateDrawableState(para1: jint): Arr1jint; overload; virtual;
    procedure drawableStateChanged(); overload; virtual;
    function verifyDrawable(para1: AGDDrawable): jboolean; overload; virtual;
  public
    procedure jumpDrawablesToCurrentState(); overload; virtual;
  end;

  AWToggleButton = class external 'android.widget' name 'ToggleButton' (AWCompoundButton)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    procedure setChecked(para1: jboolean); overload; virtual;
    function getTextOn(): JLCharSequence; overload; virtual;
    procedure setTextOn(para1: JLCharSequence); overload; virtual;
    function getTextOff(): JLCharSequence; overload; virtual;
    procedure setTextOff(para1: JLCharSequence); overload; virtual;
  strict protected
    procedure onFinishInflate(); overload; virtual;
  public
    procedure setBackgroundDrawable(para1: AGDDrawable); overload; virtual;
  strict protected
    procedure drawableStateChanged(); overload; virtual;
  public
    procedure onPopulateAccessibilityEvent(para1: AVAAccessibilityEvent); overload; virtual;
  end;

  AWMultiAutoCompleteTextView = class external 'android.widget' name 'MultiAutoCompleteTextView' (AWAutoCompleteTextView)
  public
    type
      InnerTokenizer = interface;
      Arr1InnerTokenizer = array of InnerTokenizer;
      Arr2InnerTokenizer = array of Arr1InnerTokenizer;
      Arr3InnerTokenizer = array of Arr2InnerTokenizer;
      InnerCommaTokenizer = class;
      Arr1InnerCommaTokenizer = array of InnerCommaTokenizer;
      Arr2InnerCommaTokenizer = array of Arr1InnerCommaTokenizer;
      Arr3InnerCommaTokenizer = array of Arr2InnerCommaTokenizer;
      InnerTokenizer = interface external 'android.widget' name 'Tokenizer' 
        function findTokenStart(para1: JLCharSequence; para2: jint): jint; overload;
        function findTokenEnd(para1: JLCharSequence; para2: jint): jint; overload;
        function terminateToken(para1: JLCharSequence): JLCharSequence; overload;
      end;

      InnerCommaTokenizer = class external 'android.widget' name 'CommaTokenizer' (JLObject, AWMultiAutoCompleteTextView.InnerTokenizer)
      public
        constructor create(); overload;
        function findTokenStart(para1: JLCharSequence; para2: jint): jint; overload; virtual;
        function findTokenEnd(para1: JLCharSequence; para2: jint): jint; overload; virtual;
        function terminateToken(para1: JLCharSequence): JLCharSequence; overload; virtual;
      end;

  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    procedure setTokenizer(para1: AWMultiAutoCompleteTextView.InnerTokenizer); overload; virtual;
  strict protected
    procedure performFiltering(para1: JLCharSequence; para2: jint); overload; virtual;
  public
    function enoughToFilter(): jboolean; overload; virtual;
    procedure performValidation(); overload; virtual;
  strict protected
    procedure performFiltering(para1: JLCharSequence; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure replaceText(para1: JLCharSequence); overload; virtual;
  end;

  APEditTextPreference = class external 'android.preference' name 'EditTextPreference' (APDialogPreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    procedure setText(para1: JLString); overload; virtual;
    function getText(): JLString; overload; virtual;
  strict protected
    procedure onBindDialogView(para1: AVView); overload; virtual;
    procedure onAddEditTextToDialogView(para1: AVView; para2: AWEditText); overload; virtual;
    procedure onDialogClosed(para1: jboolean); overload; virtual;
    function onGetDefaultValue(para1: ACRTypedArray; para2: jint): JLObject; overload; virtual;
    procedure onSetInitialValue(para1: jboolean; para2: JLObject); overload; virtual;
  public
    function shouldDisableDependents(): jboolean; overload; virtual;
    function getEditText(): AWEditText; overload; virtual;
  strict protected
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  end;

  APListPreference = class external 'android.preference' name 'ListPreference' (APDialogPreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    procedure setEntries(para1: Arr1JLCharSequence); overload; virtual;
    procedure setEntries(var para1: array of JLCharSequence); overload; virtual;
    procedure setEntries(para1: jint); overload; virtual;
    function getEntries(): Arr1JLCharSequence; overload; virtual;
    procedure setEntryValues(para1: Arr1JLCharSequence); overload; virtual;
    procedure setEntryValues(var para1: array of JLCharSequence); overload; virtual;
    procedure setEntryValues(para1: jint); overload; virtual;
    function getEntryValues(): Arr1JLCharSequence; overload; virtual;
    procedure setValue(para1: JLString); overload; virtual;
    function getSummary(): JLCharSequence; overload; virtual;
    procedure setSummary(para1: JLCharSequence); overload; virtual;
    procedure setValueIndex(para1: jint); overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getEntry(): JLCharSequence; overload; virtual;
    function findIndexOfValue(para1: JLString): jint; overload; virtual;
  strict protected
    procedure onPrepareDialogBuilder(para1: AAAlertDialog.InnerBuilder); overload; virtual;
    procedure onDialogClosed(para1: jboolean); overload; virtual;
    function onGetDefaultValue(para1: ACRTypedArray; para2: jint): JLObject; overload; virtual;
    procedure onSetInitialValue(para1: jboolean; para2: JLObject); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
  end;

  APMultiSelectListPreference = class external 'android.preference' name 'MultiSelectListPreference' (APDialogPreference)
  public
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext); overload;
    procedure setEntries(para1: Arr1JLCharSequence); overload; virtual;
    procedure setEntries(var para1: array of JLCharSequence); overload; virtual;
    procedure setEntries(para1: jint); overload; virtual;
    function getEntries(): Arr1JLCharSequence; overload; virtual;
    procedure setEntryValues(para1: Arr1JLCharSequence); overload; virtual;
    procedure setEntryValues(var para1: array of JLCharSequence); overload; virtual;
    procedure setEntryValues(para1: jint); overload; virtual;
    function getEntryValues(): Arr1JLCharSequence; overload; virtual;
    procedure setValues(para1: JUSet); overload; virtual;
    function getValues(): JUSet; overload; virtual;
    function findIndexOfValue(para1: JLString): jint; overload; virtual;
  strict protected
    procedure onPrepareDialogBuilder(para1: AAAlertDialog.InnerBuilder); overload; virtual;
    procedure onDialogClosed(para1: jboolean); overload; virtual;
    function onGetDefaultValue(para1: ACRTypedArray; para2: jint): JLObject; overload; virtual;
    procedure onSetInitialValue(para1: jboolean; para2: JLObject); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
  end;

  AWExpandableListView = class external 'android.widget' name 'ExpandableListView' (AWListView)
  public
    type
      InnerOnChildClickListener = interface;
      Arr1InnerOnChildClickListener = array of InnerOnChildClickListener;
      Arr2InnerOnChildClickListener = array of Arr1InnerOnChildClickListener;
      Arr3InnerOnChildClickListener = array of Arr2InnerOnChildClickListener;
      InnerOnGroupClickListener = interface;
      Arr1InnerOnGroupClickListener = array of InnerOnGroupClickListener;
      Arr2InnerOnGroupClickListener = array of Arr1InnerOnGroupClickListener;
      Arr3InnerOnGroupClickListener = array of Arr2InnerOnGroupClickListener;
      InnerOnGroupExpandListener = interface;
      Arr1InnerOnGroupExpandListener = array of InnerOnGroupExpandListener;
      Arr2InnerOnGroupExpandListener = array of Arr1InnerOnGroupExpandListener;
      Arr3InnerOnGroupExpandListener = array of Arr2InnerOnGroupExpandListener;
      InnerOnGroupCollapseListener = interface;
      Arr1InnerOnGroupCollapseListener = array of InnerOnGroupCollapseListener;
      Arr2InnerOnGroupCollapseListener = array of Arr1InnerOnGroupCollapseListener;
      Arr3InnerOnGroupCollapseListener = array of Arr2InnerOnGroupCollapseListener;
      InnerExpandableListContextMenuInfo = class;
      Arr1InnerExpandableListContextMenuInfo = array of InnerExpandableListContextMenuInfo;
      Arr2InnerExpandableListContextMenuInfo = array of Arr1InnerExpandableListContextMenuInfo;
      Arr3InnerExpandableListContextMenuInfo = array of Arr2InnerExpandableListContextMenuInfo;
      InnerOnChildClickListener = interface external 'android.widget' name 'OnChildClickListener' 
        function onChildClick(para1: AWExpandableListView; para2: AVView; para3: jint; para4: jint; para5: jlong): jboolean; overload;
      end;

      InnerOnGroupClickListener = interface external 'android.widget' name 'OnGroupClickListener' 
        function onGroupClick(para1: AWExpandableListView; para2: AVView; para3: jint; para4: jlong): jboolean; overload;
      end;

      InnerOnGroupExpandListener = interface external 'android.widget' name 'OnGroupExpandListener' 
        procedure onGroupExpand(para1: jint); overload;
      end;

      InnerOnGroupCollapseListener = interface external 'android.widget' name 'OnGroupCollapseListener' 
        procedure onGroupCollapse(para1: jint); overload;
      end;

      InnerExpandableListContextMenuInfo = class external 'android.widget' name 'ExpandableListContextMenuInfo' (JLObject, AVContextMenu.InnerContextMenuInfo)
      public
        var
          ftargetView: AVView; external name 'targetView';
          fpackedPosition: jlong; external name 'packedPosition';
          fid: jlong; external name 'id';
      public
        constructor create(para1: AVView; para2: jlong; para3: jlong); overload;
      end;

  public
    const
      PACKED_POSITION_TYPE_GROUP = 0;
      PACKED_POSITION_TYPE_CHILD = 1;
      PACKED_POSITION_TYPE_NULL = 2;
      PACKED_POSITION_VALUE_NULL = jlong(4294967295);
      CHILD_INDICATOR_INHERIT = -1;
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet; para3: jint); overload;
  strict protected
    procedure dispatchDraw(para1: AGCanvas); overload; virtual;
  public
    procedure setChildDivider(para1: AGDDrawable); overload; virtual;
    procedure setAdapter(para1: AWListAdapter); overload; virtual;
    function getAdapter(): AWListAdapter; overload; virtual;
    procedure setOnItemClickListener(para1: AWAdapterView.InnerOnItemClickListener); overload; virtual;
    procedure setAdapter(para1: AWExpandableListAdapter); overload; virtual;
    function getExpandableListAdapter(): AWExpandableListAdapter; overload; virtual;
    function performItemClick(para1: AVView; para2: jint; para3: jlong): jboolean; overload; virtual;
    function expandGroup(para1: jint): jboolean; overload; virtual;
    function expandGroup(para1: jint; para2: jboolean): jboolean; overload; virtual;
    function collapseGroup(para1: jint): jboolean; overload; virtual;
    procedure setOnGroupCollapseListener(para1: AWExpandableListView.InnerOnGroupCollapseListener); overload; virtual;
    procedure setOnGroupExpandListener(para1: AWExpandableListView.InnerOnGroupExpandListener); overload; virtual;
    procedure setOnGroupClickListener(para1: AWExpandableListView.InnerOnGroupClickListener); overload; virtual;
    procedure setOnChildClickListener(para1: AWExpandableListView.InnerOnChildClickListener); overload; virtual;
    function getExpandableListPosition(para1: jint): jlong; overload; virtual;
    function getFlatListPosition(para1: jlong): jint; overload; virtual;
    function getSelectedPosition(): jlong; overload; virtual;
    function getSelectedId(): jlong; overload; virtual;
    procedure setSelectedGroup(para1: jint); overload; virtual;
    function setSelectedChild(para1: jint; para2: jint; para3: jboolean): jboolean; overload; virtual;
    function isGroupExpanded(para1: jint): jboolean; overload; virtual;
    class function getPackedPositionType(para1: jlong): jint; static; overload;
    class function getPackedPositionGroup(para1: jlong): jint; static; overload;
    class function getPackedPositionChild(para1: jlong): jint; static; overload;
    class function getPackedPositionForChild(para1: jint; para2: jint): jlong; static; overload;
    class function getPackedPositionForGroup(para1: jint): jlong; static; overload;
    procedure setChildIndicator(para1: AGDDrawable); overload; virtual;
    procedure setChildIndicatorBounds(para1: jint; para2: jint); overload; virtual;
    procedure setGroupIndicator(para1: AGDDrawable); overload; virtual;
    procedure setIndicatorBounds(para1: jint; para2: jint); overload; virtual;
    function onSaveInstanceState(): AOParcelable; overload; virtual;
    procedure onRestoreInstanceState(para1: AOParcelable); overload; virtual;
    procedure setAdapter(para1: AWAdapter); overload; virtual;
    function getAdapter(): AWAdapter; overload; virtual;
  end;

  AWImageSwitcher = class external 'android.widget' name 'ImageSwitcher' (AWViewSwitcher)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure setImageResource(para1: jint); overload; virtual;
    procedure setImageURI(para1: ANUri); overload; virtual;
    procedure setImageDrawable(para1: AGDDrawable); overload; virtual;
  end;

  AWTextSwitcher = class external 'android.widget' name 'TextSwitcher' (AWViewSwitcher)
  public
    constructor create(para1: ACContext); overload;
    constructor create(para1: ACContext; para2: AUAttributeSet); overload;
    procedure addView(para1: AVView; para2: jint; para3: AVViewGroup_LayoutParams); overload; virtual;
    procedure setText(para1: JLCharSequence); overload; virtual;
    procedure setCurrentText(para1: JLCharSequence); overload; virtual;
  end;

  ATURfc822Tokenizer = class external 'android.text.util' name 'Rfc822Tokenizer' (JLObject, AWMultiAutoCompleteTextView.InnerTokenizer)
  public
    constructor create(); overload;
    class procedure tokenize(para1: JLCharSequence; para2: JUCollection); static; overload;
    class function tokenize(para1: JLCharSequence): Arr1ATURfc822Token; static; overload;
    function findTokenStart(para1: JLCharSequence; para2: jint): jint; overload; virtual;
    function findTokenEnd(para1: JLCharSequence; para2: jint): jint; overload; virtual;
    function terminateToken(para1: JLCharSequence): JLCharSequence; overload; virtual;
  end;

  AAExpandableListActivity = class external 'android.app' name 'ExpandableListActivity' (AAActivity, AVView.InnerOnCreateContextMenuListener, AWExpandableListView.InnerOnChildClickListener, AWExpandableListView.InnerOnGroupCollapseListener, AWExpandableListView.InnerOnGroupExpandListener)
  public
    constructor create(); overload;
    procedure onCreateContextMenu(para1: AVContextMenu; para2: AVView; para3: AVContextMenu.InnerContextMenuInfo); overload; virtual;
    function onChildClick(para1: AWExpandableListView; para2: AVView; para3: jint; para4: jint; para5: jlong): jboolean; overload; virtual;
    procedure onGroupCollapse(para1: jint); overload; virtual;
    procedure onGroupExpand(para1: jint); overload; virtual;
  strict protected
    procedure onRestoreInstanceState(para1: AOBundle); overload; virtual;
  public
    procedure onContentChanged(); overload; virtual;
    procedure setListAdapter(para1: AWExpandableListAdapter); overload; virtual;
    function getExpandableListView(): AWExpandableListView; overload; virtual;
    function getExpandableListAdapter(): AWExpandableListAdapter; overload; virtual;
    function getSelectedId(): jlong; overload; virtual;
    function getSelectedPosition(): jlong; overload; virtual;
    function setSelectedChild(para1: jint; para2: jint; para3: jboolean): jboolean; overload; virtual;
    procedure setSelectedGroup(para1: jint); overload; virtual;
  end;

