Skip to content
Draft
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
2 changes: 1 addition & 1 deletion android/app/capacitor.build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ dependencies {
implementation project(':capacitor-push-notifications')
implementation project(':capacitor-status-bar')
implementation project(':capacitor-toast')
implementation project(':capawesome-capacitor-android-edge-to-edge-support')
implementation project(':capawesome-capacitor-app-update')
implementation project(':capacitor-native-settings')
implementation project(':capacitor-plugin-safe-area')

}

Expand Down
6 changes: 3 additions & 3 deletions android/capacitor.settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ project(':capacitor-status-bar').projectDir = new File('../node_modules/@capacit
include ':capacitor-toast'
project(':capacitor-toast').projectDir = new File('../node_modules/@capacitor/toast/android')

include ':capawesome-capacitor-android-edge-to-edge-support'
project(':capawesome-capacitor-android-edge-to-edge-support').projectDir = new File('../node_modules/@capawesome/capacitor-android-edge-to-edge-support/android')

include ':capawesome-capacitor-app-update'
project(':capawesome-capacitor-app-update').projectDir = new File('../node_modules/@capawesome/capacitor-app-update/android')

include ':capacitor-native-settings'
project(':capacitor-native-settings').projectDir = new File('../node_modules/capacitor-native-settings/android')

include ':capacitor-plugin-safe-area'
project(':capacitor-plugin-safe-area').projectDir = new File('../node_modules/capacitor-plugin-safe-area/android')
2 changes: 1 addition & 1 deletion android/variables.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ext {
minSdkVersion = 26
minSdkVersion = 30
compileSdkVersion = 35
targetSdkVersion = 35
androidxActivityVersion = '1.9.2'
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
"@capacitor/push-notifications": "^7.0.0",
"@capacitor/status-bar": "^7.0.3",
"@capacitor/toast": "^7.0.0",
"@capawesome/capacitor-android-edge-to-edge-support": "^7.2.3",
"@capawesome/capacitor-app-update": "^7.0.0",
"@ionic/core": "7.8.5",
"@ionic/pwa-elements": "^3.2.2",
Expand All @@ -59,6 +58,7 @@
"axios-cookiejar-support": "^4.0.7",
"base64url": "^3.0.1",
"capacitor-native-settings": "^7.0.0",
"capacitor-plugin-safe-area": "^4.0.3",
"chart.js": "^4.4.0",
"cheerio": "1.0.0-rc.12",
"cross-fetch": "^4.0.0",
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/grades/gradesPage.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@
<!-- Show skeleton while loading -->
<ion-content fullscreen={true}>
<ion-header collapse="condense" mode="ios">
<ion-toolbar mode={Capacitor.getPlatform() != 'ios' ? 'md' : undefined}>
<ion-toolbar mode='md'>
<ion-title class="ion-padding-vertical" size="large">{$t('progress.title')}</ion-title>

<ion-searchbar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,50 @@
{
"name": "Apostolos Halis",
"personal_link": "https://github.com/TolisSth",
"image_url": "https://avatars.githubusercontent.com/u/93685610?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/93685610?v=4?s=100",
"maintainer": false
},
{
"name": "Christos Balaktsis",
"personal_link": "https://www.linkedin.com/in/christos-balaktsis/",
"image_url": "https://avatars.githubusercontent.com/u/74056421?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/74056421?v=4?s=100",
"maintainer": true
},
{
"name": "Dimitra Angelidou",
"personal_link": "https://github.com/dangelidou",
"image_url": "https://avatars.githubusercontent.com/u/115474360?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/115474360?v=4?s=100",
"maintainer": true
},
{
"name": "Konstantinos Agathopoulos",
"personal_link": "https://github.com/Kostaga",
"image_url": "https://avatars.githubusercontent.com/u/59094550?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/59094550?v=4?s=100",
"maintainer": false
},
{
"name": "Michalis Karipidis",
"personal_link": "https://github.com/VirtualVirtuosoV1",
"image_url": "https://avatars.githubusercontent.com/u/110724304?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/110724304?v=4?s=100",
"maintainer": false
},
{
"name": "Myrto Gkogkou",
"personal_link": "https://gr.linkedin.com/in/myrto-gkogkou-67b004260",
"image_url": "https://avatars.githubusercontent.com/u/75997814?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/75997814?v=4?s=100",
"maintainer":false
},
{
"name": "Neron Panagiotopoulos",
"personal_link": "https://www.linkedin.com/in/neronmkp/",
"image_url": "https://avatars.githubusercontent.com/u/18248043?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/18248043?v=4?s=100",
"maintainer": true
},
{
"name": "Vasilis Michaelidis",
"personal_link": "https://github.com/VasilisMicha",
"image_url": "https://avatars.githubusercontent.com/u/145148992?v=4?s=100"
"image_url": "https://avatars.githubusercontent.com/u/145148992?v=4?s=100",
"maintainer":false
}
]
}
Expand Down
1 change: 1 addition & 0 deletions src/lib/components/recentResults/recents.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import { gatherRecentGrades } from "./gatherRecentGrades"
import { gatherNotifications } from "$components/notifications/notifications";
import RecentsDisplay from "./recentsDisplay.svelte";
import Card from "$components/degreeCalculator/card.svelte";
const recentItemsFromCache: any[] = getCachedRecentItems();
Expand Down
3 changes: 2 additions & 1 deletion src/lib/components/shared/AristomateTabBar.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
</script>

<ion-tabs
style="padding-top: var(--ion-safe-area-top);"
on:ionTabsDidChange={ionTabsDidChange}
on:ionTabsWillChange={ionTabsWillChange}
bind:this={ionTabBarElement}
Expand Down Expand Up @@ -152,7 +153,7 @@
border-radius: 2rem;
position: absolute;
transition: 0.4s ease-in-out;
bottom: 10px;
bottom: calc(var(--ion-safe-area-bottom) + 10px);
/* z-index: 1000; */
left: 0;
width: 1rem;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/shared/subPageHeader.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
</script>

<ion-header collapse="condense" mode="ios" class="mildShadow">
<ion-toolbar mode={Capacitor.getPlatform() != 'ios' ? 'md': undefined}>
<ion-toolbar mode="md">
<div class="headerContent ion-padding-horizontal">
{#if genericHeader}
<ion-icon class="backIcon" aria-hidden/>
Expand Down
15 changes: 9 additions & 6 deletions src/lib/globalFunctions/darkMode.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
import { nativeSettings, EdgeToEdgeFunctions } from "./nativeSettings";
import { nativeSettings } from "./nativeSettings";
import { StatusBar, Style } from '@capacitor/status-bar';

// Check if dark mode is enabled and set it if it is
export async function checkAppMode() {
let darkMode = localStorage.getItem('darkMode');
console.log("Dark mode from localStorage:", darkMode);
if (darkMode === null) { // Setting default dark mode | Fixes the toggle being ticked wrongly
localStorage.setItem('darkMode', 'false');
darkMode = "false";
localStorage.setItem('darkMode', 'true');
darkMode = "true";
await StatusBar.setStyle({ style: Style.Dark });
}
const isDark = darkMode === "true";
document.body.classList.toggle('dark', isDark);

}

// Toggle dark mode on or off
export function toggleDarkTheme() {
export async function toggleDarkTheme() {
const isDark = document.body.classList.toggle('dark');
localStorage.setItem('darkMode', isDark.toString());
// nativeSettings();
if (isDark) {
EdgeToEdgeFunctions.setBackgroundColorDark();
await StatusBar.setStyle({ style: Style.Dark });
} else {
EdgeToEdgeFunctions.setBackgroundColorLight();
await StatusBar.setStyle({ style: Style.Light });
}
}
75 changes: 42 additions & 33 deletions src/lib/globalFunctions/nativeSettings.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { App as capacitorApp } from '@capacitor/app';
import { Capacitor } from '@capacitor/core';
import { navController } from '$components/shared/StackedNav';
import { EdgeToEdge } from '@capawesome/capacitor-android-edge-to-edge-support';
// import { EdgeToEdge } from '@capawesome/capacitor-android-edge-to-edge-support';
import { StatusBar, Style } from '@capacitor/status-bar';
import { SafeArea } from 'capacitor-plugin-safe-area';

export async function nativeSettings() {
/* Capacitor back button handling */
Expand All @@ -18,48 +19,56 @@ export async function nativeSettings() {
}
});

await enableEdgeToEdge();
SafeArea.getSafeAreaInsets().then((data) => {
const { insets } = data;
document.body.style.setProperty('--ion-safe-area-top', `${insets.top}px`);
document.body.style.setProperty('--ion-safe-area-right', `${insets.right}px`);
document.body.style.setProperty('--ion-safe-area-bottom', `${insets.bottom}px`);
document.body.style.setProperty('--ion-safe-area-left', `${insets.left}px`);
});



// Set the background color to match the app's color scheme
if (document.body.classList.contains('dark')) {
await setBackgroundColorDark();
await StatusBar.setStyle({ style: Style.Dark });
}
else {
await setBackgroundColorLight();
await StatusBar.setStyle({ style: Style.Light });
}

}

const enableEdgeToEdge = async () => {
await EdgeToEdge.enable();
await StatusBar.show();
await StatusBar.setOverlaysWebView({ overlay: true });
};
// const enableEdgeToEdge = async () => {
// await EdgeToEdge.enable();
// await StatusBar.show();
// await StatusBar.setOverlaysWebView({ overlay: true });
// };

const disable = async () => {
await EdgeToEdge.disable();
};
// const disable = async () => {
// await EdgeToEdge.disable();
// };

const getInsets = async () => {
const result = await EdgeToEdge.getInsets();
console.log('Insets:', result);
};
// const getInsets = async () => {
// const result = await EdgeToEdge.getInsets();
// console.log('Insets:', result);
// };

const setBackgroundColorLight = async () => {
await EdgeToEdge.setBackgroundColor({ color: '#ffffff' });
await StatusBar.setStyle({ style: Style.Light });
await StatusBar.setBackgroundColor({ color: '#ffffff' });
};
const setBackgroundColorDark = async () => {
await EdgeToEdge.setBackgroundColor({ color: '#1f1f1f' });
await StatusBar.setStyle({ style: Style.Dark });
await StatusBar.setBackgroundColor({ color: '#121212' });
};
// const setBackgroundColorLight = async () => {
// await EdgeToEdge.setBackgroundColor({ color: '#ffffff' });
// await StatusBar.setStyle({ style: Style.Light });
// await StatusBar.setBackgroundColor({ color: '#ffffff' });
// };
// const setBackgroundColorDark = async () => {
// await EdgeToEdge.setBackgroundColor({ color: '#1f1f1f' });
// await StatusBar.setStyle({ style: Style.Dark });
// await StatusBar.setBackgroundColor({ color: '#121212' });
// };

export const EdgeToEdgeFunctions = {
enableEdgeToEdge,
disable,
getInsets,
setBackgroundColorLight,
setBackgroundColorDark
};
// export const EdgeToEdgeFunctions = {
// enableEdgeToEdge,
// disable,
// getInsets,
// setBackgroundColorLight,
// setBackgroundColorDark
// };
19 changes: 10 additions & 9 deletions src/lib/translations/translations.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@ export default {
"menu.closedForHolidays": 'Λέσχη κλειστή λόγω διακοπών',
"menu.showingCachedData": "Εμφάνιση αποθηκευμένων δεδομένων",
"about.title": "Σχετικά με εμάς",
"about.who_are_we": "Ποιοί είμαστε",
"about.who_are_we_text_1": " Γεια χαρά! Χαιρόμαστε πολύ που χρησιμοποιείς το Aristomate, την εφαρμογή που φτιάχτηκε από φοιτητές για φοιτητές!",
"about.who_are_we_text_2": "Οκτώ φοιτητές από την ομάδα της",
"about.who_are_we_text_3": "διαπιστώσαμε ότι στο χάος της καθημερινότητας ενός φοιτητή, ένας 'ψηφιακός φίλος' που συγκεντρώνει την ακαδημαϊκή του εμπειρία σε ένα και μοναδικό σημείο είναι χρήσιμος για την επιβίωσή του.",
"about.who_are_we": "Ποιοι είμαστε",
"about.who_are_we_text_1": "Γεια χαρά! Χαιρόμαστε πολύ που χρησιμοποιείς το Aristomate, την εφαρμογή που φτιάχτηκε από φοιτητές για φοιτητές!",
"about.who_are_we_text_2": "Οκτώ φοιτητές από την ομάδα της <a href='https://auth.acm.org'> ACM AUTh</a> διαπιστώσαμε ότι στο χάος της καθημερινότητας ενός φοιτητή, ένας 'ψηφιακός φίλος' που συγκεντρώνει την ακαδημαϊκή του εμπειρία σε ένα και μοναδικό σημείο είναι χρήσιμος για την επιβίωσή του.",
"about.meet_team": "Γνώρισε την ομάδα μας",
"about.maintainers": "Συντηρητές",
"about.contributors": "Συνεισφέροντες",
"about.mission": "Η αποστολή μας",
"about.mission_text": "Στόχος μας είναι να διευκολύνουμε τους φοιτητές του πανεπιστημίου τόσο στη γρηγορότερη ενημέρωσή τους πάνω στα μαθήματα και την πρόοδό τους, όσο και στην ευκολότερη φοιτητική 'επιβίωση'.",
"about.mission_text": "Με την ευγενική υποστήριξη του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης, στοχεύουμε να διευκολύνουμε τους φοιτητές τόσο στη γρηγορότερη ενημέρωσή τους πάνω στα μαθήματα και την πρόοδό τους, όσο και στην ευκολότερη φοιτητική 'επιβίωση'.",
"about.find_us": "Βρες μας",
"settings.language": "Γλώσσα",
"settings.about": "Σχετικά με εμάς",
Expand Down Expand Up @@ -253,13 +254,13 @@ export default {
'about.who_are_we': 'Who are we',
'about.who_are_we_text_1':
'Hello! We are very happy that you are using Aristomate, an app made by students for students!',
'about.who_are_we_text_2': 'Eight students from the team',
'about.who_are_we_text_3':
"have realized that in the chaos of a student's daily life, a 'digital friend' that consolidates the academic experience into a single point is useful for their survival.",
'about.who_are_we_text_2': 'Eight students from the <a href="https://auth.acm.org"> ACM AUTh</a> team have realized that in the chaos of a student\'s daily life, a \'digital friend\' that consolidates the academic experience into a single point is useful for their survival.',
'about.meet_team': 'Meet our team',
'about.maintainers': 'Maintainers',
'about.contributors': 'Contributors',
'about.mission': 'Our mission',
'about.mission_text':
"Our goal is to facilitate university students both in their faster information on courses and progress as well as in easier student 'survival'.",
"Powered by the Aristotle University of Thessaloniki, our goal is to facilitate university students both in their faster information on courses and progress as well as in easier student 'survival'.",
'about.find_us': 'Find us',
'settings.language': 'Language',
'settings.about': 'About us',
Expand Down
8 changes: 0 additions & 8 deletions src/routes/about/+page.svelte

This file was deleted.

7 changes: 0 additions & 7 deletions src/routes/faq/+page.svelte

This file was deleted.

1 change: 1 addition & 0 deletions src/routes/login/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@
}

.language-switcher ion-button {
padding-top: var(--ion-safe-area-top);
--color: white;
--padding-start: 8px;
--padding-end: 8px;
Expand Down
4 changes: 2 additions & 2 deletions src/routes/pages/notifications/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@

<ion-tab tab="notifications">
<ion-header translucent={Capacitor.getPlatform() === 'ios'} mode="ios">
<ion-toolbar mode={Capacitor.getPlatform() != 'ios' ? 'md': undefined}>
<ion-toolbar mode="md">
<ion-title>{$t('notifications.title')}</ion-title>
</ion-toolbar>
</ion-header>

<ion-content fullscreen={true}>
<ion-header collapse="condense" mode="ios">
<ion-toolbar mode={Capacitor.getPlatform() != 'ios' ? 'md': undefined}>
<ion-toolbar mode="md">
<ion-title size="large">{$t('notifications.title')}</ion-title>
{#if Capacitor.isNativePlatform()}
<ion-chip slot="end" style="background-color: transparent;">
Expand Down
Loading