Merge pull request #93 from GetStream/latest-changes
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
|
After Width: | Height: | Size: 514 B |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 333 B |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 684 B |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 1021 B |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
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>
|
||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 8.6 KiB |
|
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>
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
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 = (
|
||||
);
|
||||
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
@@ -69,5 +69,7 @@
|
||||
</array>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 476 B |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.5 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 917 B After Width: | Height: | Size: 476 B |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 24 KiB |
@@ -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>
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||