Add ExportOptions.plist for App Store Connect configuration

- Created a new ExportOptions.plist file to define export settings for app distribution.
- Configured the plist with method, team ID, signing style, symbol upload option, and destination.
This commit is contained in:
Zach
2026-07-04 00:45:18 -07:00
parent 0f3961f3a2
commit f4cca2fb1d
16 changed files with 329 additions and 153 deletions
+13 -27
View File
@@ -569,10 +569,10 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
mainAxisAlignment: isOutgoing
? MainAxisAlignment.end
: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (!isOutgoing) ...[
_buildAvatar(message.senderName),
_buildAvatar(message.senderName, textScale),
const SizedBox(width: 6),
],
Flexible(
@@ -610,10 +610,10 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
: EdgeInsets.zero,
child: Text(
message.senderName,
style: MeshTheme.mono(
fontSize: 11,
style: TextStyle(
fontSize: 13 * textScale,
fontWeight: FontWeight.w700,
color: _colorForName(message.senderName),
color: textColor,
),
),
),
@@ -1037,8 +1037,11 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
);
}
Widget _buildAvatar(String senderName) {
return AvatarCircle(name: senderName, size: 32);
Widget _buildAvatar(String senderName, double textScale) {
return AvatarCircle(
name: senderName,
size: (32 * textScale).clamp(28.0, 56.0),
);
}
Widget _buildReplyBanner(double textScale) {
@@ -1202,7 +1205,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
hintText: context.l10n.chat_typeMessage,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(
MeshRadii.pill,
MeshRadii.md,
),
borderSide: BorderSide(
color: scheme.outlineVariant,
@@ -1210,7 +1213,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(
MeshRadii.pill,
MeshRadii.md,
),
borderSide: BorderSide(
color: scheme.outlineVariant,
@@ -1218,7 +1221,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(
MeshRadii.pill,
MeshRadii.md,
),
borderSide: BorderSide(
color: scheme.primary,
@@ -1581,23 +1584,6 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
.join(',');
}
/// Deterministic name-to-hue mapping consistent with [AvatarCircle].
Color _colorForName(String name) {
const hues = [
MeshPalette.blue,
MeshPalette.magenta,
MeshPalette.signal,
MeshPalette.warn,
Color(0xFF8FA8F0),
Color(0xFF6FD9CE),
];
var h = 0;
for (final c in name.codeUnits) {
h = (h * 31 + c) & 0x7fffffff;
}
return hues[h % hues.length];
}
Future<void> openRegionSelectDialog(Channel channel) async {
// The AppBar subtitle reads the region from the connector inside a
// Consumer, so setChannelRegion's notifyListeners refreshes it directly —
+6 -4
View File
@@ -511,10 +511,12 @@ class _ChannelsScreenState extends State<ChannelsScreen>
),
),
const SizedBox(width: 6),
StatusChip(
label: 'CH ${channel.index}',
color: MeshPalette.blue,
fontSize: 10,
Text(
'CH ${channel.index}',
style: MeshTheme.mono(
fontSize: 11,
color: scheme.onSurfaceVariant.withValues(alpha: 0.7),
),
),
],
),
+3 -3
View File
@@ -546,15 +546,15 @@ class _ChatScreenState extends State<ChatScreen> {
decoration: InputDecoration(
hintText: context.l10n.chat_typeMessage,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(MeshRadii.pill),
borderRadius: BorderRadius.circular(MeshRadii.md),
borderSide: BorderSide(color: scheme.outlineVariant),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(MeshRadii.pill),
borderRadius: BorderRadius.circular(MeshRadii.md),
borderSide: BorderSide(color: scheme.outlineVariant),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(MeshRadii.pill),
borderRadius: BorderRadius.circular(MeshRadii.md),
borderSide: BorderSide(
color: scheme.primary,
width: 1.5,