Skip to content
This repository was archived by the owner on Jul 2, 2022. It is now read-only.

Commit 394b6c1

Browse files
committed
Better cache loading support
1 parent 32f5490 commit 394b6c1

File tree

3 files changed

+13
-27
lines changed

3 files changed

+13
-27
lines changed

CodeHub.Core/ViewModels/ViewModelExtensions.cs

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace CodeHub.Core.ViewModels
1212
{
1313
public static class ViewModelExtensions
1414
{
15-
public static Task RequestModel<TRequest>(this MvxViewModel viewModel, GitHubRequest<TRequest> request, bool forceDataRefresh, Action<GitHubResponse<TRequest>> update) where TRequest : new()
15+
public static async Task RequestModel<TRequest>(this MvxViewModel viewModel, GitHubRequest<TRequest> request, bool forceDataRefresh, Action<GitHubResponse<TRequest>> update) where TRequest : new()
1616
{
1717
if (forceDataRefresh)
1818
{
@@ -23,29 +23,16 @@ public static class ViewModelExtensions
2323
var application = Mvx.Resolve<IApplicationService>();
2424
var uiThrad = Mvx.Resolve<IUIThreadService>();
2525

26-
return Task.Run(async () =>
27-
{
28-
var result = await application.Client.ExecuteAsync(request).ConfigureAwait(false);
29-
uiThrad.MarshalOnUIThread(() => update(result));
30-
31-
if (result.WasCached)
32-
{
33-
request.RequestFromCache = false;
26+
var result = await application.Client.ExecuteAsync(request).ConfigureAwait(false);
27+
uiThrad.MarshalOnUIThread(() => update(result));
3428

35-
Task.Run(async () =>
36-
{
37-
try
38-
{
39-
var r = await application.Client.ExecuteAsync(request).ConfigureAwait(false);
40-
uiThrad.MarshalOnUIThread(() => update(r));
41-
}
42-
catch (NotModifiedException)
43-
{
44-
System.Diagnostics.Debug.WriteLine("Not modified: " + request.Url);
45-
}
46-
}).FireAndForget();
47-
}
48-
});
29+
if (result.WasCached)
30+
{
31+
request.RequestFromCache = false;
32+
var uncachedTask = application.Client.ExecuteAsync(request);
33+
uncachedTask.FireAndForget();
34+
uncachedTask.ContinueWith(t => uiThrad.MarshalOnUIThread(() => update(t.Result)), TaskContinuationOptions.OnlyOnRanToCompletion);
35+
}
4936
}
5037

5138
public static void CreateMore<T>(this MvxViewModel viewModel, GitHubResponse<T> response,

CodeHub.iOS/CodeHub.iOS.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,13 @@
7171
<WarningLevel>4</WarningLevel>
7272
<ConsolePause>false</ConsolePause>
7373
<CodesignKey>iPhone Developer</CodesignKey>
74-
<MtouchUseLlvm>true</MtouchUseLlvm>
7574
<MtouchUseThumb>true</MtouchUseThumb>
7675
<MtouchI18n>
7776
</MtouchI18n>
7877
<MtouchArch>ARMv7</MtouchArch>
7978
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
79+
<IpaPackageName>
80+
</IpaPackageName>
8081
</PropertyGroup>
8182
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
8283
<DebugType>none</DebugType>
@@ -96,7 +97,6 @@
9697
<CodesignProvision>Automatic:AdHoc</CodesignProvision>
9798
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
9899
<DefineConstants>DEBUG</DefineConstants>
99-
<MtouchExtraArgs>--linkskip=CodeFramework.Core.iOS --linkskip=CodeFramework.iOS --linkskip=CodeHub.Core.iOS --linkskip=CodeHub.iOS</MtouchExtraArgs>
100100
</PropertyGroup>
101101
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
102102
<DebugType>none</DebugType>
@@ -107,7 +107,6 @@
107107
<ConsolePause>False</ConsolePause>
108108
<CodesignKey>iPhone Distribution</CodesignKey>
109109
<CodesignProvision>Automatic:AppStore</CodesignProvision>
110-
<MtouchUseLlvm>true</MtouchUseLlvm>
111110
<MtouchUseThumb>true</MtouchUseThumb>
112111
<IpaPackageName>
113112
</IpaPackageName>

0 commit comments

Comments
 (0)