From baf698b76e67438f7533be9212e50245820d195b Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Thu, 7 Mar 2019 09:40:11 +0100 Subject: [PATCH 1/9] Add GDPR Activity & improve email contact --- app/src/main/AndroidManifest.xml | 5 ++ .../android/ui/activity/GDPRActivity.kt | 36 ++++++++++ .../android/ui/fragment/SettingsFragment.kt | 19 ++++-- .../android/util/UIExtensions.kt | 3 +- app/src/main/res/layout/activity_gdpr.xml | 66 +++++++++++++++++++ 5 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/activity/GDPRActivity.kt create mode 100644 app/src/main/res/layout/activity_gdpr.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 620cdc53..a7bce528 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,11 @@ android:name=".ui.activity.CurrenciesActivity" android:launchMode="singleTop" /> + + + diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/GDPRActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/GDPRActivity.kt new file mode 100644 index 00000000..acbaf74e --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/GDPRActivity.kt @@ -0,0 +1,36 @@ +package net.pokeranalytics.android.ui.activity + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import kotlinx.android.synthetic.main.activity_gdpr.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity + +class GDPRActivity : PokerAnalyticsActivity() { + + companion object { + fun newInstance(context: Context) { + val intent = Intent(context, GDPRActivity::class.java) + context.startActivity(intent) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_gdpr) + + initUI() + } + + /** + * Init UI + */ + private fun initUI() { + + setSupportActionBar(toolbar) + supportActionBar?.setDisplayHomeAsUpEnabled(true) + + } + +} \ No newline at end of file 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 bf2cbf16..cc7ab50a 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 @@ -1,15 +1,17 @@ package net.pokeranalytics.android.ui.fragment +import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.BuildConfig +import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.activity.CurrenciesActivity import net.pokeranalytics.android.ui.activity.DataListActivity +import net.pokeranalytics.android.ui.activity.GDPRActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate @@ -70,8 +72,8 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta when (row) { SettingRow.RATE_APP -> parentActivity.openPlayStorePage() - SettingRow.CONTACT_US -> parentActivity.openContactMail() - SettingRow.BUG_REPORT -> Toast.makeText(requireContext(), "Bug report", Toast.LENGTH_SHORT).show() + SettingRow.CONTACT_US -> parentActivity.openContactMail(R.string.contact) + SettingRow.BUG_REPORT -> parentActivity.openContactMail(R.string.bug_report_subject) SettingRow.CURRENCY -> { CurrenciesActivity.newInstance(requireContext()) } @@ -85,7 +87,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta } SettingRow.PRIVACY_POLICY -> parentActivity.openUrl(URL.PRIVACY_POLICY.value) SettingRow.TERMS_OF_USE -> parentActivity.openUrl(URL.TERMS.value) - SettingRow.GDPR -> Toast.makeText(requireContext(), "Show GDPR", Toast.LENGTH_SHORT).show() + SettingRow.GDPR -> openGDPRActivity() } row.relatedResultsRepresentable?.let { @@ -111,4 +113,13 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta adapter = settingsAdapterRow } } + + /** + * Open GDPR Activity + */ + private fun openGDPRActivity() { + val intent = Intent(requireContext(), GDPRActivity::class.java) + startActivity(intent) + } + } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt b/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt index 149449c1..39d7e0c6 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/UIExtensions.kt @@ -54,10 +54,11 @@ fun PokerAnalyticsActivity.openPlayStorePage() { } // Open email for "Contact us" -fun PokerAnalyticsActivity.openContactMail() { +fun PokerAnalyticsActivity.openContactMail(subjectStringRes: Int) { val info = "v${BuildConfig.VERSION_NAME}(${BuildConfig.VERSION_CODE}), Android ${android.os.Build.VERSION.SDK_INT}" 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))) diff --git a/app/src/main/res/layout/activity_gdpr.xml b/app/src/main/res/layout/activity_gdpr.xml new file mode 100644 index 00000000..0f04bf83 --- /dev/null +++ b/app/src/main/res/layout/activity_gdpr.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c7e3ef1998a34a8e42c732a844125f79ba3bc24c Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Thu, 7 Mar 2019 09:54:54 +0100 Subject: [PATCH 2/9] Add empty state for Data List --- .../android/ui/fragment/DataListFragment.kt | 11 +++-------- .../main/res/layout/fragment_data_list.xml | 19 +++++++++++++++++++ app/src/main/res/layout/row_header_title.xml | 2 +- app/src/main/res/values/styles.xml | 16 +++++----------- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt index d1e84ba7..b56db260 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager import io.realm.Realm import io.realm.RealmResults @@ -43,6 +44,7 @@ class DataListFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSourc override fun onResume() { super.onResume() this.recyclerView?.adapter?.notifyDataSetChanged() + noDataFound.isVisible = items.isEmpty() } override fun rowRepresentableForPosition(position: Int): RowRepresentable? { @@ -119,14 +121,7 @@ class DataListFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSourc this.dataType.relatedResultsRepresentable?.let { this.items = it.items(realm) - /* - this.items.addChangeListener { newItems -> - Timber.d("addChangeListener: $newItems") - Timber.d("addChangeListener: ${this.recyclerView}") - Timber.d("addChangeListener: ${this}") - this.recyclerView?.adapter?.notifyDataSetChanged() - } - */ + noDataFound.isVisible = this.items.isEmpty() } } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_data_list.xml b/app/src/main/res/layout/fragment_data_list.xml index 8aaf3bd3..f393713f 100644 --- a/app/src/main/res/layout/fragment_data_list.xml +++ b/app/src/main/res/layout/fragment_data_list.xml @@ -28,6 +28,25 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + diff --git a/app/src/main/res/layout/row_header_title.xml b/app/src/main/res/layout/row_header_title.xml index 9427c0db..8ec368d4 100644 --- a/app/src/main/res/layout/row_header_title.xml +++ b/app/src/main/res/layout/row_header_title.xml @@ -7,7 +7,7 @@ -