From 008f91d7153d7a18219fed3f452dbed3e3aae246 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Fri, 9 Oct 2020 09:41:05 +0300 Subject: [PATCH] Settings: Implement the dashboard link. --- app/build.gradle | 2 +- .../syncadapter/ui/AccountSettingsActivity.kt | 27 +++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d45cb316..6f781ffc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -138,7 +138,7 @@ dependencies { implementation "org.jetbrains.anko:anko-commons:0.10.4" implementation "com.etesync:journalmanager:1.1.1" - def etebaseVersion = '0.2.2' + def etebaseVersion = '2.0.1-SNAPSHOT' implementation "com.etebase:client:$etebaseVersion" def acraVersion = '5.3.0' diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt index 893a946b..97590224 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt @@ -17,20 +17,24 @@ import android.os.Bundle import android.provider.CalendarContract import android.text.TextUtils import android.view.MenuItem -import android.widget.Toast +import androidx.appcompat.app.AlertDialog import androidx.core.app.NavUtils +import androidx.core.net.toUri import androidx.fragment.app.Fragment import androidx.loader.app.LoaderManager import androidx.loader.content.AsyncTaskLoader import androidx.loader.content.Loader import androidx.preference.* import at.bitfire.ical4android.TaskProvider.Companion.TASK_PROVIDERS +import com.etebase.client.exceptions.EtebaseException import com.etesync.syncadapter.* import com.etesync.syncadapter.Constants.KEY_ACCOUNT import com.etesync.syncadapter.R import com.etesync.syncadapter.log.Logger import com.etesync.syncadapter.ui.setup.LoginCredentials import com.etesync.syncadapter.ui.setup.LoginCredentialsChangeFragment +import org.jetbrains.anko.doAsync +import org.jetbrains.anko.uiThread class AccountSettingsActivity : BaseActivity() { private lateinit var account: Account @@ -92,7 +96,26 @@ class AccountSettingsFragment() : PreferenceFragmentCompat(), LoaderManager.Load // Category: dashboard val prefManageAccount = findPreference("manage_account") prefManageAccount.onPreferenceClickListener = Preference.OnPreferenceClickListener { _ -> - Toast.makeText(requireContext(), "Not yet supported", Toast.LENGTH_LONG).show() + doAsync { + try { + + val httpClient = HttpClient.Builder(requireContext()).build() + val etebase = EtebaseLocalCache.getEtebase(requireContext(), httpClient.okHttpClient, settings) + val url = etebase.fetchDashboardUrl() + uiThread { + WebViewActivity.openUrl(requireActivity(), url.toUri()) + } + } catch (e: EtebaseException) { + uiThread { + AlertDialog.Builder(requireContext()) + .setIcon(R.drawable.ic_error_dark) + .setTitle(R.string.exception) + .setMessage(e.localizedMessage) + .setPositiveButton(android.R.string.yes) { _, _ -> } + .show() + } + } + } true }