Compare commits

...
This repository has been archived on 2025-11-26. You can view files and clone it, but cannot push or open issues or pull requests.

20 commits
main ... Next

Author SHA1 Message Date
9a548ae038 Next Session List removed 2024-11-29 16:53:23 -04:00
d28e5f1197 Rework of Sessions Part 1: Done 2024-11-29 16:51:14 -04:00
6d21d6a4e6 Test 2024-11-02 16:54:09 -04:00
add694b0e0 Test 2024-11-02 16:44:09 -04:00
7c04f0304f Next 2024-11-02 16:29:03 -04:00
79cdb5a099 Next: UI 2024-11-02 13:30:52 -04:00
8c5e461871 Final Test 2024-10-24 21:19:41 -04:00
385114350a Will this work? 2024-10-24 21:16:20 -04:00
944eaa086d Idk why it doesn't work 2024-10-24 21:11:21 -04:00
23a2a6b8c8 Working on woodpecker, hopefully it works 2024-10-24 21:10:15 -04:00
c9debf9299 tEST 2024-10-24 21:08:58 -04:00
040e92dfe5 aa 2024-10-24 21:08:04 -04:00
471c980d66 a 2024-10-24 21:00:55 -04:00
73660406aa Tesy 2024-10-24 20:52:59 -04:00
e16e3731c0 Testing 2024-10-24 20:40:32 -04:00
60ad17916f Packages upgraded 2024-10-19 17:13:00 -04:00
3bfba81d0c Last test 2024-10-19 16:48:03 -04:00
aa876967b6 Test 2024-10-19 16:46:11 -04:00
c5888d1f33 Test 2024-10-19 16:23:39 -04:00
f2408b0c64 Logo change on settings, ooops 2024-10-17 21:28:57 -04:00
8 changed files with 402 additions and 221 deletions

View file

@ -1,15 +1,22 @@
when:
- event: push
branch: dev
branch: Next
steps:
- name: build
image: instrumentisto/flutter
- name: android build
image: mobiledevops/flutter-sdk-image
commands:
- git clone https://git.mrdab.vore.media/ThatOneJackalGuy/OpenContacts.git
- echo "Entering folder"
- cd OpenContacts
- echo "Starting to build..."
- flutter build --debug
- name: Deploy
- git config --global --add safe.directory /home/mobiledevops/.flutter-sdk
- echo "Getting Dependencies"
- flutter pub get
- flutter pub upgrade
- echo "Building..."
- flutter build apk --debug
- echo "Build Completed!"
- name: windows build
image: debian
commands:
- echo "Hello World"
- echo "Build Sucessful!"

3
devtools_options.yaml Normal file
View file

@ -0,0 +1,3 @@
description: This file stores settings for Dart & Flutter DevTools.
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
extensions:

View file

@ -1,3 +1,4 @@
import 'dart:ui';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:OpenContacts/auxiliary.dart';
import 'package:OpenContacts/clients/session_client.dart';
@ -5,9 +6,15 @@ import 'package:OpenContacts/models/session.dart';
import 'package:OpenContacts/widgets/default_error_widget.dart';
import 'package:OpenContacts/widgets/formatted_text.dart';
import 'package:OpenContacts/widgets/sessions/session_view.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:html/dom.dart' hide Text;
import 'package:indexed/indexed.dart';
import 'package:provider/provider.dart';
import 'package:flutter/services.dart';
import 'package:gradient_borders/gradient_borders.dart';
class SessionList extends StatefulWidget {
const SessionList({super.key});
@ -74,45 +81,175 @@ class _SessionListState extends State<SessionList> with AutomaticKeepAliveClient
),
itemBuilder: (context, index) {
final session = data[index];
return Card(
elevation: 0,
shape: RoundedRectangleBorder(
side: BorderSide(
color: Theme.of(context).colorScheme.outline,
),
borderRadius: BorderRadius.circular(16),
return Container( //Make this a container, shit doesn't like it when it's a class already
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: <Color>[
Color.fromARGB(255, 248, 248, 112),
Color.fromARGB(255, 230, 158, 80),
]
),
border: GradientBoxBorder(
width: 2,
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: <Color>[
Color.fromARGB(255, 248, 248, 112),
Color.fromARGB(255, 230, 158, 80),
]
)
),
borderRadius: BorderRadius.all( // I wouldn't have known that this was the right way to write
Radius.circular(10)
),
),
child: InkWell(
onTap: () {
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => SessionView(session: session)));
},
borderRadius: BorderRadius.circular(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
child: Indexer(
children: [
Expanded(
flex: 5,
child: ClipRRect(
borderRadius: BorderRadius.circular(16),
child: Hero(
tag: session.id,
child: CachedNetworkImage(
imageUrl: Aux.resdbToHttp(session.thumbnailUrl),
fit: BoxFit.cover,
errorWidget: (context, url, error) => const Center(
child: Icon(
Indexed(
index: 1,
child: Positioned(
top: 0,
bottom: 80,
left: 0,
right: 0,
child: ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(10),
topRight: Radius.circular(10),
),
child: Hero(
tag: session.id,
child: CachedNetworkImage(
imageUrl: Aux.resdbToHttp(session.thumbnailUrl),
fit: BoxFit.cover,
errorWidget:(context, url, error) => const Center(
child: Icon(
Icons.broken_image,
size: 64,
),
),
placeholder: (context, uri) =>
const Center(child: CircularProgressIndicator()),
placeholder: (context, url) =>
const Center(child: CircularProgressIndicator(),
),
),
),
),
),
),
Expanded(
Indexed(
index: 2,
child: Positioned(
top: 160,
bottom: 0,
left: 0,
right: 0,
child: Container(
width: 200,
height: 50,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(10),
bottomRight: Radius.circular(10),
),
color: Theme.of(context).colorScheme.onPrimary,
),
),
)
),
Indexed(
index: 3,
child: Positioned(
top: 140,
bottom: 75,
left: 0,
right: 100,
child: Container(
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.onPrimary,
borderRadius: BorderRadius.only(
topRight: Radius.circular(10)
)
),
),
),
),
const Indexed(
index: 4,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: 130,
),
Expanded(
child:Icon(
Icons.group
)
),
SizedBox(
height: 15,
),
Expanded(
child: Icon(
Icons.dns
)
)
],
)
), //Due to some limitations, Icons and Texts are on different layers
Indexed(
index: 5,
child: Column(
//mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(
height: 143,
),
Expanded(
child: Text(
" ${(session.sessionUsers.length - (session.headlessHost? 1 : 0)).toString().padLeft(2, "0")}/${session.maxUsers.toString().padLeft(2, "0")}",
style: const TextStyle(
fontSize: 20,
)
),
),
Expanded(
child: FormattedText(
//textAlign: Align(1,1),
session.formattedName,
maxLines: 1,
overflow: TextOverflow.ellipsis,
)
),
Expanded(
child: Text(
" ${session.hostUsername}",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: const TextStyle(
fontSize: 20,
),
)
)
],
),
)
]
),
/*child: Column(
Expanded( //2
flex: 2,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 16),
@ -155,7 +292,7 @@ class _SessionListState extends State<SessionList> with AutomaticKeepAliveClient
children: [
Expanded(
child: Text(
"${session.sessionUsers.length.toString().padLeft(2, "0")}/${session.maxUsers.toString().padLeft(2, "0")} Online",
"${(session.sessionUsers.length - (session.headlessHost? 1 : 0)).toString().padLeft(2, "0")}/${session.maxUsers.toString().padLeft(2, "0")} Online",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
@ -173,7 +310,7 @@ class _SessionListState extends State<SessionList> with AutomaticKeepAliveClient
),
)
],
),
),*/
),
);
},

View file

@ -31,7 +31,7 @@ class _SessionListAppBarState extends State<SessionListAppBar> {
),
);
},
icon: const Icon(Icons.filter_alt_outlined),
icon: const Icon(Icons.filter_list),
),
)
],

View file

@ -162,7 +162,7 @@ class _SessionViewState extends State<SessionView> {
ListSectionHeader(
leadingText: "Users",
trailingText:
"${session.sessionUsers.length.toString().padLeft(2, "0")}/${session.maxUsers.toString().padLeft(2, "0")}",
"${(session.sessionUsers.length - (session.headlessHost? 1 : 0)).toString().padLeft(2, "0")}/${session.maxUsers.toString().padLeft(2, "0")}", //TODO: Find a way to make it so that inactive users do not count
showLine: false,
),
],

View file

@ -92,7 +92,7 @@ class SettingsPage extends StatelessWidget {
child: Container(
margin: const EdgeInsets.all(16),
constraints: const BoxConstraints(maxWidth: 64),
child: Image.asset("assets/images/testingIcon512.png"),
child: Image.asset("assets/images/logo512.png"),
),
),
applicationLegalese: "ReCon by Nutcake, OpenContacts by ThatOneJackalGuy. Both apps made with <3",

File diff suppressed because it is too large Load diff

View file

@ -65,6 +65,8 @@ dependencies:
share_plus: ^7.1.0
ffmpeg_kit_flutter_audio: ^6.0.3
background_downloader: ^7.12.2
indexed: ^0.0.8
gradient_borders: ^1.0.1
dev_dependencies:
flutter_test: