feat: Implement Android keystore setup for secure signing in release builds and update documentation for local and CI/CD environments

This commit is contained in:
Achintha Isuru
2026-02-28 22:32:54 -05:00
parent 7c701ded5f
commit 1ab5ba2e6f
14 changed files with 190 additions and 60 deletions

View File

@@ -339,7 +339,6 @@ class AuthRepositoryImpl implements AuthRepositoryInterface {
Future<void> signOut() async {
try {
await _service.auth.signOut();
dc.ClientSessionStore.instance.clear();
_service.clearCache();
} catch (e) {
throw Exception('Error signing out: ${e.toString()}');

View File

@@ -3,8 +3,8 @@ import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_core/core.dart';
import 'package:krow_domain/krow_domain.dart';
import '../blocs/tax_forms/tax_forms_cubit.dart';
import '../blocs/tax_forms/tax_forms_state.dart';
@@ -14,39 +14,10 @@ class TaxFormsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: UiColors.primary,
elevation: 0,
leading: IconButton(
icon: const Icon(UiIcons.arrowLeft, color: UiColors.bgPopup),
onPressed: () => Modular.to.popSafe(),
),
title: Text(
'Tax Documents',
style: UiTypography.headline3m.textSecondary,
),
bottom: PreferredSize(
preferredSize: const Size.fromHeight(24),
child: Padding(
padding: const EdgeInsets.only(
left: UiConstants.space5,
right: UiConstants.space5,
bottom: UiConstants.space5,
),
child: Row(
children: <Widget>[
Expanded(
child: Text(
'Complete required forms to start working',
style: UiTypography.body3r.copyWith(
color: UiColors.primaryForeground.withValues(alpha: 0.8),
),
),
),
],
),
),
),
appBar: const UiAppBar(
title: 'Tax Documents',
subtitle: 'Complete required forms to start working',
showBackButton: true,
),
body: BlocProvider<TaxFormsCubit>(
create: (BuildContext context) {
@@ -84,7 +55,7 @@ class TaxFormsPage extends StatelessWidget {
vertical: UiConstants.space6,
),
child: Column(
spacing: UiConstants.space6,
spacing: UiConstants.space4,
children: <Widget>[
_buildProgressOverview(state.forms),
...state.forms.map(

View File

@@ -351,14 +351,13 @@ class _FileTypesBanner extends StatelessWidget {
vertical: UiConstants.space3,
),
decoration: BoxDecoration(
color: UiColors.tagActive,
color: UiColors.primary.withAlpha(20),
borderRadius: BorderRadius.circular(UiConstants.radiusBase),
border: Border.all(color: UiColors.primary.withValues(alpha: 0.3)),
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Icon(UiIcons.info, size: 20, color: UiColors.primary),
const Icon(UiIcons.info, size: 20, color: UiColors.primary),
const SizedBox(width: UiConstants.space3),
Expanded(
child: Text(message, style: UiTypography.body2r.textSecondary),