Merge pull request #93 from GetStream/latest-changes

This commit is contained in:
Sahil Kumar
2023-06-22 00:13:50 +05:30
committed by GitHub
79 changed files with 357 additions and 317 deletions
+48 -34
View File
@@ -2,37 +2,41 @@ name: build
on:
push:
branches:
- main
branches:
- main
workflow_dispatch:
defaults:
run:
working-directory: packages/stream_chat_v1
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
cleanup-runs:
runs-on: ubuntu-latest
steps:
- uses: rokroskar/workflow-run-cleanup-action@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
build_and_deploy_ios:
runs-on: [macos-11]
runs-on: macos-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v2
- run: sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer
- name: Install RubyGems
run: |
cd ios
bundle install
- uses: subosito/flutter-action@v1.5.3
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Flutter setup
run: |
flutter pub get
channel: stable
cache: true
- name: Setup Ruby and Gems
uses: ruby/setup-ruby@v1
with:
working-directory: packages/stream_chat_v1/ios
bundler-cache: true
- name: Copy production config
run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart
- name: Build and release
env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
@@ -42,38 +46,48 @@ jobs:
FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}
run: |
flutter build ios --release --no-codesign
flutter build ios --no-codesign
cd ios
bundle exec fastlane deploy_to_testflight
build_and_deploy_android:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: subosito/flutter-action@v1.5.3
with:
channel: 'stable'
- run: |
flutter pub get
- name: Copy production config
run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart
- name: Build
run: |
flutter build apk
- name: upload apk
uses: actions/upload-artifact@v2
run: flutter build apk
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: android-stream-chat-v1
path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Upload APK
- name: Upload to S3
run: |
cp build/app/outputs/apk/release/app-release.apk flutter-sample-app.apk
aws s3 cp flutter-sample-app.apk s3://${{ secrets.AWS_S3_BUCKET }} --sse AES256
+57 -36
View File
@@ -5,89 +5,110 @@ on:
branches:
- develop
workflow_dispatch:
defaults:
run:
working-directory: packages/stream_chat_v1
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
cleanup-runs:
runs-on: ubuntu-latest
steps:
- uses: rokroskar/workflow-run-cleanup-action@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
build_and_deploy_ios:
runs-on: [macos-11]
runs-on: macos-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v2
- run: sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer
- name: Install RubyGems
run: |
cd ios
bundle install
- uses: subosito/flutter-action@v1.5.3
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
channel: stable
cache: true
- name: Setup Ruby and Gems
uses: ruby/setup-ruby@v1
with:
working-directory: packages/stream_chat_v1/ios
bundler-cache: true
- name: Install firebase-tools
run: npm install -g firebase-tools
- name: Flutter setup
run: |
flutter pub get
- name: Build and release
env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
run: |
flutter build ios --release --no-codesign
flutter build ios --no-codesign
cd ios
bundle exec fastlane deploy_to_firebase
build_and_deploy_android:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: subosito/flutter-action@v1.5.3
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- run: |
flutter pub get
channel: stable
cache: true
- name: Build
run: |
flutter build apk
run: flutter build apk
- name: Deploy
uses: wzieba/Firebase-Distribution-Github-Action@v1.3.2
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{secrets.FIREBASE_ANDROID_APPID}}
token: ${{secrets.FIREBASE_TOKEN}}
groups: stream-testers
debug: true
file: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk
- name: upload apk
uses: actions/upload-artifact@v2
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: android-stream-chat-v1
path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk
build_and_deploy_web:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- name: Checkout code
uses: actions/checkout@v3
- name: config git
run: |
git config --global user.email "$(git log --format='%ae' HEAD^!)"
git config --global user.name "$(git log --format='%an' HEAD^!)"
git fetch origin gh-pages:gh-pages
- uses: subosito/flutter-action@v1.5.3
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- run: flutter pub get
channel: stable
cache: true
- name: Copy production config
run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart
- uses: erickzanardo/flutter-gh-pages@v3
- name: Build and Deploy
uses: bluefireteam/flutter-gh-pages@v7
with:
webRenderer: canvaskit
baseHref: /flutter-samples/
workingDir: packages/stream_chat_v1
+5 -20
View File
@@ -4,7 +4,7 @@
# This file should be version controlled.
version:
revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
channel: stable
project_type: app
@@ -13,26 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
- platform: android
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: ios
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: linux
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: macos
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: web
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: windows
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
# User provided section
@@ -9,10 +9,9 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:name=".Application"
android:label="Chat Sample Flutter"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:requestLegacyExternalStorage="true"
>
<activity
@@ -23,6 +22,14 @@
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<!-- 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"
/>
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
@@ -38,4 +45,4 @@
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>
</manifest>
@@ -1,23 +0,0 @@
package com.example.example
import com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin
import io.flutter.plugins.pathprovider.PathProviderPlugin
class Application : FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
}
override fun registerWith(registry: PluginRegistry) {
PathProviderPlugin.registerWith(registry.registrarFor(
"io.flutter.plugins.pathprovider.PathProviderPlugin"))
SharedPreferencesPlugin.registerWith(registry.registrarFor(
"io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"))
FlutterLocalNotificationsPlugin.registerWith(registry.registrarFor(
"com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin"))
}
}
@@ -1,12 +1,6 @@
package com.example.example
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
}
@@ -1,6 +0,0 @@
package io.getstream.stream_chat_v1
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -1,18 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group android:scaleX="0.72"
android:scaleY="0.72"
android:translateX="15.12"
android:translateY="15.12">
<path
android:pathData="M65.042,45.564L88.074,43.931C89.594,43.823 90.552,45.537 89.663,46.775L83.777,54.973C82.711,54.334 81.584,53.787 80.406,53.343L83.12,49.571L76.042,52.219C75.049,52.075 74.033,52 73,52C72.395,52 71.795,52.026 71.203,52.076L82.08,47.95L68.044,48.956L70.849,52.109C69.487,52.247 68.163,52.516 66.89,52.903L54.917,39.39V58.184L60.614,56.04C59.31,56.994 58.12,58.094 57.069,59.317L56.612,59.488L56.849,59.577C56.439,60.07 56.052,60.581 55.687,61.111L54.917,60.823V62.316C54.191,63.543 53.585,64.85 53.118,66.221V60.823L38.17,66.409H53.055C52.677,67.555 52.394,68.744 52.217,69.967H35.958C35.379,69.967 34.836,69.689 34.498,69.219L18.343,46.777C17.452,45.539 18.409,43.823 19.931,43.931L42.893,45.564L52.7,34.599C53.419,33.796 54.678,33.801 55.391,34.61L65.042,45.564ZM51.393,59.488L36.121,65.189L24.885,49.571L51.393,59.488ZM53.133,58.185V39.388L40.645,53.484L53.133,58.185ZM36.983,52.184L39.856,48.956L25.82,47.95L36.983,52.184ZM73,90C82.389,90 90,82.389 90,73C90,63.611 82.389,56 73,56C63.611,56 56,63.611 56,73C56,82.389 63.611,90 73,90Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M73.291,61.342L61.624,72.996L65.217,76.589L80.448,61.354H73.304L73.291,61.342ZM73.305,72.094L67.021,78.365L73.304,84.648H80.464L74.19,78.367L80.464,72.094H73.306L73.305,72.094Z"
android:fillColor="#000000"/>
</group>
</vector>
@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/splash_color"/>
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>
@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

@@ -3,14 +3,14 @@
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="splash_color">#005fff</color>
</resources>
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#005FFF</color>
</resources>
@@ -1,8 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1 @@
3.1.0
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -223,6 +223,7 @@
/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -259,11 +260,11 @@
"${BUILT_PRODUCTS_DIR}/image_picker_ios/image_picker_ios.framework",
"${BUILT_PRODUCTS_DIR}/libwebp/libwebp.framework",
"${BUILT_PRODUCTS_DIR}/package_info_plus/package_info_plus.framework",
"${BUILT_PRODUCTS_DIR}/path_provider_ios/path_provider_ios.framework",
"${BUILT_PRODUCTS_DIR}/path_provider_foundation/path_provider_foundation.framework",
"${BUILT_PRODUCTS_DIR}/photo_manager/photo_manager.framework",
"${BUILT_PRODUCTS_DIR}/sentry_flutter/sentry_flutter.framework",
"${BUILT_PRODUCTS_DIR}/share_plus/share_plus.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences_ios/shared_preferences_ios.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences_foundation/shared_preferences_foundation.framework",
"${BUILT_PRODUCTS_DIR}/sqflite/sqflite.framework",
"${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework",
"${BUILT_PRODUCTS_DIR}/sqlite3_flutter_libs/sqlite3_flutter_libs.framework",
@@ -291,11 +292,11 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info_plus.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_foundation.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/photo_manager.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sentry_flutter.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share_plus.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_foundation.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework",
@@ -311,6 +312,7 @@
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

@@ -69,5 +69,7 @@
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>
+3 -3
View File
@@ -133,8 +133,8 @@ class _StreamChatSampleAppState extends State<StreamChatSampleApp>
redirect: (context, state) {
final loggedIn =
_initNotifier.initData?.client.state.currentUser != null;
final loggingIn = state.subloc == Routes.CHOOSE_USER.path ||
state.subloc == Routes.ADVANCED_OPTIONS.path;
final loggingIn = state.matchedLocation == Routes.CHOOSE_USER.path ||
state.matchedLocation == Routes.ADVANCED_OPTIONS.path;
if (!loggedIn) {
return loggingIn ? null : Routes.CHOOSE_USER.path;
@@ -142,7 +142,7 @@ class _StreamChatSampleAppState extends State<StreamChatSampleApp>
// if the user is logged in but still on the login page, send them to
// the home page
if (loggedIn && state.subloc == Routes.CHOOSE_USER.path) {
if (loggedIn && state.matchedLocation == Routes.CHOOSE_USER.path) {
return Routes.CHANNEL_LIST_PAGE.path;
}
@@ -162,9 +162,9 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
}
router.pushNamed(
Routes.CHANNEL_PAGE.name,
params:
pathParameters:
Routes.CHANNEL_PAGE.params(channel),
queryParams:
queryParameters:
Routes.CHANNEL_PAGE.queryParams(m),
);
},
@@ -1,6 +1,6 @@
import 'package:collection/collection.dart';
import 'package:example/routes/routes.dart';
import 'package:example/pages/thread_page.dart';
import 'package:example/routes/routes.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
@@ -64,14 +64,14 @@ class _ChannelPageState extends State<ChannelPage> {
if (otherUser != null) {
router.pushNamed(
Routes.CHAT_INFO_SCREEN.name,
params: Routes.CHAT_INFO_SCREEN.params(channel),
pathParameters: Routes.CHAT_INFO_SCREEN.params(channel),
extra: otherUser.user,
);
}
} else {
GoRouter.of(context).pushNamed(
Routes.GROUP_INFO_SCREEN.name,
params: Routes.GROUP_INFO_SCREEN.params(channel),
pathParameters: Routes.GROUP_INFO_SCREEN.params(channel),
);
}
},
@@ -103,11 +103,12 @@ class _ChannelPageState extends State<ChannelPage> {
}
router.goNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParameters:
Routes.CHANNEL_PAGE.queryParams(message),
);
},
deletedBottomRowBuilder: (context, message) {
bottomRowBuilderWithDefaultWidget: (context, message, _) {
return const StreamVisibleFootnote();
},
);
@@ -38,7 +38,10 @@ class ChooseUserPage extends StatelessWidget {
child: SvgPicture.asset(
'assets/logo.svg',
height: 40,
color: StreamChatTheme.of(context).colorTheme.accentPrimary,
colorFilter: ColorFilter.mode(
StreamChatTheme.of(context).colorTheme.accentPrimary,
BlendMode.srcIn,
),
),
),
),
@@ -120,6 +123,9 @@ class ChooseUserPage extends StatelessWidget {
value: token,
);
}
// Pop the progress dialog.
router.pop();
router.replaceNamed(Routes.CHANNEL_LIST_PAGE.name);
},
leading: StreamUserAvatar(
@@ -136,7 +136,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
await channel.watch();
router.goNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
);
} catch (err) {
_showErrorAlert();
@@ -459,14 +459,16 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
size: 24.0,
),
onTap: () {
channel.update({
'name': _nameController.text.trim(),
}).catchError((err) {
try {
channel.update({
'name': _nameController.text.trim(),
});
} catch (_) {
setState(() {
_nameController.text = channelName;
_focusNode.unfocus();
});
});
}
},
),
),
@@ -878,7 +880,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
router.pushNamed(
Routes.CHAT_INFO_SCREEN.name,
params: Routes.CHAT_INFO_SCREEN.params(c),
pathParameters: Routes.CHAT_INFO_SCREEN.params(c),
extra: user,
);
},
@@ -908,7 +910,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
router.pushNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(c),
pathParameters: Routes.CHANNEL_PAGE.params(c),
);
},
),
@@ -409,7 +409,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
onMessageSent: (m) {
GoRouter.of(context).goNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel!),
pathParameters: Routes.CHANNEL_PAGE.params(channel!),
);
},
),
@@ -113,8 +113,8 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
}
router.pushNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParameters: Routes.CHANNEL_PAGE.queryParams(message),
);
},
),
@@ -64,7 +64,7 @@ class _ThreadPageState extends State<ThreadPage> {
messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith(
onReplyTap: _reply,
deletedBottomRowBuilder: (context, message) {
bottomRowBuilderWithDefaultWidget: (context, message, _) {
return const StreamVisibleFootnote();
},
);
@@ -82,8 +82,8 @@ class _UserMentionsPageState extends State<UserMentionsPage> {
}
router.pushNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParameters: Routes.CHANNEL_PAGE.queryParams(message),
);
},
);
@@ -27,10 +27,12 @@ final appRoutes = [
name: Routes.CHANNEL_PAGE.name,
path: Routes.CHANNEL_PAGE.path,
builder: (context, state) {
final channel =
StreamChat.of(context).client.state.channels[state.params['cid']];
final messageId = state.queryParams['mid'];
final parentId = state.queryParams['pid'];
final channel = StreamChat.of(context)
.client
.state
.channels[state.pathParameters['cid']];
final messageId = state.queryParameters['mid'];
final parentId = state.queryParameters['pid'];
Message? parentMessage;
if (parentId != null) {
@@ -60,7 +62,7 @@ final appRoutes = [
final channel = StreamChat.of(context)
.client
.state
.channels[state.params['cid']];
.channels[state.pathParameters['cid']];
return StreamChannel(
channel: channel!,
child: ChatInfoScreen(
@@ -77,7 +79,7 @@ final appRoutes = [
final channel = StreamChat.of(context)
.client
.state
.channels[state.params['cid']];
.channels[state.pathParameters['cid']];
return StreamChannel(
channel: channel!,
child: GroupInfoScreen(
@@ -52,7 +52,7 @@ void showLocalNotification(
router.pushNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
);
}
},
@@ -161,8 +161,9 @@ class _ChannelList extends State<ChannelList> {
}
router.pushNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParameters:
Routes.CHANNEL_PAGE.queryParams(message),
);
},
);
@@ -265,7 +266,7 @@ class _ChannelList extends State<ChannelList> {
onChannelTap: (channel) {
GoRouter.of(context).pushNamed(
Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel),
pathParameters: Routes.CHANNEL_PAGE.params(channel),
);
},
emptyBuilder: (_) {
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objectVersion = 54;
objects = {
/* Begin PBXAggregateTarget section */
@@ -204,7 +204,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 0930;
LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "";
TargetAttributes = {
33CC10EC2044A3C60003C045 = {
@@ -278,6 +278,7 @@
};
3399D490228B24CF009A79C7 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -404,7 +405,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
@@ -484,7 +485,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
@@ -531,7 +532,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1000"
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -36,8 +36,8 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
@@ -59,8 +59,6 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
@@ -1,68 +1,68 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_16.png",
"scale" : "1x"
"info": {
"version": 1,
"author": "xcode"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_64.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_1024.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
"images": [
{
"size": "16x16",
"idiom": "mac",
"filename": "app_icon_16.png",
"scale": "1x"
},
{
"size": "16x16",
"idiom": "mac",
"filename": "app_icon_32.png",
"scale": "2x"
},
{
"size": "32x32",
"idiom": "mac",
"filename": "app_icon_32.png",
"scale": "1x"
},
{
"size": "32x32",
"idiom": "mac",
"filename": "app_icon_64.png",
"scale": "2x"
},
{
"size": "128x128",
"idiom": "mac",
"filename": "app_icon_128.png",
"scale": "1x"
},
{
"size": "128x128",
"idiom": "mac",
"filename": "app_icon_256.png",
"scale": "2x"
},
{
"size": "256x256",
"idiom": "mac",
"filename": "app_icon_256.png",
"scale": "1x"
},
{
"size": "256x256",
"idiom": "mac",
"filename": "app_icon_512.png",
"scale": "2x"
},
{
"size": "512x512",
"idiom": "mac",
"filename": "app_icon_512.png",
"scale": "1x"
},
{
"size": "512x512",
"idiom": "mac",
"filename": "app_icon_1024.png",
"scale": "2x"
}
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

+28 -20
View File
@@ -1,13 +1,14 @@
name: example
description: A new Flutter project.
publish_to: "none"
version: 2.1.1
version: 2.2.0
environment:
sdk: ">=2.17.0 <3.0.0"
sdk: ">=2.17.0 <4.0.0"
flutter: ">=1.17.0"
dependencies:
flutter_app_badger: ^1.3.0
flutter_app_badger: ^1.5.0
flutter:
sdk: flutter
stream_chat_flutter:
@@ -26,22 +27,22 @@ dependencies:
ref: develop
path: packages/stream_chat_localizations
flutter_local_notifications: ^9.0.0
flutter_svg: ^1.0.3
flutter_secure_storage: ^6.0.0
yaml: ^3.1.0
uuid: ^3.0.5
flutter_svg: ^2.0.7
flutter_secure_storage: ^8.0.0
yaml: ^3.1.2
uuid: ^3.0.7
streaming_shared_preferences: ^2.0.0
lottie: ^2.2.0
collection: ^1.15.0
sentry_flutter: ^6.5.0
flutter_slidable: ^2.0.0
go_router: ^5.0.5
provider: ^6.0.3
lottie: ^2.4.0
collection: ^1.17.1
sentry_flutter: ^7.8.0
flutter_slidable: ^3.0.0
go_router: ^8.0.5
provider: ^6.0.5
video_player: ^2.6.1
dev_dependencies:
flutter_launcher_icons: ^0.9.2
test: any
flutter_lints: ^2.0.0
flutter_launcher_icons: ^0.13.1
flutter_lints: ^2.0.1
dependency_overrides:
stream_chat:
@@ -61,13 +62,20 @@ dependency_overrides:
path: packages/stream_chat_flutter
flutter:
uses-material-design: true
assets:
- assets/
- pubspec.lock
uses-material-design: true
flutter_icons:
image_path: "assets/ic_launcher.png"
android: true
adaptive_icon_background: "assets/ic_launcher_background.png"
adaptive_icon_foreground: "assets/ic_launcher_foreground.png"
ios: true
image_path_android: "assets/android_icon.png"
image_path_ios: "assets/ios_icon.png"
web:
generate: true
windows:
generate: true
macos:
generate: true
Binary file not shown.

Before

Width:  |  Height:  |  Size: 917 B

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

+39 -13
View File
@@ -1,34 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `flutter build`.
-->
<base href="$FLUTTER_BASE_HREF">
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">
<meta name="description" content="Sample app for the Stream Chat Flutter SDK.">
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="example">
<meta name="apple-mobile-web-app-title" content="Stream Chat V1">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<title>example</title>
<title>Stream Chat V1</title>
<link rel="manifest" href="manifest.json">
<script>
// The value below is injected by flutter build, do not touch.
var serviceWorkerVersion = null;
</script>
<!-- This script adds the flutter initialization JS code -->
<script defer src="flutter.js"></script>
<script defer src="sql-wasm.js"></script>
</head>
<body>
<!-- This script installs service_worker.js to provide PWA functionality to
application. For more information, see:
https://developers.google.com/web/fundamentals/primers/service-workers -->
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('flutter_service_worker.js');
<script>
window.addEventListener('load', function(ev) {
// Download main.dart.js
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
}
}).then(function(engineInitializer) {
return engineInitializer.initializeEngine();
}).then(function(appRunner) {
return appRunner.runApp();
});
}
});
</script>
<script defer src="sql-wasm.js"></script>
<script src="main.dart.js" type="application/javascript"></script>
</body>
</html>
+13 -1
View File
@@ -18,6 +18,18 @@
"src": "icons/Icon-512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "icons/Icon-maskable-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "icons/Icon-maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}
}