feat(mobile): share to mechanism (#15229)

* setup ios

* chore: succesfully sent media to the app

* share from Android

* wip: navigate to share screen

* wip: UI for displaying upload candidate

* wip: logic

* wip: upload logic

* wip: up up up we got it up

* wip

* wip

* wip

* upload state

* feat: i18n

* fix: release build ios'

* feat: clear file cache

* pr feedback

* using const for checking download status

---------

Co-authored-by: Alex <alex@pop-os.localdomain>
This commit is contained in:
Alex 2025-01-16 21:20:44 -06:00 committed by GitHub
parent 3a2bf91889
commit fd99bd05cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 1368 additions and 55 deletions

View file

@ -13,6 +13,9 @@ class LargeLeadingTile extends StatelessWidget {
horizontal: 16.0,
),
this.borderRadius = 20.0,
this.trailing,
this.selected = false,
this.disabled = false,
});
final Widget leading;
@ -21,30 +24,43 @@ class LargeLeadingTile extends StatelessWidget {
final Widget? subtitle;
final EdgeInsetsGeometry leadingPadding;
final double borderRadius;
final Widget? trailing;
final bool selected;
final bool disabled;
@override
Widget build(BuildContext context) {
return InkWell(
borderRadius: BorderRadius.circular(borderRadius),
onTap: onTap,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: leadingPadding,
child: leading,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: context.width * 0.6,
child: title,
onTap: disabled ? null : onTap,
child: Container(
decoration: BoxDecoration(
color: selected
? Theme.of(context).primaryColor.withAlpha(30)
: Colors.transparent,
borderRadius: BorderRadius.circular(borderRadius),
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Padding(
padding: leadingPadding,
child: leading,
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: context.width * 0.6,
child: title,
),
subtitle ?? const SizedBox.shrink(),
],
),
subtitle ?? const SizedBox.shrink(),
],
),
],
),
if (trailing != null) trailing!,
],
),
),
);
}