Improve UI for settings

feature/top10
Aurelien Hubert 7 years ago
parent 2129cde49a
commit e96647e8ad
  1. 9
      app/src/main/java/net/pokeranalytics/android/ui/activity/DataListActivity.kt
  2. 23
      app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt
  4. 2
      app/src/main/res/drawable/separator.xml
  5. 4
      app/src/main/res/layout/activity_data_list.xml
  6. 4
      app/src/main/res/layout/activity_editable_data.xml
  7. 4
      app/src/main/res/layout/activity_session.xml
  8. 70
      app/src/main/res/layout/fragment_data_list.xml
  9. 2
      app/src/main/res/layout/fragment_session.xml

@ -5,18 +5,18 @@ import android.content.Intent
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_data_list.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.fragment.DataListFragment
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.DataListFragment
class DataListActivity : PokerAnalyticsActivity() {
enum class IntentKey(val keyName: String) {
DATATYPE("DATATYPE"),
DATA_TYPE("DATA_TYPE"),
}
companion object {
fun newInstance(context: Context, dataType: Int) {
val intent = Intent(context, DataListActivity::class.java)
intent.putExtra(IntentKey.DATATYPE.keyName, dataType)
intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType)
context.startActivity(intent)
}
}
@ -33,7 +33,7 @@ class DataListActivity : PokerAnalyticsActivity() {
*/
private fun initUI() {
val dataType = intent.getIntExtra(IntentKey.DATATYPE.keyName, 0)
val dataType = intent.getIntExtra(IntentKey.DATA_TYPE.keyName, 0)
val fragment = dataListFragment as DataListFragment
fragment.setData(dataType)
}
@ -44,7 +44,6 @@ class DataListActivity : PokerAnalyticsActivity() {
private fun initData() {
}
}

@ -11,6 +11,7 @@ import kotlinx.android.synthetic.main.fragment_data_list.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
@ -18,7 +19,6 @@ import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.SettingRow
import timber.log.Timber
class DataListFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
RowRepresentableDelegate {
@ -55,7 +55,11 @@ class DataListFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
this.dataType.relatedResultsRepresentable?.let {
EditableDataActivity.newInstance(requireContext(), it.ordinal, (this.items[position] as Savable).uniqueIdentifier())
EditableDataActivity.newInstance(
requireContext(),
it.ordinal,
(this.items[position] as Savable).uniqueIdentifier()
)
}
}
@ -67,6 +71,15 @@ class DataListFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
*/
private fun initUI() {
val activity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the title
toolbar.title = ""
activity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
setHasOptionsMenu(true)
val viewManager = LinearLayoutManager(requireContext())
val dataListAdapter = RowRepresentableAdapter(this, this)
@ -85,22 +98,20 @@ class DataListFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
)
}
}
}
/**
* Set fragment data
*/
fun setData(dataType: Int) {
this.dataType = SettingRow.values()[dataType]
this.title.text = this.dataType.name.toLowerCase().capitalize()
this.toolbar.title = this.dataType.localizedTitle(requireContext())
val realm = Realm.getDefaultInstance()
this.dataType.relatedResultsRepresentable?.let {
this.items = it.items(realm)
this.items.addChangeListener { newItems ->
Timber.d("newItems: ${newItems.size}")
this.recyclerView.adapter?.notifyDataSetChanged()
}
}

@ -320,7 +320,7 @@ enum class SettingRow : RowRepresentable {
BANKROLL,
GAME,
LOCATION,
TOURNAMENT_FEATURE,
TOURNAMENT_TYPE,
TRANSACTION_TYPE;
override val resId: Int?
@ -343,7 +343,7 @@ enum class SettingRow : RowRepresentable {
BANKROLL -> LiveData.BANKROLL
GAME -> LiveData.GAME
LOCATION -> LiveData.LOCATION
TOURNAMENT_FEATURE -> LiveData.TOURNAMENT_FEATURE
TOURNAMENT_TYPE -> LiveData.TOURNAMENT_TYPE
TRANSACTION_TYPE -> LiveData.TRANSACTION_TYPE
else -> null
}

@ -2,5 +2,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white_transparent"/>
<size android:height="0.5dp"/>
<size android:height="1dp"/>
</shape>

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
@ -8,6 +9,7 @@
android:id="@+id/dataListFragment"
android:name="net.pokeranalytics.android.ui.fragment.DataListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
tools:layout="@layout/fragment_data_list" />
</LinearLayout>

@ -2,12 +2,14 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<fragment
android:id="@+id/editableDataFragment"
android:name="net.pokeranalytics.android.ui.fragment.EditableDataFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
tools:layout="@layout/fragment_editable_data" />
</LinearLayout>

@ -2,12 +2,14 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<fragment
android:id="@+id/newSessionFragment"
android:name="net.pokeranalytics.android.ui.fragment.SessionFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
tools:layout="@layout/fragment_session" />
</LinearLayout>

@ -1,36 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
tools:text="Data List"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.core.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:clipToPadding="false"
android:paddingBottom="96dp"
tools:listitem="@layout/row_title"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="128dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:collapsedTitleTextAppearance="@style/PokerAnalyticsTheme.Toolbar.CollapsedTitleAppearance"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="bottom"
app:expandedTitleMarginStart="72dp"
app:expandedTitleTextAppearance="@style/PokerAnalyticsTheme.Toolbar.ExpandedTitleAppearance"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:title="Poker Analytics"
app:titleTextColor="@color/white" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/addButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:src="@drawable/ic_add"
@ -39,4 +75,4 @@
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

@ -135,12 +135,10 @@
app:titleTextColor="@color/white"
tools:title="Poker Analytics" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"

Loading…
Cancel
Save