diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/ComparisonReportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/ComparisonReportActivity.kt index 70ab7fec..c6135e26 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/ComparisonReportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/ComparisonReportActivity.kt @@ -20,19 +20,10 @@ class ComparisonReportActivity : ReportActivity() { private fun initUI() { val fragmentTransaction = supportFragmentManager.beginTransaction() - val reportDetailsFragment = ComparisonReportFragment.newInstance(this.viewModelFactory) + val reportDetailsFragment = ComparisonReportFragment.newInstance() fragmentTransaction.add(R.id.reportDetailsContainer, reportDetailsFragment) fragmentTransaction.commit() -// -// parameters?.let { -// -// val report = it.report -// val title = it.title -// -// } -// parameters = null - } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt index c1892652..8e1e3743 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt @@ -46,7 +46,7 @@ class ProgressReportActivity : ReportActivity() { */ private fun initUI() { - val progressFragment = ProgressReportFragment.newInstance(this.viewModelFactory) + val progressFragment = ProgressReportFragment.newInstance() val fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction.add(R.id.statisticDetailsContainer, progressFragment) fragmentTransaction.commit() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt index 41ec525b..ac7cd319 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt @@ -19,7 +19,7 @@ class TableReportActivity : ReportActivity() { private fun initUI() { val fragmentTransaction = supportFragmentManager.beginTransaction() - val fragment = TableReportFragment.newInstance(this.viewModelFactory) + val fragment = TableReportFragment.newInstance() fragmentTransaction.add(R.id.reportDetailsContainer, fragment) fragmentTransaction.commit() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt index e73eae5b..5b699ba9 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt @@ -21,8 +21,6 @@ open class PokerAnalyticsActivity : AppCompatActivity() { companion object { const val PERMISSION_REQUEST_ACCESS_FINE_LOCATION = 1000 - const val PERMISSION_REQUEST_READ_EXTERNAL_STORAGE = 1001 - const val PLAY_SERVICES_RESOLUTION_REQUEST = 2000 } private var realm: Realm? = null diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/ReportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/ReportActivity.kt index 5d988f95..d2214c11 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/ReportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/ReportActivity.kt @@ -10,12 +10,13 @@ import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.ui.viewmodel.ReportViewModel import net.pokeranalytics.android.ui.viewmodel.ReportViewModelFactory +import net.pokeranalytics.android.ui.viewmodel.ViewModelHolder class ReportParameters(var report: Report, var title: String, var stat: Stat? = null, var showAggregationChoices: Boolean = true) -abstract class ReportActivity : PokerAnalyticsActivity() { +abstract class ReportActivity : PokerAnalyticsActivity(), ViewModelHolder { - protected val viewModelFactory: ReportViewModelFactory by lazy { + private val viewModelFactory: ReportViewModelFactory by lazy { ReportViewModel.parameters?.let { val stat = it.stat ?: it.report.options.stats.first() ReportViewModelFactory(it.report, stat, it.title, it.showAggregationChoices) @@ -24,7 +25,7 @@ abstract class ReportActivity : PokerAnalyticsActivity() { } } - protected val viewModel: ReportViewModel by lazy { + override val viewModel: ReportViewModel by lazy { ViewModelProviders.of(this, viewModelFactory).get(ReportViewModel::class.java) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt index e20baed9..415943f8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt @@ -7,7 +7,6 @@ import android.view.inputmethod.InputMethodManager import android.widget.EditText import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat -import androidx.lifecycle.ViewModelProviders import net.pokeranalytics.android.calculus.Report import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.exceptions.PAIllegalStateException @@ -16,18 +15,14 @@ import net.pokeranalytics.android.model.LiveData import net.pokeranalytics.android.model.realm.ReportSetup import net.pokeranalytics.android.ui.fragment.data.DataManagerFragment import net.pokeranalytics.android.ui.viewmodel.ReportViewModel -import net.pokeranalytics.android.ui.viewmodel.ReportViewModelFactory +import net.pokeranalytics.android.ui.viewmodel.ViewModelHolder import net.pokeranalytics.android.util.extensions.findById abstract class AbstractReportFragment : DataManagerFragment() { - protected var viewModelFactory: ReportViewModelFactory? = null - protected val viewModel: ReportViewModel by lazy { - this.viewModelFactory?.let { - ViewModelProviders.of(requireActivity(), it).get(ReportViewModel::class.java) - } ?: throw PAIllegalStateException("no factory") + (requireActivity() as ViewModelHolder).viewModel as ReportViewModel } val selectedReport: Report diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt index 666278ad..0f77140c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt @@ -8,15 +8,13 @@ import com.google.android.material.tabs.TabLayout import kotlinx.android.synthetic.main.fragment_report_details.* import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.adapter.ReportPagerAdapter -import net.pokeranalytics.android.ui.viewmodel.ReportViewModelFactory class ComparisonReportFragment : AbstractReportFragment() { companion object { - fun newInstance(viewModelFactory: ReportViewModelFactory): ComparisonReportFragment { + fun newInstance(): ComparisonReportFragment { val fragment = ComparisonReportFragment() - fragment.viewModelFactory = viewModelFactory val bundle = Bundle() fragment.arguments = bundle return fragment diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt index d8ce4eba..7de14353 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt @@ -38,9 +38,8 @@ class ProgressReportFragment : AbstractReportFragment() { /** * Creates new instance */ - fun newInstance(viewModelFactory: ReportViewModelFactory): ProgressReportFragment { + fun newInstance(): ProgressReportFragment { val fragment = ProgressReportFragment() - fragment.viewModelFactory = viewModelFactory val bundle = Bundle() fragment.arguments = bundle return fragment @@ -50,8 +49,6 @@ class ProgressReportFragment : AbstractReportFragment() { private lateinit var graphFragment: GraphFragment private var reports: MutableMap = hashMapOf() -// private var stat: Stat = Stat.NET_RESULT -// private var displayAggregationChoices: Boolean = true override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { super.onCreateView(inflater, container, savedInstanceState) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt index 9f097603..02de3181 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt @@ -5,7 +5,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import net.pokeranalytics.android.R -import net.pokeranalytics.android.ui.viewmodel.ReportViewModelFactory class TableReportFragment : AbstractReportFragment() { @@ -13,11 +12,8 @@ class TableReportFragment : AbstractReportFragment() { companion object { - fun newInstance(viewModelFactory: ReportViewModelFactory): TableReportFragment { + fun newInstance(): TableReportFragment { val fragment = TableReportFragment() - fragment.viewModelFactory = viewModelFactory -// fragment.reportTitle = title -// fragment.setReport(report) val bundle = Bundle() fragment.arguments = bundle return fragment diff --git a/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ViewModelHolder.kt b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ViewModelHolder.kt new file mode 100644 index 00000000..47938f7e --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/viewmodel/ViewModelHolder.kt @@ -0,0 +1,7 @@ +package net.pokeranalytics.android.ui.viewmodel + +import androidx.lifecycle.ViewModel + +interface ViewModelHolder { + val viewModel: ViewModel +} \ No newline at end of file