mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-22 01:15:54 +03:00
Merge remote-tracking branch 'origin/develop' into feature/eric/new-layout-navigation
# Conflicts: # vector/src/main/java/im/vector/app/features/home/NewHomeDetailFragment.kt
This commit is contained in:
commit
64894d4443
323 changed files with 1687 additions and 2236 deletions
2
.github/ISSUE_TEMPLATE/release.yml
vendored
2
.github/ISSUE_TEMPLATE/release.yml
vendored
|
@ -21,6 +21,8 @@ body:
|
|||
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
|
||||
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
|
||||
|
||||
- [ ] Ensure all [the required PRs](https://github.com/vector-im/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
|
||||
|
||||
### Do the release
|
||||
|
||||
- [ ] Make sure `develop` and `main` are up to date (git pull)
|
||||
|
|
2
.github/workflows/danger.yml
vendored
2
.github/workflows/danger.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
|||
- run: |
|
||||
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
||||
- name: Danger
|
||||
uses: danger/danger-js@11.1.1
|
||||
uses: danger/danger-js@11.1.2
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile.js"
|
||||
env:
|
||||
|
|
2
.github/workflows/quality.yml
vendored
2
.github/workflows/quality.yml
vendored
|
@ -66,7 +66,7 @@ jobs:
|
|||
yarn add danger-plugin-lint-report --dev
|
||||
- name: Danger lint
|
||||
if: always()
|
||||
uses: danger/danger-js@11.1.1
|
||||
uses: danger/danger-js@11.1.2
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile-lint.js"
|
||||
env:
|
||||
|
|
48
CHANGES.md
48
CHANGES.md
|
@ -1,3 +1,51 @@
|
|||
Changes in Element v1.4.34 (2022-08-23)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- [Notification] - Handle creation of notification for live location and poll start ([#6746](https://github.com/vector-im/element-android/issues/6746))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes onboarding requiring matrix.org to be accessible on the first step, the server can now be manually changed ([#6718](https://github.com/vector-im/element-android/issues/6718))
|
||||
- Fixing sign in/up for homeservers that rely on the SSO fallback url ([#6827](https://github.com/vector-im/element-android/issues/6827))
|
||||
- Fixes uncaught exceptions in the SyncWorker to cause the worker to become stuck in the failure state ([#6836](https://github.com/vector-im/element-android/issues/6836))
|
||||
- Fixes onboarding captcha crashing when no WebView is available by showing an error with information instead ([#6855](https://github.com/vector-im/element-android/issues/6855))
|
||||
- Removes ability to continue registration after the app has been destroyed, fixes the next steps crashing due to missing information from the previous steps ([#6860](https://github.com/vector-im/element-android/issues/6860))
|
||||
- Fixes crash when exiting the login or registration entry screens whilst they're loading ([#6861](https://github.com/vector-im/element-android/issues/6861))
|
||||
- Fixes server selection being unable to trust certificates ([#6864](https://github.com/vector-im/element-android/issues/6864))
|
||||
- Ensure SyncThread is started when the app is launched after a Push has been received. ([#6884](https://github.com/vector-im/element-android/issues/6884))
|
||||
- Fixes missing firebase notifications after logging in when UnifiedPush distributor is installed ([#6891](https://github.com/vector-im/element-android/issues/6891))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Create DM room only on first message - Trigger the flow when the "Direct Message" action is selected from the room member details screen ([#5525](https://github.com/vector-im/element-android/issues/5525))
|
||||
- added filter tabs for new App layout's Home screen ([#6505](https://github.com/vector-im/element-android/issues/6505))
|
||||
- [App Layout] added dialog to configure app layout ([#6506](https://github.com/vector-im/element-android/issues/6506))
|
||||
- Adds space list bottom sheet for new app layout ([#6749](https://github.com/vector-im/element-android/issues/6749))
|
||||
- [App Layout] Dialpad moved from bottom navigation tab to a separate activity accessed via home screen context menu ([#6787](https://github.com/vector-im/element-android/issues/6787))
|
||||
- Makes toolbar switch title based on space in New App Layout ([#6795](https://github.com/vector-im/element-android/issues/6795))
|
||||
- [Devices management] Add a feature flag and empty screen for future new layout ([#6798](https://github.com/vector-im/element-android/issues/6798))
|
||||
- Adds new chat bottom sheet as the click action of the main FAB in the new app layout ([#6801](https://github.com/vector-im/element-android/issues/6801))
|
||||
- [Devices management] Other sessions section in new layout ([#6806](https://github.com/vector-im/element-android/issues/6806))
|
||||
- [New Layout] Adds space settings accessible through clicking the toolbar ([#6859](https://github.com/vector-im/element-android/issues/6859))
|
||||
- Adds New App Layout FABs (hidden behind feature flag) ([#6693](https://github.com/vector-im/element-android/issues/6693))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Rename `DebugService.logDbUsageInfo` (resp. `Session.logDbUsageInfo`) to `DebugService.getDbUsageInfo` (resp. `Session.getDbUsageInfo`) and return a String instead of logging. The caller may want to log the String. ([#6884](https://github.com/vector-im/element-android/issues/6884))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Removes the Login2 proof of concept - replaced by the FTUE changes ([#5974](https://github.com/vector-im/element-android/issues/5974))
|
||||
- Enable auto-capitalization for Room creation Title field ([#6645](https://github.com/vector-im/element-android/issues/6645))
|
||||
- Decouples the variant logic from the vector module ([#6783](https://github.com/vector-im/element-android/issues/6783))
|
||||
- Add a developer setting to enable LeakCanary at runtime ([#6786](https://github.com/vector-im/element-android/issues/6786))
|
||||
- [Create Room] Reduce some boilerplate with room state event contents ([#6799](https://github.com/vector-im/element-android/issues/6799))
|
||||
- [Call] Memory leak after a call ([#6808](https://github.com/vector-im/element-android/issues/6808))
|
||||
- Fix some string template ([#6843](https://github.com/vector-im/element-android/issues/6843))
|
||||
|
||||
|
||||
Changes in Element v1.4.32 (2022-08-10)
|
||||
=======================================
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ buildscript {
|
|||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.1.1"
|
||||
classpath 'org.owasp:dependency-check-gradle:7.1.1'
|
||||
classpath 'org.owasp:dependency-check-gradle:7.1.2'
|
||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.10"
|
||||
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Create DM room only on first message - Trigger the flow when the "Direct Message" action is selected from the room member details screen
|
|
@ -1 +0,0 @@
|
|||
Removes the Login2 proof of concept - replaced by the FTUE changes
|
|
@ -1 +0,0 @@
|
|||
added filter tabs for new App layout's Home screen
|
|
@ -1 +0,0 @@
|
|||
[App Layout] added dialog to configure app layout
|
|
@ -1 +0,0 @@
|
|||
Enable auto-capitalization for Room creation Title field
|
|
@ -1 +0,0 @@
|
|||
Adds New App Layout FABs (hidden behind feature flag)
|
|
@ -1 +0,0 @@
|
|||
[Notification] - Handle creation of notification for live location and poll start
|
|
@ -1 +0,0 @@
|
|||
Adds space list bottom sheet for new app layout
|
|
@ -1 +0,0 @@
|
|||
Decouples the variant logic from the vector module
|
|
@ -1 +0,0 @@
|
|||
Add a developer setting to enable LeakCanary at runtime
|
|
@ -1 +0,0 @@
|
|||
[App Layout] Dialpad moved from bottom navigation tab to a separate activity accessed via home screen context menu
|
|
@ -1 +0,0 @@
|
|||
Makes toolbar switch title based on space in New App Layout
|
|
@ -1 +0,0 @@
|
|||
[Devices management] Add a feature flag and empty screen for future new layout
|
|
@ -1 +0,0 @@
|
|||
[Create Room] Reduce some boilerplate with room state event contents
|
|
@ -1 +0,0 @@
|
|||
Adds new chat bottom sheet as the click action of the main FAB in the new app layout
|
|
@ -1 +0,0 @@
|
|||
[Devices management] Other sessions section in new layout
|
|
@ -1 +0,0 @@
|
|||
[Call] Memory leak after a call
|
|
@ -1 +0,0 @@
|
|||
Fixing sign in/up for homeservers that rely on the SSO fallback url
|
|
@ -1 +0,0 @@
|
|||
Fixes uncaught exceptions in the SyncWorker to cause the worker to become stuck in the failure state
|
|
@ -1 +0,0 @@
|
|||
Fix some string template
|
|
@ -1 +0,0 @@
|
|||
Fixes onboarding captcha crashing when no WebView is available by showing an error with information instead
|
|
@ -1 +0,0 @@
|
|||
[New Layout] Adds space settings accessible through clicking the toolbar
|
|
@ -1 +0,0 @@
|
|||
Removes ability to continue registration after the app has been destroyed, fixes the next steps crashing due to missing information from the previous steps
|
|
@ -1 +0,0 @@
|
|||
Fixes crash when exiting the login or registration entry screens whilst they're loading
|
|
@ -1 +0,0 @@
|
|||
Fixes server selection being unable to trust certificates
|
|
@ -1 +0,0 @@
|
|||
Ensure SyncThread is started when the app is launched after a Push has been received.
|
|
@ -1 +0,0 @@
|
|||
Rename `DebugService.logDbUsageInfo` (resp. `Session.logDbUsageInfo`) to `DebugService.getDbUsageInfo` (resp. `Session.getDbUsageInfo`) and return a String instead of logging. The caller may want to log the String.
|
|
@ -1 +0,0 @@
|
|||
Fixes missing firebase notifications after logging in when UnifiedPush distributor is installed
|
1
changelog.d/6894.misc
Normal file
1
changelog.d/6894.misc
Normal file
|
@ -0,0 +1 @@
|
|||
Remove FragmentModule and the Fragment factory. No need to Inject the constructor on your Fragment, just add @AndroidEntryPoint annotation and @Inject class members.
|
|
@ -22,7 +22,7 @@ def markwon = "4.6.2"
|
|||
def moshi = "1.13.0"
|
||||
def lifecycle = "2.5.1"
|
||||
def flowBinding = "1.2.0"
|
||||
def flipper = "0.157.0"
|
||||
def flipper = "0.161.0"
|
||||
def epoxy = "4.6.2"
|
||||
def mavericks = "2.7.0"
|
||||
def glide = "4.13.2"
|
||||
|
|
|
@ -7,8 +7,8 @@ Hilt is built on top of Dagger 2 and simplify usage by removing needs to create
|
|||
When you create a new feature, you should have the following:
|
||||
|
||||
Annotate your Activity with @AndroidEntryPoint
|
||||
Annotate your Fragment with @AndroidEntryPoint
|
||||
If you have a BottomSheetFragment => Annotate it with @AndroidEntryPoint
|
||||
Otherwise => Add your Fragment to the FragmentModule
|
||||
Add your ViewModel.Factory to the MavericksViewModelModule
|
||||
Makes sure your ViewModel as the following code:
|
||||
|
||||
|
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Hlavní změny v této verzi: Umožňuje vylepšené přihlašování a registraci.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Hlavní změny v této verzi: Umožňuje vylepšené přihlašování a registraci.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104340.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104340.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Main changes in this version: Various bug fixes and stability improvements.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Põhilised muutused selles versioonis: senisest parem liitumise ja sisselogimise töövoog.
|
||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Põhilised muutused selles versioonis: senisest parem liitumise ja sisselogimise töövoog.
|
||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
تغییرات عمده در این نگارش: به کار انداختن ورود بهبود یافته و سفرهای ورود.
|
||||
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
تغییرات عمده در این نگارش: به کار انداختن ورود بهبود یافته و سفرهای ورود.
|
||||
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Principaux changements pour cette version : Activation de l’authentification et du parcours d’inscription améliorés.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Principaux changements pour cette version : Activation de l’authentification et du parcours d’inscription améliorés.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Perubahan utama dalam versi ini: Mengaktifkan perjalanan masuk dan keluar yang diperbaiki.
|
||||
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Perubahan utama dalam versi ini: Mengaktifkan perjalanan masuk dan keluar yang diperbaiki.
|
||||
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
|
@ -1,42 +1,42 @@
|
|||
Element adalah perpesanan yang aman dan aplikasi kolaborasi tim produktivitas yang ideal untuk obrolan grup saat bekerja jarak jauh. Aplikasi perpesanan ini menggunakan enkripsi ujung-ke-ujung untuk memberikan konferensi video, pembagian file, dan panggilan suara yang aman.
|
||||
Element adalah perpesanan yang aman dan aplikasi kolaborasi tim produktivitas yang ideal untuk obrolan grup saat bekerja jarak jauh. Aplikasi perpesanan ini menggunakan enkripsi ujung-ke-ujung untuk menyediakan konferensi video, pembagian berkas, dan panggilan suara yang aman.
|
||||
|
||||
<b>Fitur Element termasuk</b>
|
||||
- Alat komunikasi online yang canggih
|
||||
<b>Fitur Element termasuk:</b>
|
||||
- Alat komunikasi daring yang canggih
|
||||
- Pesan-pesan yang dienkripsi sepenuhnya untuk memungkinkan komunikasi perusahaan yang lebih aman, bahkan untuk pekerja jarak jauh
|
||||
- Obrolan terdesentralisasi berdasarkan kerangka Matrix yang sumber terbuka
|
||||
- Pembagian file aman dengan data terenkripsi saat mengelola proyek
|
||||
- Obrolan terdesentralisasi berdasarkan kerangka kerja Matrix yang sumber terbuka
|
||||
- Pembagian berkas aman dengan data terenkripsi saat mengelola proyek
|
||||
- Obrolan video dengan VoIP dan pembagian layar
|
||||
- Integrasi yang mudah dengan alat kolaborasi online favorit Anda, alat manajemen proyek, layanan VoIP dan aplikasi perpesanan tim lainnya
|
||||
- Integrasi yang mudah dengan alat kolaborasi daring favorit Anda, alat pengelola proyek, layanan VoIP dan aplikasi perpesanan tim lainnya
|
||||
|
||||
Element benar-benar berbeda dari aplikasi perpesanan dan aplikasi kolaborasi lainnya. Element beroperasi pada Matrix, jaringan terbuka untuk pengiriman pesan yang aman dan komunikasi terdesentralisasi.
|
||||
Element benar-benar berbeda dari aplikasi perpesanan dan aplikasi kolaborasi lainnya. Element beroperasi pada Matrix, jaringan terbuka untuk pengiriman pesan yang aman dan komunikasi yang terdesentralisasi.
|
||||
|
||||
<b>Perpesanan dengan privasi dan enkripsi</b>
|
||||
Element melindungi Anda dari iklan yang tidak diinginkan, penambangan data dan taman berdinding. Element juga mengamankan semua data Anda, komunikasi video dan suara satu-ke-satu dengan enkripsi ujung-ke-ujung dan verifikasi perangkat menggunakan penandatanganan silang.
|
||||
Element melindungi Anda dari iklan yang tidak diinginkan, penambangan data, dan taman berdinding. Element juga mengamankan semua data Anda, komunikasi video dan suara satu-ke-satu dengan enkripsi ujung-ke-ujung, dan verifikasi perangkat menggunakan penandatanganan silang.
|
||||
|
||||
Element memberikan Anda kendali atas privasi Anda sambil memungkinkan Anda untuk berkomunikasi dengan siapa saja secara aman di jaringan Matrix, atau alat kolaborasi bisnis lainnya dengan mengintegrasikan aplikasi-aplikasi seperti Slack.
|
||||
Element memberikan Anda kendali atas privasi Anda sambil memungkinkan Anda untuk berkomunikasi dengan siapa saja secara aman di jaringan Matrix, atau alat kolaborasi bisnis lainnya dengan mengintegrasikan aplikasi seperti Slack.
|
||||
|
||||
<b>Element dapat dihost sendiri</b>
|
||||
Untuk memungkinkan lebih banyak kendali atas data dan pesan-pesan sensitif Anda, Element dapat dihost sendiri atau Anda dapat memilih host berbasis Matrix, standar untuk komunikasi terdesentralisasi sumber terbuka. Element memberi Anda privasi, kepatuhan keamanan, dan fleksibilitas integrasi.
|
||||
<b>Element dapat di-host sendiri</b>
|
||||
Untuk memungkinkan lebih banyak kendali atas data dan pesan-pesan sensitif Anda, Element dapat dilayani sendiri atau Anda dapat memilih layanan berbasis Matrix, standar untuk komunikasi terdesentralisasi sumber terbuka. Element memberikan Anda privasi, kepatuhan keamanan, dan fleksibilitas integrasi.
|
||||
|
||||
<b>Miliki data Anda</b>
|
||||
Anda memutuskan di mana untuk menyimpan data dan pesan-pesan Anda, tanpa risiko penambangan data atau akses dari pihak ketiga.
|
||||
|
||||
Element menempatkan Anda dalam kendali dengan cara yang berbeda:
|
||||
1. Dapatkan akun gratis pada server publik matrix.org yang dihost oleh pengembang Matrix, atau memilih dari ribuan server publik yang dihost oleh sukarelawan
|
||||
2. Host sendiri akun Anda dengan menjalankan server pada infrastruktur IT Anda sendiri
|
||||
1. Dapatkan akun gratis pada server publik matrix.org yang dilayani oleh pengembang Matrix, atau memilih dari ribuan server publik yang dilayani oleh sukarelawan
|
||||
2. Layani akun Anda sendiri dengan menjalankan server pada infrastruktur IT Anda sendiri
|
||||
3. Daftar untuk akun di server khusus dengan berlangganan platform hosting Layanan Matrix Element
|
||||
|
||||
<b>Perpesanan dan kolaborasi terbuka</b>
|
||||
Anda dapat mengobrol dengan siapa saja di jaringan Matrix, jika mereka menggunakan Element, aplikasi Matrix lain atau bahkan menggunakan aplikasi perpesanan yang berbeda.
|
||||
Anda dapat mengobrol dengan siapa saja di jaringan Matrix, jika mereka menggunakan Element, aplikasi Matrix lain, atau bahkan menggunakan aplikasi perpesanan yang berbeda.
|
||||
|
||||
<b>Sangat aman</b>
|
||||
Enkripsi ujung-ke-ujung yang nyata (hanya mereka yang dalam obrolan dapat mendekripsi pesan), dan verifikasi perangkat menggunakan penandatanganan silang.
|
||||
Enkripsi ujung-ke-ujung yang nyata (hanya mereka yang di dalam obrolan dapat mendekripsikan pesan), dan verifikasi perangkat menggunakan penandatanganan silang.
|
||||
|
||||
<b>Komunikasi dan integrasi lengkap</b>
|
||||
Perpesanan, panggilan suara dan video, pembagian file, pembagian layar dan banyak integrasi bot dan widget. Buat ruangan dan komunitas, tetap terhubung dan selesaikan hal-hal penting.
|
||||
Perpesanan, panggilan suara dan video, pembagian berkas, pembagian layar dan banyak integrasi bot dan widget. Buat ruangan dan komunitas, tetap terhubung, dan selesaikan hal-hal penting.
|
||||
|
||||
<b>Ambil di mana Anda tinggalkan</b>
|
||||
Tetap terhubung di mana Anda berada, dengan riwayat pesan yang disinkronkan di semua perangkat Anda dan web di https://app.element.io
|
||||
Tetap terhubung di mana Anda berada, dengan riwayat pesan yang disinkronkan pada semua perangkat Anda dan pada web di https://app.element.io
|
||||
|
||||
<b>Sumber terbuka</b>
|
||||
Element Android adalah proyek sumber terbuka, dihost oleh GitHub. Silakan laporkan masalah yang Anda temukan, atau membuat kontribusi ke pengembangannya di https://github.com/vector-im/element-android
|
||||
Element Android adalah proyek sumber terbuka, dilayani oleh GitHub. Silakan laporkan masalah yang Anda temukan, atau membuat kontribusi ke pengembangannya di https://github.com/vector-im/element-android
|
||||
|
|
2
fastlane/metadata/android/it-IT/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Modifiche principali in questa versione: introduce i percorsi migliorati di accesso e registrazione.
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Modifiche principali in questa versione: introduce i percorsi migliorati di accesso e registrazione.
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Principais mudanças nesta versão: Habilita as jornadas melhoradas de sign in e sign up.
|
||||
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Principais mudanças nesta versão: Habilita as jornadas melhoradas de sign in e sign up.
|
||||
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Hlavné zmeny v tejto verzii: Umožňuje vylepšené postupy prihlasovania a registrácie.
|
||||
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Hlavné zmeny v tejto verzii: Umožňuje vylepšené postupy prihlasovania a registrácie.
|
||||
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/uk/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Основні зміни в цій версії: Поліпшені вхід і реєстрація.
|
||||
Перелік усіх змін: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/uk/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Основні зміни в цій версії: Поліпшені вхід і реєстрація.
|
||||
Перелік усіх змін: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/zh-TW/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40104300.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
此版本中的主要變動:啟用改善的登入與註冊流程。
|
||||
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/zh-TW/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40104310.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
此版本中的主要變動:啟用改善的登入與註冊流程。
|
||||
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
|
@ -60,7 +60,7 @@ android {
|
|||
// that the app's state is completely cleared between tests.
|
||||
testInstrumentationRunnerArguments clearPackageData: 'true'
|
||||
|
||||
buildConfigField "String", "SDK_VERSION", "\"1.4.34\""
|
||||
buildConfigField "String", "SDK_VERSION", "\"1.4.36\""
|
||||
|
||||
buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\""
|
||||
buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\""
|
||||
|
|
|
@ -89,6 +89,8 @@ fun Throwable.isInvalidUIAAuth() = this is Failure.ServerError &&
|
|||
fun Throwable.isHomeserverUnavailable() = this is Failure.NetworkConnection &&
|
||||
this.ioException is UnknownHostException
|
||||
|
||||
fun Throwable.isHomeserverConnectionError() = this is Failure.NetworkConnection
|
||||
|
||||
fun Throwable.isMissingEmailVerification() = this is Failure.ServerError &&
|
||||
error.code == MatrixError.M_UNAUTHORIZED &&
|
||||
error.message == "Unable to get validated threepid"
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Copyright (c) 2022 The Matrix.org Foundation C.I.C.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.matrix.android.sdk.internal.database
|
||||
|
||||
import io.realm.DefaultCompactOnLaunchCallback
|
||||
|
||||
class RealmCompactOnLaunch : DefaultCompactOnLaunchCallback() {
|
||||
/**
|
||||
* Forces all RealmCompactOnLaunch instances to be equal.
|
||||
* Avoids Realm throwing when multiple instances of this class are used.
|
||||
*/
|
||||
override fun equals(other: Any?) = other is RealmCompactOnLaunch
|
||||
override fun hashCode() = 0x1000
|
||||
}
|
|
@ -64,7 +64,7 @@ internal class SessionRealmConfigurationFactory @Inject constructor(
|
|||
}
|
||||
|
||||
val realmConfiguration = RealmConfiguration.Builder()
|
||||
.compactOnLaunch()
|
||||
.compactOnLaunch(RealmCompactOnLaunch())
|
||||
.directory(directory)
|
||||
.name(REALM_NAME)
|
||||
.apply {
|
||||
|
|
|
@ -28,7 +28,6 @@ mv ./fastlane/metadata/android/fy ./fastlane_tmp
|
|||
mv ./fastlane/metadata/android/ga ./fastlane_tmp
|
||||
mv ./fastlane/metadata/android/kab ./fastlane_tmp
|
||||
mv ./fastlane/metadata/android/nb ./fastlane_tmp
|
||||
mv ./fastlane/metadata/android/gl ./fastlane_tmp
|
||||
|
||||
# Fastlane / PlayStore require longDescription and shortDescription file to be set, so copy the default
|
||||
# one for languages where they are missing
|
||||
|
|
|
@ -18,10 +18,10 @@ import javax.inject.Inject
|
|||
data class ${fragmentArgsClass}() : Parcelable
|
||||
</#if>
|
||||
|
||||
//TODO add this fragment into FragmentModule
|
||||
class ${fragmentClass} @Inject constructor(
|
||||
private val viewModelFactory: ${viewModelClass}.Factory
|
||||
) : VectorBaseFragment(), ${viewModelClass}.Factory by viewModelFactory {
|
||||
@AndroidEntryPoint
|
||||
class ${fragmentClass}() :
|
||||
VectorBaseFragment(),
|
||||
${viewModelClass}.Factory by viewModelFactory {
|
||||
|
||||
<#if createFragmentArgs>
|
||||
private val fragmentArgs: ${fragmentArgsClass} by args()
|
||||
|
|
|
@ -37,7 +37,7 @@ ext.versionMinor = 4
|
|||
// Note: even values are reserved for regular release, odd values for hotfix release.
|
||||
// When creating a hotfix, you should decrease the value, since the current value
|
||||
// is the value for the next regular release.
|
||||
ext.versionPatch = 34
|
||||
ext.versionPatch = 36
|
||||
|
||||
static def getGitTimestamp() {
|
||||
def cmd = 'git show -s --format=%ct'
|
||||
|
|
|
@ -28,7 +28,8 @@ import im.vector.app.core.platform.VectorBaseFragment
|
|||
import im.vector.app.databinding.FragmentDebugMemoryLeaksBinding
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DebugMemoryLeaksFragment : VectorBaseFragment<FragmentDebugMemoryLeaksBinding>() {
|
||||
class DebugMemoryLeaksFragment :
|
||||
VectorBaseFragment<FragmentDebugMemoryLeaksBinding>() {
|
||||
|
||||
private val viewModel: DebugMemoryLeaksViewModel by fragmentViewModel()
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ class ActiveSessionHolder @Inject constructor(
|
|||
|
||||
suspend fun clearActiveSession() {
|
||||
// Do some cleanup first
|
||||
getSafeActiveSession()?.let {
|
||||
getSafeActiveSession(startSync = false)?.let {
|
||||
Timber.w("clearActiveSession of ${it.myUserId}")
|
||||
it.callSignalingService().removeCallListener(callManager)
|
||||
it.removeListener(sessionListener)
|
||||
|
@ -91,8 +91,8 @@ class ActiveSessionHolder @Inject constructor(
|
|||
return activeSessionReference.get() != null || authenticationService.hasAuthenticatedSessions()
|
||||
}
|
||||
|
||||
fun getSafeActiveSession(): Session? {
|
||||
return runBlocking { getOrInitializeSession(startSync = true) }
|
||||
fun getSafeActiveSession(startSync: Boolean = true): Session? {
|
||||
return runBlocking { getOrInitializeSession(startSync = startSync) }
|
||||
}
|
||||
|
||||
fun getActiveSession(): Session {
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
package im.vector.app.core.di
|
||||
|
||||
import androidx.fragment.app.FragmentFactory
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import dagger.hilt.EntryPoint
|
||||
import dagger.hilt.InstallIn
|
||||
|
@ -25,6 +24,5 @@ import dagger.hilt.android.components.ActivityComponent
|
|||
@InstallIn(ActivityComponent::class)
|
||||
@EntryPoint
|
||||
interface ActivityEntryPoint {
|
||||
fun fragmentFactory(): FragmentFactory
|
||||
fun viewModelFactory(): ViewModelProvider.Factory
|
||||
}
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* Copyright 2019 New Vector Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package im.vector.app.core.di
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import dagger.MapKey
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@MapKey
|
||||
annotation class FragmentKey(val value: KClass<out Fragment>)
|
|
@ -1,954 +0,0 @@
|
|||
/*
|
||||
* Copyright 2019 New Vector Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package im.vector.app.core.di
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentFactory
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.components.ActivityComponent
|
||||
import dagger.multibindings.IntoMap
|
||||
import im.vector.app.features.analytics.ui.consent.AnalyticsOptInFragment
|
||||
import im.vector.app.features.attachments.preview.AttachmentsPreviewFragment
|
||||
import im.vector.app.features.contactsbook.ContactsBookFragment
|
||||
import im.vector.app.features.crypto.keysbackup.settings.KeysBackupSettingsFragment
|
||||
import im.vector.app.features.crypto.quads.SharedSecuredStorageKeyFragment
|
||||
import im.vector.app.features.crypto.quads.SharedSecuredStoragePassphraseFragment
|
||||
import im.vector.app.features.crypto.quads.SharedSecuredStorageResetAllFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapConclusionFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapConfirmPassphraseFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapEnterPassphraseFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapMigrateBackupFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapReAuthFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapSaveRecoveryKeyFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapSetupRecoveryKeyFragment
|
||||
import im.vector.app.features.crypto.recover.BootstrapWaitingFragment
|
||||
import im.vector.app.features.crypto.verification.QuadSLoadingFragment
|
||||
import im.vector.app.features.crypto.verification.cancel.VerificationCancelFragment
|
||||
import im.vector.app.features.crypto.verification.cancel.VerificationNotMeFragment
|
||||
import im.vector.app.features.crypto.verification.choose.VerificationChooseMethodFragment
|
||||
import im.vector.app.features.crypto.verification.conclusion.VerificationConclusionFragment
|
||||
import im.vector.app.features.crypto.verification.emoji.VerificationEmojiCodeFragment
|
||||
import im.vector.app.features.crypto.verification.qrconfirmation.VerificationQRWaitingFragment
|
||||
import im.vector.app.features.crypto.verification.qrconfirmation.VerificationQrScannedByOtherFragment
|
||||
import im.vector.app.features.crypto.verification.request.VerificationRequestFragment
|
||||
import im.vector.app.features.devtools.RoomDevToolEditFragment
|
||||
import im.vector.app.features.devtools.RoomDevToolFragment
|
||||
import im.vector.app.features.devtools.RoomDevToolSendFormFragment
|
||||
import im.vector.app.features.devtools.RoomDevToolStateEventListFragment
|
||||
import im.vector.app.features.discovery.DiscoverySettingsFragment
|
||||
import im.vector.app.features.discovery.change.SetIdentityServerFragment
|
||||
import im.vector.app.features.home.HomeDetailFragment
|
||||
import im.vector.app.features.home.HomeDrawerFragment
|
||||
import im.vector.app.features.home.LoadingFragment
|
||||
import im.vector.app.features.home.NewHomeDetailFragment
|
||||
import im.vector.app.features.home.room.breadcrumbs.BreadcrumbsFragment
|
||||
import im.vector.app.features.home.room.detail.TimelineFragment
|
||||
import im.vector.app.features.home.room.detail.search.SearchFragment
|
||||
import im.vector.app.features.home.room.list.RoomListFragment
|
||||
import im.vector.app.features.home.room.list.home.HomeRoomListFragment
|
||||
import im.vector.app.features.home.room.list.home.NewChatBottomSheet
|
||||
import im.vector.app.features.home.room.threads.list.views.ThreadListFragment
|
||||
import im.vector.app.features.location.LocationSharingFragment
|
||||
import im.vector.app.features.location.preview.LocationPreviewFragment
|
||||
import im.vector.app.features.login.LoginCaptchaFragment
|
||||
import im.vector.app.features.login.LoginFragment
|
||||
import im.vector.app.features.login.LoginGenericTextInputFormFragment
|
||||
import im.vector.app.features.login.LoginResetPasswordFragment
|
||||
import im.vector.app.features.login.LoginResetPasswordMailConfirmationFragment
|
||||
import im.vector.app.features.login.LoginResetPasswordSuccessFragment
|
||||
import im.vector.app.features.login.LoginServerSelectionFragment
|
||||
import im.vector.app.features.login.LoginServerUrlFormFragment
|
||||
import im.vector.app.features.login.LoginSignUpSignInSelectionFragment
|
||||
import im.vector.app.features.login.LoginSplashFragment
|
||||
import im.vector.app.features.login.LoginWaitForEmailFragment
|
||||
import im.vector.app.features.login.LoginWebFragment
|
||||
import im.vector.app.features.login.terms.LoginTermsFragment
|
||||
import im.vector.app.features.matrixto.MatrixToRoomSpaceFragment
|
||||
import im.vector.app.features.matrixto.MatrixToUserFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthAccountCreatedFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthCaptchaFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthChooseDisplayNameFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthChooseProfilePictureFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthCombinedLoginFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthCombinedRegisterFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthCombinedServerSelectionFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthEmailEntryFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthGenericTextInputFormFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthLegacyStyleCaptchaFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthLegacyWaitForEmailFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthLoginFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthPersonalizationCompleteFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthPhoneConfirmationFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthPhoneEntryFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthResetPasswordFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthResetPasswordMailConfirmationFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthResetPasswordSuccessFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthServerSelectionFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthSignUpSignInSelectionFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthSplashCarouselFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthSplashFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthUseCaseFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthWaitForEmailFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.FtueAuthWebFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.terms.FtueAuthLegacyStyleTermsFragment
|
||||
import im.vector.app.features.onboarding.ftueauth.terms.FtueAuthTermsFragment
|
||||
import im.vector.app.features.pin.PinFragment
|
||||
import im.vector.app.features.poll.create.CreatePollFragment
|
||||
import im.vector.app.features.qrcode.QrCodeScannerFragment
|
||||
import im.vector.app.features.reactions.EmojiChooserFragment
|
||||
import im.vector.app.features.reactions.EmojiSearchResultFragment
|
||||
import im.vector.app.features.roomdirectory.PublicRoomsFragment
|
||||
import im.vector.app.features.roomdirectory.createroom.CreateRoomFragment
|
||||
import im.vector.app.features.roomdirectory.picker.RoomDirectoryPickerFragment
|
||||
import im.vector.app.features.roomdirectory.roompreview.RoomPreviewNoPreviewFragment
|
||||
import im.vector.app.features.roommemberprofile.RoomMemberProfileFragment
|
||||
import im.vector.app.features.roommemberprofile.devices.DeviceListFragment
|
||||
import im.vector.app.features.roommemberprofile.devices.DeviceTrustInfoActionFragment
|
||||
import im.vector.app.features.roomprofile.RoomProfileFragment
|
||||
import im.vector.app.features.roomprofile.alias.RoomAliasFragment
|
||||
import im.vector.app.features.roomprofile.banned.RoomBannedMemberListFragment
|
||||
import im.vector.app.features.roomprofile.members.RoomMemberListFragment
|
||||
import im.vector.app.features.roomprofile.notifications.RoomNotificationSettingsFragment
|
||||
import im.vector.app.features.roomprofile.permissions.RoomPermissionsFragment
|
||||
import im.vector.app.features.roomprofile.settings.RoomSettingsFragment
|
||||
import im.vector.app.features.roomprofile.settings.joinrule.RoomJoinRuleFragment
|
||||
import im.vector.app.features.roomprofile.settings.joinrule.advanced.RoomJoinRuleChooseRestrictedFragment
|
||||
import im.vector.app.features.roomprofile.uploads.RoomUploadsFragment
|
||||
import im.vector.app.features.roomprofile.uploads.files.RoomUploadsFilesFragment
|
||||
import im.vector.app.features.roomprofile.uploads.media.RoomUploadsMediaFragment
|
||||
import im.vector.app.features.settings.VectorSettingsGeneralFragment
|
||||
import im.vector.app.features.settings.VectorSettingsHelpAboutFragment
|
||||
import im.vector.app.features.settings.VectorSettingsLabsFragment
|
||||
import im.vector.app.features.settings.VectorSettingsPinFragment
|
||||
import im.vector.app.features.settings.VectorSettingsPreferencesFragment
|
||||
import im.vector.app.features.settings.VectorSettingsSecurityPrivacyFragment
|
||||
import im.vector.app.features.settings.account.deactivation.DeactivateAccountFragment
|
||||
import im.vector.app.features.settings.crosssigning.CrossSigningSettingsFragment
|
||||
import im.vector.app.features.settings.devices.VectorSettingsDevicesFragment
|
||||
import im.vector.app.features.settings.devtools.AccountDataFragment
|
||||
import im.vector.app.features.settings.devtools.GossipingEventsPaperTrailFragment
|
||||
import im.vector.app.features.settings.devtools.IncomingKeyRequestListFragment
|
||||
import im.vector.app.features.settings.devtools.KeyRequestsFragment
|
||||
import im.vector.app.features.settings.devtools.OutgoingKeyRequestListFragment
|
||||
import im.vector.app.features.settings.font.FontScaleSettingFragment
|
||||
import im.vector.app.features.settings.homeserver.HomeserverSettingsFragment
|
||||
import im.vector.app.features.settings.ignored.VectorSettingsIgnoredUsersFragment
|
||||
import im.vector.app.features.settings.legals.LegalsFragment
|
||||
import im.vector.app.features.settings.locale.LocalePickerFragment
|
||||
import im.vector.app.features.settings.notifications.VectorSettingsAdvancedNotificationPreferenceFragment
|
||||
import im.vector.app.features.settings.notifications.VectorSettingsNotificationPreferenceFragment
|
||||
import im.vector.app.features.settings.notifications.VectorSettingsNotificationsTroubleshootFragment
|
||||
import im.vector.app.features.settings.push.PushGatewaysFragment
|
||||
import im.vector.app.features.settings.push.PushRulesFragment
|
||||
import im.vector.app.features.settings.threepids.ThreePidsSettingsFragment
|
||||
import im.vector.app.features.share.IncomingShareFragment
|
||||
import im.vector.app.features.signout.soft.SoftLogoutFragment
|
||||
import im.vector.app.features.spaces.SpaceListFragment
|
||||
import im.vector.app.features.spaces.create.ChoosePrivateSpaceTypeFragment
|
||||
import im.vector.app.features.spaces.create.ChooseSpaceTypeFragment
|
||||
import im.vector.app.features.spaces.create.CreateSpaceAdd3pidInvitesFragment
|
||||
import im.vector.app.features.spaces.create.CreateSpaceDefaultRoomsFragment
|
||||
import im.vector.app.features.spaces.create.CreateSpaceDetailsFragment
|
||||
import im.vector.app.features.spaces.explore.SpaceDirectoryFragment
|
||||
import im.vector.app.features.spaces.leave.SpaceLeaveAdvancedFragment
|
||||
import im.vector.app.features.spaces.manage.SpaceAddRoomFragment
|
||||
import im.vector.app.features.spaces.manage.SpaceManageRoomsFragment
|
||||
import im.vector.app.features.spaces.manage.SpaceSettingsFragment
|
||||
import im.vector.app.features.spaces.people.SpacePeopleFragment
|
||||
import im.vector.app.features.spaces.preview.SpacePreviewFragment
|
||||
import im.vector.app.features.terms.ReviewTermsFragment
|
||||
import im.vector.app.features.usercode.ShowUserCodeFragment
|
||||
import im.vector.app.features.userdirectory.UserListFragment
|
||||
import im.vector.app.features.widgets.WidgetFragment
|
||||
|
||||
@InstallIn(ActivityComponent::class)
|
||||
@Module
|
||||
interface FragmentModule {
|
||||
/**
|
||||
* Fragments with @IntoMap will be injected by this factory.
|
||||
*/
|
||||
@Binds
|
||||
fun bindFragmentFactory(factory: VectorFragmentFactory): FragmentFactory
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomListFragment::class)
|
||||
fun bindRoomListFragment(fragment: RoomListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(NewChatBottomSheet::class)
|
||||
fun bindNewChatBottomSheetFragment(fragment: NewChatBottomSheet): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LocalePickerFragment::class)
|
||||
fun bindLocalePickerFragment(fragment: LocalePickerFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpaceListFragment::class)
|
||||
fun bindSpaceListFragment(fragment: SpaceListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(TimelineFragment::class)
|
||||
fun bindTimelineFragment(fragment: TimelineFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomDirectoryPickerFragment::class)
|
||||
fun bindRoomDirectoryPickerFragment(fragment: RoomDirectoryPickerFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(CreateRoomFragment::class)
|
||||
fun bindCreateRoomFragment(fragment: CreateRoomFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomPreviewNoPreviewFragment::class)
|
||||
fun bindRoomPreviewNoPreviewFragment(fragment: RoomPreviewNoPreviewFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(KeysBackupSettingsFragment::class)
|
||||
fun bindKeysBackupSettingsFragment(fragment: KeysBackupSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoadingFragment::class)
|
||||
fun bindLoadingFragment(fragment: LoadingFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(HomeDrawerFragment::class)
|
||||
fun bindHomeDrawerFragment(fragment: HomeDrawerFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(HomeDetailFragment::class)
|
||||
fun bindHomeDetailFragment(fragment: HomeDetailFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(NewHomeDetailFragment::class)
|
||||
fun bindNewHomeDetailFragment(fragment: NewHomeDetailFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(EmojiSearchResultFragment::class)
|
||||
fun bindEmojiSearchResultFragment(fragment: EmojiSearchResultFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginFragment::class)
|
||||
fun bindLoginFragment(fragment: LoginFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginCaptchaFragment::class)
|
||||
fun bindLoginCaptchaFragment(fragment: LoginCaptchaFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginTermsFragment::class)
|
||||
fun bindLoginTermsFragment(fragment: LoginTermsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginServerUrlFormFragment::class)
|
||||
fun bindLoginServerUrlFormFragment(fragment: LoginServerUrlFormFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginResetPasswordMailConfirmationFragment::class)
|
||||
fun bindLoginResetPasswordMailConfirmationFragment(fragment: LoginResetPasswordMailConfirmationFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginResetPasswordFragment::class)
|
||||
fun bindLoginResetPasswordFragment(fragment: LoginResetPasswordFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginResetPasswordSuccessFragment::class)
|
||||
fun bindLoginResetPasswordSuccessFragment(fragment: LoginResetPasswordSuccessFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginServerSelectionFragment::class)
|
||||
fun bindLoginServerSelectionFragment(fragment: LoginServerSelectionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginSignUpSignInSelectionFragment::class)
|
||||
fun bindLoginSignUpSignInSelectionFragment(fragment: LoginSignUpSignInSelectionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginSplashFragment::class)
|
||||
fun bindLoginSplashFragment(fragment: LoginSplashFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginWebFragment::class)
|
||||
fun bindLoginWebFragment(fragment: LoginWebFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginGenericTextInputFormFragment::class)
|
||||
fun bindLoginGenericTextInputFormFragment(fragment: LoginGenericTextInputFormFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LoginWaitForEmailFragment::class)
|
||||
fun bindLoginWaitForEmailFragment(fragment: LoginWaitForEmailFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthLegacyStyleCaptchaFragment::class)
|
||||
fun bindFtueAuthLegacyStyleCaptchaFragment(fragment: FtueAuthLegacyStyleCaptchaFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthCaptchaFragment::class)
|
||||
fun bindFtueAuthCaptchaFragment(fragment: FtueAuthCaptchaFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthGenericTextInputFormFragment::class)
|
||||
fun bindFtueAuthGenericTextInputFormFragment(fragment: FtueAuthGenericTextInputFormFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthLoginFragment::class)
|
||||
fun bindFtueAuthLoginFragment(fragment: FtueAuthLoginFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthResetPasswordFragment::class)
|
||||
fun bindFtueAuthResetPasswordFragment(fragment: FtueAuthResetPasswordFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthResetPasswordMailConfirmationFragment::class)
|
||||
fun bindFtueAuthResetPasswordMailConfirmationFragment(fragment: FtueAuthResetPasswordMailConfirmationFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthResetPasswordSuccessFragment::class)
|
||||
fun bindFtueAuthResetPasswordSuccessFragment(fragment: FtueAuthResetPasswordSuccessFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthServerSelectionFragment::class)
|
||||
fun bindFtueAuthServerSelectionFragment(fragment: FtueAuthServerSelectionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthSignUpSignInSelectionFragment::class)
|
||||
fun bindFtueAuthSignUpSignInSelectionFragment(fragment: FtueAuthSignUpSignInSelectionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthSplashFragment::class)
|
||||
fun bindFtueAuthSplashFragment(fragment: FtueAuthSplashFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthSplashCarouselFragment::class)
|
||||
fun bindFtueAuthSplashCarouselFragment(fragment: FtueAuthSplashCarouselFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthUseCaseFragment::class)
|
||||
fun bindFtueAuthUseCaseFragment(fragment: FtueAuthUseCaseFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthWaitForEmailFragment::class)
|
||||
fun bindFtueAuthWaitForEmailFragment(fragment: FtueAuthWaitForEmailFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthLegacyWaitForEmailFragment::class)
|
||||
fun bindFtueAuthLegacyWaitForEmailFragment(fragment: FtueAuthLegacyWaitForEmailFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthWebFragment::class)
|
||||
fun bindFtueAuthWebFragment(fragment: FtueAuthWebFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthLegacyStyleTermsFragment::class)
|
||||
fun bindFtueAuthLegacyStyleTermsFragment(fragment: FtueAuthLegacyStyleTermsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthTermsFragment::class)
|
||||
fun bindFtueAuthTermsFragment(fragment: FtueAuthTermsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthAccountCreatedFragment::class)
|
||||
fun bindFtueAuthAccountCreatedFragment(fragment: FtueAuthAccountCreatedFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthEmailEntryFragment::class)
|
||||
fun bindFtueAuthEmailEntryFragment(fragment: FtueAuthEmailEntryFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthPhoneEntryFragment::class)
|
||||
fun bindFtueAuthPhoneEntryFragment(fragment: FtueAuthPhoneEntryFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthPhoneConfirmationFragment::class)
|
||||
fun bindFtueAuthPhoneConfirmationFragment(fragment: FtueAuthPhoneConfirmationFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthChooseDisplayNameFragment::class)
|
||||
fun bindFtueAuthChooseDisplayNameFragment(fragment: FtueAuthChooseDisplayNameFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthChooseProfilePictureFragment::class)
|
||||
fun bindFtueAuthChooseProfilePictureFragment(fragment: FtueAuthChooseProfilePictureFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthPersonalizationCompleteFragment::class)
|
||||
fun bindFtueAuthPersonalizationCompleteFragment(fragment: FtueAuthPersonalizationCompleteFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthCombinedLoginFragment::class)
|
||||
fun bindFtueAuthCombinedLoginFragment(fragment: FtueAuthCombinedLoginFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthCombinedRegisterFragment::class)
|
||||
fun bindFtueAuthCombinedRegisterFragment(fragment: FtueAuthCombinedRegisterFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FtueAuthCombinedServerSelectionFragment::class)
|
||||
fun bindFtueAuthCombinedServerSelectionFragment(fragment: FtueAuthCombinedServerSelectionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(UserListFragment::class)
|
||||
fun bindUserListFragment(fragment: UserListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(PushGatewaysFragment::class)
|
||||
fun bindPushGatewaysFragment(fragment: PushGatewaysFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsNotificationsTroubleshootFragment::class)
|
||||
fun bindVectorSettingsNotificationsTroubleshootFragment(fragment: VectorSettingsNotificationsTroubleshootFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsAdvancedNotificationPreferenceFragment::class)
|
||||
fun bindVectorSettingsAdvancedNotificationPreferenceFragment(fragment: VectorSettingsAdvancedNotificationPreferenceFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsNotificationPreferenceFragment::class)
|
||||
fun bindVectorSettingsNotificationPreferenceFragment(fragment: VectorSettingsNotificationPreferenceFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsLabsFragment::class)
|
||||
fun bindVectorSettingsLabsFragment(fragment: VectorSettingsLabsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(HomeserverSettingsFragment::class)
|
||||
fun bindHomeserverSettingsFragment(fragment: HomeserverSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(FontScaleSettingFragment::class)
|
||||
fun bindFontScaleSettingFragment(fragment: FontScaleSettingFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsPinFragment::class)
|
||||
fun bindVectorSettingsPinFragment(fragment: VectorSettingsPinFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsGeneralFragment::class)
|
||||
fun bindVectorSettingsGeneralFragment(fragment: VectorSettingsGeneralFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(PushRulesFragment::class)
|
||||
fun bindPushRulesFragment(fragment: PushRulesFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsPreferencesFragment::class)
|
||||
fun bindVectorSettingsPreferencesFragment(fragment: VectorSettingsPreferencesFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsSecurityPrivacyFragment::class)
|
||||
fun bindVectorSettingsSecurityPrivacyFragment(fragment: VectorSettingsSecurityPrivacyFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsHelpAboutFragment::class)
|
||||
fun bindVectorSettingsHelpAboutFragment(fragment: VectorSettingsHelpAboutFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsIgnoredUsersFragment::class)
|
||||
fun bindVectorSettingsIgnoredUsersFragment(fragment: VectorSettingsIgnoredUsersFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VectorSettingsDevicesFragment::class)
|
||||
fun bindVectorSettingsDevicesFragment(fragment: VectorSettingsDevicesFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ThreePidsSettingsFragment::class)
|
||||
fun bindThreePidsSettingsFragment(fragment: ThreePidsSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(PublicRoomsFragment::class)
|
||||
fun bindPublicRoomsFragment(fragment: PublicRoomsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomProfileFragment::class)
|
||||
fun bindRoomProfileFragment(fragment: RoomProfileFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomMemberListFragment::class)
|
||||
fun bindRoomMemberListFragment(fragment: RoomMemberListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomUploadsFragment::class)
|
||||
fun bindRoomUploadsFragment(fragment: RoomUploadsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomUploadsMediaFragment::class)
|
||||
fun bindRoomUploadsMediaFragment(fragment: RoomUploadsMediaFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomUploadsFilesFragment::class)
|
||||
fun bindRoomUploadsFilesFragment(fragment: RoomUploadsFilesFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomSettingsFragment::class)
|
||||
fun bindRoomSettingsFragment(fragment: RoomSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomAliasFragment::class)
|
||||
fun bindRoomAliasFragment(fragment: RoomAliasFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomPermissionsFragment::class)
|
||||
fun bindRoomPermissionsFragment(fragment: RoomPermissionsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomMemberProfileFragment::class)
|
||||
fun bindRoomMemberProfileFragment(fragment: RoomMemberProfileFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BreadcrumbsFragment::class)
|
||||
fun bindBreadcrumbsFragment(fragment: BreadcrumbsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(AnalyticsOptInFragment::class)
|
||||
fun bindAnalyticsOptInFragment(fragment: AnalyticsOptInFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(EmojiChooserFragment::class)
|
||||
fun bindEmojiChooserFragment(fragment: EmojiChooserFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SoftLogoutFragment::class)
|
||||
fun bindSoftLogoutFragment(fragment: SoftLogoutFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationRequestFragment::class)
|
||||
fun bindVerificationRequestFragment(fragment: VerificationRequestFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationChooseMethodFragment::class)
|
||||
fun bindVerificationChooseMethodFragment(fragment: VerificationChooseMethodFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationEmojiCodeFragment::class)
|
||||
fun bindVerificationEmojiCodeFragment(fragment: VerificationEmojiCodeFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationQrScannedByOtherFragment::class)
|
||||
fun bindVerificationQrScannedByOtherFragment(fragment: VerificationQrScannedByOtherFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationQRWaitingFragment::class)
|
||||
fun bindVerificationQRWaitingFragment(fragment: VerificationQRWaitingFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationConclusionFragment::class)
|
||||
fun bindVerificationConclusionFragment(fragment: VerificationConclusionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationCancelFragment::class)
|
||||
fun bindVerificationCancelFragment(fragment: VerificationCancelFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(QuadSLoadingFragment::class)
|
||||
fun bindQuadSLoadingFragment(fragment: QuadSLoadingFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(VerificationNotMeFragment::class)
|
||||
fun bindVerificationNotMeFragment(fragment: VerificationNotMeFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(QrCodeScannerFragment::class)
|
||||
fun bindQrCodeScannerFragment(fragment: QrCodeScannerFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(DeviceListFragment::class)
|
||||
fun bindDeviceListFragment(fragment: DeviceListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(DeviceTrustInfoActionFragment::class)
|
||||
fun bindDeviceTrustInfoActionFragment(fragment: DeviceTrustInfoActionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(CrossSigningSettingsFragment::class)
|
||||
fun bindCrossSigningSettingsFragment(fragment: CrossSigningSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(AttachmentsPreviewFragment::class)
|
||||
fun bindAttachmentsPreviewFragment(fragment: AttachmentsPreviewFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(IncomingShareFragment::class)
|
||||
fun bindIncomingShareFragment(fragment: IncomingShareFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(AccountDataFragment::class)
|
||||
fun bindAccountDataFragment(fragment: AccountDataFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(OutgoingKeyRequestListFragment::class)
|
||||
fun bindOutgoingKeyRequestListFragment(fragment: OutgoingKeyRequestListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(IncomingKeyRequestListFragment::class)
|
||||
fun bindIncomingKeyRequestListFragment(fragment: IncomingKeyRequestListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(KeyRequestsFragment::class)
|
||||
fun bindKeyRequestsFragment(fragment: KeyRequestsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(GossipingEventsPaperTrailFragment::class)
|
||||
fun bindGossipingEventsPaperTrailFragment(fragment: GossipingEventsPaperTrailFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapEnterPassphraseFragment::class)
|
||||
fun bindBootstrapEnterPassphraseFragment(fragment: BootstrapEnterPassphraseFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapConfirmPassphraseFragment::class)
|
||||
fun bindBootstrapConfirmPassphraseFragment(fragment: BootstrapConfirmPassphraseFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapWaitingFragment::class)
|
||||
fun bindBootstrapWaitingFragment(fragment: BootstrapWaitingFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapSetupRecoveryKeyFragment::class)
|
||||
fun bindBootstrapSetupRecoveryKeyFragment(fragment: BootstrapSetupRecoveryKeyFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapSaveRecoveryKeyFragment::class)
|
||||
fun bindBootstrapSaveRecoveryKeyFragment(fragment: BootstrapSaveRecoveryKeyFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapConclusionFragment::class)
|
||||
fun bindBootstrapConclusionFragment(fragment: BootstrapConclusionFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapReAuthFragment::class)
|
||||
fun bindBootstrapReAuthFragment(fragment: BootstrapReAuthFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(BootstrapMigrateBackupFragment::class)
|
||||
fun bindBootstrapMigrateBackupFragment(fragment: BootstrapMigrateBackupFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(DeactivateAccountFragment::class)
|
||||
fun bindDeactivateAccountFragment(fragment: DeactivateAccountFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SharedSecuredStoragePassphraseFragment::class)
|
||||
fun bindSharedSecuredStoragePassphraseFragment(fragment: SharedSecuredStoragePassphraseFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SharedSecuredStorageKeyFragment::class)
|
||||
fun bindSharedSecuredStorageKeyFragment(fragment: SharedSecuredStorageKeyFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SharedSecuredStorageResetAllFragment::class)
|
||||
fun bindSharedSecuredStorageResetAllFragment(fragment: SharedSecuredStorageResetAllFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SetIdentityServerFragment::class)
|
||||
fun bindSetIdentityServerFragment(fragment: SetIdentityServerFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(DiscoverySettingsFragment::class)
|
||||
fun bindDiscoverySettingsFragment(fragment: DiscoverySettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LegalsFragment::class)
|
||||
fun bindLegalsFragment(fragment: LegalsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ReviewTermsFragment::class)
|
||||
fun bindReviewTermsFragment(fragment: ReviewTermsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(WidgetFragment::class)
|
||||
fun bindWidgetFragment(fragment: WidgetFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ContactsBookFragment::class)
|
||||
fun bindPhoneBookFragment(fragment: ContactsBookFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(PinFragment::class)
|
||||
fun bindPinFragment(fragment: PinFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomBannedMemberListFragment::class)
|
||||
fun bindRoomBannedMemberListFragment(fragment: RoomBannedMemberListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomNotificationSettingsFragment::class)
|
||||
fun bindRoomNotificationSettingsFragment(fragment: RoomNotificationSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SearchFragment::class)
|
||||
fun bindSearchFragment(fragment: SearchFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ShowUserCodeFragment::class)
|
||||
fun bindShowUserCodeFragment(fragment: ShowUserCodeFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomDevToolFragment::class)
|
||||
fun bindRoomDevToolFragment(fragment: RoomDevToolFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomDevToolStateEventListFragment::class)
|
||||
fun bindRoomDevToolStateEventListFragment(fragment: RoomDevToolStateEventListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomDevToolEditFragment::class)
|
||||
fun bindRoomDevToolEditFragment(fragment: RoomDevToolEditFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomDevToolSendFormFragment::class)
|
||||
fun bindRoomDevToolSendFormFragment(fragment: RoomDevToolSendFormFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpacePreviewFragment::class)
|
||||
fun bindSpacePreviewFragment(fragment: SpacePreviewFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ChooseSpaceTypeFragment::class)
|
||||
fun bindChooseSpaceTypeFragment(fragment: ChooseSpaceTypeFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(CreateSpaceDetailsFragment::class)
|
||||
fun bindCreateSpaceDetailsFragment(fragment: CreateSpaceDetailsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(CreateSpaceDefaultRoomsFragment::class)
|
||||
fun bindCreateSpaceDefaultRoomsFragment(fragment: CreateSpaceDefaultRoomsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(MatrixToUserFragment::class)
|
||||
fun bindMatrixToUserFragment(fragment: MatrixToUserFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(MatrixToRoomSpaceFragment::class)
|
||||
fun bindMatrixToRoomSpaceFragment(fragment: MatrixToRoomSpaceFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpaceDirectoryFragment::class)
|
||||
fun bindSpaceDirectoryFragment(fragment: SpaceDirectoryFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ChoosePrivateSpaceTypeFragment::class)
|
||||
fun bindChoosePrivateSpaceTypeFragment(fragment: ChoosePrivateSpaceTypeFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(CreateSpaceAdd3pidInvitesFragment::class)
|
||||
fun bindCreateSpaceAdd3pidInvitesFragment(fragment: CreateSpaceAdd3pidInvitesFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpaceAddRoomFragment::class)
|
||||
fun bindSpaceAddRoomFragment(fragment: SpaceAddRoomFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpacePeopleFragment::class)
|
||||
fun bindSpacePeopleFragment(fragment: SpacePeopleFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpaceSettingsFragment::class)
|
||||
fun bindSpaceSettingsFragment(fragment: SpaceSettingsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpaceManageRoomsFragment::class)
|
||||
fun bindSpaceManageRoomsFragment(fragment: SpaceManageRoomsFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomJoinRuleFragment::class)
|
||||
fun bindRoomJoinRuleFragment(fragment: RoomJoinRuleFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(RoomJoinRuleChooseRestrictedFragment::class)
|
||||
fun bindRoomJoinRuleChooseRestrictedFragment(fragment: RoomJoinRuleChooseRestrictedFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(SpaceLeaveAdvancedFragment::class)
|
||||
fun bindSpaceLeaveAdvancedFragment(fragment: SpaceLeaveAdvancedFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(ThreadListFragment::class)
|
||||
fun bindThreadListFragment(fragment: ThreadListFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(CreatePollFragment::class)
|
||||
fun bindCreatePollFragment(fragment: CreatePollFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LocationSharingFragment::class)
|
||||
fun bindLocationSharingFragment(fragment: LocationSharingFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(LocationPreviewFragment::class)
|
||||
fun bindLocationPreviewFragment(fragment: LocationPreviewFragment): Fragment
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FragmentKey(HomeRoomListFragment::class)
|
||||
fun binHomeRoomListFragment(fragment: HomeRoomListFragment): Fragment
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
/*
|
||||
* Copyright 2019 New Vector Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package im.vector.app.core.di
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentFactory
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Provider
|
||||
|
||||
/**
|
||||
* FragmentFactory which uses Dagger to create the instances.
|
||||
*/
|
||||
class VectorFragmentFactory @Inject constructor(
|
||||
private val creators: @JvmSuppressWildcards Map<Class<out Fragment>, Provider<Fragment>>
|
||||
) : FragmentFactory() {
|
||||
|
||||
override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
|
||||
val fragmentClass = loadFragmentClass(classLoader, className)
|
||||
val creator: Provider<out Fragment>? = creators[fragmentClass]
|
||||
return if (creator == null) {
|
||||
Timber.v("Unknown model class: $className, fallback to default instance")
|
||||
super.instantiate(classLoader, className)
|
||||
} else {
|
||||
creator.get()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright (c) 2022 New Vector Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package im.vector.app.core.dialogs
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import im.vector.app.core.resources.ColorProvider
|
||||
import im.vector.app.core.time.Clock
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Factory for [GalleryOrCameraDialogHelper].
|
||||
*/
|
||||
class GalleryOrCameraDialogHelperFactory @Inject constructor(
|
||||
private val colorProvider: ColorProvider,
|
||||
private val clock: Clock,
|
||||
) {
|
||||
fun create(fragment: Fragment): GalleryOrCameraDialogHelper {
|
||||
return GalleryOrCameraDialogHelper(fragment, colorProvider, clock)
|
||||
}
|
||||
}
|
|
@ -21,7 +21,6 @@ import android.app.Activity
|
|||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Parcelable
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
|
@ -39,8 +38,6 @@ import androidx.core.content.ContextCompat
|
|||
import androidx.core.util.Consumer
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentFactory
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
|
@ -67,7 +64,6 @@ import im.vector.app.core.extensions.registerStartForActivityResult
|
|||
import im.vector.app.core.extensions.restart
|
||||
import im.vector.app.core.extensions.setTextOrHide
|
||||
import im.vector.app.core.extensions.singletonEntryPoint
|
||||
import im.vector.app.core.extensions.toMvRxBundle
|
||||
import im.vector.app.core.resources.BuildMeta
|
||||
import im.vector.app.core.utils.AndroidSystemSettingsProvider
|
||||
import im.vector.app.core.utils.ToolbarConfig
|
||||
|
@ -169,7 +165,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||
|
||||
lateinit var navigator: Navigator
|
||||
private set
|
||||
private lateinit var fragmentFactory: FragmentFactory
|
||||
|
||||
private lateinit var activeSessionHolder: ActiveSessionHolder
|
||||
private lateinit var vectorPreferences: VectorPreferences
|
||||
|
@ -210,8 +205,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||
val singletonEntryPoint = singletonEntryPoint()
|
||||
val activityEntryPoint = EntryPointAccessors.fromActivity(this, ActivityEntryPoint::class.java)
|
||||
ThemeUtils.setActivityTheme(this, getOtherThemes())
|
||||
fragmentFactory = activityEntryPoint.fragmentFactory()
|
||||
supportFragmentManager.fragmentFactory = fragmentFactory
|
||||
viewModelFactory = activityEntryPoint.viewModelFactory()
|
||||
super.onCreate(savedInstanceState)
|
||||
addOnMultiWindowModeChangedListener(onMultiWindowModeChangedListener)
|
||||
|
@ -464,12 +457,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||
bugReporter.inMultiWindowMode = it.isInMultiWindowMode
|
||||
}
|
||||
|
||||
protected fun createFragment(fragmentClass: Class<out Fragment>, argsParcelable: Parcelable? = null): Fragment {
|
||||
return fragmentFactory.instantiate(classLoader, fragmentClass.name).apply {
|
||||
arguments = argsParcelable?.toMvRxBundle()
|
||||
}
|
||||
}
|
||||
|
||||
/* ==========================================================================================
|
||||
* PRIVATE METHODS
|
||||
* ========================================================================================== */
|
||||
|
|
|
@ -123,7 +123,6 @@ abstract class VectorBaseFragment<VB : ViewBinding> : Fragment(), MavericksView
|
|||
analyticsTracker = singletonEntryPoint.analyticsTracker()
|
||||
unrecognizedCertificateDialog = singletonEntryPoint.unrecognizedCertificateDialog()
|
||||
viewModelFactory = activityEntryPoint.viewModelFactory()
|
||||
childFragmentManager.fragmentFactory = activityEntryPoint.fragmentFactory()
|
||||
super.onAttach(context)
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ import im.vector.app.core.platform.VectorBaseActivity
|
|||
import im.vector.app.core.utils.deleteAllFiles
|
||||
import im.vector.app.databinding.ActivityMainBinding
|
||||
import im.vector.app.features.analytics.VectorAnalytics
|
||||
import im.vector.app.features.analytics.plan.ViewRoom
|
||||
import im.vector.app.features.home.HomeActivity
|
||||
import im.vector.app.features.home.ShortcutsHandler
|
||||
import im.vector.app.features.notifications.NotificationDrawerManager
|
||||
|
@ -186,8 +187,7 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
|||
} else if (intent.action == ACTION_ROOM_DETAILS_FROM_SHORTCUT) {
|
||||
val roomId = intent.getStringExtra(EXTRA_ROOM_ID)
|
||||
if (roomId?.isNotEmpty() == true) {
|
||||
// TODO Add a trigger Shortcut to the analytics.
|
||||
navigator.openRoom(this, roomId)
|
||||
navigator.openRoom(this, roomId, trigger = ViewRoom.Trigger.Shortcut)
|
||||
}
|
||||
finish()
|
||||
} else {
|
||||
|
|
|
@ -117,6 +117,12 @@ data class Interaction(
|
|||
*/
|
||||
WebLeftPanelExploreRoomsButton,
|
||||
|
||||
/**
|
||||
* User clicked on the avatar uploader in the profile settings of
|
||||
* Element Web/Desktop.
|
||||
*/
|
||||
WebProfileSettingsAvatarUploadButton,
|
||||
|
||||
/**
|
||||
* User interacted with pin to sidebar checkboxes in the quick settings
|
||||
* menu of Element Web/Desktop.
|
||||
|
@ -279,6 +285,18 @@ data class Interaction(
|
|||
*/
|
||||
WebRoomListRoomsSublistPlusMenuExploreRoomsItem,
|
||||
|
||||
/**
|
||||
* User clicked on the button to return to the user onboarding list in
|
||||
* the room list in Element Web/Desktop.
|
||||
*/
|
||||
WebRoomListUserOnboardingButton,
|
||||
|
||||
/**
|
||||
* User clicked on the button to close the user onboarding button in the
|
||||
* room list in Element Web/Desktop.
|
||||
*/
|
||||
WebRoomListUserOnboardingIgnoreButton,
|
||||
|
||||
/**
|
||||
* User interacted with leave action in the general tab of the room
|
||||
* settings dialog in Element Web/Desktop.
|
||||
|
@ -349,6 +367,36 @@ data class Interaction(
|
|||
* Web/Desktop.
|
||||
*/
|
||||
WebUserMenuThemeToggleButton,
|
||||
|
||||
/**
|
||||
* User clicked on the send DM CTA in the header of the new user
|
||||
* onboarding page in Element Web/Desktop.
|
||||
*/
|
||||
WebUserOnboardingHeaderSendDm,
|
||||
|
||||
/**
|
||||
* User clicked on the action of the download apps task on the new user
|
||||
* onboarding page in Element Web/Desktop.
|
||||
*/
|
||||
WebUserOnboardingTaskDownloadApps,
|
||||
|
||||
/**
|
||||
* User clicked on the action of the enable notifications task on the
|
||||
* new user onboarding page in Element Web/Desktop.
|
||||
*/
|
||||
WebUserOnboardingTaskEnableNotifications,
|
||||
|
||||
/**
|
||||
* User clicked on the action of the find people task on the new user
|
||||
* onboarding page in Element Web/Desktop.
|
||||
*/
|
||||
WebUserOnboardingTaskSendDm,
|
||||
|
||||
/**
|
||||
* User clicked on the action of the your profile task on the new user
|
||||
* onboarding page in Element Web/Desktop.
|
||||
*/
|
||||
WebUserOnboardingTaskSetupProfile,
|
||||
}
|
||||
|
||||
enum class InteractionType {
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* Copyright (c) 2021 New Vector Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package im.vector.app.features.analytics.plan
|
||||
|
||||
import im.vector.app.features.analytics.itf.VectorAnalyticsEvent
|
||||
|
||||
// GENERATED FILE, DO NOT EDIT. FOR MORE INFORMATION VISIT
|
||||
// https://github.com/matrix-org/matrix-analytics-events/
|
||||
|
||||
/**
|
||||
* Triggered when the user changes a permission status.
|
||||
*/
|
||||
data class PermissionChanged(
|
||||
/**
|
||||
* Whether the permission has been granted by the user.
|
||||
*/
|
||||
val granted: Boolean,
|
||||
/**
|
||||
* The name of the permission.
|
||||
*/
|
||||
val permission: Permission,
|
||||
) : VectorAnalyticsEvent {
|
||||
|
||||
enum class Permission {
|
||||
/**
|
||||
* Permissions related to sending notifications have changed.
|
||||
*/
|
||||
Notification,
|
||||
}
|
||||
|
||||
override fun getName() = "PermissionChanged"
|
||||
|
||||
override fun getProperties(): Map<String, Any>? {
|
||||
return mutableMapOf<String, Any>().apply {
|
||||
put("granted", granted)
|
||||
put("permission", permission.name)
|
||||
}.takeIf { it.isNotEmpty() }
|
||||
}
|
||||
}
|
|
@ -152,6 +152,11 @@ data class ViewRoom(
|
|||
*/
|
||||
RoomList,
|
||||
|
||||
/**
|
||||
* Room accessed via a shortcut.
|
||||
*/
|
||||
Shortcut,
|
||||
|
||||
/**
|
||||
* Room accessed via a slash command in Element Web/Desktop like /goto.
|
||||
*/
|
||||
|
|
|
@ -21,6 +21,7 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.airbnb.mvrx.activityViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.setTextWithColoredPart
|
||||
import im.vector.app.core.platform.OnBackPressed
|
||||
|
@ -30,9 +31,12 @@ import im.vector.app.databinding.FragmentAnalyticsOptinBinding
|
|||
import im.vector.app.features.analytics.AnalyticsConfig
|
||||
import javax.inject.Inject
|
||||
|
||||
class AnalyticsOptInFragment @Inject constructor(
|
||||
private val analyticsConfig: AnalyticsConfig,
|
||||
) : VectorBaseFragment<FragmentAnalyticsOptinBinding>(), OnBackPressed {
|
||||
@AndroidEntryPoint
|
||||
class AnalyticsOptInFragment :
|
||||
VectorBaseFragment<FragmentAnalyticsOptinBinding>(),
|
||||
OnBackPressed {
|
||||
|
||||
@Inject lateinit var analyticsConfig: AnalyticsConfig
|
||||
|
||||
// Share the view model with the Activity so that the Activity
|
||||
// can decide what to do when the data has been saved
|
||||
|
|
|
@ -39,6 +39,7 @@ import com.airbnb.mvrx.args
|
|||
import com.airbnb.mvrx.fragmentViewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
import com.yalantis.ucrop.UCrop
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.cleanup
|
||||
import im.vector.app.core.extensions.insertBeforeLast
|
||||
|
@ -63,15 +64,17 @@ data class AttachmentsPreviewArgs(
|
|||
val attachments: List<ContentAttachmentData>
|
||||
) : Parcelable
|
||||
|
||||
class AttachmentsPreviewFragment @Inject constructor(
|
||||
private val attachmentMiniaturePreviewController: AttachmentMiniaturePreviewController,
|
||||
private val attachmentBigPreviewController: AttachmentBigPreviewController,
|
||||
private val colorProvider: ColorProvider,
|
||||
private val clock: Clock,
|
||||
) : VectorBaseFragment<FragmentAttachmentsPreviewBinding>(),
|
||||
@AndroidEntryPoint
|
||||
class AttachmentsPreviewFragment :
|
||||
VectorBaseFragment<FragmentAttachmentsPreviewBinding>(),
|
||||
AttachmentMiniaturePreviewController.Callback,
|
||||
VectorMenuProvider {
|
||||
|
||||
@Inject lateinit var attachmentMiniaturePreviewController: AttachmentMiniaturePreviewController
|
||||
@Inject lateinit var attachmentBigPreviewController: AttachmentBigPreviewController
|
||||
@Inject lateinit var colorProvider: ColorProvider
|
||||
@Inject lateinit var clock: Clock
|
||||
|
||||
private val fragmentArgs: AttachmentsPreviewArgs by args()
|
||||
private val viewModel: AttachmentsPreviewViewModel by fragmentViewModel()
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ import androidx.core.view.isVisible
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import com.airbnb.mvrx.activityViewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.cleanup
|
||||
import im.vector.app.core.extensions.configureWith
|
||||
import im.vector.app.core.extensions.hideKeyboard
|
||||
|
@ -44,9 +45,12 @@ import reactivecircus.flowbinding.android.widget.checkedChanges
|
|||
import reactivecircus.flowbinding.android.widget.textChanges
|
||||
import javax.inject.Inject
|
||||
|
||||
class ContactsBookFragment @Inject constructor(
|
||||
private val contactsBookController: ContactsBookController
|
||||
) : VectorBaseFragment<FragmentContactsBookBinding>(), ContactsBookController.Callback {
|
||||
@AndroidEntryPoint
|
||||
class ContactsBookFragment :
|
||||
VectorBaseFragment<FragmentContactsBookBinding>(),
|
||||
ContactsBookController.Callback {
|
||||
|
||||
@Inject lateinit var contactsBookController: ContactsBookController
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentContactsBookBinding {
|
||||
return FragmentContactsBookBinding.inflate(inflater, container, false)
|
||||
|
|
|
@ -22,15 +22,16 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||
import im.vector.app.core.platform.VectorBaseFragment
|
||||
import im.vector.app.core.utils.startImportTextFromFileIntent
|
||||
import im.vector.app.databinding.FragmentKeysBackupRestoreFromKeyBinding
|
||||
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeysBackupRestoreFromKeyFragment @Inject constructor() :
|
||||
@AndroidEntryPoint
|
||||
class KeysBackupRestoreFromKeyFragment :
|
||||
VectorBaseFragment<FragmentKeysBackupRestoreFromKeyBinding>() {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreFromKeyBinding {
|
||||
|
|
|
@ -24,12 +24,14 @@ import android.view.ViewGroup
|
|||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.core.text.set
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.platform.VectorBaseFragment
|
||||
import im.vector.app.databinding.FragmentKeysBackupRestoreFromPassphraseBinding
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeysBackupRestoreFromPassphraseFragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupRestoreFromPassphraseBinding>() {
|
||||
@AndroidEntryPoint
|
||||
class KeysBackupRestoreFromPassphraseFragment :
|
||||
VectorBaseFragment<FragmentKeysBackupRestoreFromPassphraseBinding>() {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreFromPassphraseBinding {
|
||||
return FragmentKeysBackupRestoreFromPassphraseBinding.inflate(inflater, container, false)
|
||||
|
|
|
@ -20,13 +20,15 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.view.isVisible
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.platform.VectorBaseFragment
|
||||
import im.vector.app.core.utils.LiveEvent
|
||||
import im.vector.app.databinding.FragmentKeysBackupRestoreSuccessBinding
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeysBackupRestoreSuccessFragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupRestoreSuccessBinding>() {
|
||||
@AndroidEntryPoint
|
||||
class KeysBackupRestoreSuccessFragment :
|
||||
VectorBaseFragment<FragmentKeysBackupRestoreSuccessBinding>() {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreSuccessBinding {
|
||||
return FragmentKeysBackupRestoreSuccessBinding.inflate(inflater, container, false)
|
||||
|
|
|
@ -22,6 +22,7 @@ import android.view.ViewGroup
|
|||
import com.airbnb.mvrx.activityViewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.cleanup
|
||||
import im.vector.app.core.extensions.configureWith
|
||||
|
@ -30,10 +31,13 @@ import im.vector.app.databinding.FragmentKeysBackupSettingsBinding
|
|||
import im.vector.app.features.crypto.keysbackup.restore.KeysBackupRestoreActivity
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeysBackupSettingsFragment @Inject constructor(private val keysBackupSettingsRecyclerViewController: KeysBackupSettingsRecyclerViewController) :
|
||||
@AndroidEntryPoint
|
||||
class KeysBackupSettingsFragment :
|
||||
VectorBaseFragment<FragmentKeysBackupSettingsBinding>(),
|
||||
KeysBackupSettingsRecyclerViewController.Listener {
|
||||
|
||||
@Inject lateinit var keysBackupSettingsRecyclerViewController: KeysBackupSettingsRecyclerViewController
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSettingsBinding {
|
||||
return FragmentKeysBackupSettingsBinding.inflate(inflater, container, false)
|
||||
}
|
||||
|
|
|
@ -20,12 +20,14 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.platform.VectorBaseFragment
|
||||
import im.vector.app.core.utils.LiveEvent
|
||||
import im.vector.app.databinding.FragmentKeysBackupSetupStep1Binding
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeysBackupSetupStep1Fragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupSetupStep1Binding>() {
|
||||
@AndroidEntryPoint
|
||||
class KeysBackupSetupStep1Fragment :
|
||||
VectorBaseFragment<FragmentKeysBackupSetupStep1Binding>() {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep1Binding {
|
||||
return FragmentKeysBackupSetupStep1Binding.inflate(inflater, container, false)
|
||||
|
|
|
@ -24,6 +24,7 @@ import androidx.core.widget.doOnTextChanged
|
|||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.transition.TransitionManager
|
||||
import com.nulabinc.zxcvbn.Zxcvbn
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.hidePassword
|
||||
import im.vector.app.core.platform.VectorBaseFragment
|
||||
|
@ -31,9 +32,10 @@ import im.vector.app.databinding.FragmentKeysBackupSetupStep2Binding
|
|||
import im.vector.app.features.settings.VectorLocale
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeysBackupSetupStep2Fragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupSetupStep2Binding>() {
|
||||
@AndroidEntryPoint
|
||||
class KeysBackupSetupStep2Fragment :
|
||||
VectorBaseFragment<FragmentKeysBackupSetupStep2Binding>() {
|
||||
|
||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep2Binding {
|
||||
return FragmentKeysBackupSetupStep2Binding.inflate(inflater, container, false)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue