diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt index a029e445..d257dd7c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt @@ -25,22 +25,29 @@ class GraphActivity : BaseActivity(), ViewModelHolder { private var lineDataSets: List? = null private var barDataSets: List? = 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? = null, - barDataSets: List? = null, - style: GraphFragment.Style = GraphFragment.Style.LINE, - title: String? = null - ) { + fun newLineInstance(context: Context, lineDataSets: List, 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, 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) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/BaseActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/BaseActivity.kt index ccddf812..a15ebe9d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/BaseActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/BaseActivity.kt @@ -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, 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) -> 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, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) { - this.permissionRequest = PermissionRequest(permissions, permissionCallback, requestCode) - ActivityCompat.requestPermissions(this, permissions, requestCode) - } - /** * Find the current location */ diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt index 9362d3cb..3ae89109 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt @@ -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 diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BaseFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BaseFragment.kt index 17798d63..1e3ddd1f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BaseFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BaseFragment.kt @@ -64,18 +64,18 @@ abstract class BaseFragment : Fragment() { */ open fun onBackPressed() {} - /** - * Ask for app permission - */ - fun askForPermission(permissions: Array, 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, 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 diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/bankroll/BankrollFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/bankroll/BankrollFragment.kt index 69595c6e..38e414c6 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/bankroll/BankrollFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/bankroll/BankrollFragment.kt @@ -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") diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarDetailsFragment.kt index a918a6e3..336b0c1e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarDetailsFragment.kt @@ -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) } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/GraphViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/GraphViewModel.kt index 0b382457..bd72f14c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/GraphViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/GraphViewModel.kt @@ -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 */ diff --git a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ReportHolder.kt b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ReportHolder.kt index cd060b64..9b107df3 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ReportHolder.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ReportHolder.kt @@ -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