Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 0 additions & 56 deletions .github/workflows/sideload-apk.yml

This file was deleted.

2 changes: 1 addition & 1 deletion mobile/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ cd mobile && flutter run

Debug builds produced from a git worktree get a unique app identifier keyed
to the **worktree directory name** (`com.buzz.buzzMobile.<slug>` on iOS,
`com.fivedive.app.<slug>` on Android) plus a display-only branch label
`xyz.block.buzz.mobile.<slug>` on Android) plus a display-only branch label
in the app name (`Buzz (my-branch)`, or a short SHA when the worktree is
detached). Because the identifier follows the directory rather than the
branch, one worktree keeps exactly one installed app — and its login state —
Expand Down
6 changes: 3 additions & 3 deletions mobile/android/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -83,15 +83,15 @@ android {
}

defaultConfig {
applicationId = "com.fivedive.app"
applicationId = "xyz.block.buzz.mobile"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
resValue("string", "app_name", "5dive")
resValue("string", "app_name", "Buzz")
}

signingConfigs {
Expand All @@ -113,7 +113,7 @@ android {
applicationIdSuffix = worktreeIdSuffix
}
if (worktreeLabel != null) {
resValue("string", "app_name", "5dive ($worktreeLabel)")
resValue("string", "app_name", "Buzz ($worktreeLabel)")
}
}
release {
Expand Down
Binary file modified mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-hdpi/launch_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-mdpi/launch_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-xhdpi/launch_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-xxhdpi/launch_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified mobile/android/app/src/main/res/mipmap-xxxhdpi/launch_image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#1A1A1F</color>
<color name="ic_launcher_background">#000</color>
</resources>
Binary file removed mobile/assets/images/5dive-mark.png
Binary file not shown.
Binary file added mobile/assets/images/buzz-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion mobile/ios/Flutter/Debug.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// `mobile/ios/Flutter/AppOverrides.xcconfig` containing
// `BUNDLE_IDENTIFIER = your.app.id` (gitignored).
BUNDLE_IDENTIFIER = com.buzz.buzzMobile
APP_DISPLAY_NAME = 5dive
APP_DISPLAY_NAME = Buzz

// Worktree-aware debug identity (gitignored, written by
// scripts/mobile-worktree-overrides.sh): a per-worktree bundle identifier
Expand Down
2 changes: 1 addition & 1 deletion mobile/ios/Flutter/Release.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// enterprise-signed distribution) override these without patching tracked
// files by writing `mobile/ios/Flutter/AppOverrides.xcconfig` (gitignored).
BUNDLE_IDENTIFIER = com.buzz.buzzMobile
APP_DISPLAY_NAME = 5dive
APP_DISPLAY_NAME = Buzz
CODE_SIGN_STYLE = Automatic
CODE_SIGN_IDENTITY = iPhone Developer
#include? "AppOverrides.xcconfig"
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion mobile/ios/Runner/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>5dive</string>
<string>Buzz</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ class App extends HookConsumerWidget {
});

return MaterialApp(
title: '5dive',
title: 'Buzz',
theme: AppTheme.light(
colorScheme: lightScheme,
topSectionGradient: buzzLightGradient,
Expand Down Expand Up @@ -162,7 +162,7 @@ class _SplashScreen extends StatelessWidget {
Widget build(BuildContext context) {
return const Scaffold(
body: Center(
child: BuzzLoadingIndicator(size: 56, semanticLabel: 'Starting 5dive'),
child: BuzzLoadingIndicator(size: 56, semanticLabel: 'Starting Buzz'),
),
);
}
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/features/activity/activity_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import '../../shared/theme/theme.dart';
import '../../shared/utils/string_utils.dart';
import '../../shared/widgets/avatar_image.dart';
import '../../shared/widgets/anchored_popover_menu.dart';
import '../../shared/widgets/brand_refresh_indicator.dart';
import '../../shared/widgets/bee_refresh_indicator.dart';
import '../../shared/widgets/buzz_loading_indicator.dart';
import '../../shared/widgets/frosted_app_bar.dart';
import '../../shared/widgets/frosted_scaffold.dart';
Expand Down Expand Up @@ -318,7 +318,7 @@ class ActivityPage extends HookConsumerWidget {
: -1;

bodyRidesOverTopSection = true;
body = BrandRefreshIndicator(
body = BeeRefreshIndicator(
edgeOffset: topSectionHeight,
onRefresh: refresh,
child: CustomScrollView(
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/features/activity/activity_page/lists.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class _RemindersList extends ConsumerWidget {
}

final now = DateTime.now().millisecondsSinceEpoch ~/ 1000;
return BrandRefreshIndicator(
return BeeRefreshIndicator(
onRefresh: onRefresh,
child: ListView.builder(
controller: scrollController,
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/features/channels/channels_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import '../../shared/relay/relay.dart';
import '../../shared/theme/theme.dart';
import '../../shared/widgets/avatar_image.dart';
import '../../shared/widgets/anchored_popover_menu.dart';
import '../../shared/widgets/brand_refresh_indicator.dart';
import '../../shared/widgets/bee_refresh_indicator.dart';
import '../../shared/widgets/buzz_loading_indicator.dart';
import '../../shared/widgets/buzz_titled_sheet_layout.dart';
import '../../shared/widgets/frosted_app_bar.dart';
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/features/channels/channels_page/body.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class _ChannelsBody extends StatelessWidget {
)
: loadedChannels == null
? const SizedBox.shrink()
: BrandRefreshIndicator(
: BeeRefreshIndicator(
edgeOffset: barHeight,
onRefresh: onRefresh,
child: CustomScrollView(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ String _cameraErrorMessage(Object error) {
return switch (error.code) {
'CameraAccessDenied' ||
'CameraAccessDeniedWithoutPrompt' ||
'CameraAccessRestricted' => 'Camera access is turned off for 5dive.',
'CameraAccessRestricted' => 'Camera access is turned off for Buzz.',
'no-cameras' => 'Camera isn’t available on this device.',
_ => 'Camera couldn’t start. Try again.',
};
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/features/channels/photo_library.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class PhotoLibraryAccessException implements Exception {
const PhotoLibraryAccessException();

@override
String toString() => 'Photo access is turned off for 5dive.';
String toString() => 'Photo access is turned off for Buzz.';
}

/// Provides the device photo library. Tests can override this with fixtures.
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/features/forum/forum_posts_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import 'package:lucide_icons_flutter/lucide_icons.dart';
import '../../shared/theme/theme.dart';
import '../../shared/widgets/buzz_loading_indicator.dart';
import '../../shared/widgets/frosted_app_bar.dart';
import '../../shared/widgets/brand_refresh_indicator.dart';
import '../../shared/widgets/bee_refresh_indicator.dart';
import '../channels/channel.dart';
import '../channels/compose_bar.dart';
import 'forum_models.dart';
Expand Down Expand Up @@ -93,7 +93,7 @@ class ForumPostsView extends HookConsumerWidget {
isArchived: channel.isArchived,
);
}
return BrandRefreshIndicator(
return BeeRefreshIndicator(
onRefresh: () async {
ref.invalidate(forumPostsProvider(channel.id));
await ref.read(forumPostsProvider(channel.id).future);
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/features/invites/invite_join_sheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class InviteJoinSheet extends ConsumerWidget {
Icon(LucideIcons.userPlus, size: 40, color: context.colors.primary),
const SizedBox(height: Grid.sm),
Text(
'Join this 5dive community?',
'Join this Buzz community?',
style: context.textTheme.titleLarge,
),
const SizedBox(height: Grid.xxs),
Expand Down
6 changes: 3 additions & 3 deletions mobile/lib/features/pairing/pairing_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import 'package:lucide_icons_flutter/lucide_icons.dart';
import '../../shared/security/sensitive_action_authorizer.dart';
import '../../shared/theme/theme.dart';
import '../../shared/widgets/buzz_loading_indicator.dart';
import '../../shared/widgets/fivedive_mark.dart';
import '../../shared/widgets/tappable_flapping_bee.dart';
import 'pairing_provider.dart';
import 'pairing_qr_scanner.dart';

Expand Down Expand Up @@ -279,8 +279,8 @@ class _SasVerificationView extends StatelessWidget {

Text(
sendsIdentityToDesktop
? 'This sends your full 5dive identity to the desktop\nand grants it permanent access. Only confirm a\ndesktop you trust and a recovery you started.'
: 'You are about to transfer your 5dive identity\nto this device. Only confirm if you initiated\nthis pairing from your desktop.',
? 'This sends your full Buzz identity to the desktop\nand grants it permanent access. Only confirm a\ndesktop you trust and a recovery you started.'
: 'You are about to transfer your Buzz identity\nto this device. Only confirm if you initiated\nthis pairing from your desktop.',
textAlign: TextAlign.center,
style: context.textTheme.bodySmall?.copyWith(
color: context.colors.onSurfaceVariant,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,14 @@ class _PairingWelcomeView extends StatelessWidget {
shape: BoxShape.circle,
color: Color(0x4DFFFFFF),
),
child: const FiveDiveMark(height: 72, color: _onboardingInk),
child: const TappableFlappingBee(
width: 76,
color: _onboardingInk,
),
),
const SizedBox(height: Grid.sm),
Text(
'Welcome to 5dive',
'Welcome to Buzz',
textAlign: TextAlign.center,
style: context.textTheme.headlineSmall?.copyWith(
color: _onboardingInk,
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/features/pulse/pulse_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:lucide_icons_flutter/lucide_icons.dart';
import '../../shared/relay/relay.dart';
import '../../shared/theme/theme.dart';
import '../../shared/widgets/filter_chip_bar.dart';
import '../../shared/widgets/brand_refresh_indicator.dart';
import '../../shared/widgets/bee_refresh_indicator.dart';
import '../../shared/widgets/frosted_app_bar.dart';
import '../../shared/widgets/frosted_scaffold.dart';
import 'agent_activity_card.dart';
Expand Down Expand Up @@ -100,7 +100,7 @@ class PulsePage extends HookConsumerWidget {
],
),
Expanded(
child: BrandRefreshIndicator(
child: BeeRefreshIndicator(
onRefresh: () async => _refresh(ref, active.value, currentPubkey),
child: _PulseBody(
tab: active.value,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class _ConnectionSection extends ConsumerWidget {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'5dive did not return to the foreground. Try again.',
'Buzz did not return to the foreground. Try again.',
),
),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class LocalSensitiveActionAuthorizer implements SensitiveActionAuthorizer {
Future<DeviceAuthResult> authorizeIdentityAction({
required bool biometricOnly,
}) => _authorize(
localizedReason: 'Confirm sending your 5dive identity to desktop',
localizedReason: 'Confirm sending your Buzz identity to desktop',
biometricOnly: biometricOnly,
);

Expand Down
30 changes: 5 additions & 25 deletions mobile/lib/shared/theme/theme_catalog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,33 +24,13 @@ class ThemeColors {

bool get isDark => bg.computeLuminance() < 0.5;

/// Human-readable display name: 'catppuccin-mocha' → 'Catppuccin Mocha',
/// unless [themeDisplayNameOverrides] renames it.
String get displayName =>
themeDisplayNameOverrides[name] ??
name
.split('-')
.map(
(w) => w.isNotEmpty ? '${w[0].toUpperCase()}${w.substring(1)}' : w,
)
.join(' ');
/// Human-readable display name: 'catppuccin-mocha' → 'Catppuccin Mocha'.
String get displayName => name
.split('-')
.map((w) => w.isNotEmpty ? '${w[0].toUpperCase()}${w.substring(1)}' : w)
.join(' ');
}

/// Labels for themes whose display name does not follow from their key.
///
/// The first-party pair is persisted AND published to the community relay,
/// where Buzz Desktop reads it back (`community_theme_preference.dart`; the
/// desktop catalog in `desktop/src/shared/theme/theme-loader.ts` holds the same
/// 'buzz' key and rejects a preference naming a theme it does not know). The
/// wire key therefore cannot be renamed from the mobile client alone. The
/// label is overridden here instead — the one place both
/// [ThemeColors.displayName] and `pairedThemeLabel` read, so the picker never
/// shows two names for one palette.
const themeDisplayNameOverrides = <String, String>{
'buzz': '5dive',
'buzz-dark': '5dive Dark',
};

/// Known light theme names — used to show sun/moon icons before loading.
const lightThemeNames = <String>{
'buzz',
Expand Down
3 changes: 0 additions & 3 deletions mobile/lib/shared/theme/theme_pairs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,6 @@ const _modeTokens = <String>{
/// mode-specific tokens so `github-light` reads as "Github" and stands for both
/// halves. Mirrors desktop's `pairedThemeLabel`.
String pairedThemeLabel(String lightName) {
final override = themeDisplayNameOverrides[lightName];
if (override != null) return override;

final stripped = lightName
.split('-')
.where((token) => !_modeTokens.contains(token))
Expand Down
2 changes: 1 addition & 1 deletion mobile/lib/shared/theme/theme_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const _schemeKey = 'buzz_color_scheme';
/// Buzz ships as the default: the first-party pair, so a fresh install gets the
/// branded top-section gradient without picking a theme first.
const defaultSchemeName = buzzThemeName;
const defaultSchemeDisplayName = '5dive';
const defaultSchemeDisplayName = 'Buzz';

/// Pre-loaded SharedPreferences instance, overridden in main().
final savedPrefsProvider = Provider<SharedPreferences>(
Expand Down
Loading
Loading