Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
4ba3764
listner events added + new function to read messages with order and l…
mitulgolakiya Dec 20, 2017
31a8c6a
push with timestamp function added
mitulgolakiya Dec 20, 2017
af769c0
Event listners + timestamp in android
mitulgolakiya Dec 22, 2017
5438b8e
Facebook login via firebase
mitulgolakiya Jan 8, 2018
9e75a10
* added missing package Fuse.JSON
poul-kg Jan 8, 2018
7cbe373
Fix: NativeEvent.RaiseAsync invalid parameters after Fuse 1.6 release
mitulgolakiya Jan 29, 2018
9408bef
Revert "Fix: NativeEvent.RaiseAsync invalid parameters after Fuse 1.6…
mitulgolakiya Jan 29, 2018
89dbfea
* updated README.md and fixed Facebook auth error reporting
poul-kg Feb 1, 2018
a95a3a9
* small fix in Read Data section of README
poul-kg Feb 1, 2018
fc70b6b
* added syntax highlighting to README JS code
poul-kg Feb 1, 2018
5d6a9dc
* added doc for `detachListener` method
poul-kg Feb 1, 2018
0f9b039
* updated README, + ability of iOS device to receive FCM token, so we…
poul-kg Feb 2, 2018
b347980
Merge pull request #1 from LIFEAI/pavel/issues/ios-fcm-token
poul-kg Feb 2, 2018
bf4a3ec
* fix PushNotification issue for Android
poul-kg Feb 2, 2018
8471118
new query by child value implementation
LuisRodriguezLD Feb 7, 2018
fffa465
docs fix
LuisRodriguezLD Feb 7, 2018
caf744f
* fix deprecated messages during `fuse preview -t=iOS`, after upgradi…
poul-kg Feb 12, 2018
fa532d9
Merge pull request #4 from LIFEAI/dhaval-deprecated-messages-fix
Dhvl-Golakiya Feb 14, 2018
3185d64
Fixed extern !mobile and arguments in query
LuisRodriguezLD Feb 14, 2018
f10d036
simple storage added, uploads picture and returns URL
LuisRodriguezLD Feb 15, 2018
421285e
Merge branch 'LuisRodriguezLD-simple-storage' into feature-database-l…
HirenBharodiya Feb 16, 2018
1924b04
Revert "simple storage added, uploads picture and returns URL"
mitulgolakiya Feb 16, 2018
57e9a4c
Remove _onSignInChanged event
Dhvl-Golakiya Feb 16, 2018
663f6f5
Update README.md
HirenBharodiya Feb 20, 2018
63701b7
Revert "Revert "simple storage added, uploads picture and returns URL""
HirenBharodiya Feb 20, 2018
be82c8a
Update README.md
HirenBharodiya Feb 20, 2018
58f574f
Add missimg message parameter in Authentication error event
Dhvl-Golakiya Feb 22, 2018
c0c46fe
Update README.md
HirenBharodiya Feb 22, 2018
e0c0531
Merge pull request #2 from LuisRodriguezLD/feature-database-lifeai
Dhvl-Golakiya Feb 22, 2018
e96ec9b
Add function to get FCM token in android
Dhvl-Golakiya Feb 27, 2018
cf1b91f
Better queries
LuisRodriguezLD Feb 28, 2018
f83797a
Add capability to get FCM token via function in iOS
Dhvl-Golakiya Feb 28, 2018
a4a8741
Merge branch 'better-query' of https://github.com/LuisRodriguezLD/Fus…
HirenBharodiya Mar 6, 2018
edf39a5
Revert "Merge branch 'better-query' of https://github.com/LuisRodrigu…
HirenBharodiya Mar 6, 2018
9e4fc35
name change
LuisRodriguezLD Mar 6, 2018
6dda3b1
Merge branch 'LuisRodriguezLD-better-query' into feature-database-lifeai
HirenBharodiya Mar 6, 2018
89791ad
Merge pull request #6 from LuisRodriguezLD/better-query
poul-kg Mar 7, 2018
598c69f
Fix: Endless loading loop at app startup
Dhvl-Golakiya Mar 19, 2018
3ef7be1
Add try catch for Firebase read functions on Android
Dhvl-Golakiya Mar 20, 2018
5d498cb
Remove Native Logs
Dhvl-Golakiya Mar 22, 2018
16bd3a2
Remove all debug_log
Dhvl-Golakiya Mar 22, 2018
ffb00a5
Set FirebaseDB.DetachListeners for Android
Dhvl-Golakiya Mar 28, 2018
ed9c0d5
Merge pull request #7 from LIFEAI/feature-database-lifeai-detachliste…
poul-kg Mar 29, 2018
d561cb5
Resolve Context is obsolete warnings
Dhvl-Golakiya Mar 29, 2018
7d00532
Add Firebase Phone auth support
Dhvl-Golakiya May 3, 2018
bb180c6
Add Native event for handle Code sent event on Android
Dhvl-Golakiya May 7, 2018
744e33a
Resend OTP code from Fiirebase Phone Auth
Dhvl-Golakiya May 7, 2018
31942a0
Link Facebook with current Firebase auth user
Dhvl-Golakiya May 17, 2018
3087d63
Handle User already link with this provider error
Dhvl-Golakiya May 18, 2018
b8c1fb7
Fix: getTokenWithCompletion method is deprecated issue
Dhvl-Golakiya May 18, 2018
820559c
Merge pull request #8 from LIFEAI/feature-database-lifeai-phone-auth
poul-kg May 18, 2018
ce6104b
Fix: Account already linked with another provider error
Dhvl-Golakiya May 25, 2018
b38f0af
Get callback when OTP code is invalid
Dhvl-Golakiya May 31, 2018
706860d
Set proper message when we enter wrong country code and mobile number
Dhvl-Golakiya Jun 4, 2018
d76000e
Update error message for Phone and Email auth
Dhvl-Golakiya Jun 22, 2018
6a07477
Minor class name callback changes
Dhvl-Golakiya Jun 22, 2018
00d3ecf
Merge pull request #9 from LIFEAI/lifeai-update_message
poul-kg Jun 22, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Fuse.JSON/JSON.unoproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"Packages": [
"Fuse",
"FuseJS",
],
"Includes": [
"Value.uno",
"ScriptingValue.uno",
"ObjCObject.uno",
"JavaObject.uno",
"Test.uno",
]
}
87 changes: 87 additions & 0 deletions Fuse.JSON/JavaObject.uno
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
using Uno;
using Uno.UX;
using Uno.Collections;
using Uno.Threading;
using Uno.IO;
using Uno.Compiler.ExportTargetInterop;
using Fuse;
using Fuse.Platform;
using Fuse.Scripting;
using Fuse.Reactive;

namespace JSON
{
public extern(Android) static class JavaObject
{
static Matcher<Java.Object> _toJavaObject = new ToJavaObject();

public static Java.Object FromJSON(Value value)
{
return value.Match(_toJavaObject);
}
}

[ForeignInclude(Language.Java,"java.lang.Object","java.util.List","java.util.ArrayList","java.util.Map","java.util.HashMap","android.util.Log")]
extern(Android) class ToJavaObject : Matcher<Java.Object>
{
[Foreign(Language.Java)]
public Java.Object Case() @{ return null; @}

[Foreign(Language.Java)]
public Java.Object Case(string str) @{ return str; @}

[Foreign(Language.Java)]
public Java.Object Case(double num) @{ return (double) num; @}

[Foreign(Language.Java)]
public Java.Object Case(bool b) @{ return (boolean) b; @}

public Java.Object Case(IEnumerable<KeyValuePair<string, Java.Object>> obj)
{
var dict = NewHashMap();

foreach (var keyValue in obj)
{
SetMapValue(dict, keyValue.Key, keyValue.Value);
}

return dict;
}

[Foreign(Language.Java)]
extern(Android) Java.Object NewHashMap()
@{
return new HashMap<String, Object>();
@}

[Foreign(Language.Java)]
extern(Android) void SetMapValue(Java.Object dictHandle, string key, Java.Object value)
@{
((Map<String, Object>)dictHandle).put(key, value);
@}

extern(Android) public Java.Object Case(IEnumerable<Java.Object> array)
{
var result = NewArrayList();

foreach (var value in array)
{
AddArrayValue(result, value);
}

return result;
}

[Foreign(Language.Java)]
extern(Android) Java.Object NewArrayList()
@{
return new ArrayList<Object>();
@}

[Foreign(Language.Java)]
extern(Android) void AddArrayValue(Java.Object arrayHandle, Java.Object value)
@{
((List<Object>) arrayHandle).add(value);
@}
}
}
21 changes: 21 additions & 0 deletions Fuse.JSON/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2017 Olle Fredriksson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
82 changes: 82 additions & 0 deletions Fuse.JSON/ObjCObject.uno
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
using Uno.Collections;
using Uno.Compiler.ExportTargetInterop;

namespace JSON
{
public extern(iOS) static class ObjCObject
{
static Matcher<ObjC.Object> _toObjCObject = new ToObjCObject();

public static ObjC.Object FromJSON(Value value)
{
return value.Match(_toObjCObject);
}
}

extern(iOS) class ToObjCObject : Matcher<ObjC.Object>
{
[Foreign(Language.ObjC)]
public ObjC.Object Case() @{ return [NSNull null]; @}

[Foreign(Language.ObjC)]
public ObjC.Object Case(string str) @{ return str; @}

[Foreign(Language.ObjC)]
public ObjC.Object Case(double num) @{ return [NSNumber numberWithDouble:num]; @}

[Foreign(Language.ObjC)]
public ObjC.Object Case(bool b) @{ return [NSNumber numberWithBool:(b ? YES : NO)]; @}

public ObjC.Object Case(IEnumerable<KeyValuePair<string, ObjC.Object>> obj)
{
var dict = NewNSMutableDictionary();
foreach (var keyValue in obj)
SetDictValue(dict, keyValue.Key, keyValue.Value);
return CopyToImmutableDict(dict);
}

[Foreign(Language.ObjC)]
ObjC.Object NewNSMutableDictionary()
@{
return [NSMutableDictionary dictionary];
@}

[Foreign(Language.ObjC)]
void SetDictValue(ObjC.Object dictHandle, string key, ObjC.Object value)
@{
((NSMutableDictionary*)dictHandle)[key] = value;
@}

[Foreign(Language.ObjC)]
ObjC.Object CopyToImmutableDict(ObjC.Object dictHandle)
@{
return [((NSMutableDictionary*)dictHandle) copy];
@}

public ObjC.Object Case(IEnumerable<ObjC.Object> arr)
{
var result = NewNSMutableArray();
foreach (var value in arr)
AddArrayValue(result, value);
return CopyToImmutableArray(result);
}

[Foreign(Language.ObjC)]
ObjC.Object NewNSMutableArray()
@{
return [NSMutableArray array];
@}

[Foreign(Language.ObjC)]
void AddArrayValue(ObjC.Object arrayHandle, ObjC.Object value)
@{
[((NSMutableArray*)arrayHandle) addObject:value];
@}

[Foreign(Language.ObjC)]
ObjC.Object CopyToImmutableArray(ObjC.Object arrayHandle)
@{
return [((NSMutableArray*)arrayHandle) copy];
@}
}
}
82 changes: 82 additions & 0 deletions Fuse.JSON/ScriptingValue.uno
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
using Fuse.Scripting;
using Uno;
using Uno.Collections;

namespace JSON
{
public static class ScriptingValue
{
public static object FromJSON(Context context, Value value)
{
return value.Match(new ToScriptingValue(context));
}

public static Value ToJSON(object value)
{
if (value == null) return Null.TheNull;
if (value is string) return new String((string)value);
if (value is double) return new Number((double)value);
if (value is int) return new Number((int)value);
if (value is bool) return new Bool((bool)value);
if (value is Fuse.Scripting.Array)
{
var sarr = (Fuse.Scripting.Array)value;
var len = sarr.Length;
var arr = new Value[len];
for (int i = 0; i < len; ++i)
{
arr[i] = ToJSON(sarr[i]);
}
return new Array(arr);
}
if (value is Fuse.Scripting.Object)
{
var sobj = (Fuse.Scripting.Object)value;
var dict = new Dictionary<string, Value>();
foreach (var key in sobj.Keys)
{
dict[key] = ToJSON(sobj[key]);
}
return new Object(dict);
}
throw new ArgumentException("Not JSON-convertible", nameof(value));
}
}

class ToScriptingValue : Matcher<object>
{
readonly Context _context;

public ToScriptingValue(Context context)
{
if (context == null)
throw new ArgumentNullException(nameof(context));
_context = context;
}

public object Case() { return null; }
public object Case(string str) { return str; }
public object Case(double num) { return num; }
public object Case(bool b) { return b; }
public object Case(IEnumerable<KeyValuePair<string, object>> obj)
{
var result = _context.NewObject();
foreach (var keyValue in obj)
{
result[keyValue.Key] = keyValue.Value;
}
return result;
}
public object Case(IEnumerable<object> arr)
{
var result = _context.NewArray();
int i = 0;
foreach (var val in arr)
{
result[i] = val;
++i;
}
return result;
}
}
}
26 changes: 26 additions & 0 deletions Fuse.JSON/Test.uno
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using Fuse.Scripting;
using Uno.Collections;
using Uno.Compiler.ExportTargetInterop;

public class Test : Uno.Application
{
public Test()
{
if defined(iOS)
{
var d = new Dictionary<string, JSON.Value>();
d["hej"] = new JSON.String("hopp");
d["happ"] = new JSON.String("hupp");
d["arr"] = new JSON.Array(new JSON.Value[] { new JSON.String("arrayValue") });
var jsonObject = new JSON.Object(d);
var test = JSON.ObjCObject.FromJSON(jsonObject);
NSLog(test);
}
}

[Foreign(Language.ObjC)]
extern(iOS) static void NSLog(ObjC.Object o)
@{
::NSLog(@"%@", o);
@}
}
Loading