Skip to content

Commit 8561b67

Browse files
committed
🚧 Android Publisher
1 parent 5ba5381 commit 8561b67

29 files changed

+617057
-3
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,10 @@ __recovery/
6767

6868
# Boss dependency manager vendor folder https://github.com/HashLoad/boss
6969
modules/
70+
71+
#Android
72+
*Android64/
73+
*Android32/
74+
*.res
75+
*.xml
76+
*.deployproj

samples/Examples.groupproj

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
<Projects Include="win-service\NtfyService.dproj">
2222
<Dependencies/>
2323
</Projects>
24+
<Projects Include="android\publisher\AndroidPublisher.dproj">
25+
<Dependencies/>
26+
</Projects>
2427
</ItemGroup>
2528
<ProjectExtensions>
2629
<Borland.Personality>Default.Personality.12</Borland.Personality>
@@ -83,14 +86,23 @@
8386
<Target Name="NtfyService:Make">
8487
<MSBuild Projects="win-service\NtfyService.dproj" Targets="Make"/>
8588
</Target>
89+
<Target Name="AndroidPublisher">
90+
<MSBuild Projects="android\publisher\AndroidPublisher.dproj"/>
91+
</Target>
92+
<Target Name="AndroidPublisher:Clean">
93+
<MSBuild Projects="android\publisher\AndroidPublisher.dproj" Targets="Clean"/>
94+
</Target>
95+
<Target Name="AndroidPublisher:Make">
96+
<MSBuild Projects="android\publisher\AndroidPublisher.dproj" Targets="Make"/>
97+
</Target>
8698
<Target Name="Build">
87-
<CallTarget Targets="VCLPublisher;VCLSubscriber;ConsolePublisher;ConsoleSubscriber;NtfyForDelphiTests;NtfyService"/>
99+
<CallTarget Targets="VCLPublisher;VCLSubscriber;ConsolePublisher;ConsoleSubscriber;NtfyForDelphiTests;NtfyService;AndroidPublisher"/>
88100
</Target>
89101
<Target Name="Clean">
90-
<CallTarget Targets="VCLPublisher:Clean;VCLSubscriber:Clean;ConsolePublisher:Clean;ConsoleSubscriber:Clean;NtfyForDelphiTests:Clean;NtfyService:Clean"/>
102+
<CallTarget Targets="VCLPublisher:Clean;VCLSubscriber:Clean;ConsolePublisher:Clean;ConsoleSubscriber:Clean;NtfyForDelphiTests:Clean;NtfyService:Clean;AndroidPublisher:Clean"/>
91103
</Target>
92104
<Target Name="Make">
93-
<CallTarget Targets="VCLPublisher:Make;VCLSubscriber:Make;ConsolePublisher:Make;ConsoleSubscriber:Make;NtfyForDelphiTests:Make;NtfyService:Make"/>
105+
<CallTarget Targets="VCLPublisher:Make;VCLSubscriber:Make;ConsolePublisher:Make;ConsoleSubscriber:Make;NtfyForDelphiTests:Make;NtfyService:Make;AndroidPublisher:Make"/>
94106
</Target>
95107
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
96108
</Project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
program AndroidPublisher;
2+
3+
uses
4+
System.StartUpCopy,
5+
FMX.Forms,
6+
View.Main in 'src\View.Main.pas' {ViewMain};
7+
8+
{$R *.res}
9+
10+
begin
11+
Application.Initialize;
12+
Application.CreateForm(TViewMain, ViewMain);
13+
Application.Run;
14+
end.

samples/android/publisher/AndroidPublisher.dproj

Lines changed: 1201 additions & 0 deletions
Large diffs are not rendered by default.

samples/android/publisher/src/View.Main.fmx

Lines changed: 3338 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
unit View.Main;
2+
3+
interface
4+
5+
uses
6+
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
7+
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts,
8+
FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects, FMX.Edit,
9+
FMX.Memo.Types, FMX.ScrollBox, FMX.Memo, REST.Backend.PushTypes, System.JSON,
10+
System.PushNotification, Data.Bind.Components, Data.Bind.ObjectScope,
11+
REST.Backend.BindSource, REST.Backend.PushDevice;
12+
13+
type
14+
TViewMain = class(TForm)
15+
Style: TStyleBook;
16+
Layout1: TLayout;
17+
Text2: TText;
18+
Layout4: TLayout;
19+
Layout2: TLayout;
20+
Layout3: TLayout;
21+
Image1: TImage;
22+
Text1: TText;
23+
Layout5: TLayout;
24+
edtBaseURL: TEdit;
25+
Layout6: TLayout;
26+
Layout7: TLayout;
27+
edtTitle: TEdit;
28+
edtMessage: TMemo;
29+
Layout8: TLayout;
30+
edtTopic: TEdit;
31+
btnPublish: TCornerButton;
32+
PushEvents1: TPushEvents;
33+
procedure btnPublishClick(Sender: TObject);
34+
private
35+
procedure SendNotification;
36+
end;
37+
38+
var
39+
ViewMain: TViewMain;
40+
41+
implementation
42+
43+
uses
44+
System.Threading,
45+
Notify;
46+
47+
{$R *.fmx}
48+
49+
procedure TViewMain.btnPublishClick(Sender: TObject);
50+
var
51+
LTask: ITask;
52+
begin
53+
54+
LTask := TTask.Create(procedure begin
55+
try
56+
btnPublish.Enabled := False;
57+
btnPublish.Text := '⌛ Notify';
58+
SendNotification;
59+
finally
60+
TThread.Queue(nil, procedure begin
61+
btnPublish.Text := '✔ Notify';
62+
btnPublish.Enabled := True;
63+
end)
64+
end;
65+
end);
66+
67+
LTask.Start;
68+
end;
69+
70+
procedure TViewMain.SendNotification;
71+
begin
72+
73+
Ntfy.Notification(
74+
New.Notification
75+
.Topic(edtTopic.Text)
76+
.Title(edtTitle.Text)
77+
.MessageContent(edtMessage.Lines.Text)
78+
);
79+
80+
Ntfy
81+
.BaseURL(edtBaseURL.Text)
82+
.Publish;
83+
84+
end;
85+
86+
end.

0 commit comments

Comments
 (0)