gitextract_hxvgag7x/ ├── .github/ │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yml │ │ ├── config.yml │ │ └── feature.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── bot/ │ │ ├── package.json │ │ ├── src/ │ │ │ └── issue/ │ │ │ ├── index.ts │ │ │ ├── labeler.ts │ │ │ └── message.ts │ │ └── tsconfig.json │ └── workflows/ │ ├── build-android.yml │ ├── merge.yml │ └── release.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── CODEOWNERS ├── LICENSE ├── README.md ├── app/ │ ├── (features)/ │ │ ├── (cards)/ │ │ │ ├── cards.tsx │ │ │ ├── qrcode.tsx │ │ │ └── specific.tsx │ │ ├── (news)/ │ │ │ └── specific.tsx │ │ ├── attendance.tsx │ │ └── soon.tsx │ ├── (modals)/ │ │ ├── address.tsx │ │ ├── course.tsx │ │ ├── grade.tsx │ │ ├── news.tsx │ │ ├── notifications.tsx │ │ ├── profile.tsx │ │ ├── task.tsx │ │ ├── wallpaper.tsx │ │ └── wrapped/ │ │ ├── _layout.tsx │ │ ├── index.tsx │ │ └── stories/ │ │ ├── consent.tsx │ │ └── welcome.tsx │ ├── (new)/ │ │ ├── _layout.tsx │ │ └── event.tsx │ ├── (onboarding)/ │ │ ├── _layout.tsx │ │ ├── ageSelection.tsx │ │ ├── components/ │ │ │ ├── LoginView.tsx │ │ │ ├── OnboardingSelector.tsx │ │ │ ├── OnboardingWebView.tsx │ │ │ └── ageSelection/ │ │ │ └── illustrations/ │ │ │ ├── highSchool.tsx │ │ │ ├── middleSchool.tsx │ │ │ ├── parents.tsx │ │ │ ├── supSchool.tsx │ │ │ └── teacher.tsx │ │ ├── restaurants/ │ │ │ ├── _layout.tsx │ │ │ ├── alise.tsx │ │ │ ├── ard.tsx │ │ │ ├── izly.tsx │ │ │ ├── method.tsx │ │ │ ├── turboself.tsx │ │ │ └── turboselfHost.tsx │ │ ├── serviceSelection.tsx │ │ ├── services/ │ │ │ ├── appscho/ │ │ │ │ ├── _layout.tsx │ │ │ │ ├── credentials.tsx │ │ │ │ ├── list.tsx │ │ │ │ └── webview.tsx │ │ │ ├── ed/ │ │ │ │ ├── _layout.tsx │ │ │ │ └── credentials.tsx │ │ │ ├── lannion/ │ │ │ │ ├── _layout.tsx │ │ │ │ └── credentials.tsx │ │ │ ├── multi/ │ │ │ │ ├── _layout.tsx │ │ │ │ └── credentials.tsx │ │ │ ├── pronote/ │ │ │ │ ├── 2fa.tsx │ │ │ │ ├── _layout.tsx │ │ │ │ ├── browser.tsx │ │ │ │ ├── locate.tsx │ │ │ │ ├── qrcode.tsx │ │ │ │ ├── select.tsx │ │ │ │ └── url.tsx │ │ │ └── skolengo/ │ │ │ ├── _layout.tsx │ │ │ ├── locate.tsx │ │ │ └── webview.tsx │ │ ├── utils/ │ │ │ ├── constants.tsx │ │ │ └── fetchSchools.ts │ │ └── welcome.tsx │ ├── (settings)/ │ │ ├── _layout.tsx │ │ ├── about.tsx │ │ ├── accounts.tsx │ │ ├── cards.tsx │ │ ├── contributors.tsx │ │ ├── edit_subject.tsx │ │ ├── language.tsx │ │ ├── magic.tsx │ │ ├── personalization.tsx │ │ ├── services.tsx │ │ ├── settings.tsx │ │ ├── subject_personalization.tsx │ │ ├── tabs.tsx │ │ └── transport.tsx │ ├── (tabs)/ │ │ ├── _layout.tsx │ │ ├── calendar/ │ │ │ ├── _layout.tsx │ │ │ ├── components/ │ │ │ │ ├── CalendarDay.tsx │ │ │ │ ├── CalendarHeader.tsx │ │ │ │ └── EmptyCalendar.tsx │ │ │ ├── event/ │ │ │ │ └── [id].tsx │ │ │ ├── hooks/ │ │ │ │ ├── useCalendarState.ts │ │ │ │ └── useTimetableData.ts │ │ │ ├── icals.tsx │ │ │ └── index.tsx │ │ ├── grades/ │ │ │ ├── _layout.tsx │ │ │ ├── atoms/ │ │ │ │ ├── Averages.tsx │ │ │ │ ├── FeaturesMap.tsx │ │ │ │ └── Subject.tsx │ │ │ ├── features/ │ │ │ │ └── ScodocUES.tsx │ │ │ ├── hooks/ │ │ │ │ └── useGradeInfluence.ts │ │ │ ├── index.tsx │ │ │ ├── modals/ │ │ │ │ ├── AboutAverages.tsx │ │ │ │ └── SubjectInfo.tsx │ │ │ └── utils/ │ │ │ └── graph.ts │ │ ├── index/ │ │ │ ├── _layout.tsx │ │ │ ├── atoms/ │ │ │ │ ├── HomeHeader.tsx │ │ │ │ ├── HomeTopBar.tsx │ │ │ │ ├── UserProfile.tsx │ │ │ │ ├── Wallpaper.tsx │ │ │ │ └── WrappedBanner.tsx │ │ │ ├── components/ │ │ │ │ ├── HomeHeaderButton.ios.tsx │ │ │ │ ├── HomeHeaderButton.tsx │ │ │ │ ├── HomeTopBarButton.ios.tsx │ │ │ │ ├── HomeTopBarButton.tsx │ │ │ │ └── HomeWidget.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useHomeData.ts │ │ │ │ ├── useHomeHeaderData.ts │ │ │ │ ├── useTimetableWidgetData.ts │ │ │ │ └── useUserProfileData.ts │ │ │ ├── index.old.tsx │ │ │ ├── index.tsx │ │ │ └── widgets/ │ │ │ ├── Grades.tsx │ │ │ └── timetable.tsx │ │ ├── news/ │ │ │ ├── _layout.tsx │ │ │ └── index.tsx │ │ └── tasks/ │ │ ├── _layout.tsx │ │ ├── atoms/ │ │ │ ├── DateHeader.tsx │ │ │ ├── EmptyState.tsx │ │ │ └── TasksSummary.tsx │ │ ├── components/ │ │ │ ├── TaskItem.tsx │ │ │ ├── TasksHeader.tsx │ │ │ ├── TasksList.tsx │ │ │ └── WeekPicker.tsx │ │ ├── hooks/ │ │ │ ├── useHomeworkData.ts │ │ │ ├── useMagicPrediction.ts │ │ │ ├── useTaskFilters.ts │ │ │ └── useWeekSelection.ts │ │ └── index.tsx │ ├── _layout.tsx │ ├── alert.tsx │ ├── changelog.tsx │ ├── consent.tsx │ ├── demo.tsx │ └── devmode.tsx ├── app.config.ts ├── assets/ │ ├── app.icon/ │ │ └── icon.json │ └── lotties/ │ ├── alise.json │ ├── ard.json │ ├── connexion.json │ ├── izly.json │ ├── link.json │ ├── location.json │ ├── onboarding.json │ ├── qr-code.json │ ├── school-services.json │ ├── search.json │ ├── self.json │ ├── turboself.json │ └── uni-services.json ├── babel.config.js ├── components/ │ ├── ActivityIndicator.tsx │ ├── AndroidHeaderBackground.tsx │ ├── AppColorsSelector.tsx │ ├── AppProviders.tsx │ ├── DevModeNotice.tsx │ ├── FakeSplash.tsx │ ├── Log/ │ │ └── LogIcon.tsx │ ├── ModalOverhead.tsx │ ├── RootNavigator.tsx │ ├── SettingsHeader.tsx │ ├── Transit.tsx │ ├── UnderConstructionNotice.tsx │ ├── onboarding/ │ │ ├── OnboardingBackButton.tsx │ │ ├── OnboardingInput.tsx │ │ ├── OnboardingScrollingFlatList.tsx │ │ └── OnboardingWebview.tsx │ └── router/ │ └── BottomTabs.tsx ├── constants/ │ ├── AvailableTransportServices.ts │ ├── LayoutScreenOptions.ts │ └── UnicodeEmojis.ts ├── crowdin.yml ├── database/ │ ├── DatabaseProvider.tsx │ ├── index.ts │ ├── mappers/ │ │ ├── attendance.ts │ │ ├── balances.ts │ │ ├── canteen.ts │ │ ├── chats.ts │ │ ├── course.ts │ │ ├── grade.ts │ │ ├── kids.ts │ │ └── subject.ts │ ├── models/ │ │ ├── Attendance.ts │ │ ├── Balance.ts │ │ ├── CanteenHistory.ts │ │ ├── CanteenMenu.ts │ │ ├── Chat.ts │ │ ├── Event.ts │ │ ├── Grades.ts │ │ ├── Homework.ts │ │ ├── Ical.ts │ │ ├── Kid.ts │ │ ├── News.ts │ │ ├── Subject.ts │ │ └── Timetable.ts │ ├── schema.ts │ ├── useAttendance.ts │ ├── useBalance.ts │ ├── useCanteen.ts │ ├── useChat.ts │ ├── useEvents.ts │ ├── useEventsById.ts │ ├── useGrades.ts │ ├── useHomework.ts │ ├── useIcals.ts │ ├── useKids.ts │ ├── useNews.ts │ ├── usePeriodsCache.tsx │ ├── useSubject.ts │ ├── useTimetable.ts │ └── utils/ │ ├── initialization.ts │ └── safeTransaction.ts ├── eslint.config.mjs ├── hooks/ │ └── useAppInitialization.ts ├── ios/ │ └── Papillon/ │ ├── AppDelegate.swift │ ├── Images.xcassets/ │ │ ├── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── SplashScreenBackground.colorset/ │ │ │ └── Contents.json │ │ └── SplashScreenLegacy.imageset/ │ │ └── Contents.json │ ├── Info.plist │ ├── Papillon-Bridging-Header.h │ ├── Papillon.entitlements │ ├── PrivacyInfo.xcprivacy │ ├── SplashScreen.storyboard │ └── Supporting/ │ └── Expo.plist ├── locales/ │ ├── af.json │ ├── ar.json │ ├── bg.json │ ├── bn.json │ ├── br.json │ ├── cs.json │ ├── da.json │ ├── de.json │ ├── el.json │ ├── en.json │ ├── es.json │ ├── et.json │ ├── fa.json │ ├── fi.json │ ├── fr.json │ ├── he.json │ ├── hi.json │ ├── hr.json │ ├── hu.json │ ├── id.json │ ├── it.json │ ├── ja.json │ ├── ko.json │ ├── ms.json │ ├── nl.json │ ├── no.json │ ├── pl.json │ ├── pt.json │ ├── ro.json │ ├── ru.json │ ├── sk.json │ ├── sq.json │ ├── sv.json │ ├── sw.json │ ├── th.json │ ├── tr.json │ ├── uk.json │ ├── ur.json │ └── vi.json ├── metro.config.js ├── package.json ├── patches/ │ ├── countly-sdk-react-native-bridge+25.4.0.patch │ └── react-native-fast-tflite+1.6.1.patch ├── scripts/ │ └── generateEmojiList.sh ├── services/ │ ├── alise/ │ │ ├── balance.ts │ │ ├── history.ts │ │ ├── index.ts │ │ └── refresh.ts │ ├── appscho/ │ │ ├── index.ts │ │ ├── news.ts │ │ ├── refresh.ts │ │ └── timetable.ts │ ├── ard/ │ │ ├── balance.ts │ │ ├── history.ts │ │ ├── index.ts │ │ └── refresh.ts │ ├── ecoledirecte/ │ │ ├── attendance.ts │ │ ├── balance.ts │ │ ├── chat.ts │ │ ├── grades.ts │ │ ├── homework.ts │ │ ├── index.ts │ │ ├── news.ts │ │ ├── qrcode.ts │ │ ├── refresh.ts │ │ └── timetable.ts │ ├── errors/ │ │ └── AuthenticationError.ts │ ├── izly/ │ │ ├── balances.ts │ │ ├── history.ts │ │ ├── index.ts │ │ ├── qrcode.ts │ │ └── refresh.ts │ ├── lannion/ │ │ ├── attendance.ts │ │ ├── grades.ts │ │ ├── index.ts │ │ └── module/ │ │ ├── api.ts │ │ ├── client.ts │ │ ├── index.ts │ │ └── types.ts │ ├── local/ │ │ ├── .ical.ts.swp │ │ ├── event-converter.ts │ │ ├── event-filter.ts │ │ ├── ical-database.ts │ │ ├── ical-utils.ts │ │ ├── ical.ts │ │ └── parsers/ │ │ ├── ade-parser.ts │ │ ├── hyperplanning-parser.ts │ │ ├── ical-event-parser.ts │ │ └── schools/ │ │ └── univrennes1_parser.ts │ ├── multi/ │ │ ├── index.ts │ │ ├── news.ts │ │ ├── refresh.ts │ │ └── timetable.ts │ ├── pronote/ │ │ ├── attendance.ts │ │ ├── canteen.ts │ │ ├── chat.ts │ │ ├── grades.ts │ │ ├── homework.ts │ │ ├── index.ts │ │ ├── news.ts │ │ ├── refresh.ts │ │ └── timetable.ts │ ├── shared/ │ │ ├── attachment.ts │ │ ├── attendance.ts │ │ ├── balance.ts │ │ ├── canteen.ts │ │ ├── chat.ts │ │ ├── grade.ts │ │ ├── homework.ts │ │ ├── index.ts │ │ ├── kid.ts │ │ ├── news.ts │ │ ├── timetable.ts │ │ └── types.ts │ ├── skolengo/ │ │ ├── attendance.ts │ │ ├── chat.ts │ │ ├── grades.ts │ │ ├── homework.ts │ │ ├── index.ts │ │ ├── kid.ts │ │ ├── news.ts │ │ ├── refresh.ts │ │ └── timetable.ts │ ├── transit/ │ │ ├── fetcher/ │ │ │ ├── Fetcher.ts │ │ │ └── endpoints.ts │ │ ├── index.ts │ │ └── models/ │ │ ├── Alerts.ts │ │ ├── ArrivalSchedule.ts │ │ ├── DepartureLegs.ts │ │ ├── Itineraries.ts │ │ ├── ItinerariesPlanDetails.ts │ │ ├── Location.ts │ │ ├── MatchedSubstring.ts │ │ ├── Period.ts │ │ ├── Place.ts │ │ ├── PlaceDetails.ts │ │ ├── PlaceSuggestion.ts │ │ ├── PlanDetails.ts │ │ ├── PlanResult.ts │ │ ├── Route.ts │ │ ├── RouteLegs.ts │ │ ├── Station.ts │ │ ├── Stop.ts │ │ ├── StopSchedule.ts │ │ ├── Suggestions.ts │ │ ├── TransitDepartures.ts │ │ └── Vehicle.ts │ └── turboself/ │ ├── balance.ts │ ├── booking.ts │ ├── history.ts │ ├── index.ts │ ├── qrcode.ts │ └── refresh.ts ├── stores/ │ ├── account/ │ │ ├── index.ts │ │ └── types.ts │ ├── flags/ │ │ └── index.ts │ ├── global/ │ │ ├── index.ts │ │ └── serializer.ts │ ├── logs/ │ │ ├── index.ts │ │ └── types.ts │ ├── magic/ │ │ ├── index.ts │ │ └── types.ts │ └── settings/ │ ├── index.ts │ └── types.ts ├── stubs/ │ └── appscho/ │ ├── index.d.ts │ ├── index.js │ └── package.json ├── tsconfig.json ├── ui/ │ ├── components/ │ │ ├── ActionMenu.tsx │ │ ├── ActivityIndicator.tsx │ │ ├── AlertProvider.tsx │ │ ├── AnimatedNumber.tsx │ │ ├── AnimatedPressable.tsx │ │ ├── Avatar.tsx │ │ ├── Button.tsx │ │ ├── Calendar.tsx │ │ ├── ChipButton.tsx │ │ ├── CircularProgress.tsx │ │ ├── CompactGrade.tsx │ │ ├── CompactTask.tsx │ │ ├── ContainedNumber.tsx │ │ ├── Course.tsx │ │ ├── Dynamic.tsx │ │ ├── EmptyItem.tsx │ │ ├── ErrorBoundary.tsx │ │ ├── Grade.tsx │ │ ├── Icon.tsx │ │ ├── Item.tsx │ │ ├── List.tsx │ │ ├── NativeHeader.tsx │ │ ├── Pattern/ │ │ │ ├── CrossPattern.tsx │ │ │ └── Pattern.tsx │ │ ├── Search.tsx │ │ ├── SectionHeader.tsx │ │ ├── SkeletonView.tsx │ │ ├── Stack.tsx │ │ ├── Subject.tsx │ │ ├── TabFlatList.tsx │ │ ├── TabHeader.tsx │ │ ├── TabHeaderTitle.tsx │ │ ├── TableFlatList.tsx │ │ ├── Task.tsx │ │ ├── Typography.tsx │ │ └── ViewContainer.tsx │ ├── hooks/ │ │ └── useKeyboardHeight.ts │ ├── native/ │ │ └── NativeSwitch.tsx │ ├── new/ │ │ ├── Button.tsx │ │ ├── Divider.tsx │ │ ├── List.tsx │ │ ├── ListTouchableContext.ts │ │ ├── RippleEffect.tsx │ │ ├── TextInput.tsx │ │ ├── Typography.tsx │ │ └── symbols/ │ │ └── PapillonLogo.tsx │ ├── package.json │ └── utils/ │ ├── Animation.ts │ ├── Corners.ts │ ├── Duration.ts │ ├── IsLiquidGlass.ts │ └── Transition.ts └── utils/ ├── adjustColor.ts ├── attachments/ │ └── helper.ts ├── chats/ │ ├── colors.ts │ └── initials.ts ├── colorCheck.ts ├── colors.ts ├── endpoints.ts ├── format/ │ ├── formatSchoolName.ts │ └── html.ts ├── generateId.ts ├── github/ │ └── contributors.ts ├── grades/ │ ├── algorithms/ │ │ ├── helpers.ts │ │ ├── median.ts │ │ ├── subject.ts │ │ ├── time.ts │ │ └── weighted.ts │ └── helper/ │ └── period.ts ├── i18n.ts ├── logger/ │ ├── consent.ts │ └── logger.ts ├── magic/ │ ├── ModelManager.ts │ ├── prediction.ts │ ├── regex/ │ │ └── homeworks.json │ └── updater/ │ ├── extract.ts │ ├── fileUtils.ts │ ├── index.ts │ ├── integrity.ts │ ├── manifest.ts │ ├── network.ts │ ├── semver.ts │ └── types.ts ├── native/ │ ├── AnimatedNavigator.ts │ ├── georeverse.ts │ └── position.ts ├── news/ │ ├── cleanUpHTMLNews.ts │ └── getAttachmentIcon.ts ├── notification/ │ └── reminder/ │ └── helper.ts ├── pronote/ │ ├── fetcher.ts │ └── name.ts ├── restaurant/ │ └── detect-price.ts ├── services/ │ ├── helper.ts │ └── periods.ts ├── subjects/ │ ├── colors.ts │ ├── emoji.ts │ ├── lesson_formats.json │ ├── name.ts │ └── utils.ts ├── theme/ │ ├── AndroidBackButton.tsx │ ├── ScreenOptions.tsx │ └── Theme.ts ├── transport.ts └── uuid/ └── uuid.ts