Skip to content

Commit 5d65baa

Browse files
Anton Vikharevalekseeveg
andauthored
Clover to mrg renaming + load MRG Wallet icon from resources (#129)
* optional timeout introduced * clover to mrg renaming * clover to mrg renaming * better texture download failure handling * generic icon loading with resources folder as a source --------- Co-authored-by: alekseeveg <[email protected]>
1 parent 72c2840 commit 5d65baa

File tree

7 files changed

+208
-47
lines changed

7 files changed

+208
-47
lines changed

Assets/MirageSDK/Plugins/WalletConnect.VersionShared/Models/DeepLink/Helpers/WalletDataHelper.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq;
4-
using Newtonsoft.Json;
5-
using UnityEngine;
64

75
namespace MirageSDK.WalletConnect.VersionShared.Models.DeepLink.Helpers
86
{
@@ -11,7 +9,7 @@ public static class WalletDataHelper
119
private static readonly Dictionary<Wallets, string> WalletNames = new Dictionary<Wallets, string>
1210
{
1311
{ Wallets.Trust, "Trust Wallet" },
14-
{ Wallets.MrgWallet, "Clover Wallet" }
12+
{ Wallets.MrgWallet, "MRG Wallet" }
1513
};
1614

1715
/// <summary>
@@ -32,14 +30,13 @@ public static string GetWalletName(this Wallets walletEnumValue)
3230
/// </summary>
3331
/// <param name="walletName"></param>
3432
/// <returns></returns>
35-
public static string GetOverrideUrl(string walletName)
33+
public static string GetOverrideImageUrl(string walletName)
3634
{
3735
switch (walletName)
3836
{
39-
case "Clover Wallet":
37+
case "MRG Wallet":
4038
{
41-
return
42-
"https://play-lh.googleusercontent.com/VxEmZKRr4z44UfWdx8LkjMHPfBDgUQ4k_GKvsRvrIPe377TKpBJsRzXwRvAhDrb0BEw=w240-h480-rw";
39+
return "resources:icon-mrg-wallet";
4340
}
4441
}
4542

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
using System;
2+
using Cysharp.Threading.Tasks;
3+
using UnityEngine;
4+
using UnityEngine.Networking;
5+
6+
namespace MirageSDK.WalletConnect.VersionShared.Models.DeepLink.Helpers
7+
{
8+
public static class WebHelper
9+
{
10+
public static async UniTask<Texture2D> GetTextureFromGenericUri(string genericUri)
11+
{
12+
if (genericUri.StartsWith("resources:"))
13+
{
14+
var indexOfColor = genericUri.IndexOf(":", StringComparison.InvariantCulture);
15+
if (indexOfColor >= genericUri.Length - 1)
16+
{
17+
throw new InvalidOperationException($"Invalid URI format for " + genericUri);
18+
}
19+
20+
var resourcesPath = genericUri.Split(":")[1];
21+
22+
var request = Resources.LoadAsync<Texture2D>(resourcesPath);
23+
var result = await request.ToUniTask();
24+
var texture = result as Texture2D;
25+
26+
if (texture == null)
27+
{
28+
if (result == null)
29+
{
30+
Debug.LogError("Texture not found at " + genericUri);
31+
}
32+
else
33+
{
34+
Debug.LogError("Object at " + genericUri + " is not a texture");
35+
}
36+
}
37+
38+
return texture;
39+
}
40+
41+
using (var imageRequest = UnityWebRequestTexture.GetTexture(genericUri))
42+
{
43+
try
44+
{
45+
await imageRequest.SendWebRequest();
46+
}
47+
catch (UnityWebRequestException e)
48+
{
49+
var downloadHandler = ((DownloadHandlerTexture)imageRequest.downloadHandler);
50+
Debug.LogError(
51+
$"Exception while loading texture {e.Message} download handler error: {downloadHandler.error}");
52+
return null;
53+
}
54+
55+
#if UNITY_2020_2_OR_NEWER
56+
if (imageRequest.result != UnityWebRequest.Result.Success)
57+
{
58+
Debug.Log("Error Getting Wallet Icon: " + imageRequest.error);
59+
}
60+
#else
61+
if (imageRequest.isHttpError || imageRequest.isNetworkError)
62+
{
63+
Debug.Log("Error Getting Wallet Icon: " + imageRequest.error);
64+
}
65+
#endif
66+
else
67+
{
68+
var downloadHandler = ((DownloadHandlerTexture)imageRequest.downloadHandler);
69+
var texture = downloadHandler.texture;
70+
return texture;
71+
}
72+
}
73+
74+
return null;
75+
}
76+
}
77+
}

Assets/MirageSDK/Plugins/WalletConnect.VersionShared/Models/DeepLink/Helpers/WebHelper.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/MirageSDK/Plugins/WalletConnect.VersionShared/Models/DeepLink/WalletEntry.cs

Lines changed: 24 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using Cysharp.Threading.Tasks;
22
using MirageSDK.WalletConnect.VersionShared.Models.DeepLink.Helpers;
33
using UnityEngine;
4-
using UnityEngine.Networking;
54

65
namespace MirageSDK.WalletConnect.VersionShared.Models.DeepLink
76
{
@@ -28,52 +27,39 @@ public async UniTask DownloadImages(string[] sizes = null)
2827

2928
foreach (var size in sizes)
3029
{
31-
var urlOverride = WalletDataHelper.GetOverrideUrl(name);
32-
string url = null;
30+
var urlOverride = WalletDataHelper.GetOverrideImageUrl(name);
31+
string uri = null;
3332
if (urlOverride != null)
3433
{
35-
url = urlOverride;
34+
uri = urlOverride;
3635
}
3736
else
3837
{
39-
url = "https://registry.walletconnect.org/logo/" + size + "/" + id + ".jpeg";
38+
uri = "https://registry.walletconnect.org/logo/" + size + "/" + id + ".jpeg";
4039
}
4140

42-
using (var imageRequest = UnityWebRequestTexture.GetTexture(url))
43-
{
44-
await imageRequest.SendWebRequest();
41+
var texture = await WebHelper.GetTextureFromGenericUri(uri);
4542

46-
#if UNITY_2020_2_OR_NEWER
47-
if (imageRequest.result != UnityWebRequest.Result.Success)
48-
{
49-
Debug.Log("Error Getting Wallet Icon: " + imageRequest.error);
50-
}
51-
#else
52-
if (imageRequest.isHttpError || imageRequest.isNetworkError)
53-
{
54-
Debug.Log("Error Getting Wallet Icon: " + imageRequest.error);
55-
}
56-
#endif
57-
else
58-
{
59-
var texture = ((DownloadHandlerTexture)imageRequest.downloadHandler).texture;
60-
var sprite = Sprite.Create(texture,
61-
new Rect(0.0f, 0.0f, texture.width, texture.height),
62-
new Vector2(0.5f, 0.5f), 100.0f);
43+
if (texture == null)
44+
{
45+
return;
46+
}
47+
48+
var sprite = Sprite.Create(texture,
49+
new Rect(0.0f, 0.0f, texture.width, texture.height),
50+
new Vector2(0.5f, 0.5f), 100.0f);
6351

64-
switch (size)
65-
{
66-
case "sm":
67-
SmallIcon = sprite;
68-
break;
69-
case "md":
70-
MediumIcon = sprite;
71-
break;
72-
case "lg":
73-
LargeIcon = sprite;
74-
break;
75-
}
76-
}
52+
switch (size)
53+
{
54+
case "sm":
55+
SmallIcon = sprite;
56+
break;
57+
case "md":
58+
MediumIcon = sprite;
59+
break;
60+
case "lg":
61+
LargeIcon = sprite;
62+
break;
7763
}
7864
}
7965
}

Assets/MirageSDK/Plugins/WalletConnect.VersionShared/Resources/LocalWalletEntriesCollection.asset

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ MonoBehaviour:
1313
m_Name: LocalWalletEntriesCollection
1414
m_EditorClassIdentifier:
1515
_localWalletEntries:
16-
- WalletName: Clover Wallet
17-
WalletEntryJson: '{"id":"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96","name":"Clover
16+
- WalletName: MRG Wallet
17+
WalletEntryJson: '{"id":"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96","name":"MRG
1818
Wallet","description":"Whether you are an experienced user or brand new to
1919
blockchain, MRG Wallet helps you connect to the decentralized web: a new internet.","homepage":"https://mirage.xyz/","chains":["eip155:1"],"versions":["1"],"sdks":["sign_v1"],"app_type":"wallet","image_id":"5195e9db-94d8-4579-6f11-ef553be95100","image_url":{"sm":"https://registry.walletconnect.org/v2/logo/sm/5195e9db-94d8-4579-6f11-ef553be95100","md":"https://registry.walletconnect.org/v2/logo/md/5195e9db-94d8-4579-6f11-ef553be95100","lg":"https://registry.walletconnect.org/v2/logo/lg/5195e9db-94d8-4579-6f11-ef553be95100"},"app":{"browser":null,"ios":"https://apps.apple.com/us/app/mrgwallet/id1438144202","android":"https://play.google.com/store/apps/details?id=com.mirage.wallet","mac":null,"windows":null,"linux":null},"injected":[{"namespace":"eip155","injected_id":"isMrgWallet"}],"mobile":{"native":"","universal":"https://metamask.app.link"},"desktop":{"native":"","universal":null},"supported_standards":[],"metadata":{"shortName":"MrgWallet","colors":{"primary":"#ffffff","secondary":null}},"updatedAt":"2023-04-23T17:48:12.565532+00:00"}'
7.36 KB
Loading

Assets/MirageSDK/Plugins/WalletConnect.VersionShared/Resources/icon-mrg-wallet.png.meta

Lines changed: 98 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)