diff --git a/.gitignore b/.gitignore
index 1ff4c9f7..14d4162d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -95,3 +95,4 @@ ThirdParty/Firebase/iOS/Firebase.6.*
**/Service/*.java
**/Service/JavaClasses
dbgout.log
+Thumbs.db
diff --git a/Demos/BarcodeAndCamera/AndroidManifest.template.xml b/Demos/BarcodeAndCamera/AndroidManifest.template.xml
new file mode 100644
index 00000000..d2bc4fdd
--- /dev/null
+++ b/Demos/BarcodeAndCamera/AndroidManifest.template.xml
@@ -0,0 +1,50 @@
+
+
+
+
+<%uses-permission%>
+
+
+<%queries-child-elements%>
+
+
+<%provider%>
+<%application-meta-data%>
+<%uses-libraries%>
+<%services%>
+
+
+
+
+
+
+
+
+
+
+
+<%activity%>
+<%receivers%>
+
+
+
diff --git a/Demos/BarcodeAndCamera/BC.Forms.Main.fmx b/Demos/BarcodeAndCamera/BC.Forms.Main.fmx
new file mode 100644
index 00000000..0e0aa21f
--- /dev/null
+++ b/Demos/BarcodeAndCamera/BC.Forms.Main.fmx
@@ -0,0 +1,230 @@
+object frmMain: TfrmMain
+ Left = 0
+ Top = 0
+ Caption = 'Form2'
+ ClientHeight = 664
+ ClientWidth = 392
+ Fill.Kind = Solid
+ FormFactor.Width = 320
+ FormFactor.Height = 480
+ FormFactor.Devices = [Desktop]
+ OnClose = FormClose
+ OnShow = FormShow
+ DesignerMasterStyle = 0
+ object BottomLayout: TLayout
+ Align = Bottom
+ Padding.Left = 4.000000000000000000
+ Padding.Top = 4.000000000000000000
+ Padding.Right = 4.000000000000000000
+ Padding.Bottom = 4.000000000000000000
+ Position.Y = 544.000000000000000000
+ Size.Width = 392.000000000000000000
+ Size.Height = 120.000000000000000000
+ Size.PlatformDefault = False
+ TabOrder = 0
+ object txtFlash: TText
+ Align = Left
+ Position.X = 4.000000000000000000
+ Position.Y = 4.000000000000000000
+ Size.Width = 50.000000000000000000
+ Size.Height = 68.000000000000000000
+ Size.PlatformDefault = False
+ Text = #55357#56614
+ TextSettings.Font.Size = 40.000000000000000000
+ OnClick = txtFlashClick
+ object ShadowEffect1: TShadowEffect
+ Distance = 3.000000000000000000
+ Direction = 45.000000000000000000
+ Softness = 0.200000002980232200
+ Opacity = 0.600000023841857900
+ ShadowColor = claBlack
+ end
+ end
+ object txtSwap: TText
+ Align = Right
+ Position.X = 338.000000000000000000
+ Position.Y = 4.000000000000000000
+ RotationAngle = 75.000000000000000000
+ Size.Width = 50.000000000000000000
+ Size.Height = 68.000000000000000000
+ Size.PlatformDefault = False
+ Text = #8635
+ TextSettings.Font.Size = 60.000000000000000000
+ OnClick = txtSwapClick
+ object ShadowEffect2: TShadowEffect
+ Distance = 3.000000000000000000
+ Direction = 45.000000000000000000
+ Softness = 0.200000002980232200
+ Opacity = 0.600000023841857900
+ ShadowColor = claBlack
+ end
+ end
+ object txtScans: TMemo
+ Touch.InteractiveGestures = [Pan, LongTap, DoubleTap]
+ DataDetectorTypes = []
+ ReadOnly = True
+ Align = Client
+ Margins.Left = 8.000000000000000000
+ Margins.Right = 8.000000000000000000
+ Size.Width = 268.000000000000000000
+ Size.Height = 68.000000000000000000
+ Size.PlatformDefault = False
+ TabOrder = 2
+ OnClick = txtScansClick
+ Viewport.Width = 268.000000000000000000
+ Viewport.Height = 68.000000000000000000
+ end
+ object ExposureSlider: TNativeSlider
+ Align = Bottom
+ MaxImage.PNG = {
+ 89504E470D0A1A0A0000000D49484452000000500000005008060000008E11F2
+ AD000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+ 09B449444154785EED9C6D8C1D551DC6CF99B9F7D65AA45D015F8212B24D37F1
+ 9DFAC12AD86AC20762A24114DA622B064C2C4413F960304509608C25443F6882
+ 502346A19A5D6A110831E18384B254BA35D9DAE8076D6D53C504022DA58196F6
+ DE3B33FE9E39E72E77EF7697EEBD67F68E7A9FE4BFE7CCFFCC9D79CE33E77DCE
+ AC196080010618608001FA04EBC3D221CBCC526CB5E2D69A71EC789E50329452
+ 40841BC6AE495373A58EA3C83C8280BFC50EE5270C303710EEDA7ADDFC131133
+ 99E2F2F9E45221F261D9701EC2BDCBC75522153FCF1D950B651550C87C28B4C7
+ 4B85320BD8DE3E97B6B32BAB8012AC53C0528A5856015FA4E77DCEC7D50B2BFE
+ 923B2A17820848231F63152C54299944B4DFD1FBBE2ED330463E97D41BC4D173
+ 8DBDAB2704C93064346E5BCA38ED2F58D3BBBB863249A09EF8621D73CDC30447
+ 097BEE4CB8A6C4FB10D73A8EF57F5CC9F86C73B36976637B93C46C83DCB04FEA
+ 195C4B253B484911C44D1CC5559CC5DD272D3C7CE6864584301FF09E3E6D1A10
+ 7C00622BFD69A58138899B38B6F87AEEAA3DC11ED259839B56444A4FB345A865
+ 10FD39E125FED4BE435CE0747F3B4719DC27958655FCA9F346D76D2037D56F63
+ 44FC2544D6D56AD349E0BF97C67FB3DA1AEF9A1359767B946513556B2B9486C5
+ C44F5B6B17E59D1CF19438EDDFEB699635136B5735ACBD33CD7FF82680E732B8
+ 6C81CB8DDE9583CEA951A99831FCD773C835BB6B5F7BEE4420380CC13B20F265
+ EFCAC113DF8DEF87D80EEF9A1369BAF11DC69C5AC33319A178BC1B1753B7F4ED
+ 2E357A993F7422F679AEBCDF98B73C1D45DB5E746973036E5FC4BE15C7E6E3DE
+ 9503DF8370BBA3D78E24542F7C0984BE01A1AF7A9704FC23C7B7614F7AD70CA4
+ E9BAE5FCFA0A7E7F5996A5B445D110F125D822631A58B5EACE6C348853248DEC
+ 84B5E9316BA343C477918527A268ECA03B6F26E07539F63D04BCD4BBE4BB9FDF
+ DE03B7BDDED5358208287811BF46A80E2481DC4384BF263CEAD32940AE9A20DC
+ 08C16A4ADAA7D3345B55A9D81508A4149DA9533C5AF1769A8AAB66374CB3991D
+ 88223BC1859FC2318E9094CECE7BE58B101B08D712C6F8F7625BE1B54FE9BD22
+ 988002C4976197133D86ED6B89D742965D730EA27D8C92F605DACDF5B55AEC57
+ 583A853B1BB484547B961CA53D1BA5643E8C727BACDDFE5A9EE0E145FC083684
+ 787FC05EC9130220A8807301E19801AC5B4766BE1DC7157AE8445E97D833948D
+ 9866A3B1971279B7B563630819EAE27362C1044CD3ABBF9324F606AA6BB081F6
+ 99D06C2607E338FA45146DFF8177158AC21613D40EB930B34EBCEC3A275E91CF
+ CC9A4AA5B29C07755D9AAEDDAC7BCBDBE252040A2D81AECD339FA347FEFE1BE2
+ 155DB3DC3D5C498CBF4B4D7EBCB34D0C89C24AA0A00E234DED2D0B279EA07BA8
+ 24C6CBE9E16F1107E72F068509A8A18A7A5BD761080BD2A67BB87BC57175A538
+ F861532128B004666B18AA5CEB7ADB7E21A12A9BF544F2F7CB45A0100135C3A0
+ ED5B53AB55988A2D64C9EB446634D6A41A3360D7AC273C0A2A81D915B43FCC3D
+ FB29DE1BD06C479CFC6150142220A5EF32373D3BAB05938291D2A1D815E2E41D
+ 411154402D496955450B036E6E5B8612280E55B8A5C38EDBED41F31C58C00954
+ 3BB546AB2AE5287D2DA4708B96316B5EED3886435001DD62A8D6F3CC927294BE
+ 16F225E873888C388EE130E74C0421F4BE800678DABE14FD46EF6827AD3507B0
+ 29A534F360E0BCC5AD50471794A71446A65E4F5FAA54B2D12832B7B6CF4CC89F
+ 5E73D25E9B8F62709EF6E4F52670029B75D1755601B9A8F6E76D428CAF136A73
+ 8F2EACF32D249EC31EC1B670F1233A5F48D30DE766597D6B14D9CF70DAD2E95C
+ FA897C16743C4DCDEFAD3DB5298A1E7BD5F9F37C9E8FFF56EC4AECBD7279D39A
+ E20B958AB987702B76C65713B356612EBC9A0B7EBE5A3517D56A0CA76A66910F
+ AB5C546FE36EE29C8BB1A92A616D1DA6D950BD6E6ADE551AC0496DDF50EB3D8B
+ 20EECA0379B9517952DEDAF3AABC4B03CEF9A4FFC90C046D03FF1F31AB8014D9
+ 7155D346C3FC8BA757C74EFBB0C1133BC413FB29E71CC6A6E66A5956A3E8DB63
+ 3CBDBA779506706A101CD31B3EE7C9F3A8B77187C9CB7DCA93F2D69E57E55D1A
+ 70CE33FE2733306B1B28507467EB44F4464C9DC83FB0A986EE7FB0133942FEF6
+ 60F3EF44BA41967DF6AD59B6E4E66633BBA95A8DDE5326011B8DE4DFCC48A835
+ 277F6CEDE3277D42CF08DA06EAA5B731C97E9ED889C0CFA6475875A92A75FB1D
+ C770082AA0760CE8A5B7DEDB06BE748F88E096BE424B38EE38864321C52449D6
+ EA7DF097DCE5DB9B947EC0716038F29B387E6883F3854321C5842ABC4B2FBDCB
+ 510A23BD1F51B3B2CB3B82A2A01C6ABB85DDED0FFA8E288AF788933F0C8A4204
+ D45E151AED9DDA31E0AA50BF6019BE24DA94F4D45CFB677A4191756C9C01EAA8
+ 760CF40FB1711CCCB83B0E8FC204D4461FED55D1760BE759C892E8EE9524750D
+ F677B4361D1581425B79AACE1EED55D14B6EEF7141A170BDAEEE49DB77374317
+ DABFE250588E3445E2E96780A9D2DACD49927EA55289475A192C062E3B8C00FE
+ 1EC7E657D68EDD050928382E7962602C4491C831D85CD423ACFDC09638B6DA64
+ 449BA8EDD4219F9DAE55A1CD4B27DD7E98F7DFE5FCC5236809A4AAB436586A03
+ E39F998D4CDB6099A61B9718736A55311B2CD3516BA31DD4D83F9D6183E53B09
+ B473763155F9092CD862423001114E5B7C3729E43045BC31C237DBE2FBA9344D
+ 56A569BCA256ABC2A553C856BC9DA613AE5E6F6451941CA0A3D016DF9DC6349E
+ 8EA28799FD74DECB5C48B091F02A42ADFF4DC0E967847F537AAF082220E45642
+ 5A9BCC6FF0AE6E3799AB046B4B5CBEA45E77CBF0F962A81638C9B43699BFA685
+ 81796C32D72EFDDBE854B4C53707C73F81D7BD2144EC5940C8681F8C3E73D8E8
+ 5D39BAFBCCA1AE4D40FE33077B3EF1A13C31DF739D1DA1583D4F9C315D6D7C1E
+ 9F395C8FDD8C801FF6AE1CF8EE83DB9D88F882777585AE054434FDB6C00F6DDE
+ 865EAFE68D1CF194385572FE1FDAC0E342B8EA439B69DFB150A24F304BD986B0
+ D33EC0593040EABFE6532F787E024EA39D3CE1FE2CE145D8C2CF377553ACF363
+ C33A441F205E1AF15A40C44BE1B6A3C555C6F193F8F559ED820DE7660002FADC
+ F5596C12420F4226D840996B05FDDC15AE1F84E376B8EEC37672FC4D9FD43582
+ F4C25EB473B1BFD2E695FA836B445B4CF03EAEF5B2BF6EFFE14B4AB04FFEC9E4
+ 0825E547340927658ACBE7937B82387AAEFD5C672B1688B5BED13007C964DE56
+ 292E9F4F2E15FAD778CE8D0B104C1B7D72F8B85E7A970E6515506D5D7B7BD779
+ 5C1A945540A153C052A2CC02B67748413AA7225056013564999AA3FAF8B4A5B1
+ B2A0944F969E57BBC2AEA6F368FD03C64711B194FF80B1B4550301B5C538DF19
+ 8A70CF60A5FC17A0030C30C000030C30407F60CC7F00F78619EB88BF352C0000
+ 000049454E44AE426082}
+ MinImage.PNG = {
+ 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971
+ DE000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+ 053B49444154785EED9B4D8C144514C7ABAA7B267E25EE2A973D68D488170907
+ 3E62B86D88BA5C205122100F4683120CE0858B1F67E062BC48D80535EC49B38A
+ 68E0A6444F1A0EAE07178CF211144D56A3C96E3C60D8E9EEF2FFEF7E833DEB08
+ 3353D5DDBB99F925B5F5EAD5CCBC57AFABBA3EBA570D183060403FA3252F1D6B
+ D51D482F53D65A8D235D4B2BFA05347E12C932C5B13A2EEAFEA1D150179A01A0
+ 2CEAD231925741DE76657E54198025416501C04DEF6F115BE4B2A9AEEB19352E
+ 22E509119707B8710D2589DA847C85A87A02DF7F80498A3D411FC4972151150B
+ 0D2D2CA8ABC8EDF5EBEA4FE46BA5AA74685B7CB0E253F1419068A7D317131C98
+ 836E9D5497066CAEA7EDBC2FD08D497571C0D08A66D473691EC61F968F140E6C
+ ADA4CDBC0FF0E90FE45D0FC99E96C230B4165DEE4CBDFE6F978353078340BD21
+ C5B624C9F6FBF0778BB5FA51E423C847A8D7DACEE256388BFC3CF253C64CFD92
+ 7EE17FC0CAF1006E9CAF4B51C19779F8F23866936951754CCF7B0134781D0C9E
+ 817837CB08CA0E383545398FB5BB6AD6CEED4C12FB52109835A2BE29719C7C6B
+ 8C7E47EBE1F7B43ED610F50D607B076C7F40998DAFD5D413B0FD4D5AD9254E9B
+ 21767B34FC0538F31DD2874856AA18106DEDF6A7E2383A1486C123A2EE8A288A
+ 2F0441F89AD6539FFCF7B7D536A4D5D01F47E32F4955D714B21BE4554F92F9C3
+ 706C97A89C40EF396ACCF0BE76BDC115EF01B0F6D9E124699C44171E15951792
+ 24F9D298FA56ADDF9F139517BC0620BBF2739FF96E7C130CB92F8C19DAE4B327
+ 785B0A735C66DDBE98C6130CA98D08F0DBB4252A67BCFD10A6B8A7318D7D2CC5
+ 42C1F4B91553E549293AE12500ECFA51347F3E0CD54A51150A678730BC77958F
+ A1E06508709E2FABF184D32A6D4AD1092F01E02247C4D2D05ABF28A213CE4380
+ CB5B8CFDAB522C15DC0BEEBFD5B2F95678E801C916112AC06E16A1679C03906D
+ 6CAA01DB4067DB6D038079960F2D26795C8D7489298AD40C16227BE423399274
+ 47570DD96E320F7CDC4B5F9B7EB30D6C0BDB241F69A1ED3D003FB21F9B8C37A5
+ B8980751F793C898929E391B04FA3129960A768D67C3F0C40629F2C2F178ED4A
+ 566A0575FBB1907A4B8A37F0320B2C67DA060057781CBD60125DE922D265A638
+ 56E710C53DF9AB4FB2C38C6AD0DAB4D8A66FF0711F7D6DFACD36B02DA86B7BF2
+ EC3C0DC6F1B623E85AE943CEB2C1FAE348107CD4E6BED439CE43203BC6AA062C
+ 869C6D7BB80798532254803E2D42CF3807802B319EE149B14CA65D5781C4CB2C
+ C0034C114B038BA0774574C24B00787ACB2DAA140B87B668538A4E780AC0B106
+ 4F6FA55838D949B19F63312F01203CBAE6E9AD140B0373FA046D49D1198F0150
+ 9647D73CBD159577D0781E8ABE425BA272C6DB996093E5762CEEAD0734A183E8
+ 094FFA1C0EECF6C6DC33E6BBF1C4A907C0313EA57D1E5D7206692ADF35A1F7F4
+ 684CBFAAF5894F17FD7680F41CD243D01FC552FC57A9EA9A9E0380C6AF87F1CF
+ 2176F47054CEF03A7D99629AF3FC4D1E8E72537698F2C282FABD5E57A328FF90
+ 5676494F0180032D4F8609741D3E1EB79BB3931C3D626D769892EDEAEC6CB6B6
+ D7A73B783C3E8E60EF962283F05BADA646A1FB5154C5812BBD145E9058031FAE
+ E57D40107E86FE4EF94871C0C852794566E3E2202015FFBE128CE45F92E26B29
+ 55BE24350A1FFEA22F8D86FA1EF96D52552C30C4D7E4C69057FE9A1CFC18115F
+ EE12D5F2004EEF85D369D7A52CEAFE218AD44C330094455D3ADE57829D8286DF
+ 2E628B5C36950560A950650012C9495E2E95CA021086EA6B11F9EACB5722968E
+ F7ED70A760DCF3F963BA9CC5B27A02A9BFFE696AC0800103AA47A97F001F21DF
+ 170A8748120000000049454E44AE426082}
+ Orientation = Horizontal
+ Position.X = 4.000000000000000000
+ Position.Y = 72.000000000000000000
+ Size.Width = 384.000000000000000000
+ Size.Height = 44.000000000000000000
+ Size.PlatformDefault = False
+ OnValueChange = ExposureSliderValueChange
+ end
+ end
+ object loCamera: TLayout
+ Align = Client
+ Size.Width = 392.000000000000000000
+ Size.Height = 544.000000000000000000
+ Size.PlatformDefault = False
+ TabOrder = 1
+ end
+ object tmrCapture: TTimer
+ Enabled = False
+ Interval = 200
+ OnTimer = tmrCaptureTimer
+ Left = 184
+ Top = 320
+ end
+end
diff --git a/Demos/BarcodeAndCamera/BC.Forms.Main.pas b/Demos/BarcodeAndCamera/BC.Forms.Main.pas
new file mode 100644
index 00000000..a1791274
--- /dev/null
+++ b/Demos/BarcodeAndCamera/BC.Forms.Main.pas
@@ -0,0 +1,239 @@
+unit BC.Forms.Main;
+
+interface
+
+uses
+ System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
+ FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Effects,
+ FMX.Objects, FMX.Layouts, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo,
+ FMX.Controls.Presentation, DW.NativeImage, DW.BarcodeReader, DW.Camera,
+ System.Permissions, DW.Permissions.Helpers, DW.Types, DW.NativeSlider;
+
+type
+ TfrmMain = class(TForm)
+ BottomLayout: TLayout;
+ txtFlash: TText;
+ ShadowEffect1: TShadowEffect;
+ txtSwap: TText;
+ ShadowEffect2: TShadowEffect;
+ txtScans: TMemo;
+ loCamera: TLayout;
+ tmrCapture: TTimer;
+ ExposureSlider: TNativeSlider;
+ procedure txtSwapClick(Sender: TObject);
+ procedure txtFlashClick(Sender: TObject);
+ procedure txtScansClick(Sender: TObject);
+ procedure tmrCaptureTimer(Sender: TObject);
+ procedure FormShow(Sender: TObject);
+ procedure FormClose(Sender: TObject; var Action: TCloseAction);
+ procedure ExposureSliderValueChange(Sender: TObject);
+ private
+ FCamera : TCamera;
+ FIsScanning: Boolean;
+ FProcessTime: TDateTime;
+ procedure ReaderBarcodeHandler(Sender: TObject; const ABarcodes: TBarcodes; const AError: string);
+ procedure StartCamera;
+ procedure StopCamera;
+ procedure TryToStartCamera;
+ procedure CameraAuthorizationStatusHandler(Sender: TObject; const AStatus: TAuthorizationStatus);
+ procedure CameraImageCapturedHandler(Sender: TObject; const AImageStream: TStream);
+ procedure CameraStatusChangeHandler(Sender: TObject);
+ procedure CameraFrameAvailableHandler(Sender: TObject; const AFrame: TBitmap);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+var
+ frmMain: TfrmMain;
+
+implementation
+
+{$R *.fmx}
+
+uses
+ System.DateUtils, DW.Consts.Android, FMX.Media, FMX.Clipboard, FMX.Platform;
+
+const
+ cProcessImageRateDefault = 500; // Every 500 milliseconds
+
+
+procedure TfrmMain.CameraAuthorizationStatusHandler(Sender: TObject;
+ const AStatus: TAuthorizationStatus);
+begin
+ if AStatus = TAuthorizationStatus.Authorized then
+ StartCamera;
+end;
+
+procedure TfrmMain.CameraFrameAvailableHandler(Sender: TObject;
+ const AFrame: TBitmap);
+begin
+ // Camera frame available as a bitmap, here. Only works with the conditional define: USEGL
+end;
+
+procedure TfrmMain.CameraImageCapturedHandler(Sender: TObject;
+ const AImageStream: TStream);
+begin
+ var bmp := TBitmap.Create;
+ try
+ try
+ bmp.LoadFromStream(AImageStream);
+ try
+ if (bmp.Width = 0) or (bmp.Height = 0) then
+ exit;
+ TThread.CreateAnonymousThread(
+ procedure
+ begin
+ try
+ var bc := TBarcodeReader.Create;
+ try
+ bc.Formats := [TBarcodeFormat.All];
+ bc.OnBarcode := ReaderBarcodeHandler;
+ bc.Scan(bmp);
+ finally
+ bmp.Free;
+ bc.Free;
+ end;
+ except
+ on e: exception do
+ TThread.Synchronize(TThread.Current,
+ procedure
+ begin
+ ShowMessage('Scan Thread Error: '+e.Message);
+ end
+ );
+ end;
+ end
+ ).Start;
+ finally
+ //
+ end;
+ except
+ on e: exception do
+ ShowMessage(e.Message);
+ end;
+ except
+ bmp.Free;
+ end;
+end;
+
+procedure TfrmMain.CameraStatusChangeHandler(Sender: TObject);
+begin
+//
+end;
+
+constructor TfrmMain.Create(AOwner: TComponent);
+begin
+ inherited;
+ FCamera := TCamera.Create;
+ FCamera.CameraPosition := TDevicePosition.Back;
+ FCamera.OnImageCaptured := CameraImageCapturedHandler;
+ FCamera.OnAuthorizationStatus := CameraAuthorizationStatusHandler;
+ FCamera.OnStatusChange := CameraStatusChangeHandler;
+ FCamera.OnFrameAvailable := CameraFrameAvailableHandler;
+ FCamera.PreviewControl.Parent := loCamera;
+end;
+
+destructor TfrmMain.Destroy;
+begin
+ StopCamera;
+ FCamera.Free;
+ inherited;
+end;
+
+procedure TfrmMain.ExposureSliderValueChange(Sender: TObject);
+begin
+ FCamera.Exposure := ExposureSlider.Value;
+end;
+
+procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
+begin
+ StopCamera;
+end;
+
+procedure TfrmMain.FormShow(Sender: TObject);
+begin
+ TryToStartCamera;
+end;
+
+procedure TfrmMain.ReaderBarcodeHandler(Sender: TObject;
+ const ABarcodes: TBarcodes; const AError: string);
+begin
+ TThread.Synchronize(TThread.Current,
+ procedure
+ begin
+ if Length(ABarcodes) > 0 then
+ begin
+ var
+ LBarcode: TBarcode;
+ for LBarcode in ABarcodes do
+ txtScans.Lines.Insert(0,Format('%s - (%s)', [LBarcode.Value, LBarcode.FormatDescription]));
+ end;
+ tmrCapture.Enabled := True;
+ end
+ );
+end;
+
+procedure TfrmMain.StartCamera;
+begin
+ if FIsScanning then
+ exit;
+
+ FCamera.IsActive := True;
+ FIsScanning := True;
+ tmrCapture.Enabled := True;
+ FCamera.Exposure := 0.75;
+
+ ExposureSlider.Value := FCamera.Exposure;
+end;
+
+procedure TfrmMain.StopCamera;
+begin
+ if not FIsScanning then
+ exit;
+ FCamera.IsActive := False;
+ FIsScanning := False;
+end;
+
+procedure TfrmMain.tmrCaptureTimer(Sender: TObject);
+begin
+ tmrCapture.Enabled := False;
+ if FCamera.IsActive then
+ FCamera.CaptureImage
+ else
+ tmrCapture.Enabled := True;
+end;
+
+procedure TfrmMain.TryToStartCamera;
+begin
+ if not FIsScanning then
+ FCamera.RequestPermission
+end;
+
+procedure TfrmMain.txtFlashClick(Sender: TObject);
+begin
+ if FCamera.FlashMode = TFlashMode.FlashOn then
+ FCamera.FlashMode := TFlashMode.FlashOff
+ else
+ FCamera.FlashMode := TFlashMode.FlashOn;
+end;
+
+procedure TfrmMain.txtScansClick(Sender: TObject);
+var
+ clip : IFMXExtendedClipboardService;
+begin
+ if TPlatformServices.Current.SupportsPlatformService(IFMXExtendedClipboardService, clip) then
+ clip.SetText(txtScans.Text);
+ txtScans.Lines.Clear;
+
+end;
+
+procedure TfrmMain.txtSwapClick(Sender: TObject);
+begin
+ if FCamera.CameraPosition = TDevicePosition.Front then
+ FCamera.CameraPosition := TDevicePosition.Back
+ else
+ FCamera.CameraPosition := TDevicePosition.Front;
+end;
+
+end.
diff --git a/Demos/BarcodeAndCamera/BarcodeAndCamera.deployproj b/Demos/BarcodeAndCamera/BarcodeAndCamera.deployproj
new file mode 100644
index 00000000..695f087c
--- /dev/null
+++ b/Demos/BarcodeAndCamera/BarcodeAndCamera.deployproj
@@ -0,0 +1,722 @@
+
+
+
+ 12
+
+
+ 17043840
+
+
+
+
+
+
+
+ BarcodeAndCamera\
+ BarcodeAndCamera.exe
+ ProjectOutput
+ 0
+
+
+ True
+ True
+
+
+
+
+ BarcodeAndCamera\res\values\
+ strings.xml
+ Android_Strings
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\classes\
+ BarcodeAndCamera.classes
+ AndroidClasses
+ 64
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_launcher.png
+ Android_LauncherIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_launcher.png
+ Android_LauncherIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\values\
+ colors.xml
+ Android_Colors
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\
+ AndroidManifest.xml
+ ProjectAndroidManifest
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon144
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon144
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon192
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon192
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_launcher.png
+ Android_LauncherIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_launcher.png
+ Android_LauncherIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\arm64-v8a\
+ libBarcodeAndCamera.so
+ ProjectOutput
+ 1
+
+
+ True
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_notification.png
+ Android_NotificationIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_notification.png
+ Android_NotificationIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi\
+ libBarcodeAndCamera.so
+ AndroidLibnativeArmeabiFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi\
+ libBarcodeAndCamera.so
+ AndroidLibnativeArmeabiFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\classes\
+ BarcodeAndCamera.classes
+ AndroidClasses
+ 64
+
+
+ True
+
+
+ BarcodeAndCamera\res\values\
+ colors.xml
+ Android_Colors
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\
+ AndroidManifest.xml
+ ProjectAndroidManifest
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_notification.png
+ Android_NotificationIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_notification.png
+ Android_NotificationIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_notification.png
+ Android_NotificationIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_notification.png
+ Android_NotificationIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\arm64-v8a\
+ libBarcodeAndCamera.so
+ ProjectOutput
+ 1
+
+
+ True
+ True
+
+
+ BarcodeAndCamera\library\lib\mips\
+ libBarcodeAndCamera.so
+ AndroidLibnativeMipsFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_launcher.png
+ Android_LauncherIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_launcher.png
+ Android_LauncherIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\mips\
+ libBarcodeAndCamera.so
+ AndroidLibnativeMipsFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi-v7a\
+ libBarcodeAndCamera.so
+ AndroidLibnativeArmeabiv7aFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_notification.png
+ Android_NotificationIcon24
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-ldpi\
+ ic_launcher.png
+ Android_LauncherIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-ldpi\
+ ic_launcher.png
+ Android_LauncherIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_notification.png
+ Android_NotificationIcon24
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi-v7a\
+ libBarcodeAndCamera.so
+ AndroidLibnativeArmeabiv7aFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\values\
+ strings.xml
+ Android_Strings
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\values-v21\
+ styles.xml
+ AndroidSplashStylesV21
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_notification.png
+ Android_NotificationIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_notification.png
+ Android_NotificationIcon72
+ 1
+
+
+ True
+
+
+
+
+ BarcodeAndCamera\res\values\
+ strings.xml
+ Android_Strings
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\values\
+ colors.xml
+ Android_Colors
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_launcher.png
+ Android_LauncherIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_launcher.png
+ Android_LauncherIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_notification.png
+ Android_NotificationIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_notification.png
+ Android_NotificationIcon72
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon144
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon144
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon192
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_launcher.png
+ Android_LauncherIcon192
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_launcher.png
+ Android_LauncherIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_launcher.png
+ Android_LauncherIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_launcher.png
+ Android_LauncherIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_launcher.png
+ Android_LauncherIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\
+ AndroidManifest.xml
+ ProjectAndroidManifest
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\classes\
+ BarcodeAndCamera.classes
+ AndroidClasses
+ 64
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi-v7a\
+ libBarcodeAndCamera.so
+ ProjectOutput
+ 1
+
+
+ True
+ True
+
+
+ BarcodeAndCamera\res\values\
+ strings.xml
+ Android_Strings
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_notification.png
+ Android_NotificationIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xhdpi\
+ ic_notification.png
+ Android_NotificationIcon48
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\values-v21\
+ styles.xml
+ AndroidSplashStylesV21
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\
+ AndroidManifest.xml
+ ProjectAndroidManifest
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\classes\
+ BarcodeAndCamera.classes
+ AndroidClasses
+ 64
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi\
+ libBarcodeAndCamera.so
+ AndroidLibnativeArmeabiFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi\
+ libBarcodeAndCamera.so
+ AndroidLibnativeArmeabiFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_notification.png
+ Android_NotificationIcon24
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-mdpi\
+ ic_notification.png
+ Android_NotificationIcon24
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\mips\
+ libBarcodeAndCamera.so
+ AndroidLibnativeMipsFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\mips\
+ libBarcodeAndCamera.so
+ AndroidLibnativeMipsFile
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-ldpi\
+ ic_launcher.png
+ Android_LauncherIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-ldpi\
+ ic_launcher.png
+ Android_LauncherIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_notification.png
+ Android_NotificationIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-hdpi\
+ ic_notification.png
+ Android_NotificationIcon36
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\library\lib\armeabi-v7a\
+ libBarcodeAndCamera.so
+ ProjectOutput
+ 1
+
+
+ True
+ True
+
+
+ BarcodeAndCamera\res\values\
+ colors.xml
+ Android_Colors
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_notification.png
+ Android_NotificationIcon96
+ 1
+
+
+ True
+
+
+ BarcodeAndCamera\res\drawable-xxxhdpi\
+ ic_notification.png
+ Android_NotificationIcon96
+ 1
+
+
+ True
+
+
+
+
+
+
+
+
diff --git a/Demos/BarcodeAndCamera/BarcodeAndCamera.dpr b/Demos/BarcodeAndCamera/BarcodeAndCamera.dpr
new file mode 100644
index 00000000..be44b391
--- /dev/null
+++ b/Demos/BarcodeAndCamera/BarcodeAndCamera.dpr
@@ -0,0 +1,14 @@
+program BarcodeAndCamera;
+
+uses
+ System.StartUpCopy,
+ FMX.Forms,
+ BC.Forms.Main in 'BC.Forms.Main.pas' {frmMain};
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+ Application.CreateForm(TfrmMain, frmMain);
+ Application.Run;
+end.
diff --git a/Demos/BarcodeAndCamera/BarcodeAndCamera.dproj b/Demos/BarcodeAndCamera/BarcodeAndCamera.dproj
new file mode 100644
index 00000000..8018b731
--- /dev/null
+++ b/Demos/BarcodeAndCamera/BarcodeAndCamera.dproj
@@ -0,0 +1,1722 @@
+
+
+ {5488469C-494F-4CB9-9769-18B1EEEF4658}
+ 19.5
+ FMX
+ True
+ Debug
+ Android64
+ 32784
+ Application
+ BarcodeAndCamera.dpr
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ .\$(Platform)\$(Config)
+ .\$(Platform)\$(Config)
+ false
+ false
+ false
+ false
+ false
+ System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ $(BDS)\bin\delphi_PROJECTICON.ico
+ $(BDS)\bin\delphi_PROJECTICNS.icns
+ BarcodeAndCamera
+ ..\..\controls;..\..\include;..\..\features\barcode;..\..\API;..\..\Core;..\..\features\camera;$(DCC_UnitSearchPath)
+
+
+ chimera.pubsub.runtime;fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;RadiantShapesFmx_Design;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;FMXSignature;FireDACSqliteDriver;DbxClientDriver;soapmidas;fmxFireDAC;dbexpress;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;cocinasync_flux_fmx;CustomIPTransport;DBXInterBaseDriver;IndySystem;cocinasync;RadiantShapesFmx;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;bindcompdbx;rtl;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;FrameStandPackage_10_4;dsnap;CloudService;FMXTee;DataSnapNativeClient;ideal.pos.api;chimera.json.runtime;soaprtl;Ape;cocinasync_flux;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=No TitleBar;hardwareAccelerated=true;apiKey=
+ Debug
+ true
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png
+ annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar
+ 1
+ False
+ #000000
+
+
+ chimera.pubsub.runtime;fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;RadiantShapesFmx_Design;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;edbrun;FMXSignature;hclcore_xe104;FireDACSqliteDriver;DbxClientDriver;soapmidas;fmxFireDAC;dbexpress;htmlcompfm_xe104;inet;DataSnapCommon;dbrtl;FireDACDBXDriver;CustomIPTransport;DBXInterBaseDriver;htmlcomp_xe104;IndySystem;cocinasync;RadiantShapesFmx;bindcomp;FireDACCommon;htmledit_xe104;IndyCore;RESTBackendComponents;bindcompdbx;GridViewD10;rtl;htmleditcore_xe104;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;htmleditfm_xe104;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;FrameStandPackage_10_4;dsnap;CloudService;FMXTee;DataSnapNativeClient;ideal.pos.api;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=No TitleBar;hardwareAccelerated=true;apiKey=
+ Debug
+ true
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png
+ $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png
+ $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png
+ annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar
+ 1
+ False
+ #000000
+
+
+ IdealProcessPanel;fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;RadiantShapesFmx_Design;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;edbrun;FMXSignature;hclcore_xe104;FireDACSqliteDriver;DbxClientDriver;soapmidas;VirtualDBTreeEx_10_4;fmxFireDAC;dbexpress;htmlcompfm_xe104;inet;DataSnapCommon;fmxase;TMSFMXPackPkgDXE14;dbrtl;FireDACDBXDriver;CustomIPTransport;DBXInterBaseDriver;htmlcomp_xe104;IndySystem;cocinasync;RadiantShapesFmx;bindcomp;FireDACCommon;htmledit_xe104;IndyCore;RESTBackendComponents;tmswizdXE8;bindcompdbx;GridViewD10;rtl;tmsdXE8;htmleditcore_xe104;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;htmleditfm_xe104;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;tmsxlsdXE8;dsnap;tmsexdxe8;CloudService;FMXTee;DataSnapNativeClient;chimera.json.runtime;soaprtl;Ape;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers
+ iPhoneAndiPad
+ true
+ Debug
+ $(MSBuildProjectName)
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png
+
+
+ fmx;DbxCommonDriver;bindengine;IndyIPCommon;emsclient;FireDACCommonDriver;IndyProtocols;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;FireDACSqliteDriver;DbxClientDriver;soapmidas;fmxFireDAC;dbexpress;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;CustomIPTransport;DBXInterBaseDriver;IndySystem;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;bindcompdbx;rtl;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;DataSnapFireDAC;emsclientfiredac;FireDAC;FireDACDSDriver;xmlrtl;tethering;dsnap;CloudService;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false;NSBluetoothAlwaysUsageDescription=The reason for accessing bluetooth;NSBluetoothPeripheralUsageDescription=The reason for accessing bluetooth peripherals;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSMotionUsageDescription=The reason for accessing the accelerometer;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers
+ iPhoneAndiPad
+ true
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png
+ $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
+ $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png
+
+
+ DataSnapServer;fmx;DbxCommonDriver;bindengine;IndyIPCommon;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;RadiantShapesFmx_Design;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;DBXFirebirdDriver;edbrun;FMXSignature;hclcore_xe104;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;fmxFireDAC;dbexpress;htmlcompfm_xe104;DBXMySQLDriver;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;FireDACOracleDriver;fmxdae;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DBXInterBaseDriver;htmlcomp_xe104;FireDACMongoDBDriver;IndySystem;RadiantShapesFmx;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;htmledit_xe104;IndyCore;RESTBackendComponents;bindcompdbx;GridViewD10;rtl;FireDACMySQLDriver;htmleditcore_xe104;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;htmleditfm_xe104;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;FrameStandPackage_10_4;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;DBXInformixDriver;fmxobj;FMXTee;DataSnapNativeClient;ideal.pos.api;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers
+ Debug
+ true
+
+
+ DataSnapServer;fmx;DbxCommonDriver;bindengine;IndyIPCommon;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;IndyIPClient;dbxcds;FmxTeeUI;bindcompfmx;DBXFirebirdDriver;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;fmxFireDAC;dbexpress;DBXMySQLDriver;inet;DataSnapCommon;fmxase;dbrtl;FireDACDBXDriver;FireDACOracleDriver;fmxdae;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;RESTComponents;DBXSqliteDriver;IndyIPServer;dsnapxml;DataSnapClient;DataSnapProviderClient;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;DBXInformixDriver;fmxobj;FMXTee;DataSnapNativeClient;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers
+ Debug
+ true
+
+
+ chimera.pubsub.indy.runtime;cocinasync_fmx;RaizeComponentsVcl;vclwinx;DataSnapServer;IdealProcessPanel;chimera.pubsub.runtime;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;cocinasync.vcl;appanalytics;IndyProtocols;vclx;RadiantShapesFmx_Design;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;cocinasync_flux_vcl;DBXFirebirdDriver;edbrun;FMXSignature;hclcore_xe104;inetdb;FECPersonPanel;lang.project.fmx;lang.project;FireDACSqliteDriver;DbxClientDriver;Ideal.Firemonkey;FireDACASADriver;Tee;soapmidas;VirtualDBTreeEx_10_4;vclactnband;TeeUI;fmxFireDAC;dbexpress;FireDACInfxDriver;htmlcompfm_xe104;KastriAdMob;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;TMSFMXPackPkgDXE14;DBXOdbcDriver;dbrtl;FireDACDBXDriver;FireDACOracleDriver;fmxdae;TeeDB;cocinasync_flux_fmx;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;IdealVCL;cocinasync_console;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;htmlcomp_xe104;FireDACMongoDBDriver;IndySystem;cocinasync;GradientPanel;RadiantShapesFmx;KastriFMX;FireDACTDataDriver;vcldb;VirtualTreesR;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IdealFECButtonPkg;htmledit_xe104;IndyCore;RESTBackendComponents;tmswizdXE8;bindcompdbx;GridViewD10;rtl;FireDACMySQLDriver;FireDACADSDriver;RaizeComponentsVclDb;lang.project.vcl;tmsdXE8;htmleditcore_xe104;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;htmleditfm_xe104;DBXSybaseASEDriver;DBXDb2Driver;chimera.pubsub.webbroker.runtime;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;IdealTimeSelector;tmsxlsdXE8;FrameStandPackage_10_4;bindcompvcl;dsnap;tmsexdxe8;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;fmxobj;bindcompvclsmp;FMXTee;DataSnapNativeClient;CEF4Delphi;ideal.pos.api;chimera.json.runtime;DatasnapConnectorsFreePascal;soaprtl;Ape;cocinasync_flux;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
+ Debug
+ true
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
+ 1033
+ $(BDS)\bin\default_app.manifest
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
+
+
+ RaizeComponentsVcl;vclwinx;DataSnapServer;chimera.pubsub.runtime;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;RadiantShapesFmx_Design;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;FMXSignature;hclcore_xe104;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;FireDACInfxDriver;htmlcompfm_xe104;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;DBXOdbcDriver;dbrtl;FireDACDBXDriver;FireDACOracleDriver;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;htmlcomp_xe104;FireDACMongoDBDriver;IndySystem;cocinasync;RadiantShapesFmx;FireDACTDataDriver;vcldb;VirtualTreesR;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;htmledit_xe104;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RaizeComponentsVclDb;htmleditcore_xe104;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;htmleditfm_xe104;DBXSybaseASEDriver;DBXDb2Driver;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;FrameStandPackage_10_4;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;fmxobj;bindcompvclsmp;FMXTee;DataSnapNativeClient;chimera.json.runtime;DatasnapConnectorsFreePascal;soaprtl;Ape;soapserver;FireDACIBDriver;$(DCC_UsePackage)
+ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
+ Debug
+ true
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
+ 1033
+ $(BDS)\bin\default_app.manifest
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
+
+
+ DEBUG;$(DCC_Define)
+ true
+ false
+ true
+ true
+ true
+ true
+ true
+
+
+ 1
+ False
+
+
+ 1
+ False
+ disabled
+
+
+ false
+ PerMonitorV2
+
+
+ PerMonitorV2
+
+
+ false
+ RELEASE;$(DCC_Define)
+ 0
+ 0
+
+
+ 1
+ False
+
+
+ PerMonitorV2
+
+
+ PerMonitorV2
+
+
+
+ MainSource
+
+
+
+ fmx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+ Cfg_1
+ Base
+
+
+ Cfg_2
+ Base
+
+
+
+ Delphi.Personality.12
+ Application
+
+
+
+
+ CocinAsync Asynchronous Library for Delphi
+ Chimera JSON Runtime
+ Chimera Pubsub for Webbroker Runtime
+ Chimera Pubsub Runtime
+ Chimera Pubsub for Indy Runtime
+ TFrameStand and TFormStand Runtime Package
+ TurboPack DOSCommand Runtime Package for CBuilder
+ ElevateDB Run-Time Package
+ Lang Manager VCL Runtime
+ Language Manager Runtime
+ Lang Manager FMX Runtime
+ (untitled)
+ Embarcadero C++Builder Office 2000 Servers Package
+ Embarcadero C++Builder Office XP Servers Package
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_launcher.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ ic_notification.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ false
+ splash_image.png
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ 64
+ true
+
+
+
+
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ true
+
+
+
+
+ styles.xml
+ true
+
+
+
+
+ true
+
+
+
+
+ 64
+ true
+
+
+
+
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ 64
+ true
+
+
+
+
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ true
+
+
+
+
+ styles.xml
+ true
+
+
+
+
+ true
+
+
+
+
+ 64
+ true
+
+
+
+
+ true
+
+
+
+
+ libBarcodeAndCamera.so
+ true
+
+
+
+
+ true
+
+
+
+
+ BarcodeAndCamera.exe
+ true
+
+
+
+
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ 0
+
+
+
+
+ classes
+ 64
+
+
+ classes
+ 64
+
+
+
+
+ res\xml
+ 1
+
+
+ res\xml
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ library\lib\armeabi
+ 1
+
+
+ library\lib\armeabi
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ library\lib\mips
+ 1
+
+
+ library\lib\mips
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ library\lib\arm64-v8a
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ res\drawable
+ 1
+
+
+ res\drawable
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+ res\values
+ 1
+
+
+
+
+ res\values-v21
+ 1
+
+
+ res\values-v21
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+ res\values
+ 1
+
+
+
+
+ res\drawable
+ 1
+
+
+ res\drawable
+ 1
+
+
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+
+
+ res\drawable-ldpi
+ 1
+
+
+ res\drawable-ldpi
+ 1
+
+
+
+
+ res\drawable-mdpi
+ 1
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-mdpi
+ 1
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+
+
+ res\drawable-small
+ 1
+
+
+ res\drawable-small
+ 1
+
+
+
+
+ res\drawable-normal
+ 1
+
+
+ res\drawable-normal
+ 1
+
+
+
+
+ res\drawable-large
+ 1
+
+
+ res\drawable-large
+ 1
+
+
+
+
+ res\drawable-xlarge
+ 1
+
+
+ res\drawable-xlarge
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+ res\values
+ 1
+
+
+
+
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ 0
+
+
+
+
+ Contents\MacOS
+ 1
+ .framework
+
+
+ Contents\MacOS
+ 1
+ .framework
+
+
+ Contents\MacOS
+ 1
+ .framework
+
+
+ 0
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ 0
+ .dll;.bpl
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ Contents\MacOS
+ 1
+ .dylib
+
+
+ 0
+ .bpl
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ Contents\Resources\StartUp\
+ 0
+
+
+ Contents\Resources\StartUp\
+ 0
+
+
+ Contents\Resources\StartUp\
+ 0
+
+
+ 0
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+ ..\
+ 1
+
+
+ ..\
+ 1
+
+
+ ..\
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen
+ 64
+
+
+ ..\$(PROJECTNAME).launchscreen
+ 64
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+ ..\
+ 1
+
+
+ ..\
+ 1
+
+
+ ..\
+ 1
+
+
+
+
+ Contents
+ 1
+
+
+ Contents
+ 1
+
+
+ Contents
+ 1
+
+
+
+
+ Contents\Resources
+ 1
+
+
+ Contents\Resources
+ 1
+
+
+ Contents\Resources
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ library\lib\arm64-v8a
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ Contents\MacOS
+ 1
+
+
+ 0
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ False
+ False
+ False
+ False
+ False
+ False
+
+
+ 12
+
+
+
+
+
diff --git a/Features/Camera/DW.Camera.Android.pas b/Features/Camera/DW.Camera.Android.pas
index 0e8a2e07..90d6816a 100644
--- a/Features/Camera/DW.Camera.Android.pas
+++ b/Features/Camera/DW.Camera.Android.pas
@@ -610,12 +610,13 @@ procedure TCameraCaptureSession.CaptureStillImage;
end;
TFlashMode.FlashOn:
begin
- LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_MODE, TJCameraMetadata.JavaClass.CONTROL_MODE_AUTO);
- LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_AE_MODE, TJCameraMetadata.JavaClass.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
+ //LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_MODE, TJCameraMetadata.JavaClass.CONTROL_MODE_AUTO);
+ LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_AE_MODE, TJCameraMetadata.JavaClass.CONTROL_AE_MODE_ON);
+ LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.FLASH_MODE, TJCameraMetadata.JavaClass.FLASH_MODE_TORCH);
end;
TFlashMode.AutoFlash:
begin
- LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_MODE, TJCameraMetadata.JavaClass.CONTROL_MODE_AUTO);
+ //LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_MODE, TJCameraMetadata.JavaClass.CONTROL_MODE_AUTO);
LRequestHelper.setIntegerValue(TJCaptureRequest.JavaClass.CONTROL_AE_MODE, TJCameraMetadata.JavaClass.CONTROL_AE_MODE_ON_AUTO_FLASH);
end;
end;