-
Notifications
You must be signed in to change notification settings - Fork 2
/
notes.txt
137 lines (104 loc) · 6.62 KB
/
notes.txt
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
-- amélioration Si changement algo crypto rebalayer la DB pour réencoder avec nouvel algo (option ou direct ?)
-- se rappeler du dernier onglet et se repositionner dessus par défaut
-- lever l'autolock sur option more time car on doit pouvoir aller et revenir sinon le copy devient enquiquinant
-- Bug en entrée : le display lines / dates n'est pas pris en compte (si on va dans params et qu'on back sans rien faire ça prend bien les valeurs)
--- Appeler Locator.LoginSwitch.ResetTimeout(); dans toutes les interactions users
- voir si le timeout et tous ses timers créés ne pose pas de pb sinon utiliser le même timer de bout en bout ?
- uwp 720p si rotation le picker ne se déclenche pas...
- settings ne pas oublier prise en charge de Utils.GlobalMessages.SettingsChanged
-*- si la db est copiée sur une autre app, l'ouverture refusée si pw user != current
ce qui coupe l'effet backdoor. Seul mystash pour décrypter la db, mais elle peut le
faire d'un fichier d'un autre user. le stockage user pw interdit cela.
C'est plus simple puisque la db peut être copiée sans être recryptée mais n'est
pas utilisable sans le bon mot de passe user. De plus cela laisse malgré tout la porte
ouverte au sauvetage des données d'un utilisateur qui aurait perdu son mot de passe.
En version finale il faudra implémenter la cryptoraphie correctement (pour l'instant c'est minimal)
-*- Amélioration : backup/recup direct du fichier database
-*- IMPORTANT : pour mise en production ou utilisation réelle implémenter un cryptage réel (Algo2 ne fait rien et est prévu pour ça)
L'encodage actuel n'est que pour les tests (simple XOR + Base64).
-*- Faire le ménage du code non utilisé.
*** localisation : https://developer.xamarin.com/guides/xamarin-forms/advanced/localization/
voir aussi utilisation de MAT éventuellement : https://developer.xamarin.com/samples/xamarin-forms/TodoLocalized/
** toasts ne passe pas en nuget, installé à la main depuis les sources dans chaque projet et modifié.
Une version récente semble régler les problèmes, il faudrait y revenir.
** picker sous android spell checking très laid sur le mot affiché, obligé de passer par du natif pour le virer , à faire.
** Border du searchbar sous ios pas très beau, impossible à changer depuis XForms. idem ci-dessus.
** TapImage sur setpw marche plus d'un seul coup après des centaines de run... remplacé par un bouton.
** bug de binding sur les listes principales quand on applique le filtre pro plusieurs fois.
En changeant les setter Set(ref..) en manuel (truc=value; raiseprop..) et en passant la valeur
à null avant ça a l'air de marcher. Très étrange (bug XForms ?)
** bug ésotérique il y a un endroit où en changeant les relaycommand en command XForms ça passe sinon
plantage exotique. Du coup utilisation systématique du Command XForms partout et pas de MvvmLight.
** Nécessité de Mvvm Light ? command bybye, viewmodellocator=code perso, juste pour ViewModeBase et Messagerie ? ça justifie ?
** Icon du tabbedpage pour ios marche si on place images dans le projet natif. pour éviter file not found et bien
que pas utilisé par uwp et droid j'ai fait idem pour chaque plateforme. pour ios, 30x30, puis 60x60 @2x et 90x90 @3x (erreur ça devrait être 124).
Idem toolbar. REGLE : image en PCL c'est ok, Icon, mettre dans projet natif
* Localisation faites avec MAT. FR et EN ok, italien approx, russe et allemand purement expérimental, à vérifier entièrement.
---------------------------------------------------------------------------------------------------------------------
idées en natif pour copie de fichier :
IFile file = await folder.CreateFileAsync("myfile.abc", CreationCollisionOption.ReplaceExisting);
byte[] buffer = new byte[100];
using (System.IO.Stream stream = await file.OpenAsync(FileAccess.ReadAndWrite))
{
stream.Write(buffer, 0, 100);
}
--- share ios ---
UIActivityViewController activityVC = new UIActivityViewController (
new NSObject[] { new NSString("PDF Document"), NSUrl.FromFilename(datapath)}, null);
PresentViewController (activityVC, true, null);
--- share droid --- code java
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
image/jpeg => */* pour tout type
voir les fileprovider pour passer une url secure :
https://developer.android.com/reference/android/support/v4/content/FileProvider.html
autre ex avec copy temp sur sdcard xamarin
public void Share (string title, string content)
{
if (string.IsNullOrEmpty (title) || string.IsNullOrEmpty (content))
return;
Bitmap b = BitmapFactory.DecodeResource(Resources,Resource.Drawable.icon_120);
var tempFilename = "test.png";
var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
var filePath = System.IO.Path.Combine(sdCardPath, tempFilename);
using (var os = new FileStream(filePath, FileMode.Create))
{
b.Compress(Bitmap.CompressFormat.Png, 100, os);
}
b.Dispose ();
var imageUri = Android.Net.Uri.Parse ($"file://{sdCardPath}/{tempFilename}");
var sharingIntent = new Intent ();
sharingIntent.SetAction (Intent.ActionSend);
sharingIntent.SetType ("image/*");
sharingIntent.PutExtra (Intent.ExtraText, content);
sharingIntent.PutExtra (Intent.ExtraStream, imageUri);
sharingIntent.AddFlags (ActivityFlags.GrantReadUriPermission);
StartActivity (Intent.CreateChooser (sharingIntent, title));
}
Also add ReadExternalStorage and WriteExternalStorage permissions to your app.
autre ex avec astuce xamarin:
http://stacktips.com/tutorials/xamarin/shareactionprovider-example-in-xamarin-android
--- share uwp ---
lacement : Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
guetter les appels : Windows.ApplicationModel.DataTransfer.DataTransferManager.GetForCurrentView().DataRequested += MainPage_DataRequested;
gérer : void MainPage_DataRequested(Windows.ApplicationModel.DataTransfer.DataTransferManager sender, Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs args)
{
if(!string.IsNullOrEmpty(ContentText.Text))
{
args.Request.Data.SetText(ContentText.Text);
args.Request.Data.Properties.Title = Windows.ApplicationModel.Package.Current.DisplayName;
}
else
{
args.Request.FailWithDisplayText("Nothing to share");
}
}
voir app example :
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/ShareSource
-------------
Snake icon by Martin Berube http://www.how-to-draw-funny-cartoons.com/
found on IconArchive.com
Commercial used allow, link required.