diff --git a/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt b/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt index 0e238f9810..908ddaa260 100644 --- a/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt +++ b/app/src/main/java/chat/rocket/android/settings/presentation/SettingsPresenter.kt @@ -5,7 +5,6 @@ import chat.rocket.android.db.DatabaseManagerFactory import chat.rocket.android.helper.UserHelper import chat.rocket.android.main.presentation.MainNavigator import chat.rocket.android.server.domain.AnalyticsTrackingInteractor -import chat.rocket.android.server.domain.GetCurrentLanguageInteractor import chat.rocket.android.server.domain.GetCurrentServerInteractor import chat.rocket.android.server.domain.PermissionsInteractor import chat.rocket.android.server.domain.RemoveAccountInteractor @@ -19,10 +18,13 @@ import chat.rocket.android.util.extension.launchUI import chat.rocket.android.util.extension.toHex import chat.rocket.android.util.extensions.adminPanelUrl import chat.rocket.android.util.extensions.avatarUrl +import chat.rocket.android.util.extensions.isNotNullNorBlank import chat.rocket.android.util.retryIO import chat.rocket.common.util.ifNull +import chat.rocket.core.RocketChatClient import chat.rocket.core.internal.rest.deleteOwnAccount import chat.rocket.core.internal.rest.me +import chat.rocket.core.internal.rest.requestDataDownload import chat.rocket.core.internal.rest.serverInfo import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -40,7 +42,7 @@ class SettingsPresenter @Inject constructor( private val tokenRepository: TokenRepository, private val permissions: PermissionsInteractor, private val rocketChatClientFactory: RocketChatClientFactory, - getCurrentServerInteractor: GetCurrentServerInteractor, + serverInteractor: GetCurrentServerInteractor, removeAccountInteractor: RemoveAccountInteractor, databaseManagerFactory: DatabaseManagerFactory, connectionManagerFactory: ConnectionManagerFactory, @@ -48,7 +50,7 @@ class SettingsPresenter @Inject constructor( ) : CheckServerPresenter( strategy = strategy, factory = rocketChatClientFactory, - serverInteractor = getCurrentServerInteractor, + serverInteractor = serverInteractor, removeAccountInteractor = removeAccountInteractor, tokenRepository = tokenRepository, dbManagerFactory = databaseManagerFactory, @@ -56,6 +58,8 @@ class SettingsPresenter @Inject constructor( tokenView = view, navigator = navigator ) { + private val serverUrl = serverInteractor.get()!! + private val client: RocketChatClient = rocketChatClientFactory.get(serverUrl) private val token = tokenRepository.get(currentServer) fun setupView() { @@ -91,6 +95,28 @@ class SettingsPresenter @Inject constructor( } } + fun requestDataDownload() { + launchUI(strategy) { + try { + userHelper.user()?.let { user -> + val response = retryIO { client.requestDataDownload(user.id) } + if (response.requested) { + view.showMessage("Data download request placed successfully") + } else if (response.exportOperation.status.isNotNullNorBlank()) { + view.showMessage("Data download request already placed and has status: ${ response.exportOperation.status }") + } + } + } catch (exception: Exception) { + Timber.d(exception, "Error placing request for data download") + exception.message?.let { + view.showMessage("Error placing request for data download: $it") + }.ifNull { + view.showGenericErrorMessage() + } + } + } + } + fun enableAnalyticsTracking(isEnabled: Boolean) { analyticsTrackingInteractor.save(isEnabled) diff --git a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt index b6f1d0245a..fb3715bf2a 100644 --- a/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt @@ -77,6 +77,8 @@ class SettingsFragment : Fragment(), SettingsView, AppLanguageView { text_language.setOnClickListener { changeLanguage() } + text_download_my_data.setOnClickListener { presenter.requestDataDownload() } + text_review_this_app.setOnClickListener { showAppOnStore() } text_share_this_app.setOnClickListener { shareApp() } diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 6572366bf9..ebdc110fc2 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -111,6 +111,25 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/text_contact_us" /> + + + app:layout_constraintTop_toBottomOf="@+id/text_download_my_data" /> اتصل بنا تغيير اللغة + تحميل البيانات الخاصة بي قيم هذا التطبيق شارك هذا التطبيق الادارة diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7dd535945f..38cabf7ae2 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -63,6 +63,7 @@ Kontaktiere uns Sprache + Laden Sie meine Daten herunter Bewerte diese App Teile diese App Administration diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 97e711ae6b..83abd7706e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Descargar mis datos Review this app Share this app Administration diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 88f1eae94d..833b822b28 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -63,6 +63,7 @@ Contact us Language + اطلاعات من را دانلود کنید Review this app Share this app Administration diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0dc2f2f38f..5ac5e3382e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Télécharger mes données Review this app Share this app Administration diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index c16b3af7f6..115c2dd2d0 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -63,6 +63,7 @@ Contact us Language + मेरा डेटा डाउनलोड करें Review this app Share this app Administration diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c532c8737b..59c3097cb2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Scarica i miei dati Review this app Share this app Administration diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index df563d2cbf..c585da9d75 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -63,6 +63,7 @@ Contact us Language + マイデータをダウンロードする Review this app Share this app Administration diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2e97123af0..c7a6bd009c 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Baixar meus dados Review this app Share this app Administration diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 454e5de1b4..5fa773c6e2 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Baixar meus dados Review this app Share this app Administration diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 5288c2c8d7..4eeff8a74f 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -63,6 +63,7 @@ Связаться с нами Изменить язык + Скачать мои данные Оставить отзыв Поделиться приложением Панель админа diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index b7f6240a8b..539abdd7d0 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Verilerimi İndir Review this app Share this app Administration diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3f0d186638..e50869431d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -63,6 +63,7 @@ Contact us Language + Завантажити мої дані Review this app Share this app Administration diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d0865345f9..364e6219a7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -63,6 +63,7 @@ Contact us Language + 下载我的数据 Review this app Share this app Administration diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0a2da00640..082f11d053 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -63,6 +63,7 @@ Contact us Language + 下载我的数据 Review this app Share this app Administration diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e18aaa0cd6..5bb204e609 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -75,6 +75,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin Contact us Language + Download My Data Review this app Share this app Administration