-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSignAndroidImpl.uno
89 lines (55 loc) · 1.95 KB
/
SignAndroidImpl.uno
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
namespace Native.Android
{
using Uno;
using Uno.UX;
using Uno.Compiler.ExportTargetInterop;
using Fuse.Controls.Native.Android;
[Require("Gradle.Dependency.Compile", "com.github.gcacace:signature-pad:1.2.1")]
[ForeignInclude(Language.Java, "com.github.gcacace.signaturepad.views.SignaturePad", "com.github.gcacace.signaturepad.utils.SvgBuilder")]
[ForeignInclude(Language.Java, "com.fuse.Activity", "android.util.Log", "android.graphics.Bitmap", "java.io.FileOutputStream", "android.graphics.Bitmap.CompressFormat")]
extern(Android) class Signature : LeafView, ISignature
{
SignatureHost _host;
public Signature(SignatureHost host) : base(Create())
{
_host = host;
}
void ISignature.ClearSignature()
{
ClearSignature(Handle);
}
void ISignature.Save(string fileName)
{
Save(Handle, fileName);
debug_log "bresson";
}
[Foreign(Language.Java)]
static Java.Object Create()
@{
SignaturePad mSignaturePad = new SignaturePad(@(Activity.Package).@(Activity.Name).GetRootActivity(), null);
return mSignaturePad;
@}
[Foreign(Language.Java)]
void Save(this Java.Object handle, string fileName)
@{
SignaturePad signaturePad = (SignaturePad)handle;
try{
Bitmap signatureBitmap = signaturePad.getSignatureBitmap();
String path = Activity.getRootActivity().getFilesDir().getAbsolutePath() + "/" + fileName;
FileOutputStream os;
os = new FileOutputStream(path, false);
signatureBitmap.compress(CompressFormat.PNG, 80, os);
os.flush();
os.close();
}catch(Exception e){
android.util.Log.e("myexception", e.toString());
}
@}
[Foreign(Language.Java)]
void ClearSignature(Java.Object handle)
@{
SignaturePad msignaturePad = (SignaturePad)handle;
msignaturePad.clear();
@}
}
}