Skip to content

Commit

Permalink
Empty state recording in progress wrapper fix
Browse files Browse the repository at this point in the history
  • Loading branch information
josancamon19 committed Sep 15, 2024
1 parent 7d1410b commit 47d6161
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 57 deletions.
2 changes: 1 addition & 1 deletion app/lib/pages/capture/_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ class CapturePageState extends State<CapturePage> with AutomaticKeepAliveClientM
SnackBar(
content: Text(
error,
style: TextStyle(color: Colors.white, fontSize: 14),
style: const TextStyle(color: Colors.white, fontSize: 14),
),
),
);
Expand Down
7 changes: 4 additions & 3 deletions app/lib/pages/capture/widgets/widgets.dart
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@ speechProfileWidget(BuildContext context) {
await routeToPage(context, const SpeakerIdPage());
if (hasSpeakerProfile != SharedPreferencesUtil().hasSpeakerProfile) {
if (context.mounted) {
// TODO: is the websocket restarting once the user comes back?
context.read<DeviceProvider>().restartWebSocket();
}
}
Expand All @@ -227,7 +228,7 @@ speechProfileWidget(BuildContext context) {
color: Colors.grey.shade900,
borderRadius: const BorderRadius.all(Radius.circular(12)),
),
margin: const EdgeInsets.symmetric(vertical: 16, horizontal: 24),
margin: const EdgeInsets.fromLTRB(16, 0, 16, 16),
padding: const EdgeInsets.all(16),
child: const Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
Expand All @@ -238,7 +239,7 @@ speechProfileWidget(BuildContext context) {
Icon(Icons.multitrack_audio),
SizedBox(width: 16),
Text(
'Set up speech profile',
'Teach Omi your voice',
style: TextStyle(color: Colors.white, fontSize: 16),
),
],
Expand All @@ -260,7 +261,7 @@ speechProfileWidget(BuildContext context) {
),
],
)
: const SizedBox(height: 16);
: const SizedBox(height: 0);
}

getTranscriptWidget(
Expand Down
6 changes: 5 additions & 1 deletion app/lib/pages/home/page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,11 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker
Row(
children: [
Consumer2<MemoryProvider, HomeProvider>(builder: (context, memoryProvider, home, child) {
if (home.selectedIndex != 0) return const SizedBox.shrink();
if (home.selectedIndex != 0 ||
!memoryProvider.hasNonDiscardedMemories ||
memoryProvider.isLoadingMemories) {
return const SizedBox.shrink();
}
return IconButton(
onPressed: memoryProvider.toggleDiscardMemories,
icon: Icon(
Expand Down
11 changes: 3 additions & 8 deletions app/lib/pages/memories/page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,12 @@ import 'package:flutter/material.dart';
import 'package:friend_private/backend/preferences.dart';
import 'package:friend_private/backend/schema/memory.dart';
import 'package:friend_private/pages/capture/location_service.dart';
import 'package:friend_private/pages/capture/widgets/widgets.dart';
import 'package:friend_private/pages/memories/widgets/date_list_item.dart';
import 'package:friend_private/pages/memories/widgets/processing_capture.dart';
import 'package:friend_private/providers/home_provider.dart';
import 'package:friend_private/providers/memory_provider.dart';
import 'package:friend_private/utils/analytics/growthbook.dart';
import 'package:friend_private/utils/analytics/mixpanel.dart';
import 'package:friend_private/widgets/dialog.dart';
import 'package:gradient_borders/box_borders/gradient_box_border.dart';
import 'package:location/location.dart';
import 'package:provider/provider.dart';
import 'package:visibility_detector/visibility_detector.dart';
Expand All @@ -18,9 +16,7 @@ import 'widgets/empty_memories.dart';
import 'widgets/memory_list_item.dart';

class MemoriesPage extends StatefulWidget {
const MemoriesPage({
super.key,
});
const MemoriesPage({super.key});

@override
State<MemoriesPage> createState() => _MemoriesPageState();
Expand Down Expand Up @@ -102,8 +98,6 @@ class _MemoriesPageState extends State<MemoriesPage> with AutomaticKeepAliveClie
print('building memories page');
super.build(context);
return Consumer<MemoryProvider>(builder: (context, memoryProvider, child) {
bool isEmpty = memoryProvider.memories.isEmpty && !memoryProvider.isLoadingMemories;
bool displaySearchBar = GrowthbookUtil().displayMemoriesSearchBar();
return RefreshIndicator(
backgroundColor: Colors.black,
color: Colors.white,
Expand All @@ -113,6 +107,7 @@ class _MemoriesPageState extends State<MemoriesPage> with AutomaticKeepAliveClie
child: CustomScrollView(
slivers: [
const SliverToBoxAdapter(child: SizedBox(height: 32)),
SliverToBoxAdapter(child: speechProfileWidget(context)),
SliverToBoxAdapter(child: getMemoryCaptureWidget()),
if (memoryProvider.memoriesWithDates.isEmpty && !memoryProvider.isLoadingMemories)
const SliverToBoxAdapter(
Expand Down
8 changes: 1 addition & 7 deletions app/lib/pages/memories/widgets/capture.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,21 @@ import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter_foreground_task/flutter_foreground_task.dart';
import 'package:flutter_provider_utilities/flutter_provider_utilities.dart';
import 'package:friend_private/backend/preferences.dart';
import 'package:friend_private/backend/schema/bt_device.dart';
import 'package:friend_private/backend/schema/geolocation.dart';
import 'package:friend_private/pages/capture/location_service.dart';
import 'package:friend_private/pages/capture/widgets/widgets.dart';
import 'package:friend_private/providers/capture_provider.dart';
import 'package:friend_private/providers/connectivity_provider.dart';
import 'package:friend_private/providers/device_provider.dart';
import 'package:friend_private/providers/onboarding_provider.dart';
import 'package:friend_private/providers/websocket_provider.dart';
import 'package:friend_private/services/services.dart';
import 'package:friend_private/utils/analytics/mixpanel.dart';
import 'package:friend_private/utils/audio/wav_bytes.dart';
import 'package:friend_private/widgets/dialog.dart';
import 'package:location/location.dart';
import 'package:provider/provider.dart';

class LiteCaptureWidget extends StatefulWidget {
const LiteCaptureWidget({
super.key,
});
const LiteCaptureWidget({super.key});

@override
State<LiteCaptureWidget> createState() => LiteCaptureWidgetState();
Expand Down
78 changes: 41 additions & 37 deletions app/lib/pages/memories/widgets/processing_capture.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,43 +32,47 @@ class _MemoryCaptureWidgetState extends State<MemoryCaptureWidget> {
builder: (context, provider, deviceProvider, connectivityProvider, child) {
var topMemoryId =
(provider.memoryProvider?.memories ?? []).isNotEmpty ? provider.memoryProvider!.memories.first.id : null;
return /*provider.memoryCreating ||
deviceProvider.connectedDevice != null ||
provider.recordingState == RecordingState.record
? */
GestureDetector(
onTap: () async {
if (provider.segments.isEmpty && provider.photos.isEmpty) return;
routeToPage(context, MemoryCapturingPage(topMemoryId: topMemoryId));
},
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 16),
width: double.maxFinite,
decoration: BoxDecoration(
color: Colors.grey.shade900,
borderRadius: BorderRadius.circular(16.0),
),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_getMemoryHeader(context),
provider.segments.isNotEmpty
? const Column(
children: [
SizedBox(height: 8),
LiteCaptureWidget(),
SizedBox(height: 8),
],
)
: const SizedBox.shrink(),
],
),
),
),
) /* : const SizedBox.shrink()*/;

bool showPhoneMic = deviceProvider.connectedDevice == null && !deviceProvider.isConnecting;
bool isConnected = deviceProvider.connectedDevice != null ||
provider.recordingState == RecordingState.record ||
(provider.memoryCreating && deviceProvider.connectedDevice != null);

return (showPhoneMic || isConnected)
? GestureDetector(
onTap: () async {
if (provider.segments.isEmpty && provider.photos.isEmpty) return;
routeToPage(context, MemoryCapturingPage(topMemoryId: topMemoryId));
},
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 16),
width: double.maxFinite,
decoration: BoxDecoration(
color: Colors.grey.shade900,
borderRadius: BorderRadius.circular(16.0),
),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_getMemoryHeader(context),
provider.segments.isNotEmpty
? const Column(
children: [
SizedBox(height: 8),
LiteCaptureWidget(),
SizedBox(height: 8),
],
)
: const SizedBox.shrink(),
],
),
),
),
)
: const SizedBox.shrink();
});
}

Expand Down
1 change: 1 addition & 0 deletions app/lib/providers/connectivity_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class ConnectivityProvider extends ChangeNotifier {
final InternetConnection _internetConnection = InternetConnection();

bool get isConnected => _isConnected;

bool get previousConnection => _previousConnection;

ConnectivityProvider() {
Expand Down

0 comments on commit 47d6161

Please sign in to comment.