~repos /only-bible-app

#kotlin#android#ios

GIT_CONFIG_PARAMETERS="'http.version=HTTP/1.1'" git clone https://git.pyrossh.dev/only-bible-app.git
Discussions: https://groups.google.com/g/rust-embed-devs

The only bible app you will ever need. No ads. No in-app purchases. No distractions.



lib/widgets/home_app_bar.dart



import "package:flutter/material.dart";
import "package:only_bible_app/dialog.dart";
import "package:only_bible_app/gen/bible.gen.dart";
import "package:only_bible_app/store/actions_navigation.dart";
import "package:only_bible_app/store/app_navigator.dart";
import "package:only_bible_app/store/app_state.dart";
class HomeAppBar extends StatelessWidget implements PreferredSizeWidget {
final Bible bible;
final Book book;
final Chapter chapter;
const HomeAppBar({
super.key,
required this.book,
required this.chapter,
required this.bible,
});
@override
Size get preferredSize => const Size.fromHeight(40);
@override
Widget build(BuildContext context) {
return SafeArea(
child: Container(
padding: const EdgeInsets.only(left: 18, right: 5, top: 0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
InkWell(
key: const Key("bookTitle"),
enableFeedback: true,
onTap: () => context.dispatch(ShowBookSelectAction(context, context.router, bible)),
child: Text(
book.name!,
style: Theme.of(context).textTheme.headlineMedium,
maxLines: 1,
),
),
InkWell(
key: const Key("chapterTitle"),
enableFeedback: true,
onTap: () => context.dispatch(ShowChapterSelectAction(context, context.router, bible, book)),
child: Padding(
padding: const EdgeInsets.only(left: 16, right: 16),
child: Text(
"${chapter.index + 1}",
style: Theme.of(context).textTheme.headlineMedium,
),
),
),
],
),
),
// InkWell(
// enableFeedback: true,
// onTap: () => showBibleSelectDialog(context, bible),
// child: Padding(
// padding: const EdgeInsets.only(left: 16, right: 16),
// child: Text(
// bible.languageNative!.toUpperCase(),
// style: Theme.of(context).textTheme.headlineMedium,
// key: const Key("bible"),
// ),
// ),
// ),
IconButton(
enableFeedback: true,
key: const Key("bible"),
padding: EdgeInsets.zero,
icon: const Icon(Icons.menu_book, size: 28),
onPressed: () => showBibleSelectDialog(context, bible),
),
IconButton(
enableFeedback: true,
key: const Key("settingsButton"),
padding: EdgeInsets.zero,
icon: const Icon(Icons.more_vert, size: 28),
onPressed: () => context.dispatch(ShowSettingsAction(context, bible)),
),
],
),
),
);
}
}