Skip to content

Commit

Permalink
Release 1.5.0 merge commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
ybeshkarov authored Dec 31, 2024
2 parents 2720dd5 + c99ca67 commit 722cc30
Show file tree
Hide file tree
Showing 81 changed files with 2,793 additions and 1,479 deletions.
24 changes: 12 additions & 12 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
PODS:
- app_links (0.0.2):
- Flutter
- device_info_plus (0.0.1):
- Flutter
- Firebase/CoreOnly (11.2.0):
Expand Down Expand Up @@ -34,8 +36,6 @@ PODS:
- GoogleUtilities/UserDefaults (~> 8.0)
- nanopb (~> 3.30910.0)
- Flutter (1.0.0)
- flutter_app_badger (1.3.0):
- Flutter
- flutter_inappwebview_ios (0.0.1):
- Flutter
- flutter_inappwebview_ios/Core (= 0.0.1)
Expand All @@ -45,6 +45,8 @@ PODS:
- OrderedSet (~> 6.0.3)
- flutter_local_notifications (0.0.1):
- Flutter
- flutter_new_badger (0.0.1):
- Flutter
- flutter_secure_storage (6.0.0):
- Flutter
- geolocator_apple (1.2.0):
Expand Down Expand Up @@ -94,26 +96,24 @@ PODS:
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- uni_links (0.0.1):
- Flutter
- url_launcher_ios (0.0.1):
- Flutter

DEPENDENCIES:
- app_links (from `.symlinks/plugins/app_links/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`)
- flutter_app_badger (from `.symlinks/plugins/flutter_app_badger/ios`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_new_badger (from `.symlinks/plugins/flutter_new_badger/ios`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- geolocator_apple (from `.symlinks/plugins/geolocator_apple/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`)
- uni_links (from `.symlinks/plugins/uni_links/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)

SPEC REPOS:
Expand All @@ -131,6 +131,8 @@ SPEC REPOS:
- PromisesObjC

EXTERNAL SOURCES:
app_links:
:path: ".symlinks/plugins/app_links/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
firebase_core:
Expand All @@ -139,12 +141,12 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/firebase_messaging/ios"
Flutter:
:path: Flutter
flutter_app_badger:
:path: ".symlinks/plugins/flutter_app_badger/ios"
flutter_inappwebview_ios:
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_new_badger:
:path: ".symlinks/plugins/flutter_new_badger/ios"
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
geolocator_apple:
Expand All @@ -157,12 +159,11 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
qr_code_scanner:
:path: ".symlinks/plugins/qr_code_scanner/ios"
uni_links:
:path: ".symlinks/plugins/uni_links/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"

SPEC CHECKSUMS:
app_links: e7a6750a915a9e161c58d91bc610e8cd1d4d0ad0
device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d
Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c
firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af
Expand All @@ -172,9 +173,9 @@ SPEC CHECKSUMS:
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_app_badger: b87fc231847b03b92ce1412aa351842e7e97932f
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_new_badger: e632df3f84b5bbd7f3b37b8122f105edf1b483b3
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
geolocator_apple: 6cbaf322953988e009e5ecb481f07efece75c450
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
Expand All @@ -187,7 +188,6 @@ SPEC CHECKSUMS:
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe

PODFILE CHECKSUM: 8a4b2eabe1a99180e46baba5a37492de09c643c4
Expand Down
2 changes: 2 additions & 0 deletions ios/Runner/Info-Debug.plist
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,7 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ios/Runner/Info-Release.plist
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,7 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
</dict>
</plist>
11 changes: 9 additions & 2 deletions lib/config/routes/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ import 'package:thingsboard_app/modules/customer/customer_routes.dart';
import 'package:thingsboard_app/modules/dashboard/dashboard_routes.dart';
import 'package:thingsboard_app/modules/device/device_routes.dart';
import 'package:thingsboard_app/modules/home/home_routes.dart';
import 'package:thingsboard_app/modules/main/main_routes.dart';
import 'package:thingsboard_app/modules/more/more_routes.dart';
import 'package:thingsboard_app/modules/notification/routes/notification_routes.dart';
import 'package:thingsboard_app/modules/profile/profile_routes.dart';
import 'package:thingsboard_app/modules/tenant/tenant_routes.dart';
import 'package:thingsboard_app/modules/url/url_routes.dart';
import 'package:thingsboard_app/modules/version/route/version_route.dart';
import 'package:thingsboard_app/utils/ui_utils_routes.dart';

class ThingsboardAppRouter {
Expand All @@ -23,8 +26,9 @@ class ThingsboardAppRouter {

ThingsboardAppRouter() {
router.notFoundHandler = Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
var settings = context!.settings;
handlerFunc: (context, params) {
final settings = context!.settings;

return Scaffold(
appBar: AppBar(title: const Text('Not Found')),
body: Center(child: Text('Route not defined: ${settings!.name}')),
Expand All @@ -35,6 +39,7 @@ class ThingsboardAppRouter {
InitRoutes(_tbContext).registerRoutes();
AuthRoutes(_tbContext).registerRoutes();
UiUtilsRoutes(_tbContext).registerRoutes();
MainRoutes(_tbContext).registerRoutes();
HomeRoutes(_tbContext).registerRoutes();
ProfileRoutes(_tbContext).registerRoutes();
AssetRoutes(_tbContext).registerRoutes();
Expand All @@ -47,6 +52,8 @@ class ThingsboardAppRouter {
NotificationRoutes(_tbContext).registerRoutes();
UrlPageRoutes(_tbContext).registerRoutes();
NoAuthRoutes(_tbContext).registerRoutes();
MoreRoutes(_tbContext).registerRoutes();
VersionRoutes(_tbContext).registerRoutes();
}

TbContext get tbContext => _tbContext;
Expand Down
4 changes: 2 additions & 2 deletions lib/constants/app_constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ abstract class ThingsboardAppConstants {
static const thingsBoardApiEndpoint = 'http://localhost:8080';
static const thingsboardOAuth2CallbackUrlScheme = 'org.thingsboard.app.auth';

/// Not for production (only for debugging)
static const thingsboardOAuth2AppSecret = 'Your app secret here';
static const thingsboardIOSAppSecret = 'Your app secret here';
static const thingsboardAndroidAppSecret = 'Your app secret here';
}
63 changes: 63 additions & 0 deletions lib/core/auth/login/bloc/auth_bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:thingsboard_app/core/auth/login/bloc/bloc.dart';
import 'package:thingsboard_app/core/context/tb_context.dart';
import 'package:thingsboard_app/modules/version/route/version_route.dart';
import 'package:thingsboard_app/modules/version/route/version_route_arguments.dart';
import 'package:thingsboard_app/thingsboard_client.dart';

class AuthBloc extends Bloc<AuthEvent, AuthState> {
AuthBloc({
required this.tbClient,
required this.tbContext,
}) : super(const AuthLoadingState()) {
on(_onEvent);
}

final ThingsboardClient tbClient;
final TbContext tbContext;

Future<void> _onEvent(AuthEvent event, Emitter<AuthState> emit) async {
switch (event) {
case AuthFetchEvent():
try {
final loginInfo =
await tbClient.getMobileService().getLoginMobileInfo(
MobileInfoQuery(
packageName: event.packageName,
platformType: event.platformType,
),
);

if (loginInfo != null) {
final versionInfo = loginInfo.versionInfo;
if (versionInfo != null) {
if (tbContext.version.versionInt() <
(versionInfo.minVersion?.versionInt() ?? 0)) {
tbContext.navigateTo(
VersionRoutes.updateRequiredRoutePath,
clearStack: true,
replace: true,
routeSettings: RouteSettings(
arguments: VersionRouteArguments(
versionInfo: versionInfo,
storeInfo: loginInfo.storeInfo,
),
),
);
return;
}
}

emit(AuthDataState(oAuthClients: loginInfo.oAuth2Clients));
} else {
emit(const AuthDataState(oAuthClients: []));
}
} catch (_) {
emit(const AuthDataState(oAuthClients: []));
}

break;
}
}
}
22 changes: 22 additions & 0 deletions lib/core/auth/login/bloc/auth_events.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import 'package:equatable/equatable.dart';
import 'package:thingsboard_app/thingsboard_client.dart' show PlatformType;

sealed class AuthEvent extends Equatable {
const AuthEvent();

@override
List<Object?> get props => [];
}

final class AuthFetchEvent extends AuthEvent {
const AuthFetchEvent({
required this.packageName,
required this.platformType,
});

final String packageName;
final PlatformType platformType;

@override
List<Object?> get props => [packageName, platformType];
}
24 changes: 24 additions & 0 deletions lib/core/auth/login/bloc/auth_states.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import 'package:equatable/equatable.dart';
import 'package:thingsboard_app/thingsboard_client.dart' show OAuth2ClientInfo;

sealed class AuthState extends Equatable {
const AuthState();

@override
List<Object?> get props => [];
}

final class AuthLoadingState extends AuthState {
const AuthLoadingState();
}

final class AuthDataState extends AuthState {
const AuthDataState({
required this.oAuthClients,
});

final List<OAuth2ClientInfo> oAuthClients;

@override
List<Object?> get props => [oAuthClients];
}
3 changes: 3 additions & 0 deletions lib/core/auth/login/bloc/bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export 'auth_bloc.dart';
export 'auth_events.dart';
export 'auth_states.dart';
Loading

0 comments on commit 722cc30

Please sign in to comment.