Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Circle information view and scheduling #375

Merged
merged 17 commits into from
Oct 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,23 @@ Bringing people together to heal.
1. You will need to run this command once:
- `cd server/functions; firebase functions:config:get > .runtimeconfig.json`
- ***NOTE:*** This file should never be checked in as it contains secrets (it's in the .gitignore)
2. Start the local firebase emulator:
- From the terminal: `cd server/functions; npm run serve`
2. Make sure you have node version 14 installed locally
- If you are using nvm to manage node: `nvm install 14` or if already installed `nvm use 14`
3. Start the local firebase emulator:
- Make sure to install the firebase cli: `npm install -g firebase-tools`
- Change directory to functions `cd server/functions`
- Install node modules: `npm install`
- Start the server: `npm run serve`
-or-
- From VSCode click the start button next to the "serve" line under 'NPM Scripts'
3. Run the totem flutter application with the environment variable `USE_EMULATOR=true`
5. Run the totem flutter application with the environment variable `USE_EMULATOR=true`
- For VSCode there is a checked in configuration in the `launch.json` file.
- For Android Studio, create a new configuration with the run args `--dart-define=USE_EMULATOR=true`
4. Since the emulator runs on localhost, you will need to either use web or a device emulator as the target device.
6. Since the emulator runs on localhost, you will need to either use web or a device emulator as the target device.
- It will work for an Android device attached to the local system

7. To trigger the scheduler to run locally in your emulator, you can use the following command:
- `curl http://localhost:5001/totem-dev-184f1/us-central1/runScheduler`

## Release

1. Switch to 'main' branch: `git checkout main`
Expand Down
57 changes: 57 additions & 0 deletions i18n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
"ageMissing": "Age verification",
"ageVerification": "I am at least 18 years of age",
"areYouSureSignOut": "Are you sure you want to sign out?",
"attendeeLimit": "{num} attendees limit",
"@attendeeLimit": {
"placeholders": {
"num": {}
}
},
"audioInput": "Audio Input",
"audioOutput": "Audio Output",
"audioVideoSettings": "Audio and Video Settings",
Expand Down Expand Up @@ -41,6 +47,7 @@
"circleEnding": "Circle is ending",
"circles": "Circles",
"circleInProgress": "Circle in progress",
"circleNotInSession": "Circle is not in session",
"circleLogo": "Logo Image",
"circleName": "Circle Name",
"circleRejoinWaiting": "Waiting for keeper to let you into the session in progress",
Expand All @@ -52,6 +59,13 @@
},
"circleReturnToApp": "Tap to return to Totem",
"circleStarting": "Circle is starting",
"circleTimeRange": "{start} to {end}",
"@circleTimeRange": {
"placeholders": {
"start": {},
"end": {}
}
},
"circleTotemPass": "Finishes sharing by:",
"circleTotemPassLine1": "muting microphone",
"circleTotemPassLine2": "hiding video or image",
Expand All @@ -75,14 +89,21 @@
"deleteAccount": "Delete Account",
"deleteAccountMessage": "Are you sure you want to delete all your data? This cannot be undone?",
"deleteEverythingButton": "Yes, delete everything",
"daily": "Daily",
"day": "Day",
"days": "Days",
"description": "Description",
"doesNotRepeat": "Does not repeat",
"donate": "Donate",
"done": "Done",
"duration": "Duration",
"email": "Email",
"edit": "Edit",
"editProfile": "Edit Profile",
"editProfilePicture": "Edit Profile Picture",
"endDate": "End Date",
"endDateRequired": "End date is required",
"endDateMustBeAfterStartDate": "End date must be after start date",
"endSession": "End Circle",
"endSessionPrompt": "End Circle?",
"endSessionPromptMessage": "Are you sure you want to end this session?",
Expand All @@ -100,6 +121,8 @@
"errorEnterNumSessions": "Enter a number of sessions between 1 and 100",
"errorInvalidPhoneNumber": "Invalid Phone Number",
"errorJoinSession": "Unable to join session",
"errorLoadingCircle": "This circle is not available",
"errorLoadingCircleBanned": "This circle is no longer available",
"errorPinCode": "Please enter a 6 digit code",
"errorNoMicrophone": "Unable to access microphone",
"errorNoProfile": "There is no profile",
Expand Down Expand Up @@ -131,13 +154,17 @@
"helpPublicInformation": "This is public information. This is shown to other people in your circles.",
"helpSessionProfileImage": "You can take an updated profile picture before the circle",
"home": "Home",
"hostedBy": "Hosted By:",
"hourly": "Hourly",
"hourOne": "1 hour",
"hourOneAndMinsValue": "1 hour and {mins} mins",
"@hourOneAndMinsValue": {
"placeholders": {
"mins": {}
}
},
"hour": "Hour",
"hours": "Hours",
"hoursAndMinsValue": "{hrs} hours and {mins} mins",
"@hoursAndMinsValue": {
"placeholders": {
Expand Down Expand Up @@ -167,6 +194,7 @@
"introScreenMessage3": "Press **Receive** to accept the totem when it’s your turn to share.\\\nYou may respond to the prompt, share a story, or react to a share.\\\nIt’s always OK to not say anything at all.\\\nPress **Pass** to hand the totem to the next person.",
"introScreenTitle4": "Let's Begin!",
"introScreenMessage4": "Please find a quiet place where you are unlikely to be distracted.\\\nAlways speak from your own **experience**, try to not offer advice.\\\nIt helps to disable all notifications and put everything on silent.\\\n**Enjoy** this rare opportunity to be heard without interruption.",
"instantSession": "Instant Session",
"joinCircle": "Join Circle",
"joinCircleMessage": "Welcome! Before you enter the waiting room, please check that your audio and video are working as intended.",
"joiningCircle": "Joining Circle",
Expand Down Expand Up @@ -194,11 +222,15 @@
"mins": {}
}
},
"month": "Month",
"monthly": "Monthly",
"months": "Months",
"more": "More",
"moreInfo": "More Info",
"mute": "Mute",
"muteAll": "Mute All",
"name": "Name",
"never": "Never",
"next": "Up Next",
"nextSession": "Next Session",
"no": "No",
Expand All @@ -209,6 +241,7 @@
"noSnapCirclesMessage": "seems like there are no active circles",
"noUpcomingSessions": "No upcoming sessions",
"numberOfSessions": "Number of Sessions",
"numberOfSessionsAtLeastOne": "Number of sessions must be at least 1",
"ooh": "Ooh!",
"ok": "OK",
"otherCircles": "Other circles",
Expand Down Expand Up @@ -236,13 +269,29 @@
"name": {}
}
},
"repeatingSession": "Repeating Session",
"repeateIntervalAtLeastOne": "Repeat interval must be at least 1",
"repeats": "Repeats",
"repeatsEvery": "Repeats Every",
"repeatsEveryFor": "Every {count} for {count, plural, =0{forever} =1{1 {unit}} other{{count} {units}}}",
"@repeatsEveryFor": {
"placeholders": {
"count": {},
"unit": {},
"units": {}
}
},
"repeatsUntil": "Repeats Until",
"restartCircle": "Start Circle",
"retake": "Retake",
"retryPhone": "Didn’t receive a code?\nEnter a new number",
"retrySignin": "Retry",
"reverse": "Reverse",
"role": "Role",
"save": "Save",
"saveProfileImage": "Save Profile Image",
"scheduledSession": "Scheduled Session",
"scheduledSessions": "Scheduled Sessions",
"selectImage": "Select Image",
"selectProfilePicture": "Select Profile Picture",
"selectPhotoExisting": "Existing photo",
Expand All @@ -251,9 +300,11 @@
"sendCode": "Send Code",
"sessionFeedbackRequest": "Tell us about your Totem experience",
"sessionInProgress": "Session in progress",
"sessions": "Sessions",
"sessionsCompleted": "All session completed",
"sessionStateCancelled": "The session was cancelled",
"sessionStateComplete": "The session has ended.",
"sessionType": "Session Type",
"sessionsUpcoming": "Upcoming sessions",
"sessionUserRemoved": "You were removed from the circle",
"sessionWaiting": "Waiting to start. Tap to join.",
Expand All @@ -268,8 +319,11 @@
"start": "Start",
"started": "Started",
"startDate": "Start Date",
"startDateRequired": "Start date is required",
"startSession": "Start Session",
"startTime": "Start Time",
"startTimeRequired": "Start time is required",
"startTimeMustBeInTheFuture": "Start time must be in the future",
"startVideo": "Start Video",
"stopVideo": "Stop Video",
"tAndC": "I have read, understand and agree with the {privacyPolicy} and {termsOfService}",
Expand Down Expand Up @@ -313,6 +367,9 @@
"version": "Version",
"videoSettings": "Video Settings",
"visibility": "Visibility",
"week": "Week",
"weekly": "Weekly",
"weeks": "Weeks",
"welcome": "Welcome to Totem",
"welcomeDetail": "We are a Community, made to let you share and participate with others, by communicating your thoughts on a topic of your interest.",
"worksBestChrome": "This works best in Chrome browsers",
Expand Down
34 changes: 34 additions & 0 deletions lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,40 @@ class _AppState extends ConsumerState<App> {
foregroundColor: themeColors.linkText,
textStyle: textStyles.textLinkButton),
),
inputDecorationTheme: InputDecorationTheme(
labelStyle: textStyles.inputLabel,
hintStyle: textStyles.hintInputLabel,
errorStyle: textStyles.bodyText1!
.copyWith(color: themeColors.error, fontSize: 12),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: BorderSide(
color: themeColors.divider,
width: 1.0,
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: BorderSide(
color: themeColors.divider,
width: 1.0,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: BorderSide(
color: themeColors.error,
width: 1.0,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: BorderSide(
color: themeColors.divider,
width: 1.0,
),
),
),
pageTransitionsTheme: const PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
Expand Down
Loading