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
Binary file removed mobile/assets/images/buzz-icon.png
Binary file not shown.
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.
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.
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.
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.
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.
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/bee_refresh_indicator.dart';
import '../../shared/widgets/brand_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 = BeeRefreshIndicator(
body = BrandRefreshIndicator(
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 BeeRefreshIndicator(
return BrandRefreshIndicator(
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/bee_refresh_indicator.dart';
import '../../shared/widgets/brand_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()
: BeeRefreshIndicator(
: BrandRefreshIndicator(
edgeOffset: barHeight,
onRefresh: onRefresh,
child: CustomScrollView(
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/bee_refresh_indicator.dart';
import '../../shared/widgets/brand_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 BeeRefreshIndicator(
return BrandRefreshIndicator(
onRefresh: () async {
ref.invalidate(forumPostsProvider(channel.id));
await ref.read(forumPostsProvider(channel.id).future);
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/bee_refresh_indicator.dart';
import '../../shared/widgets/brand_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: BeeRefreshIndicator(
child: BrandRefreshIndicator(
onRefresh: () async => _refresh(ref, active.value, currentPubkey),
child: _PulseBody(
tab: active.value,
Expand Down
30 changes: 25 additions & 5 deletions mobile/lib/shared/theme/theme_catalog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,33 @@ class ThemeColors {

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

/// 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(' ');
/// 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(' ');
}

/// 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: 3 additions & 0 deletions mobile/lib/shared/theme/theme_pairs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ 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 = 'Buzz';
const defaultSchemeDisplayName = '5dive';

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