Skip to content

Commit

Permalink
show changelog in settings and on new release
Browse files Browse the repository at this point in the history
  • Loading branch information
maheshj01 committed Jan 3, 2024
1 parent 1fee329 commit a793502
Show file tree
Hide file tree
Showing 12 changed files with 390 additions and 26 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
### 0.7.8+30 January 01, 2024

- Add Handsfree mode in explore
- Add ability to switch to classic mode
- User can now delete their account under edit profile
- Minor UI fixes and improvements

### 0.7.7+29 Sep 19, 2023

Expand Down
179 changes: 179 additions & 0 deletions assets/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
### 0.7.8+30 January 01, 2024

- Add Handsfree mode in explore
- Add ability to switch to classic mode
- User can now delete their account under edit profile
- Minor UI fixes and improvements

### 0.7.7+29 Sep 19, 2023

- Minor Fixes and Improvements

### 0.7.6+28 August 18, 2023

- Fix Web view (Desktop) UI
- Add collections support for web
- Fix minor UI issues

### 0.7.5+27 August 05, 2023

- New look for entire app with Ultra Gradients and Glassmorphism
- Minor UI fixes and improvements

### 0.7.0+26 August 05, 2023

- Adds support for custom word collections Partially fixes [Issue 38](https://github.com/maheshmnj/vocabhub/issues/38)
- Pin words on the Dashboard
- Show notification time in user's timezone
- Initialize IOS notifications
- Show My Collections on Profile
- Minor UI tweaks on Profile page

### 0.6.2+25 August 01, 2023

- Improve onboarding Animation
- Add push notifications for word of the day, new words
- Add ability to turn off push notifications

### 0.6.1+24 July 30, 2023

- Adds support for push notifications

### 0.6.0+23 July 25, 2023

- Edit History is now transparent and public
- Fix Responsiveness on desktop
- Save unpublished word to drafts
- Load word from drafts
- Add Granular Difference visualizer for word edits

### 0.5.9+22 July 21, 2023

- Fix onboarding page
- And adds basic integration tests
- Fix app blocked at splashscreen when offline

### 0.5.8+21 July 19, 2023

- Make User Profile publicly visible
- Add ability to see my past bug reports
- Add User onboarding

### 0.5.7+20 July 16, 2023

- Use RiverPod for user state management
- Fix login state maintain

### 0.5.6+19 July 04, 2023

- Swipe up to see more words in explore page
- Search Page now shows words by alphabets

### 0.5.5+18 July 04, 2023

- Fixes:[https://github.com/maheshmnj/vocabhub/issues/30](Issue: 30) word of the day publish logic.

### 0.5.4+17 July 02, 2023

- Tap explore tab to scroll to top
- fix Word detail and explore UI overflow

### 0.5.3+16 Jun 25, 2023

- Load explore when offline.
- hadle network error for profile page
- Fetch words from local storage when offline

### 0.5.2+15 Jun 21, 2023

- Fix workflow Keys not passed to build release.

### 0.5.1+14 Jun 11, 2023

- Improve explore page logic for new words
- Add setting to hide/unhide words in explore page.
- Get Notified for word of the day

### 0.5.0+13 Jun 11, 2023

- Migrate app and components to Material 3.0
- Add support for changing theme
- Adds support for dark mode
- Refactor search implementation
- Adds Ask for user rating on Play Store

### 0.4.2+12 May 28, 2023

- Fix minor issues

### 0.4.1+11 May 22, 2023

- Fix: Google sign In fails [Issue 23](https://github.com/maheshmnj/vocabhub/issues/23)
- Skip signin banner

### 0.4.0 (11)

- Fix: [Issue 11](https://github.com/maheshmnj/vocabhub/issues/11)
- Redesigned public release with minimal features

### 0.3.4 (9)

- Internal Release (redesigned)

### 0.3.4

- Adds Google Sign in support
- edits restricted to signed-in users

### 0.3.3

- Add dark mode animation

### 0.3.2

- fix drawer navigation
- Improve Appbar layout for tablet

### 0.3.1

- Shuffle word list
- adds support for mnemonics
- Improve color theme
- fix minor UI issues

### 0.3.0

- Adds Edit Mode feature
- Improved consistency across mobile and web.

### 0.2.3

- Adds Analytics for better stats.
- minor fixes

### 0.2.2

- Maintain Dark mode state
- Show total number of words.

### 0.2.1

- Add Drawer and app bar
- Add Example sentences
- Change color scheme to green

### 0.2.0

- Improve color schemes
- Add text animation
- Improve responsiveness
- Improved search.

### 0.1.2

- Add dark mode
- improve minor bugs

### 0.1.1

- Initial functional app
2 changes: 1 addition & 1 deletion ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1300;
LastUpgradeCheck = 1430;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1430"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
26 changes: 21 additions & 5 deletions lib/base_home.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:io';

import 'package:firebase_remote_config/firebase_remote_config.dart';
import 'package:flutter/foundation.dart';
Expand All @@ -19,6 +20,7 @@ import 'package:vocabhub/services/appstate.dart';
import 'package:vocabhub/services/services.dart';
import 'package:vocabhub/utils/utility.dart';
import 'package:vocabhub/utils/utils.dart';
import 'package:vocabhub/widgets/whats_new.dart';
import 'package:vocabhub/widgets/widgets.dart';

import 'pages/notifications/notifications.dart';
Expand Down Expand Up @@ -69,9 +71,12 @@ class _AdaptiveLayoutState extends ConsumerState<AdaptiveLayout> {
return;
}
try {
final appController = ref.read(appProvider);

final packageInfo = await PackageInfo.fromPlatform();
final String appVersion = packageInfo.version;
final int appBuildNumber = int.parse(packageInfo.buildNumber);

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
Expand All @@ -80,7 +85,9 @@ class _AdaptiveLayoutState extends ConsumerState<AdaptiveLayout> {
await remoteConfig.fetchAndActivate();
final version = remoteConfig.getString('${Constants.VERSION_KEY}');
final buildNumber = remoteConfig.getInt('${Constants.BUILD_NUMBER_KEY}');
final appController = ref.watch(appProvider);

final oldVersion = appController.version.split(' ')[0];
final oldBuildNumber = int.parse(appController.version.split(' ')[1]);
if (appVersion != version || buildNumber > appBuildNumber) {
ref
.read(appProvider.notifier)
Expand All @@ -90,9 +97,18 @@ class _AdaptiveLayoutState extends ConsumerState<AdaptiveLayout> {
launchUrl(Uri.parse(Constants.PLAY_STORE_URL), mode: LaunchMode.externalApplication);
});
} else {
ref
.read(appProvider.notifier)
.copyWith(appController.copyWith(showFAB: true, extended: true, hasUpdate: false));
if (oldVersion != version || oldBuildNumber < buildNumber) {
Navigate.push(
context,
WhatsNew(),
transitionType: TransitionType.btt,
);
ref.read(appProvider.notifier).copyWith(appController.copyWith(
showFAB: true,
extended: true,
hasUpdate: false,
version: '$appVersion $appBuildNumber'));
}
}
} catch (_) {
setState(() {});
Expand All @@ -116,7 +132,7 @@ class _AdaptiveLayoutState extends ConsumerState<AdaptiveLayout> {
WidgetsBinding.instance.addPostFrameCallback((_) {
NavbarNotifier.showSnackBar(context, message,
actionLabel: action,
bottom: 50,
bottom: Platform.isIOS ? 50 : kNavbarHeight * 1.2,
onActionPressed: onActionPressed,
duration: persist ? Duration(days: 1) : Duration(seconds: 3), onClosed: () {
if (mounted) {
Expand Down
32 changes: 23 additions & 9 deletions lib/controller/app_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,29 @@ class AppController {
final bool showFAB;
final bool extended;
final bool hasUpdate;
final String version;

AppController({
this.index = 0,
this.showFAB = true,
this.extended = true,
this.hasUpdate = false,
this.version = '1.0.0 1',
});

AppController copyWith({
int? index,
bool? showFAB,
bool? extended,
bool? hasUpdate,
String? version,
}) {
return AppController(
index: index ?? this.index,
showFAB: showFAB ?? this.showFAB,
extended: extended ?? this.extended,
hasUpdate: hasUpdate ?? this.hasUpdate,
version: version ?? this.version,
);
}

Expand All @@ -38,7 +42,7 @@ class AppController {
result.addAll({'showFAB': showFAB});
result.addAll({'extended': extended});
result.addAll({'hasUpdate': hasUpdate});

result.addAll({'version': version});
return result;
}

Expand All @@ -48,6 +52,7 @@ class AppController {
showFAB: map['showFAB'] ?? false,
extended: map['extended'] ?? false,
hasUpdate: map['hasUpdate'] ?? false,
version: map['version'] ?? '1.0.0 1',
);
}

Expand All @@ -57,7 +62,7 @@ class AppController {

@override
String toString() {
return 'AppController(index: $index, showFAB: $showFAB, extended: $extended, hasUpdate: $hasUpdate)';
return 'AppController(index: $index, showFAB: $showFAB, extended: $extended, hasUpdate: $hasUpdate, version: $version)';
}

@override
Expand All @@ -68,12 +73,17 @@ class AppController {
other.index == index &&
other.showFAB == showFAB &&
other.extended == extended &&
other.hasUpdate == hasUpdate;
other.hasUpdate == hasUpdate &&
other.version == version;
}

@override
int get hashCode {
return index.hashCode ^ showFAB.hashCode ^ extended.hashCode ^ hasUpdate.hashCode;
return index.hashCode ^
showFAB.hashCode ^
extended.hashCode ^
hasUpdate.hashCode ^
version.hashCode;
}
}

Expand All @@ -96,12 +106,16 @@ class AppNotifier extends StateNotifier<AppController> {
state = state.copyWith(hasUpdate: update);
}

void setVersion(String version) {
state = state.copyWith(version: version);
}

void copyWith(AppController appController) {
state = state.copyWith(
index: appController.index,
showFAB: appController.showFAB,
extended: appController.extended,
hasUpdate: appController.hasUpdate
);
index: appController.index,
showFAB: appController.showFAB,
extended: appController.extended,
hasUpdate: appController.hasUpdate,
version: appController.version);
}
}
2 changes: 2 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import 'package:vocabhub/themes/theme_utils.dart';
import 'package:vocabhub/themes/vocabtheme_controller.dart';
import 'package:vocabhub/utils/firebase_options.dart';
import 'package:vocabhub/utils/logger.dart';
import 'package:vocabhub/widgets/whats_new.dart';

import 'constants/constants.dart';

Expand Down Expand Up @@ -220,6 +221,7 @@ class _VocabAppState extends ConsumerState<VocabApp> {
AboutVocabhub.route: (context) => AboutVocabhub(),
SettingsPage.route: (context) => SettingsPage(),
ViewBugReports.route: (context) => ViewBugReports(),
WhatsNew.route: (context) => WhatsNew(),
},
themeMode: appThemeController.isDark ? ThemeMode.dark : ThemeMode.light,
home: SplashScreen(),
Expand Down
Loading

0 comments on commit a793502

Please sign in to comment.