Skip to content
Merged

Dev #31

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
aa2604c
Added REST side panel for categories, conversations, and transcripts
negentropy-en Mar 2, 2026
f44fe06
Update README.md
HorttanainenSami Mar 5, 2026
e9f63c2
Merge pull request #25 from AI-Smarties/readme-update
HorttanainenSami Mar 5, 2026
2393374
fix: refactor github action
veetimar Mar 9, 2026
d0fe43c
fix: more CI refactor
veetimar Mar 9, 2026
8ead4c8
fix: macos files
veetimar Mar 9, 2026
4a9f070
fix: stop tracking vscode files
veetimar Mar 9, 2026
63365f4
fix: edit comment
veetimar Mar 9, 2026
987df3e
fix: format
veetimar Mar 9, 2026
85ad69f
fix: format
veetimar Mar 9, 2026
5a06cca
feat: remove output=none from dart format CI
veetimar Mar 9, 2026
e92aa48
feat: renovate app startup config
veetimar Mar 9, 2026
0fed30e
fix: refactor
veetimar Mar 10, 2026
94129cf
feat: add mute button
vainiovesa Mar 10, 2026
8339626
fix: update mic icon and text for clarity
veetimar Mar 10, 2026
625e11b
Merge branch 'dev' into feature/mute-display
vainiovesa Mar 11, 2026
77c2b23
feat: update readme
veetimar Mar 11, 2026
267ea3f
feat: add functionality for display mute
veetimar Mar 11, 2026
e15e043
fix: edit ios files
veetimar Mar 11, 2026
5286580
fix: tests
veetimar Mar 11, 2026
2f37463
feat: add functionality for blocking pressing buttons when not suppos…
veetimar Mar 11, 2026
4d2307c
Send calendar context when recording starts
saraayy Mar 12, 2026
6406bf2
Configure device calendar plugin and Cocoapods integration for ios
saraayy Mar 12, 2026
d7cbd6e
Add CalendarService unit tests
saraayy Mar 12, 2026
a8a638f
fix: update package versions in pubspec.lock
veetimar Mar 12, 2026
5b8fb07
feat: working IOS build
veetimar Mar 12, 2026
f58f7f6
Apply dart format
saraayy Mar 13, 2026
019afa4
Merge branch 'dev' into feature/calendar-integration
saraayy Mar 13, 2026
9d66271
Apply dart format
saraayy Mar 13, 2026
dd1f00c
Merge pull request #27 from AI-Smarties/feature/calendar-integration
negentropy-en Mar 15, 2026
176a037
feat: tests
veetimar Mar 16, 2026
3099ba7
fix: remove hardcoded DEVELOPMENT_TEAM from project configuration
veetimar Mar 16, 2026
aa37067
fix: outdated comment
veetimar Mar 16, 2026
eff95a3
Merge branch 'dev' into feature/mute-display
veetimar Mar 16, 2026
2ae3c36
fix: formatting
veetimar Mar 16, 2026
3f39539
fix: ios files
veetimar Mar 16, 2026
5f29f66
Merge pull request #28 from AI-Smarties/feature/mute-display
vainiovesa Mar 16, 2026
39c7dfc
fix: update dependencies
veetimar Mar 16, 2026
86ef05a
feat: update readme to include build instructions for iphone
veetimar Mar 16, 2026
d6efead
Add switch to Even app feature
Matias000001 Mar 13, 2026
1cc3d42
Implement mic source selection, stabilize transcription pipeline, and…
Matias000001 Mar 1, 2026
564a787
Apply dart format
Matias000001 Mar 1, 2026
24a522e
Fix icon color regression in glasses connection button
Matias000001 Mar 1, 2026
ff87552
Fix remaining withValues usages and remove unused import
Matias000001 Mar 1, 2026
e2e0bfc
Fix widget tests and align LandingScreen test expectations
Matias000001 Mar 1, 2026
8e3ceda
FIX: Stabilize logging, refine run.sh output filtering, adjust tests …
Matias000001 Mar 1, 2026
eba7cff
pipeline works without glasses
HorttanainenSami Mar 3, 2026
2efe24e
fix displaying of airesponse
HorttanainenSami Mar 4, 2026
f7b8a3c
remove dead code
HorttanainenSami Mar 5, 2026
1e28857
Update README.md
HorttanainenSami Mar 5, 2026
e77507d
fix: refactor github action
veetimar Mar 9, 2026
f08d38f
fix: more CI refactor
veetimar Mar 9, 2026
d46205b
fix: macos files
veetimar Mar 9, 2026
bd045bd
fix: stop tracking vscode files
veetimar Mar 9, 2026
11bc811
fix: edit comment
veetimar Mar 9, 2026
3f415d1
fix: format
veetimar Mar 9, 2026
86aa9dc
fix: format
veetimar Mar 9, 2026
19d4fad
feat: remove output=none from dart format CI
veetimar Mar 9, 2026
5446638
feat: renovate app startup config
veetimar Mar 9, 2026
807e78d
fix: refactor
veetimar Mar 10, 2026
010bfbf
feat: update readme
veetimar Mar 11, 2026
02debe0
Added REST side panel for categories, conversations, and transcripts
negentropy-en Mar 2, 2026
ae16240
test: improved mocks and expanded landing screen coverage
negentropy-en Mar 16, 2026
4e2b840
fix: prevented repeated phone audio stream init
negentropy-en Mar 16, 2026
2ab8890
feat: stabilized recording flow and injected testable dependencies
negentropy-en Mar 16, 2026
3cb58aa
feat: improved side panel summaries and drawer interactions
negentropy-en Mar 16, 2026
5cc4aac
FIX: Remove Play Store fallback and launch Even app directly via Andr…
Matias000001 Mar 17, 2026
cfe560b
Merge origin/dev into feature/rest-side-panel and resolve conflicts
negentropy-en Mar 17, 2026
c552de1
fix: category selection and calendar integration flow
negentropy-en Mar 17, 2026
872d9e7
fix: Format Dart files
negentropy-en Mar 17, 2026
3309149
fix: side panel color compatibility for CI
negentropy-en Mar 17, 2026
4d1db37
fix: removed duplicate connection state widget tests
negentropy-en Mar 17, 2026
0a9e3b1
Merge pull request #29 from AI-Smarties/feature/rest-side-panel
Matias000001 Mar 17, 2026
1d46b37
Merge branch 'dev' into switch-to-even-app-dev
Matias000001 Mar 17, 2026
ed4c8c8
FIX: merge conflicts and AndroidManifest
Matias000001 Mar 17, 2026
2bc5504
Merge pull request #30 from AI-Smarties/switch-to-even-app-dev
veetimar Mar 18, 2026
5ccbcdc
fix: pub update
veetimar Mar 18, 2026
d892a59
use https
HorttanainenSami Mar 18, 2026
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
26 changes: 4 additions & 22 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Frontend CI (Flutter)
name: Frontend CI

on:
push:
Expand All @@ -9,43 +9,25 @@ on:
jobs:
flutter:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5

- name: Detect Flutter project
id: detect
run: |
if [ -f pubspec.yaml ]; then
echo "has_flutter=true" >> $GITHUB_OUTPUT
else
echo "has_flutter=false" >> $GITHUB_OUTPUT
fi

- name: Repo not scaffolded yet
if: steps.detect.outputs.has_flutter == 'false'
run: echo "No pubspec.yaml yet — skipping Flutter CI."
- name: Checkout
uses: actions/checkout@v6

- name: Set up Flutter
if: steps.detect.outputs.has_flutter == 'true'
uses: subosito/flutter-action@v2
with:
flutter-version: "3.24.0"
channel: "stable"
cache: true

- name: Install dependencies
if: steps.detect.outputs.has_flutter == 'true'
run: flutter pub get

- name: Check formatting
if: steps.detect.outputs.has_flutter == 'true'
run: dart format --output=none --set-exit-if-changed .
run: dart format --set-exit-if-changed .

- name: Analyze
if: steps.detect.outputs.has_flutter == 'true'
run: flutter analyze

- name: Run tests
if: steps.detect.outputs.has_flutter == 'true'
run: flutter test
10 changes: 3 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,8 @@ migrate_working_dir/
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Vscode related (not in version control since it overrides user settings)
.vscode/

# Flutter/Dart/Pub related
**/doc/api/
Expand All @@ -47,6 +45,4 @@ app.*.map.json
/android/app/.*/*


config_dev.json
config_staging.json
config_test.json
config_*.json
23 changes: 0 additions & 23 deletions .vscode/launch.json

This file was deleted.

13 changes: 0 additions & 13 deletions .vscode/settings.json

This file was deleted.

39 changes: 30 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
![GHA workflow badge](https://github.com/AI-Smarties/front/actions/workflows/main.yml/badge.svg)

# AI-Smarties - Frontend (Flutter)
# AI-Smarties - Frontend (Dart + Flutter)

## Requirements

Expand All @@ -22,7 +22,7 @@
## 2. Switch to development branch (dev)

```bash
git checkout dev
git switch dev
```

## 3. Confirm the Flutter environment
Expand Down Expand Up @@ -91,8 +91,6 @@ Run locally:
Linting is enabled by adding
`very_good_analysis` and `analysis_options.yaml`.

---

## Daily development workflow

When you return to coding:
Expand Down Expand Up @@ -133,11 +131,33 @@ When you return to coding:
flutter test
```

---
## Build app

### Android

run command

```bash
flutter build apk --dart-define-from-file=config_staging.json
```

### IOS

run command

```bash
flutter build ios --release --dart-define-from-file=config_staging.json
```

## Install app

## Project structure (Flutter)
then install it to usb connected phone

When `flutter create .` is run, the structure is typically:
```bash
flutter install
```

## Project structure

- `lib/` – Application UI and application logic
- `test/` – Unit- and widget testing
Expand All @@ -146,8 +166,9 @@ When `flutter create .` is run, the structure is typically:
- `analysis_options.yaml` – lint-rules
- `pubspec.yaml` – Flutter/Dart dependencies

---

## About

Frontend for Everyday AI productivity interface for Even Realities G1 smart glasses.

## Backend integration
Frontend is intended to be used with the [FastAPI backend](https://github.com/AI-Smarties/back)
25 changes: 10 additions & 15 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<application
android:label="front"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
android:icon="@mipmap/ic_launcher"
android:usesCleartextTraffic="true">
<activity
android:name=".MainActivity"
android:exported="true"
Expand All @@ -20,34 +23,26 @@
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->

<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.

In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
<!-- Required to check if Even G1 app is installed -->
<package android:name="com.even.g1" />
</queries>
</manifest>
</manifest>
2 changes: 1 addition & 1 deletion config_staging.example.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"API_URL": "your-backend-url-here.fi"
"API_URL": "your-backend-url-here.fi:443"
}
2 changes: 0 additions & 2 deletions ios/Flutter/AppFrameworkInfo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,5 @@
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>13.0</string>
</dict>
</plist>
1 change: 1 addition & 0 deletions ios/Flutter/Debug.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
1 change: 1 addition & 0 deletions ios/Flutter/Release.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
43 changes: 43 additions & 0 deletions ios/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '13.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}

def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end

File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
use_frameworks!

flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
48 changes: 48 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
PODS:
- device_calendar (0.0.1):
- Flutter
- Flutter (1.0.0)
- flutter_blue_plus_darwin (0.0.2):
- Flutter
- FlutterMacOS
- flutter_sound (9.30.0):
- Flutter
- flutter_sound_core (= 9.30.0)
- flutter_sound_core (9.30.0)
- permission_handler_apple (9.3.0):
- Flutter

DEPENDENCIES:
- device_calendar (from `.symlinks/plugins/device_calendar/ios`)
- Flutter (from `Flutter`)
- flutter_blue_plus_darwin (from `.symlinks/plugins/flutter_blue_plus_darwin/darwin`)
- flutter_sound (from `.symlinks/plugins/flutter_sound/ios`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)

SPEC REPOS:
trunk:
- flutter_sound_core

EXTERNAL SOURCES:
device_calendar:
:path: ".symlinks/plugins/device_calendar/ios"
Flutter:
:path: Flutter
flutter_blue_plus_darwin:
:path: ".symlinks/plugins/flutter_blue_plus_darwin/darwin"
flutter_sound:
:path: ".symlinks/plugins/flutter_sound/ios"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"

SPEC CHECKSUMS:
device_calendar: b55b2c5406cfba45c95a59f9059156daee1f74ed
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_blue_plus_darwin: 20a08bfeaa0f7804d524858d3d8744bcc1b6dbc3
flutter_sound: d95194f6476c9ad211d22b3a414d852c12c7ca44
flutter_sound_core: 7f2626d249d3a57bfa6da892ef7e22d234482c1a
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d

PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e

COCOAPODS: 1.16.2
Loading