From 20bf77120fa814eed0c1e7e61241460d63253655 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 19 Apr 2019 12:26:11 +0200 Subject: [PATCH] Add database for bug report --- app/src/main/AndroidManifest.xml | 10 +++++ .../android/ui/extensions/UIExtensions.kt | 37 ++++++++++++++----- .../android/ui/fragment/SettingsFragment.kt | 10 ++--- app/src/main/res/xml/provider_paths.xml | 6 +++ 4 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/xml/provider_paths.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ef69191..c5824c37 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -98,6 +98,16 @@ android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" /> + + + + \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/extensions/UIExtensions.kt b/app/src/main/java/net/pokeranalytics/android/ui/extensions/UIExtensions.kt index a067ebb3..10647782 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/extensions/UIExtensions.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/extensions/UIExtensions.kt @@ -11,6 +11,7 @@ import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.AppCompatTextView import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat +import androidx.core.content.FileProvider import androidx.core.view.isVisible import net.pokeranalytics.android.BuildConfig import net.pokeranalytics.android.R @@ -19,6 +20,11 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.util.DeviceUtils import net.pokeranalytics.android.util.URL +import java.io.File + + + + // Sizes @@ -63,20 +69,33 @@ fun PokerAnalyticsActivity.openPlayStorePage() { } // Open email for "Contact us" -fun PokerAnalyticsActivity.openContactMail(subjectStringRes: Int) { +fun PokerAnalyticsActivity.openContactMail(subjectStringRes: Int, filePath: String?= null) { val info = "v${BuildConfig.VERSION_NAME}(${BuildConfig.VERSION_CODE}), Android ${android.os.Build.VERSION.SDK_INT}, ${DeviceUtils.getDeviceName()}" - val intent = Intent(Intent.ACTION_SENDTO) - intent.data = Uri.parse("mailto:${URL.SUPPORT_EMAIL.value}") - intent.putExtra(Intent.EXTRA_SUBJECT, getString(subjectStringRes)) - intent.putExtra(Intent.EXTRA_EMAIL, URL.SUPPORT_EMAIL.value) - intent.putExtra(Intent.EXTRA_TEXT, "\n\n$info") - startActivity(Intent.createChooser(intent, getString(R.string.contact))) + + val emailIntent = Intent(Intent.ACTION_SEND) + + filePath?.let { + val databaseFile = File(it) + val contentUri = FileProvider.getUriForFile(this, "net.pokeranalytics.android.fileprovider", databaseFile) + if (contentUri != null) { + emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + emailIntent.setDataAndType(contentUri, contentResolver.getType(contentUri)) + emailIntent.putExtra(Intent.EXTRA_STREAM, contentUri) + } + } + + emailIntent.type = "message/rfc822" + emailIntent.putExtra(Intent.EXTRA_SUBJECT, getString(subjectStringRes)) + emailIntent.putExtra(Intent.EXTRA_TEXT, "\n\n$info") + emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(URL.SUPPORT_EMAIL.value)) + + startActivity(Intent.createChooser(emailIntent, getString(R.string.contact))) } // Open custom tab fun PokerAnalyticsActivity.openUrl(url: String) { val builder: CustomTabsIntent.Builder = CustomTabsIntent.Builder() - builder.setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary)) + builder.setToolbarColor(ContextCompat.getColor(this, net.pokeranalytics.android.R.color.colorPrimary)) val customTabsIntent = builder.build() customTabsIntent.launchUrl(this, Uri.parse(url)) } @@ -102,7 +121,7 @@ fun showAlertDialog(context: Context, title: Int? = null, message: Int? = null) message?.let { builder.setMessage(message) } - builder.setPositiveButton(R.string.ok, null) + builder.setPositiveButton(net.pokeranalytics.android.R.string.ok, null) builder.show() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt index 782b6de8..b396874f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt @@ -11,7 +11,6 @@ import io.realm.Realm import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.BuildConfig import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.Bankroll import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.activity.CurrenciesActivity import net.pokeranalytics.android.ui.activity.DataListActivity @@ -20,15 +19,15 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource +import net.pokeranalytics.android.ui.extensions.openContactMail +import net.pokeranalytics.android.ui.extensions.openPlayStorePage +import net.pokeranalytics.android.ui.extensions.openUrl import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow import net.pokeranalytics.android.util.Preferences import net.pokeranalytics.android.util.URL import net.pokeranalytics.android.util.UserDefaults -import net.pokeranalytics.android.ui.extensions.openContactMail -import net.pokeranalytics.android.ui.extensions.openPlayStorePage -import net.pokeranalytics.android.ui.extensions.openUrl import java.util.* @@ -98,11 +97,10 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta } override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { - when (row) { SettingRow.RATE_APP -> parentActivity.openPlayStorePage() SettingRow.CONTACT_US -> parentActivity.openContactMail(R.string.contact) - SettingRow.BUG_REPORT -> parentActivity.openContactMail(R.string.bug_report_subject) + SettingRow.BUG_REPORT -> parentActivity.openContactMail(R.string.bug_report_subject, Realm.getDefaultInstance().path) SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, REQUEST_CODE_CURRENCY) SettingRow.FOLLOW_US -> { when (position) { diff --git a/app/src/main/res/xml/provider_paths.xml b/app/src/main/res/xml/provider_paths.xml new file mode 100644 index 00000000..45ed9d3f --- /dev/null +++ b/app/src/main/res/xml/provider_paths.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file