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

Flutter App Redesign and 1.0.0 release #99

Merged
merged 51 commits into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
a2bbd33
feat(WEBRTC-2446): Adjust app themes to match Figma
openhands-agent Jan 17, 2025
f5bee5d
chore: fix deprecated classes and remove font
Oliver-Zimmerman Jan 17, 2025
e86619d
chore: add textButtonTheme
Oliver-Zimmerman Jan 17, 2025
d3ee364
fix: remove blue from button
Oliver-Zimmerman Jan 17, 2025
bef7438
Merge pull request #91 from team-telnyx/feature/WEBRTC-2446-adjust-ap…
Oliver-Zimmerman Jan 17, 2025
0baf051
feat: begin migration to new design and architecture
Oliver-Zimmerman Jan 20, 2025
aedfa75
chore: no requirement for multiprovider
Oliver-Zimmerman Jan 20, 2025
65622e0
feat: adjust ViewModel usage to use consumer and select on home screen
Oliver-Zimmerman Jan 20, 2025
77a64d1
feat: implement dimensions and asset paths and use provider to listen…
Oliver-Zimmerman Jan 20, 2025
50a313e
chore: rename viewmodel and use dimensions
Oliver-Zimmerman Jan 20, 2025
9c2bfa7
chore: create empty profile_switcher_bottom_sheet
Oliver-Zimmerman Jan 20, 2025
bca8a11
[Flutter] Profile Bottom Sheet
openhands-agent Jan 21, 2025
0a91f3c
fix: adjust imports and references
Oliver-Zimmerman Jan 21, 2025
e70ec46
feat: adjust styling for bottom sheet to more closely align with figma
Oliver-Zimmerman Jan 21, 2025
458fc1f
feat: separate out widgets instead of widget return methods (this is …
Oliver-Zimmerman Jan 21, 2025
ead332c
feat: allow edit of existing profiles
Oliver-Zimmerman Jan 21, 2025
dc26e7b
Merge pull request #92 from team-telnyx/WEBRTC-2415
Oliver-Zimmerman Jan 22, 2025
59214fb
feat: loading dialog feedback as connecting
Oliver-Zimmerman Jan 22, 2025
68192c2
Merge pull request #94 from team-telnyx/WEBRTC-2416
Oliver-Zimmerman Jan 22, 2025
3e7f2e2
feat: [WIP] implementing call controls
Oliver-Zimmerman Jan 28, 2025
042e35d
feat: implement remaining call control features + DTMF
Oliver-Zimmerman Jan 28, 2025
046479a
chore: general project cleanup and background_detector implementation
Oliver-Zimmerman Jan 28, 2025
cea1f98
chore: remove unnecessary assets
Oliver-Zimmerman Jan 28, 2025
88a5fbe
chore: delete login_Screen and show hold / connecting state
Oliver-Zimmerman Jan 29, 2025
3ad6991
fix: [BREAKING CHANGE] no longer specify call ID when ending call
Oliver-Zimmerman Jan 29, 2025
e9c6cf2
fix: [BREAKING CHANGE] remove call ID from dtmf call, use callID from…
Oliver-Zimmerman Jan 29, 2025
d421135
Merge branch 'main' into WEBRTC-2417
Oliver-Zimmerman Jan 29, 2025
061542f
chore: version bumps to 1.0.0.
Oliver-Zimmerman Jan 29, 2025
068219c
chore: add bye param change log for 1.0.0
Oliver-Zimmerman Jan 29, 2025
db4bfa6
chore: make inkwell circular on buttons
Oliver-Zimmerman Jan 29, 2025
ac1cace
WEBRTC-2462: Add Flutter UI integration tests
openhands-agent Jan 30, 2025
02f599a
WEBRTC-2462: Update integration tests to match current UI structure
openhands-agent Jan 30, 2025
a315755
chore: bump flutter version in action
Oliver-Zimmerman Jan 30, 2025
4adf789
feat: adjust tests to match actual UI flow
Oliver-Zimmerman Jan 30, 2025
f4224c0
feat: migrate to patrol usage to allow us to accept permissions
Oliver-Zimmerman Jan 30, 2025
a53309d
feat: add workflow dispatch to run manually as well as use Patrol not…
Oliver-Zimmerman Jan 30, 2025
76f8be2
Merge pull request #95 from team-telnyx/WEBRTC-2417
Oliver-Zimmerman Jan 30, 2025
7946143
chore: remove unnecessary comment
Oliver-Zimmerman Jan 30, 2025
3111371
chore: remove more unnecessary comments
Oliver-Zimmerman Jan 30, 2025
5ecc64d
Merge pull request #98 from team-telnyx/WEBRTC-2462
Oliver-Zimmerman Jan 31, 2025
bde4563
chore: we don't need to specify current platform - this means our CI …
Oliver-Zimmerman Jan 31, 2025
149cf4d
feat: use secret google-services.json
Oliver-Zimmerman Jan 31, 2025
348bd25
chore: use heredoc to replace json
Oliver-Zimmerman Jan 31, 2025
edfa883
feat: use firebase test labs instead
Oliver-Zimmerman Feb 4, 2025
fc2ecdd
chore: adjust build script for UI tests
Oliver-Zimmerman Feb 4, 2025
17b44b7
fix: target correct tests
Oliver-Zimmerman Feb 4, 2025
c7800da
fix: remove indentation
Oliver-Zimmerman Feb 4, 2025
c2a3854
chore: add --verbose to help debug during CI run
Oliver-Zimmerman Feb 4, 2025
4972f6e
chore: export default credentials from GCLOUD
Oliver-Zimmerman Feb 4, 2025
63cba39
chore: gcloud auth v2
Oliver-Zimmerman Feb 4, 2025
f69d1f9
feat: add secrets for username, password and number
Oliver-Zimmerman Feb 4, 2025
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
67 changes: 67 additions & 0 deletions .github/workflows/ui_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Flutter UI Tests (Firebase Test Lab)

on:
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
integration_test:
runs-on: ubuntu-latest
steps:
# 1) Check out repo
- uses: actions/checkout@v3

# 2) Create google-services.json if you have it in a secret
- name: Create google-services.json
run: |
cat <<EOF > android/app/google-services.json
${{ secrets.GOOGLE_SERVICES_JSON }}
EOF

# 3) Install Flutter
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.5'
channel: 'stable'

# 4) Install Dependencies
- name: Install dependencies
run: flutter pub get

# 5) Install Patrol CLI
- name: Install Patrol CLI
run: flutter pub global activate patrol_cli

# 6) Authenticate Cloud SDK
- name: 'Authenticate Cloud SDK'
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCLOUD_SERVICE_ACCOUNT_KEY }}'

- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v2

# 7) Build app & test APK
- name: Build app & test APK
run: |
patrol build android \
--target integration_test/patrol_test.dart \
--dart-define=APP_LOGIN_USER=${{ secrets.APP_LOGIN_USER }} \
--dart-define=APP_LOGIN_PASSWORD=${{ secrets.APP_LOGIN_PASSWORD }} \
--dart-define=APP_LOGIN_NUMBER=${{ secrets.APP_LOGIN_NUMBER }} \
--verbose

# 8) Run tests on Firebase Test Lab
- name: Run Tests on Firebase Test Lab
run: |
gcloud firebase test android run \
--type instrumentation \
--use-orchestrator \
--app build/app/outputs/apk/debug/app-debug.apk \
--test build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--timeout 1m \
--device model=MediumPhone.arm,version=34,locale=en,orientation=portrait \
--record-video \
--environment-variables clearPackageData=true
28 changes: 14 additions & 14 deletions .idea/libraries/Flutter_Plugins.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ if (flutterVersionName == null) {
android {
namespace 'com.telnyx.telnyx_flutter_webrtc'
ndkVersion "25.1.8937393"
compileSdkVersion 34
compileSdkVersion 35

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand All @@ -49,6 +49,13 @@ android {
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

testInstrumentationRunner "pl.leancode.patrol.PatrolJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: "true"
}

testOptions {
execution "ANDROIDX_TEST_ORCHESTRATOR"
}

buildTypes {
Expand All @@ -67,4 +74,5 @@ flutter {

dependencies {
implementation platform('com.google.firebase:firebase-bom:30.4.1')
androidTestUtil "androidx.test:orchestrator:1.5.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.telnyx.telnyx_flutter_webrtc;

import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import pl.leancode.patrol.PatrolJUnitRunner;

@RunWith(Parameterized.class)
public class MainActivityTest {
@Parameters(name = "{0}")
public static Object[] testCases() {
PatrolJUnitRunner instrumentation = (PatrolJUnitRunner) InstrumentationRegistry.getInstrumentation();
instrumentation.setUp(MainActivity.class);
instrumentation.waitForPatrolAppService();
return instrumentation.listDartTests();
}

public MainActivityTest(String dartTestName) {
this.dartTestName = dartTestName;
}

private final String dartTestName;

@Test
public void runDartTest() {
PatrolJUnitRunner instrumentation = (PatrolJUnitRunner) InstrumentationRegistry.getInstrumentation();
instrumentation.runDartTest(dartTestName);
}
}
18 changes: 18 additions & 0 deletions assets/icons/green_call.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions assets/icons/red_decline.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
8 changes: 0 additions & 8 deletions assets/telnyx_logo.svg

This file was deleted.

Loading
Loading