Crash fixes attempts

filterfix
Laurent 5 years ago
parent 37c23c7094
commit 7612fad0ca
  1. 33
      app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt
  2. 42
      app/src/main/java/net/pokeranalytics/android/ui/activity/components/BaseActivity.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  4. 24
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BaseFragment.kt
  5. 3
      app/src/main/java/net/pokeranalytics/android/ui/modules/bankroll/BankrollFragment.kt
  6. 14
      app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarDetailsFragment.kt
  7. 6
      app/src/main/java/net/pokeranalytics/android/ui/viewmodel/GraphViewModel.kt
  8. 1
      app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ReportHolder.kt

@ -25,22 +25,29 @@ class GraphActivity : BaseActivity(), ViewModelHolder {
private var lineDataSets: List<LineDataSet>? = null
private var barDataSets: List<BarDataSet>? = null
private var style: GraphFragment.Style = GraphFragment.Style.LINE
private var style: GraphFragment.Style? = null
private var activityTitle: String? = null
/**
* Default constructor
/***
* Line graph constructor
*/
fun newInstance(
context: Context, lineDataSets: List<LineDataSet>? = null,
barDataSets: List<BarDataSet>? = null,
style: GraphFragment.Style = GraphFragment.Style.LINE,
title: String? = null
) {
fun newLineInstance(context: Context, lineDataSets: List<LineDataSet>, title: String? = null) {
this.lineDataSets = lineDataSets
this.style = GraphFragment.Style.LINE
this.activityTitle = title
val intent = Intent(context, GraphActivity::class.java)
context.startActivity(intent)
}
/***
* Bar graph constructor
*/
fun newBarInstance(context: Context, barDataSets: List<BarDataSet>, title: String? = null) {
this.barDataSets = barDataSets
this.style = style
this.style = GraphFragment.Style.BAR
this.activityTitle = title
val intent = Intent(context, GraphActivity::class.java)
context.startActivity(intent)
}
@ -82,6 +89,12 @@ class GraphActivity : BaseActivity(), ViewModelHolder {
}
}
style?.let {
this.model.style = it
}
val style = style ?: this.model.style ?: throw PAIllegalStateException("Graph style not defined")
val fragmentTransaction = supportFragmentManager.beginTransaction()
val graphFragment = GraphFragment.newInstance(style)
fragmentTransaction.add(R.id.container, graphFragment)

@ -89,15 +89,12 @@ abstract class BaseActivity : AppCompatActivity() {
when (requestCode) {
PERMISSION_REQUEST_ACCESS_FINE_LOCATION -> {
if (permissions.isNotEmpty() && permissions[0] == ACCESS_FINE_LOCATION
&& grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED
) {
&& grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permissionCallback?.invoke(true)
} else {
permissionCallback?.invoke(false)
// permission denied, boo! Disable the
// functionality that depends on this permission.
// showMessage(getString(R.string.error));
}
this.permissionCallback = null
}
}
@ -107,6 +104,7 @@ abstract class BaseActivity : AppCompatActivity() {
val allPermissionsPresent = permissions.all { request.permissions.contains(it) }
val allGranted = grantResults.all { it == PackageManager.PERMISSION_GRANTED }
request.callback.invoke(allPermissionsPresent && allGranted)
this.permissionRequest = null
}
}
@ -145,6 +143,14 @@ abstract class BaseActivity : AppCompatActivity() {
return ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
}
/**
* Ask for app permission
*/
fun askForPermission(permissions: Array<String>, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) {
this.permissionRequest = PermissionRequest(permissions, permissionCallback, requestCode)
ActivityCompat.requestPermissions(this, permissions, requestCode)
}
/**
* Ask for location permission
*/
@ -155,24 +161,6 @@ abstract class BaseActivity : AppCompatActivity() {
)
}
/**
* Ask for places request
*/
// fun askForPlacesRequest(callback: ((success: Boolean, places: ArrayList<PlaceLikelihood>) -> Unit)?) {
// // Call findCurrentPlace and handle the response (first check that the user has granted permission).
// if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
// LocationManager(this).askForPlacesRequest(callback)
// } else {
// askForLocationPermission { granted ->
// if (granted) {
// LocationManager(this).askForPlacesRequest(callback)
// } else {
// callback?.invoke(false, ArrayList())
// }
// }
// }
// }
/**
* Find the nearest location from the user
*/
@ -194,14 +182,6 @@ abstract class BaseActivity : AppCompatActivity() {
}
}
/**
* Ask for app permission
*/
fun askForPermission(permissions: Array<String>, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) {
this.permissionRequest = PermissionRequest(permissions, permissionCallback, requestCode)
ActivityCompat.requestPermissions(this, permissions, requestCode)
}
/**
* Find the current location
*/

@ -49,10 +49,8 @@ class GraphFragment : RealmFragment(), OnChartValueSelectedListener {
/**
* Create new instance
*/
fun newInstance(style: Style = Style.LINE): GraphFragment {
fun newInstance(style: Style): GraphFragment {
val fragment = GraphFragment()
// fragment.lineDataSetList = lineDataSets
// fragment.barDataSetList = barDataSets
val bundle = Bundle()
bundle.putSerializable(BundleKey.STYLE.value, style.ordinal)
fragment.arguments = bundle

@ -64,18 +64,18 @@ abstract class BaseFragment : Fragment() {
*/
open fun onBackPressed() {}
/**
* Ask for app permission
*/
fun askForPermission(permissions: Array<String>, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) {
val baseActivity= requireActivity() as BaseActivity
baseActivity.askForPermission(permissions, requestCode, permissionCallback)
}
fun askForPermission(permission: String, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) {
val baseActivity= requireActivity() as BaseActivity
baseActivity.askForPermission(arrayOf(permission), requestCode, permissionCallback)
}
// /**
// * Ask for app permission
// */
// fun askForPermission(permissions: Array<String>, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) {
// val baseActivity= requireActivity() as BaseActivity
// baseActivity.askForPermission(permissions, requestCode, permissionCallback)
// }
//
// fun askForPermission(permission: String, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) {
// val baseActivity= requireActivity() as BaseActivity
// baseActivity.askForPermission(arrayOf(permission), requestCode, permissionCallback)
// }
/**
* Init UI

@ -177,7 +177,8 @@ class BankrollFragment : DeletableItemFragment(), StaticRowRepresentableDataSour
when (row) {
is BankrollGraphRow -> {
val lineDataSet = row.dataSet as LineDataSet
GraphActivity.newInstance(requireContext(), listOf(lineDataSet), title = getString(R.string.bankroll))
GraphActivity.newLineInstance(requireContext(), listOf(lineDataSet), title = getString(R.string.bankroll))
// GraphActivity.newInstance(requireContext(), listOf(lineDataSet), title = getString(R.string.bankroll))
}
is BankrollRowRepresentable -> {
Timber.d("BankrollFragment > onRowSelected > reportForBankroll")

@ -26,7 +26,6 @@ import net.pokeranalytics.android.ui.activity.GraphActivity
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.fragment.GraphFragment
import net.pokeranalytics.android.ui.fragment.components.BaseFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
@ -143,15 +142,16 @@ class CalendarDetailsFragment : BaseFragment(), StaticRowRepresentableDataSource
if (report != null && stat != null) {
val title = row.title ?: stat.localizedTitle(requireContext())
val dataSet = row.dataSet
when (dataSet) {
when (val dataSet = row.dataSet) {
is LineDataSet-> {
GraphActivity.newInstance(requireContext(), listOf(dataSet), null,
GraphFragment.Style.LINE, title)
GraphActivity.newLineInstance(requireContext(), listOf(dataSet), title)
// GraphActivity.newInstance(requireContext(), listOf(dataSet), null,
// GraphFragment.Style.LINE, title)
}
is BarDataSet -> {
GraphActivity.newInstance(requireContext(), null, listOf(dataSet),
GraphFragment.Style.BAR, title)
GraphActivity.newBarInstance(requireContext(), listOf(dataSet), title)
// GraphActivity.newInstance(requireContext(), null, listOf(dataSet),
// GraphFragment.Style.BAR, title)
}
}
}

@ -6,6 +6,7 @@ import com.github.mikephil.charting.data.BarDataSet
import com.github.mikephil.charting.data.LineDataSet
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.ui.fragment.GraphFragment
import net.pokeranalytics.android.ui.graph.AxisFormatting
open class GraphViewModel : ViewModel(), GraphDataProvider {
@ -15,6 +16,11 @@ open class GraphViewModel : ViewModel(), GraphDataProvider {
*/
var title: String? = null
/***
* The graph style
*/
var style: GraphFragment.Style? = null
/***
* The displayed stat
*/

@ -5,6 +5,7 @@ import com.github.mikephil.charting.data.BarDataSet
import com.github.mikephil.charting.data.LineDataSet
import net.pokeranalytics.android.calculus.Report
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.ui.fragment.GraphFragment
import net.pokeranalytics.android.ui.graph.AxisFormatting

Loading…
Cancel
Save