nkbmusic/lib/features/about/about_screen.dart
metatroncubeswdev 178d2d00ab Nanga Kathai: Flutter app, self-hosted backend and song tools
- Flutter app (Android/iOS): home, explore, albums, search, player with
  equalizer, mini player, sign up/sign in with email codes, profile,
  encrypted offline downloads, About page
- server/: one-command deploy of self-hosted Supabase behind HestiaCP/nginx
  (or Caddy), migrations, backups, email templates
- supabase/migrations: schema, row-level security, profiles
- tools/: song scanner and importer

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 10:39:26 -04:00

113 lines
7.5 KiB
Dart

import 'package:flutter/material.dart';
import '../../app/theme.dart';
import '../../shared/widgets/artwork.dart';
class AboutScreen extends StatelessWidget {
const AboutScreen({super.key});
@override
Widget build(BuildContext context) {
final text = Theme.of(context).textTheme;
final body = text.bodyLarge?.copyWith(color: NkColors.mutedOnPhoto, height: 1.6);
Widget p(String s) => Padding(padding: const EdgeInsets.only(bottom: 12), child: Text(s, style: body));
Widget strong(String s) => Padding(
padding: const EdgeInsets.only(bottom: 12),
child: Text(s, style: body?.copyWith(color: NkColors.cream, fontWeight: FontWeight.w700)),
);
Widget heading(String s) => Padding(
padding: const EdgeInsets.only(top: 20, bottom: 10),
child: Text(s, style: text.titleLarge),
);
return Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar(
pinned: true,
expandedHeight: 260,
flexibleSpace: FlexibleSpaceBar(
titlePadding: const EdgeInsetsDirectional.only(start: 56, bottom: 16),
title: Text('About Nanga Kathai', style: text.titleLarge),
background: Stack(
fit: StackFit.expand,
children: [
Image.asset('assets/images/nilgiris_valley.jpg', fit: BoxFit.cover),
const PhotoScrim(stops: [0.3, 1]),
],
),
),
),
SliverPadding(
padding: const EdgeInsets.fromLTRB(20, 20, 20, 40),
sliver: SliverList.list(
children: [
Text('Our Songs. Our Stories. Our Legacy.', style: text.headlineSmall),
const SizedBox(height: 4),
Text('The Home of Badaga Music', style: text.titleMedium?.copyWith(color: NkColors.sun)),
const SizedBox(height: 16),
p('Music has always been at the heart of Badaga life.'),
p('It echoes through our festivals, fills our homes during celebrations, and carries the stories, emotions, and traditions of generations.'),
p('Nanga Kathai, meaning “Our Song” in Badaga, was created to give these voices a home of their own.'),
p('A place where the songs we grew up listening to live alongside the music being created today. Where our culture is celebrated, our artists are recognised, and our musical heritage continues to inspire generations to come.'),
heading('Rooted in Our Community'),
p('Nanga Kathai was born from a deep sense of belonging, gratitude, and responsibility towards the Badaga community.'),
p('Growing up surrounded by the values, traditions, and stories of our people, we witnessed the dedication of generations who worked to nurture and strengthen our community. Their contributions taught us that culture is not simply something we inherit. It is something we have a responsibility to preserve, celebrate, and pass forward.'),
p('Inspired by that spirit, we wanted to contribute in our own way.'),
p('Through Metatroncube Software Solutions, we are bringing together our love for technology and our respect for Badaga heritage to create something meaningful for our people.'),
strong('Nanga Kathai is our small contribution to a community that has given us so much.'),
heading('Celebrating the Artists Behind Our Music'),
p('Behind every memorable song is a voice, a story, and the creativity of talented individuals.'),
p('For generations, Badaga singers, lyricists, composers, and musicians have enriched our culture through their art. Their music has accompanied our celebrations, connected families, and become part of our collective memories.'),
p('Yet, with the transition from cassettes and CDs to digital platforms, opportunities for many regional artists to earn a sustainable income have become increasingly limited.'),
p('We believe our artists deserve more than appreciation alone.'),
p('They deserve recognition, meaningful opportunities, and a platform that values their contribution.'),
p('Our vision is to help build a sustainable ecosystem for Badaga music, where established creators can continue to thrive and emerging artists feel encouraged to share their talent.'),
p('As Nanga Kathai grows, we aim to introduce a subscription-based revenue-sharing model that allows verified artists to benefit from the music their audiences enjoy.'),
heading('Preserving Yesterday. Inspiring Tomorrow.'),
p('Some songs take us back to childhood. Some remind us of our parents and grandparents. Others bring back memories of celebrations, friendships, and the beautiful hills we call home.'),
p('These songs are more than recordings. They are part of our shared cultural memory.'),
p('Our journey begins with a treasured family collection of Badaga songs carefully gathered and preserved over many years.'),
p('We hope to make these melodies accessible to Badagas everywhere while honouring the artists and families who made them possible.'),
p('If you are an artist, rights holder, or family member associated with a recording in our collection, we welcome you to connect with us to ensure appropriate recognition, discuss permissions, or request its removal.'),
heading('A Home for Every Badaga Voice'),
p('Whether you live among the hills of the Nilgiris or thousands of miles away, music has a beautiful way of bringing us closer to our roots.'),
p('We hope Nanga Kathai becomes a place where generations connect, forgotten melodies are rediscovered, new voices find their audience, and our musical traditions continue to flourish.'),
p('This is not just about building a music platform.'),
strong('It is about celebrating where we come from, honouring those who came before us, and creating something meaningful for those who come after us.'),
const SizedBox(height: 20),
Text('Nanga Kathai. Our Song. Our Heritage. Our Future.',
textAlign: TextAlign.center, style: text.titleLarge?.copyWith(color: NkColors.sun)),
heading('Get in touch'),
Text('support@nkbmusic.com', style: body?.copyWith(color: NkColors.sun)),
const SizedBox(height: 28),
const Divider(color: NkColors.outline),
const SizedBox(height: 12),
Text(
'Landscape photos from Unsplash: Vaisakh Satheesan, Ravi Raj and Harshal More.',
style: text.bodySmall?.copyWith(color: NkColors.muted),
),
const SizedBox(height: 8),
Row(
children: [
Text('Version 1.0.0', style: text.bodySmall?.copyWith(color: NkColors.muted)),
const Spacer(),
TextButton(
onPressed: () => showLicensePage(
context: context,
applicationName: 'Nanga Kathai',
applicationVersion: '1.0.0',
),
child: const Text('Open-source licences'),
),
],
),
],
),
),
],
),
);
}
}