Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Entreco committed Jan 25, 2018
2 parents 34960ac + 78c8397 commit b44071d
Show file tree
Hide file tree
Showing 290 changed files with 12,131 additions and 24,133 deletions.
1 change: 0 additions & 1 deletion android/DartsScorecard/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ dependencies {
implementation "com.android.support:appcompat-v7:$support"
implementation "com.android.support:design:$support"
implementation "com.android.support.constraint:constraint-layout:$constraint"
implementation "com.google.firebase:firebase-core:$firebase"
implementation "com.google.android.gms:play-services-ads:$firebase"
implementation "android.arch.lifecycle:extensions:$architectureComponents"
implementation "android.arch.persistence.room:runtime:$architectureComponents"
Expand Down
3 changes: 1 addition & 2 deletions android/DartsScorecard/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@
android:parentActivityName=".launch.LaunchActivity" />
<activity
android:name=".setup.edit.EditPlayerActivity"
android:parentActivityName=".setup.Setup01Activity"
android:windowSoftInputMode="adjustResize"/>
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".play.Play01Activity"
android:parentActivityName=".launch.LaunchActivity" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package nl.entreco.dartsscorecard.base.widget

import android.content.Context
import android.support.v7.widget.RecyclerView
import android.util.AttributeSet

/**
* Created by entreco on 14/01/2018.
*/
class MaxHeightRecyclerView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : RecyclerView(context, attrs, defStyleAttr) {

var maxHeight: Int = 400

override fun onMeasure(widthSpec: Int, heightSpec: Int) {
val height = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST)
super.onMeasure(widthSpec, height)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.App
import nl.entreco.dartsscorecard.DscLogger
import nl.entreco.dartsscorecard.analytics.FirebaseAnalytics
import nl.entreco.data.DscDatabase
import nl.entreco.data.analytics.FirebaseAnalytics
import nl.entreco.data.db.DscDatabase
import nl.entreco.domain.Analytics
import nl.entreco.domain.Logger

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import dagger.Subcomponent
import nl.entreco.dartsscorecard.play.Play01ViewModel
import nl.entreco.dartsscorecard.play.input.InputViewModel
import nl.entreco.dartsscorecard.play.score.ScoreViewModel
import nl.entreco.domain.play.usecase.GetFinishUsecase
import nl.entreco.dartsscorecard.play.stats.MatchStatViewModel
import nl.entreco.domain.play.finish.GetFinishUsecase

/**
* Created by Entreco on 14/11/2017.
Expand All @@ -15,5 +16,6 @@ interface Play01Component {
fun viewModel(): Play01ViewModel
fun scoreViewModel(): ScoreViewModel
fun inputViewModel(): InputViewModel
fun statViewModel(): MatchStatViewModel
fun finishUsecase(): GetFinishUsecase
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import dagger.Provides
import nl.entreco.dartsscorecard.setup.Setup01Activity
import nl.entreco.dartsscorecard.setup.Setup01Navigator
import nl.entreco.dartsscorecard.setup.players.PlayerEditor
import nl.entreco.data.setup.repository.SharedPreferenceRepo
import nl.entreco.data.prefs.SharedPreferenceRepo
import nl.entreco.domain.repository.PreferenceRepository

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ import nl.entreco.dartsscorecard.di.setup.EditPlayerComponent
import nl.entreco.dartsscorecard.di.setup.EditPlayerModule
import nl.entreco.dartsscorecard.di.setup.Setup01Component
import nl.entreco.dartsscorecard.di.setup.Setup01Module
import nl.entreco.dartsscorecard.di.viewmodel.db.GameDbModule
import nl.entreco.dartsscorecard.di.viewmodel.db.PlayerDbModule
import nl.entreco.dartsscorecard.di.viewmodel.db.TurnDbModule
import nl.entreco.dartsscorecard.di.viewmodel.db.*
import nl.entreco.dartsscorecard.di.viewmodel.threading.ThreadingModule

/**
* Created by Entreco on 14/11/2017.
*/
@ActivityScope
@Subcomponent(modules = [(ViewModelModule::class), (ThreadingModule::class), (GameDbModule::class), (PlayerDbModule::class), (TurnDbModule::class)])
@Subcomponent(modules = [(ViewModelModule::class), (ThreadingModule::class),
(GameDbModule::class), (PlayerDbModule::class), (TurnDbModule::class),
(MetaDbModule::class), (StatDbModule::class)])
interface ViewModelComponent {
fun inject(activity: Activity)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package nl.entreco.dartsscorecard.di.viewmodel.db
import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.di.viewmodel.ActivityScope
import nl.entreco.data.DscDatabase
import nl.entreco.data.db.DscDatabase
import nl.entreco.data.db.game.GameMapper
import nl.entreco.data.play.repository.LocalGameRepository
import nl.entreco.data.db.game.LocalGameRepository
import nl.entreco.domain.repository.GameRepository

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package nl.entreco.dartsscorecard.di.viewmodel.db

import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.di.viewmodel.ActivityScope
import nl.entreco.data.db.DscDatabase
import nl.entreco.data.db.meta.LocalMetaRepository
import nl.entreco.data.db.meta.MetaMapper
import nl.entreco.domain.repository.MetaRepository

/**
* Created by entreco on 16/01/2018.
*/
@Module
class MetaDbModule {

@Provides
@ActivityScope
fun provideMetaMapper(): MetaMapper {
return MetaMapper()
}

@Provides
@ActivityScope
fun provideMetaRepository(db: DscDatabase, mapper: MetaMapper): MetaRepository {
return LocalMetaRepository(db, mapper)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package nl.entreco.dartsscorecard.di.viewmodel.db
import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.di.viewmodel.ActivityScope
import nl.entreco.data.DscDatabase
import nl.entreco.data.db.DscDatabase
import nl.entreco.data.db.player.LocalPlayerRepository
import nl.entreco.data.db.player.PlayerMapper
import nl.entreco.data.play.repository.LocalPlayerRepository
import nl.entreco.domain.repository.PlayerRepository

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package nl.entreco.dartsscorecard.di.viewmodel.db

import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.di.viewmodel.ActivityScope
import nl.entreco.data.db.DscDatabase
import nl.entreco.data.db.stats.LocalStatRepository
import nl.entreco.data.db.stats.StatMapper
import nl.entreco.domain.repository.StatRepository

/**
* Created by entreco on 16/01/2018.
*/
@Module
class StatDbModule {

@Provides
@ActivityScope
fun provideStatMapper(): StatMapper {
return StatMapper()
}

@Provides
@ActivityScope
fun provideStatRepository(db: DscDatabase, mapper: StatMapper): StatRepository {
return LocalStatRepository(db, mapper)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package nl.entreco.dartsscorecard.di.viewmodel.db
import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.di.viewmodel.ActivityScope
import nl.entreco.data.DscDatabase
import nl.entreco.data.db.DscDatabase
import nl.entreco.data.db.turn.LocalTurnRepository
import nl.entreco.data.db.turn.TurnMapper
import nl.entreco.data.play.repository.LocalTurnRepository
import nl.entreco.domain.repository.TurnRepository

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import android.os.Handler
import dagger.Module
import dagger.Provides
import nl.entreco.dartsscorecard.di.viewmodel.ActivityScope
import nl.entreco.domain.executors.Background
import nl.entreco.domain.executors.BgExecutor
import nl.entreco.domain.executors.FgExecutor
import nl.entreco.domain.executors.Foreground
import nl.entreco.domain.common.executors.Background
import nl.entreco.domain.common.executors.BgExecutor
import nl.entreco.domain.common.executors.FgExecutor
import nl.entreco.domain.common.executors.Foreground

/**
* Created by Entreco on 17/12/2017.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package nl.entreco.dartsscorecard.launch

import android.databinding.BindingAdapter
import android.view.View
import nl.entreco.domain.repository.RetrieveGameRequest
import nl.entreco.domain.setup.game.CreateGameResponse

/**
* Created by Entreco on 19/12/2017.
Expand All @@ -12,8 +12,8 @@ abstract class LaunchBindings {
companion object {
@JvmStatic
@BindingAdapter("resumeGame")
fun resumeGame(view: View, request: RetrieveGameRequest?) {
view.animate().alpha(if (request == null) 0.5F else 1.0F).start()
fun resumeGame(view: View, response: CreateGameResponse?) {
view.animate().alpha(if (response == null) 0.5F else 1.0F).start()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ import nl.entreco.dartsscorecard.base.BaseViewModel
import nl.entreco.dartsscorecard.play.Play01Activity
import nl.entreco.dartsscorecard.setup.Setup01Activity
import nl.entreco.domain.launch.FetchLatestGameResponse
import nl.entreco.domain.launch.usecase.RetrieveLatestGameUsecase
import nl.entreco.domain.repository.RetrieveGameRequest
import nl.entreco.domain.launch.RetrieveLatestGameUsecase
import nl.entreco.domain.setup.game.CreateGameResponse
import javax.inject.Inject

/**
* Created by Entreco on 12/12/2017.
*/
class LaunchViewModel @Inject constructor(private val retrieveGameUsecase: RetrieveLatestGameUsecase) : BaseViewModel() {

val resumedGame = ObservableField<RetrieveGameRequest?>(null)
val resumedGame = ObservableField<CreateGameResponse?>(null)

fun onNewGamePressed(context: Context) {
Setup01Activity.launch(context)
Expand All @@ -35,8 +35,8 @@ class LaunchViewModel @Inject constructor(private val retrieveGameUsecase: Retri
private fun removeGameToResume(): (Throwable) -> Unit = { resumedGame.set(null) }

private fun setGameToResume(): (FetchLatestGameResponse) -> Unit {
return { (gameId, teamIds, gameRequest) ->
resumedGame.set(RetrieveGameRequest(gameId, teamIds, gameRequest))
return { (gameId, teamIds, startScore, startIndex, numLegs, numSets) ->
resumedGame.set(CreateGameResponse(gameId, teamIds, startScore, startIndex, numLegs, numSets))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,18 @@ import nl.entreco.dartsscorecard.di.play.Play01Component
import nl.entreco.dartsscorecard.di.play.Play01Module
import nl.entreco.dartsscorecard.play.input.InputViewModel
import nl.entreco.dartsscorecard.play.score.ScoreViewModel
import nl.entreco.domain.play.usecase.GetFinishUsecase
import nl.entreco.domain.repository.RetrieveGameRequest
import nl.entreco.domain.repository.TeamIdsString
import nl.entreco.dartsscorecard.play.stats.MatchStatViewModel
import nl.entreco.domain.play.finish.GetFinishUsecase
import nl.entreco.domain.play.start.Play01Request
import nl.entreco.domain.setup.game.CreateGameResponse

class Play01Activity : ViewModelActivity() {

private val component: Play01Component by componentProvider { it.plus(Play01Module()) }
private val viewModel: Play01ViewModel by viewModelProvider { component.viewModel() }
private val scoreViewModel: ScoreViewModel by viewModelProvider { component.scoreViewModel() }
private val inputViewModel: InputViewModel by viewModelProvider { component.inputViewModel() }
private val statViewModel: MatchStatViewModel by viewModelProvider { component.statViewModel() }
private val finishUsecase: GetFinishUsecase by componentProvider { component.finishUsecase() }

override fun onCreate(savedInstanceState: Bundle?) {
Expand All @@ -32,6 +34,7 @@ class Play01Activity : ViewModelActivity() {
val binding = DataBindingUtil.setContentView<ActivityPlay01Binding>(this, R.layout.activity_play_01)
binding.viewModel = viewModel
binding.inputViewModel = inputViewModel
binding.statViewModel = statViewModel
binding.scoreViewModel = scoreViewModel
binding.finishUsecase = finishUsecase
binding.animator = Play01Animator(binding)
Expand All @@ -45,18 +48,15 @@ class Play01Activity : ViewModelActivity() {
}

private fun initGame() {
viewModel.load(retrieveSetup(intent), scoreViewModel)
viewModel.load(retrieveSetup(intent), scoreViewModel, statViewModel)
}

private fun toolbar(binding: ActivityPlay01Binding): Toolbar {
return binding.includeToolbar?.toolbar!!
}

private fun resumeGame() {
viewModel.addScoreListener(scoreViewModel)
viewModel.addPlayerListener(scoreViewModel)
viewModel.addPlayerListener(inputViewModel)
viewModel.addSpecialEventListener(inputViewModel)
viewModel.registerListeners(scoreViewModel, statViewModel, inputViewModel, scoreViewModel, inputViewModel)
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
Expand All @@ -73,18 +73,24 @@ class Play01Activity : ViewModelActivity() {

companion object {
@JvmStatic
fun retrieveSetup(intent: Intent): RetrieveGameRequest {
return RetrieveGameRequest(intent.getLongExtra("gameId", -1),
TeamIdsString(intent.getStringExtra("teamIds")),
intent.getParcelableExtra("exec"))
fun retrieveSetup(intent: Intent): Play01Request {
return Play01Request(intent.getLongExtra("gameId", -1),
intent.getStringExtra("teamIds"),
intent.getIntExtra("startScore", -1),
intent.getIntExtra("startIndex", -1),
intent.getIntExtra("legs", -1),
intent.getIntExtra("sets", -1))
}

@JvmStatic
fun startGame(context: Context, retrieve: RetrieveGameRequest) {
fun startGame(context: Context, create: CreateGameResponse) {
val intent = Intent(context, Play01Activity::class.java)
intent.putExtra("gameId", retrieve.gameId)
intent.putExtra("teamIds", retrieve.teamIds.toString())
intent.putExtra("exec", retrieve.create)
intent.putExtra("gameId", create.gameId)
intent.putExtra("teamIds", create.teamIds)
intent.putExtra("startScore", create.startScore)
intent.putExtra("startIndex", create.startIndex)
intent.putExtra("legs", create.numLegs)
intent.putExtra("sets", create.numSets)
context.startActivity(intent)
}
}
Expand Down
Loading

0 comments on commit b44071d

Please sign in to comment.