Skip to content

Commit afbbb89

Browse files
authored
hotfix v1.6.51 (#278)
* fix - discord authentication (#199) * Flyout menu - reduce number of taps to sign in * App Shell - Make sure we fetch user data first then bind that data * Flyout - Fix Logout button * Arch - fetching data | setup a singleton to handle fetching structure and bind it to App Shell * Shell - Manage logout within the new mechanism * cleanup - Pages/views * Code base - Org | Organise the weak reference messages classes * News Page -| Setup singleton * Articlepage cleanup * About Page -| set as a singleton * Feeds page -| call as a singleton * Bookmarks - as for all give the singleton treatment * App Shell - remove OpenAuth reference * Android native - BakcPress | remove nullable reference types * fix: Custom feed not loading after navigating from an article (#202) * Fix - Feeds VM | make sure to manage `IsBusy` properly inside `UpdateFeeds()` * cleanup - Feed VM | Forgot to remove the previous setter of `IsBusy` * IOS properties - change Debug linker behaviour (#204) * BETA - Fix: crash sometimes experience on Launch (#205) * MCT - Regester TouchBehavior as a singleton * App.cs - Remove start DB on resume * Ressources - font references | fix the SemiBold reference (#206) * SQLite - update initialisation (#207) * fix: sqlite lockcrash (#208) * SQLite - update initialisation * SqLite - make sure we close the connection after we create the tables * Add sentry breadcrumbs to db creation process (#209) * SQLite - update initialisation * SqLite - make sure we close the connection after we create the tables * App - CreateWindow | add sentry breadcrumbs * imp: optimisation of local storage (#211) * SQLite - update initialisation * SqLite - make sure we close the connection after we create the tables * App - CreateWindow | add sentry breadcrumbs * Local Storage - SQLite | Create a class to genera DB actions * Local storage - general database | fix typo * Local storage - general sqlite DB | Implement the service accross the board * Feed - fix feed search * MainProg - DI | improve org of db singleton registration * Local storage - backup | create a service * fuck me sideways.... * Article Preview - share button | be more specific on the source (#213) * Fetcher - Sources | Utilise a static reference as Sources, as we only really set it once but need it all the time everywhere (#214) * Fix: bookmark status (#216) * Main feed - bookmark | fix the issue of the bookmark status not showing * Local storage - get bookmark | make sure that bookmarks are marked as IsSaved automatically * Local storage - main db | remove unecessary listing of artilces * Bookmark - db | Make sure the status is correctly set * feeds - view model | remove unused references (#217) * Fix: feed bookmark issue (#218) * article - bookmark | make sure to return the rescently added first * Fetcher - bookmarks | improve performance by caching all the bookmarks (as much as possible * Bookmark - caching | loas the bookmarks first thing * Fix: bookmark status not updating on main feed (#219) * Main feed - bookmark status | change the way we reload the article when receiving the bookmark message * Article Model - Change bookmark update * Hotfix: on start exception (#220) * App | Remove StartDb() * Change the way we update Sources * Fetcher.Sources | prevent nullable excepttions * fix: Fetcher - UpdateBackupSources | improve Error handling (#221) * App | Remove StartDb() * Change the way we update Sources * Fetcher.Sources | prevent nullable excepttions * Fetcher - UpdateBackupSources | improve Error handling * cleanup: stuff I forgot (#224) * xaml stuff * remove unused style declaration * Main Feed - Refresh DB | Make the try catch actually useful * Feat: notification setup (#225) * Add google services stuff to git ignore * Include google services files * deps | setup thomasgalliker's `Plugin.FirebasePushNotifications` * Update push notification setup * Apple Manifset - enable remote background thinggy * CI | use environment variable for package id * display packagename * CI/CD - iOS | install GoogleService-Info * CD - android | add secrets * d * CD - android | install google-services.json * prebuild - iOS | fix service tokens * Ci/CD - file google services installations * oops * d * Ci - update all * Notification - android | set the icon * for now let's just `hardcode` packagename (#226) * fix: android pre-build - fix environment variables (#228) * CD - android pre-build | fix environment variables * update xcode version * fix: pipelines xcode version (#229) * pipelines - dev | upgrade xcode * pipelines - prod | upgrade xcode * fix: notification setup (#230) * Ci - Adnroid | Check google services token * Prebuild - android | set the package name from the worflow * push notification - ios | fix setup * deps | Bump Plugin.FirebasePushNotifications to prerelease * Notiffication setup - Android | improve logging * fix: change the approach of Google Services credentials (#231) * CD - android | get google service token * forgot google_services_json * cd - android | Generate and import Google Services in their respective steps * CD - Android | change the way we generate google services * CD - iOS | generate google services * CI - main workflow | forgot google services PLIST * pre-build - android | remove unnecessary stuff * CI/CD - all | Remove redundant references of google services properties * CD - iOS | fix typo * same * workflow | update prod * s * fix - dev pipeline * dev deploy | remove * feat: notifications implement channels (#232) * Notifications - android | add channels * Notifications - Android | List channels * deps | downgrade `Plugin.FirebasePushNotifications` * workflow - android | set `changesNotSentForReview: true` * feat: notification navigation (#233) * Android - setup | enable `SingleTask` Launch Mode * Article - notification | handle navigation to the article * Notification - OnNotificationOpened | convert `articleId` to string * fix crash on notification nav * Article - notification | handle loading indicator better * Android - notification | improve permission request * Article - Notification | add option to handle action * cd-android.yml | unset changesNotSentForReview * Feat: notifications settings (#235) * Android - Notification | add `PostNotification` permission to the manifest * Notification Request | make it makes sense * Shell | add a totally empty settings page * Setting page | design * Settings page - open notification settings * notif - fix| OnNotificationOpened + OnNotificationAction -> escape null inputs (#238) * Hotfix: crash notification (#239) * notif - fix| OnNotificationOpened + OnNotificationAction -> escape null inputs * Notification - OnNotificationOpened | check `articleId` key exist * Notification - OnNotificationOpened | documentation * I'm a bit of an idiot * feat: deals page (#237) * Shell - Views | create and bind deals page * Styles - Add discount color * Deals page - Display deals * Article page - deals | change discount colour * Article page - deals | change size of the discount mark * SQLite - general DB | store deals * Deal Page | create a badge * General Storage | Complete `UpdateDeals` * Cleanp up | Article comparer * Deal page - Add loading indicator * Deal page -| reorder deals * feat: settings - deals (#242) * Settings - deal | enable/disable deal page * Settings - Deals | enable/disable deals on article page * Settings - vm | create a general method to handle updates * feat: add notif badges (#243) * fix: deals loadstuck (#244) * Deals page - fix | update deal `OnAppearing` * Deals page | order by expiring deals * random cleaup * hotfix: crash on notification opening (#246) * Article page - view Model | prevetn `System.ArgumentNullException` on deals * Article page - ViewModel | handle deals process exceptions * ArticleViewModel - constructor | check `Deals` before treating it * iOS - Tab badge | fix out of range issue (#248) * fix: News Feed doesn't reset when pressing its tab (#251) * AndroidShellRenderer - handler | declare it using genereci overload * Fix - android main feed reset | merge AndroidShellRenderer with TabbarBadgeRenderer * feat: dynamic time update (#253) * Converter - Time Span | reformat and clean up * Main feed - vm | create a method to refresh the timespan of the articles * Main Feed - On Resume | enhance the on resume behaviour * News page - update navigation stuff on resume * news page - view model | * Fetcher - ArticleExist | make sure to check for Bookmarks being null (#256) * fix: ios - UI settings tweaks (#257) * Settings Page - UI | Change title * Settings page - UI | tweak notification settings label * Settings page - view | format code * settings page - UI | improve the toggles * Settings page - UI | improve toggle colours * fix: DealPageSett (#258) * Settings Page - UI | Change title * Settings page - UI | tweak notification settings label * Settings page - view | format code * settings page - UI | improve the toggles * Settings page - UI | improve toggle colours * fix: DealPageSett * feat: display source image (#261) * UI - Article Preview | display the logo of the source if available * UI - Article Page | Add source image or badge as title closes #249 * fix: ios badge thread issue (#264) * ios - tab badge | run that on the main thread * ios - tab badge | UpdateBadge() error handling * fix: no internet connection handler (#265) Resolves #262 * fetcher - error handler | prevent internet connection related error from being reported * fcm - offline | notification setup disable if device offline * Fetcher - HTTP error handler | move the internet connection check at the top * fix: update deals on article navigation (#266) * App Shell - vm | make sure to reload the deals when we call `UpdateDeals()` * App Shell - navigation | update deal on each navigation * feat: deals - display time remaining until deals expire (#268) * Converters - | create a time until converter * Deals - page | display time until it expires * Deals page | improving time until display * TimeUntilConverter - correction * TimeUntilConverter - converters | improve * Deal page - expiration | dynamically change the colour * Converters - time until| correct a big mistake * App -| make sure to refresh the Deals when resuming the app * converters - TimeUntil | remove minutes when it's not relevant Resolves #260 * hotfix: time until converter (#269) * Deal page | ensure the timespan until end is not displayed after 30 days * Deal page - time until | improve colour indication * TimeUntilConverter - fix * feat: notification personalised feed (#271) * Feed - Notification | set up channel * Notification - Feed | NE registration * Notification entity | update * Notification - feed | include authentication when updating or creating a Notification Entity * UI - Edit Feed | notification options * notification - feed | get status * Edit page - UI | make it look a bit more similar to the settings page * Edit feed * App - fetcher | setup feed sub/unsub requests * App - Fetcher | fix sub/unsub feed * feed sub payload fix syntax * Data - Fetcher | Add a method to update the server when creating feed * feeds | allow auto synchronisation of feeds * Feed - edit | allow edit of subscription * Edit - feed | sync edit * Fetcher - feed create | prevent network related errors * misc - * notication - fix | if the update of NE fails add it as a new token * Update App/Models/Http/Responses/SubStatusRes.cs [JsonProperty("enabled")] * Update App/Platforms/Android/Notifications/NotificationChannelGamHub.cs * Edit feed page | fix UI * fix - threading | feeds view model * Main feed | feed creation upload * feeds| Cover offline mode update * Feeds - view model | improve multithreading * Deal - Badge | ensure the badge stays there as long as the deals are not acknowledged (#274) * Fix: error subscription not found (#275) * view models - edit feed | fix feed notification check * ViewModel - edit feed | compare Notification values * Deals - TimeUntilConverter | fix mishap when timespan is lower than a day (#277) * code base - debug setup | fix issue where the Discord auth wouldn't work (#279)
1 parent e677b2b commit afbbb89

File tree

5 files changed

+29
-27
lines changed

5 files changed

+29
-27
lines changed

App/App.xaml.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@ public App(Fetcher fetc, AppShell shell, GeneralDataBase generalDataBase, BackUp
5050
_generalDb = generalDataBase;
5151
_backupDb = backUpDataBase;
5252

53-
#if DEBUG
54-
// Run the debug setup
55-
EnvironementSetup.DebugSetup();
56-
#endif
5753
DataFetcher = fetc;
5854
Shell = shell;
5955

App/Core/EnvironementSetup.cs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,24 @@
11
using Newtonsoft.Json;
2-
using System;
3-
using System.Collections.Generic;
4-
using System.IO;
52
using System.Reflection;
63

7-
namespace GamHubApp.Core
4+
namespace GamHubApp.Core;
5+
6+
public static class EnvironementSetup
87
{
9-
public static class EnvironementSetup
8+
public static void DebugSetup()
109
{
11-
public static void DebugSetup()
10+
string jsonString;
11+
string jsonFileName = "AppSettings.json";
12+
var assembly = Assembly.GetExecutingAssembly();
13+
Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.Config.{jsonFileName}");
14+
using (var reader = new System.IO.StreamReader(stream))
1215
{
13-
string jsonString;
14-
string jsonFileName = "AppSettings.json";
15-
var assembly = Assembly.GetExecutingAssembly();
16-
Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.Config.{jsonFileName}");
17-
using (var reader = new System.IO.StreamReader(stream))
18-
{
19-
jsonString = reader.ReadToEnd();
20-
}
16+
jsonString = reader.ReadToEnd();
17+
}
2118

22-
foreach (var item in JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString))
23-
{
24-
Environment.SetEnvironmentVariable(item.Key, item.Value);
25-
}
19+
foreach (var item in JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString))
20+
{
21+
Environment.SetEnvironmentVariable(item.Key, item.Value);
2622
}
2723
}
2824
}

App/Helpers/Converters/TimeUntilConverter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
1414

1515
if (timeremaining < TimeSpan.Zero)
1616
return "expired";
17-
else if (timeremaining.TotalHours < 0)
17+
else if (timeremaining.TotalHours < 1)
1818
{
1919
if (timeremaining.Minutes > 1)
2020
return $"{timeremaining.Minutes} minutes";
2121
return $"1 minute";
2222
}
23-
else if (timeremaining.TotalDays < 0)
23+
else if (timeremaining.TotalDays < 1)
2424
{
2525
string hoursStr = timeremaining.Hours > 1? $"{timeremaining.Hours} hours": "1 hour";
2626
string minutesStr = timeremaining.Minutes > 1? $"{timeremaining.Minutes} minutes" : "1 minute";

App/Services/GeneralDataBase.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ public sealed class GeneralDataBase
1717
public List<Source> Sources { get; private set; }
1818
public async Task Init()
1919
{
20+
#if DEBUG
21+
// Run the debug setup
22+
EnvironementSetup.DebugSetup();
23+
#endif
2024
if (database is not null)
2125
return;
2226

App/ViewModels/EditFeedViewModel.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,18 @@ public Feed Feed
2222
}
2323
}
2424

25+
private bool? _feedNotificationPrev;
2526
private bool _feedNotification;
2627
public bool FeedNotification
2728
{
2829
get { return _feedNotification; }
2930
set
3031
{
3132
_feedNotification = value;
33+
34+
if (_feedNotificationPrev is null)
35+
_feedNotificationPrev = _feedNotification;
36+
3237
OnPropertyChanged(nameof(FeedNotification));
3338
}
3439
}
@@ -83,7 +88,7 @@ public RenameFeedPopUp Page
8388
return;
8489

8590
// Update subcription
86-
if (_feedNotification)
91+
if (_feedNotification && !(_feedNotificationPrev != _feedNotification))
8792
await CurrentApp.DataFetcher.SubscribeToFeed(id, token);
8893
else
8994
await CurrentApp.DataFetcher.UnsubscribeToFeed(id, token);
@@ -109,13 +114,14 @@ public EditFeedViewModel(Feed feed, FeedsViewModel vm, GeneralDataBase generalDB
109114

110115
CurrentApp = App.Current as App;
111116

112-
RefreshFeedSubStatus();
117+
RefreshFeedSubStatus().GetAwaiter();
118+
113119

114120
}
115121
/// <summary>
116122
/// Manually refresh the feed subscription status
117123
/// </summary>
118-
private async void RefreshFeedSubStatus ()
124+
private async Task RefreshFeedSubStatus ()
119125
{
120126
string id = _feed.MongoID;
121127
string token = await SecureStorage.GetAsync(AppConstant.NotificationToken);

0 commit comments

Comments
 (0)