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: on:
push: push:
branches: branches:
- main - main
workflow_dispatch: workflow_dispatch:
defaults: defaults:
run: run:
working-directory: packages/stream_chat_v1 working-directory: packages/stream_chat_v1
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs: 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: build_and_deploy_ios:
runs-on: [macos-11] runs-on: macos-latest
timeout-minutes: 40
steps: steps:
- uses: actions/checkout@v2 - name: Checkout code
- run: sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer uses: actions/checkout@v3
- name: Install RubyGems
run: | - name: Setup Flutter
cd ios uses: subosito/flutter-action@v2
bundle install
- uses: subosito/[email protected]
with: with:
channel: 'stable' channel: stable
- name: Flutter setup cache: true
run: |
flutter pub get - 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 - name: Copy production config
run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart
- name: Build and release - name: Build and release
env: env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
@@ -42,38 +46,48 @@ jobs:
FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }} FASTLANE_SESSION: ${{ secrets.FASTLANE_SESSION }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }} FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }}
run: | run: |
flutter build ios --release --no-codesign flutter build ios --no-codesign
cd ios cd ios
bundle exec fastlane deploy_to_testflight bundle exec fastlane deploy_to_testflight
build_and_deploy_android: build_and_deploy_android:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 15
steps: steps:
- uses: actions/checkout@v2 - name: Checkout code
- uses: actions/setup-java@v1 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: with:
java-version: '12.x' java-version: '12.x'
- uses: subosito/[email protected]
with:
channel: 'stable'
- run: |
flutter pub get
- name: Copy production config - name: Copy production config
run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart
- name: Build - name: Build
run: | run: flutter build apk
flutter build apk
- name: upload apk - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: android-stream-chat-v1 name: android-stream-chat-v1
path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk
- name: Configure AWS credentials - name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1 uses: aws-actions/configure-aws-credentials@v2
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1 aws-region: us-east-1
- name: Upload APK
- name: Upload to S3
run: | run: |
cp build/app/outputs/apk/release/app-release.apk flutter-sample-app.apk 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 aws s3 cp flutter-sample-app.apk s3://${{ secrets.AWS_S3_BUCKET }} --sse AES256
+57 -36
View File
@@ -5,89 +5,110 @@ on:
branches: branches:
- develop - develop
workflow_dispatch: workflow_dispatch:
defaults: defaults:
run: run:
working-directory: packages/stream_chat_v1 working-directory: packages/stream_chat_v1
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs: 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: build_and_deploy_ios:
runs-on: [macos-11] runs-on: macos-latest
timeout-minutes: 40
steps: steps:
- uses: actions/checkout@v2 - name: Checkout code
- run: sudo xcode-select --switch /Applications/Xcode_13.0.app/Contents/Developer uses: actions/checkout@v3
- name: Install RubyGems
run: | - name: Setup Flutter
cd ios uses: subosito/flutter-action@v2
bundle install
- uses: subosito/[email protected]
with: 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 - name: Install firebase-tools
run: npm install -g firebase-tools run: npm install -g firebase-tools
- name: Flutter setup
run: |
flutter pub get
- name: Build and release - name: Build and release
env: env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
run: | run: |
flutter build ios --release --no-codesign flutter build ios --no-codesign
cd ios cd ios
bundle exec fastlane deploy_to_firebase bundle exec fastlane deploy_to_firebase
build_and_deploy_android: build_and_deploy_android:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 15
steps: steps:
- uses: actions/checkout@v2 - name: Checkout code
- uses: actions/setup-java@v1 uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v1
with: with:
java-version: '12.x' java-version: '12.x'
- uses: subosito/[email protected]
- name: Setup Flutter
uses: subosito/flutter-action@v2
with: with:
channel: 'stable' channel: stable
- run: | cache: true
flutter pub get
- name: Build - name: Build
run: | run: flutter build apk
flutter build apk
- name: Deploy - name: Deploy
uses: wzieba/Firebase-Distribution-Github-Action@v1.3.2 uses: wzieba/Firebase-Distribution-Github-Action@v1
with: with:
appId: ${{secrets.FIREBASE_ANDROID_APPID}} appId: ${{secrets.FIREBASE_ANDROID_APPID}}
token: ${{secrets.FIREBASE_TOKEN}} token: ${{secrets.FIREBASE_TOKEN}}
groups: stream-testers groups: stream-testers
debug: true debug: true
file: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk 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: with:
name: android-stream-chat-v1 name: android-stream-chat-v1
path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk path: packages/stream_chat_v1/build/app/outputs/apk/release/app-release.apk
build_and_deploy_web: build_and_deploy_web:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 10
steps: steps:
- uses: actions/checkout@v2 - name: Checkout code
uses: actions/checkout@v3
- name: config git - name: config git
run: | run: |
git config --global user.email "$(git log --format='%ae' HEAD^!)" git config --global user.email "$(git log --format='%ae' HEAD^!)"
git config --global user.name "$(git log --format='%an' HEAD^!)" git config --global user.name "$(git log --format='%an' HEAD^!)"
git fetch origin gh-pages:gh-pages git fetch origin gh-pages:gh-pages
- uses: subosito/[email protected]
- name: Setup Flutter
uses: subosito/flutter-action@v2
with: with:
channel: 'stable' channel: stable
- run: flutter pub get cache: true
- name: Copy production config - name: Copy production config
run: echo "${{ secrets.PRODUCTION_CONFIG }}" > lib/app_config.dart 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: with:
webRenderer: canvaskit baseHref: /flutter-samples/
workingDir: packages/stream_chat_v1 workingDir: packages/stream_chat_v1
+5 -20
View File
@@ -4,7 +4,7 @@
# This file should be version controlled. # This file should be version controlled.
version: version:
revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851 revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
channel: stable channel: stable
project_type: app project_type: app
@@ -13,26 +13,11 @@ project_type: app
migration: migration:
platforms: platforms:
- platform: root - platform: root
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851 create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851 base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
- platform: android - platform: android
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851 create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851 base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
- 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
# User provided section # User provided section
@@ -9,10 +9,9 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application <application
android:name=".Application"
android:label="Chat Sample Flutter" android:label="Chat Sample Flutter"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"
> >
<activity <activity
@@ -23,6 +22,14 @@
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustResize"
android:exported="true"> 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> <intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" /> <action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@@ -38,4 +45,4 @@
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
</application> </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 package com.example.example
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() { 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"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen --> <!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <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> </layer-list>
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/> <background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/> <foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon> </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 --> <!-- 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"> <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when <!-- 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> <item name="android:windowBackground">@drawable/launch_background</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its Flutter UI initializes, as well as behind your Flutter UI while its
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar"> <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item> <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"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <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 <!-- 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> <item name="android:windowBackground">@drawable/launch_background</item>
</style> </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> </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; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 50; objectVersion = 54;
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
@@ -223,6 +223,7 @@
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
@@ -259,11 +260,11 @@
"${BUILT_PRODUCTS_DIR}/image_picker_ios/image_picker_ios.framework", "${BUILT_PRODUCTS_DIR}/image_picker_ios/image_picker_ios.framework",
"${BUILT_PRODUCTS_DIR}/libwebp/libwebp.framework", "${BUILT_PRODUCTS_DIR}/libwebp/libwebp.framework",
"${BUILT_PRODUCTS_DIR}/package_info_plus/package_info_plus.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}/photo_manager/photo_manager.framework",
"${BUILT_PRODUCTS_DIR}/sentry_flutter/sentry_flutter.framework", "${BUILT_PRODUCTS_DIR}/sentry_flutter/sentry_flutter.framework",
"${BUILT_PRODUCTS_DIR}/share_plus/share_plus.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}/sqflite/sqflite.framework",
"${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework", "${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework",
"${BUILT_PRODUCTS_DIR}/sqlite3_flutter_libs/sqlite3_flutter_libs.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}/image_picker_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libwebp.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}/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}/photo_manager.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sentry_flutter.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}/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}/sqflite.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework",
@@ -311,6 +312,7 @@
}; };
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( 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> </array>
<key>CADisableMinimumFrameDurationOnPhone</key> <key>CADisableMinimumFrameDurationOnPhone</key>
<true/> <true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict> </dict>
</plist> </plist>
+3 -3
View File
@@ -133,8 +133,8 @@ class _StreamChatSampleAppState extends State<StreamChatSampleApp>
redirect: (context, state) { redirect: (context, state) {
final loggedIn = final loggedIn =
_initNotifier.initData?.client.state.currentUser != null; _initNotifier.initData?.client.state.currentUser != null;
final loggingIn = state.subloc == Routes.CHOOSE_USER.path || final loggingIn = state.matchedLocation == Routes.CHOOSE_USER.path ||
state.subloc == Routes.ADVANCED_OPTIONS.path; state.matchedLocation == Routes.ADVANCED_OPTIONS.path;
if (!loggedIn) { if (!loggedIn) {
return loggingIn ? null : Routes.CHOOSE_USER.path; 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 // if the user is logged in but still on the login page, send them to
// the home page // 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; return Routes.CHANNEL_LIST_PAGE.path;
} }
@@ -162,9 +162,9 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
} }
router.pushNamed( router.pushNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: pathParameters:
Routes.CHANNEL_PAGE.params(channel), Routes.CHANNEL_PAGE.params(channel),
queryParams: queryParameters:
Routes.CHANNEL_PAGE.queryParams(m), Routes.CHANNEL_PAGE.queryParams(m),
); );
}, },
@@ -1,6 +1,6 @@
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:example/routes/routes.dart';
import 'package:example/pages/thread_page.dart'; import 'package:example/pages/thread_page.dart';
import 'package:example/routes/routes.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart';
@@ -64,14 +64,14 @@ class _ChannelPageState extends State<ChannelPage> {
if (otherUser != null) { if (otherUser != null) {
router.pushNamed( router.pushNamed(
Routes.CHAT_INFO_SCREEN.name, Routes.CHAT_INFO_SCREEN.name,
params: Routes.CHAT_INFO_SCREEN.params(channel), pathParameters: Routes.CHAT_INFO_SCREEN.params(channel),
extra: otherUser.user, extra: otherUser.user,
); );
} }
} else { } else {
GoRouter.of(context).pushNamed( GoRouter.of(context).pushNamed(
Routes.GROUP_INFO_SCREEN.name, 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( router.goNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel), pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message), queryParameters:
Routes.CHANNEL_PAGE.queryParams(message),
); );
}, },
deletedBottomRowBuilder: (context, message) { bottomRowBuilderWithDefaultWidget: (context, message, _) {
return const StreamVisibleFootnote(); return const StreamVisibleFootnote();
}, },
); );
@@ -38,7 +38,10 @@ class ChooseUserPage extends StatelessWidget {
child: SvgPicture.asset( child: SvgPicture.asset(
'assets/logo.svg', 'assets/logo.svg',
height: 40, 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, value: token,
); );
} }
// Pop the progress dialog.
router.pop();
router.replaceNamed(Routes.CHANNEL_LIST_PAGE.name); router.replaceNamed(Routes.CHANNEL_LIST_PAGE.name);
}, },
leading: StreamUserAvatar( leading: StreamUserAvatar(
@@ -136,7 +136,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
await channel.watch(); await channel.watch();
router.goNamed( router.goNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel), pathParameters: Routes.CHANNEL_PAGE.params(channel),
); );
} catch (err) { } catch (err) {
_showErrorAlert(); _showErrorAlert();
@@ -459,14 +459,16 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
size: 24.0, size: 24.0,
), ),
onTap: () { onTap: () {
channel.update({ try {
'name': _nameController.text.trim(), channel.update({
}).catchError((err) { 'name': _nameController.text.trim(),
});
} catch (_) {
setState(() { setState(() {
_nameController.text = channelName; _nameController.text = channelName;
_focusNode.unfocus(); _focusNode.unfocus();
}); });
}); }
}, },
), ),
), ),
@@ -878,7 +880,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
router.pushNamed( router.pushNamed(
Routes.CHAT_INFO_SCREEN.name, Routes.CHAT_INFO_SCREEN.name,
params: Routes.CHAT_INFO_SCREEN.params(c), pathParameters: Routes.CHAT_INFO_SCREEN.params(c),
extra: user, extra: user,
); );
}, },
@@ -908,7 +910,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
router.pushNamed( router.pushNamed(
Routes.CHANNEL_PAGE.name, 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) { onMessageSent: (m) {
GoRouter.of(context).goNamed( GoRouter.of(context).goNamed(
Routes.CHANNEL_PAGE.name, 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( router.pushNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel), pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message), queryParameters: Routes.CHANNEL_PAGE.queryParams(message),
); );
}, },
), ),
@@ -64,7 +64,7 @@ class _ThreadPageState extends State<ThreadPage> {
messageBuilder: (context, details, messages, defaultMessage) { messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith( return defaultMessage.copyWith(
onReplyTap: _reply, onReplyTap: _reply,
deletedBottomRowBuilder: (context, message) { bottomRowBuilderWithDefaultWidget: (context, message, _) {
return const StreamVisibleFootnote(); return const StreamVisibleFootnote();
}, },
); );
@@ -82,8 +82,8 @@ class _UserMentionsPageState extends State<UserMentionsPage> {
} }
router.pushNamed( router.pushNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel), pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message), queryParameters: Routes.CHANNEL_PAGE.queryParams(message),
); );
}, },
); );
@@ -27,10 +27,12 @@ final appRoutes = [
name: Routes.CHANNEL_PAGE.name, name: Routes.CHANNEL_PAGE.name,
path: Routes.CHANNEL_PAGE.path, path: Routes.CHANNEL_PAGE.path,
builder: (context, state) { builder: (context, state) {
final channel = final channel = StreamChat.of(context)
StreamChat.of(context).client.state.channels[state.params['cid']]; .client
final messageId = state.queryParams['mid']; .state
final parentId = state.queryParams['pid']; .channels[state.pathParameters['cid']];
final messageId = state.queryParameters['mid'];
final parentId = state.queryParameters['pid'];
Message? parentMessage; Message? parentMessage;
if (parentId != null) { if (parentId != null) {
@@ -60,7 +62,7 @@ final appRoutes = [
final channel = StreamChat.of(context) final channel = StreamChat.of(context)
.client .client
.state .state
.channels[state.params['cid']]; .channels[state.pathParameters['cid']];
return StreamChannel( return StreamChannel(
channel: channel!, channel: channel!,
child: ChatInfoScreen( child: ChatInfoScreen(
@@ -77,7 +79,7 @@ final appRoutes = [
final channel = StreamChat.of(context) final channel = StreamChat.of(context)
.client .client
.state .state
.channels[state.params['cid']]; .channels[state.pathParameters['cid']];
return StreamChannel( return StreamChannel(
channel: channel!, channel: channel!,
child: GroupInfoScreen( child: GroupInfoScreen(
@@ -52,7 +52,7 @@ void showLocalNotification(
router.pushNamed( router.pushNamed(
Routes.CHANNEL_PAGE.name, 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( router.pushNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel), pathParameters: Routes.CHANNEL_PAGE.params(channel),
queryParams: Routes.CHANNEL_PAGE.queryParams(message), queryParameters:
Routes.CHANNEL_PAGE.queryParams(message),
); );
}, },
); );
@@ -265,7 +266,7 @@ class _ChannelList extends State<ChannelList> {
onChannelTap: (channel) { onChannelTap: (channel) {
GoRouter.of(context).pushNamed( GoRouter.of(context).pushNamed(
Routes.CHANNEL_PAGE.name, Routes.CHANNEL_PAGE.name,
params: Routes.CHANNEL_PAGE.params(channel), pathParameters: Routes.CHANNEL_PAGE.params(channel),
); );
}, },
emptyBuilder: (_) { emptyBuilder: (_) {
@@ -3,7 +3,7 @@
archiveVersion = 1; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 51; objectVersion = 54;
objects = { objects = {
/* Begin PBXAggregateTarget section */ /* Begin PBXAggregateTarget section */
@@ -204,7 +204,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastSwiftUpdateCheck = 0920; LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 0930; LastUpgradeCheck = 1300;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
TargetAttributes = { TargetAttributes = {
33CC10EC2044A3C60003C045 = { 33CC10EC2044A3C60003C045 = {
@@ -278,6 +278,7 @@
}; };
3399D490228B24CF009A79C7 /* ShellScript */ = { 3399D490228B24CF009A79C7 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
@@ -404,7 +405,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11; MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
@@ -484,7 +485,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11; MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx; SDKROOT = macosx;
@@ -531,7 +532,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11; MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1000" LastUpgradeVersion = "1300"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
@@ -36,8 +36,8 @@
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <Testables>
</AdditionalOptions> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Debug"
@@ -59,8 +59,6 @@
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction
buildConfiguration = "Profile" buildConfiguration = "Profile"
@@ -1,68 +1,68 @@
{ {
"images" : [ "info": {
{ "version": 1,
"size" : "16x16", "author": "xcode"
"idiom" : "mac",
"filename" : "app_icon_16.png",
"scale" : "1x"
}, },
{ "images": [
"size" : "16x16", {
"idiom" : "mac", "size": "16x16",
"filename" : "app_icon_32.png", "idiom": "mac",
"scale" : "2x" "filename": "app_icon_16.png",
}, "scale": "1x"
{ },
"size" : "32x32", {
"idiom" : "mac", "size": "16x16",
"filename" : "app_icon_32.png", "idiom": "mac",
"scale" : "1x" "filename": "app_icon_32.png",
}, "scale": "2x"
{ },
"size" : "32x32", {
"idiom" : "mac", "size": "32x32",
"filename" : "app_icon_64.png", "idiom": "mac",
"scale" : "2x" "filename": "app_icon_32.png",
}, "scale": "1x"
{ },
"size" : "128x128", {
"idiom" : "mac", "size": "32x32",
"filename" : "app_icon_128.png", "idiom": "mac",
"scale" : "1x" "filename": "app_icon_64.png",
}, "scale": "2x"
{ },
"size" : "128x128", {
"idiom" : "mac", "size": "128x128",
"filename" : "app_icon_256.png", "idiom": "mac",
"scale" : "2x" "filename": "app_icon_128.png",
}, "scale": "1x"
{ },
"size" : "256x256", {
"idiom" : "mac", "size": "128x128",
"filename" : "app_icon_256.png", "idiom": "mac",
"scale" : "1x" "filename": "app_icon_256.png",
}, "scale": "2x"
{ },
"size" : "256x256", {
"idiom" : "mac", "size": "256x256",
"filename" : "app_icon_512.png", "idiom": "mac",
"scale" : "2x" "filename": "app_icon_256.png",
}, "scale": "1x"
{ },
"size" : "512x512", {
"idiom" : "mac", "size": "256x256",
"filename" : "app_icon_512.png", "idiom": "mac",
"scale" : "1x" "filename": "app_icon_512.png",
}, "scale": "2x"
{ },
"size" : "512x512", {
"idiom" : "mac", "size": "512x512",
"filename" : "app_icon_1024.png", "idiom": "mac",
"scale" : "2x" "filename": "app_icon_512.png",
} "scale": "1x"
], },
"info" : { {
"version" : 1, "size": "512x512",
"author" : "xcode" "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 name: example
description: A new Flutter project. description: A new Flutter project.
publish_to: "none" publish_to: "none"
version: 2.1.1 version: 2.2.0
environment: environment:
sdk: ">=2.17.0 <3.0.0" sdk: ">=2.17.0 <4.0.0"
flutter: ">=1.17.0"
dependencies: dependencies:
flutter_app_badger: ^1.3.0 flutter_app_badger: ^1.5.0
flutter: flutter:
sdk: flutter sdk: flutter
stream_chat_flutter: stream_chat_flutter:
@@ -26,22 +27,22 @@ dependencies:
ref: develop ref: develop
path: packages/stream_chat_localizations path: packages/stream_chat_localizations
flutter_local_notifications: ^9.0.0 flutter_local_notifications: ^9.0.0
flutter_svg: ^1.0.3 flutter_svg: ^2.0.7
flutter_secure_storage: ^6.0.0 flutter_secure_storage: ^8.0.0
yaml: ^3.1.0 yaml: ^3.1.2
uuid: ^3.0.5 uuid: ^3.0.7
streaming_shared_preferences: ^2.0.0 streaming_shared_preferences: ^2.0.0
lottie: ^2.2.0 lottie: ^2.4.0
collection: ^1.15.0 collection: ^1.17.1
sentry_flutter: ^6.5.0 sentry_flutter: ^7.8.0
flutter_slidable: ^2.0.0 flutter_slidable: ^3.0.0
go_router: ^5.0.5 go_router: ^8.0.5
provider: ^6.0.3 provider: ^6.0.5
video_player: ^2.6.1
dev_dependencies: dev_dependencies:
flutter_launcher_icons: ^0.9.2 flutter_launcher_icons: ^0.13.1
test: any flutter_lints: ^2.0.1
flutter_lints: ^2.0.0
dependency_overrides: dependency_overrides:
stream_chat: stream_chat:
@@ -61,13 +62,20 @@ dependency_overrides:
path: packages/stream_chat_flutter path: packages/stream_chat_flutter
flutter: flutter:
uses-material-design: true
assets: assets:
- assets/ - assets/
- pubspec.lock
uses-material-design: true
flutter_icons: flutter_icons:
image_path: "assets/ic_launcher.png"
android: true android: true
adaptive_icon_background: "assets/ic_launcher_background.png"
adaptive_icon_foreground: "assets/ic_launcher_foreground.png"
ios: true ios: true
image_path_android: "assets/android_icon.png" web:
image_path_ios: "assets/ios_icon.png" 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> <!DOCTYPE html>
<html> <html>
<head> <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 charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible"> <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 --> <!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes"> <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-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"> <link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/> <link rel="icon" type="image/png" href="favicon.png"/>
<title>example</title> <title>Stream Chat V1</title>
<link rel="manifest" href="manifest.json"> <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> </head>
<body> <body>
<!-- This script installs service_worker.js to provide PWA functionality to <script>
application. For more information, see: window.addEventListener('load', function(ev) {
https://developers.google.com/web/fundamentals/primers/service-workers --> // Download main.dart.js
<script> _flutter.loader.loadEntrypoint({
if ('serviceWorker' in navigator) { serviceWorker: {
window.addEventListener('load', function () { serviceWorkerVersion: serviceWorkerVersion,
navigator.serviceWorker.register('flutter_service_worker.js'); }
}).then(function(engineInitializer) {
return engineInitializer.initializeEngine();
}).then(function(appRunner) {
return appRunner.runApp();
}); });
} });
</script> </script>
<script defer src="sql-wasm.js"></script>
<script src="main.dart.js" type="application/javascript"></script>
</body> </body>
</html> </html>
+13 -1
View File
@@ -18,6 +18,18 @@
"src": "icons/Icon-512.png", "src": "icons/Icon-512.png",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png" "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"
} }
] ]
} }