clean code
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								.idea/caches/build_file_checksums.ser
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.idea/caches/build_file_checksums.ser
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -1,25 +1,44 @@ | |||||||
| package adrienmalin.pingpoints | package adrienmalin.pingpoints | ||||||
|  |  | ||||||
| import android.os.Bundle |  | ||||||
| import android.support.v7.app.AppCompatActivity |  | ||||||
| import android.support.v7.app.AppCompatDelegate |  | ||||||
| import android.view.View |  | ||||||
| import android.arch.lifecycle.ViewModelProviders | import android.arch.lifecycle.ViewModelProviders | ||||||
| import android.content.ActivityNotFoundException | import android.content.ActivityNotFoundException | ||||||
| import android.content.Intent | import android.content.Intent | ||||||
|  | import android.os.Bundle | ||||||
| import android.speech.RecognizerIntent | import android.speech.RecognizerIntent | ||||||
| import android.speech.tts.TextToSpeech | import android.speech.tts.TextToSpeech | ||||||
|  | import android.speech.tts.UtteranceProgressListener | ||||||
| import android.support.design.widget.Snackbar | import android.support.design.widget.Snackbar | ||||||
|  | import android.support.v7.app.AppCompatActivity | ||||||
|  | import android.support.v7.app.AppCompatDelegate | ||||||
| import android.text.method.LinkMovementMethod | import android.text.method.LinkMovementMethod | ||||||
| import android.view.Menu | import android.view.Menu | ||||||
| import android.view.MenuItem | import android.view.MenuItem | ||||||
| import android.widget.* | import android.view.View | ||||||
|  | import android.widget.Button | ||||||
|  | import android.widget.ImageView | ||||||
|  | import android.widget.TextView | ||||||
| import java.util.* | import java.util.* | ||||||
| import java.util.regex.Pattern | import java.util.regex.Pattern | ||||||
|  |  | ||||||
|  |  | ||||||
| class MatchActivity : AppCompatActivity(), TextToSpeech.OnInitListener { | class MatchActivity : AppCompatActivity() { | ||||||
|  |  | ||||||
|  |     inner class WaitForTtsInit : TextToSpeech.OnInitListener { | ||||||
|  |         override fun onInit(status: Int) { | ||||||
|  |             ttsSpeak() | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     inner class WaitForTtsSpeak : UtteranceProgressListener() { | ||||||
|  |         override fun onDone(id: String) { | ||||||
|  |             launchStt() | ||||||
|  |         } | ||||||
|  |         override fun onStart(id: String) {} | ||||||
|  |         override fun onError(id: String) {} | ||||||
|  |     } | ||||||
|  |  | ||||||
|     val REQ_CODE_SPEECH_INPUT = 1 |     val REQ_CODE_SPEECH_INPUT = 1 | ||||||
|  |     val STT_RETRIES = 3 | ||||||
|  |  | ||||||
|     var matchModel: MatchModel? = null |     var matchModel: MatchModel? = null | ||||||
|     var textScore: android.widget.TextView? = null |     var textScore: android.widget.TextView? = null | ||||||
| @ -29,6 +48,7 @@ class MatchActivity : AppCompatActivity(), TextToSpeech.OnInitListener { | |||||||
|     var tts: TextToSpeech? = null |     var tts: TextToSpeech? = null | ||||||
|     var undo: MenuItem? = null |     var undo: MenuItem? = null | ||||||
|     var redo: MenuItem? = null |     var redo: MenuItem? = null | ||||||
|  |     var numSttCancelled:Int = 0 | ||||||
|  |  | ||||||
|     override fun onCreate(savedInstanceState: Bundle?) { |     override fun onCreate(savedInstanceState: Bundle?) { | ||||||
|         super.onCreate(savedInstanceState) |         super.onCreate(savedInstanceState) | ||||||
| @ -56,17 +76,18 @@ class MatchActivity : AppCompatActivity(), TextToSpeech.OnInitListener { | |||||||
|  |  | ||||||
|         // Init or restore ViewModel |         // Init or restore ViewModel | ||||||
|         matchModel = ViewModelProviders.of(this).get(MatchModel::class.java) |         matchModel = ViewModelProviders.of(this).get(MatchModel::class.java) | ||||||
|         matchModel?.let { |         matchModel?.apply { | ||||||
|             if (!it.matchStarted) { |             if (!matchStarted) { | ||||||
|                 intent.apply { |                 intent.apply { | ||||||
|                     it.startMatch( |                     startMatch( | ||||||
|                         getStringExtra("player1Name"), |                         getStringExtra("player1Name"), | ||||||
|                         getStringExtra("player2Name"), |                         getStringExtra("player2Name"), | ||||||
|                         getIntExtra("starterId", 0), |                         getIntExtra("starterId", 0), | ||||||
|                         getBooleanExtra("enableTTS", false), |                         getBooleanExtra("enableTTS", false), | ||||||
|                         getBooleanExtra("enableSTT", false) |                         getBooleanExtra("enableSTT", false) | ||||||
|                     ) |                     ) | ||||||
|                     for (player in it.players) player.pattern = Pattern.compile(getString(R.string.pattern, player.name)) |                     for (player in players) | ||||||
|  |                         player.pattern = Pattern.compile(this@MatchActivity.getString(R.string.pattern, player.name)) | ||||||
|                 } |                 } | ||||||
|                 Snackbar.make( |                 Snackbar.make( | ||||||
|                     findViewById(R.id.coordinatorLayout), |                     findViewById(R.id.coordinatorLayout), | ||||||
| @ -74,18 +95,14 @@ class MatchActivity : AppCompatActivity(), TextToSpeech.OnInitListener { | |||||||
|                     Snackbar.LENGTH_SHORT |                     Snackbar.LENGTH_SHORT | ||||||
|                 ).show() |                 ).show() | ||||||
|             } |             } | ||||||
|             if (it.ttsEnabled) { |             if (ttsEnabled) { | ||||||
|                 tts = TextToSpeech(this, this) |                 tts = TextToSpeech(this@MatchActivity, WaitForTtsInit()) | ||||||
|                 if (it.sttEnabled) tts?.setOnUtteranceProgressListener(WaitForTTS(::launchStt)) |                 if (sttEnabled) tts?.setOnUtteranceProgressListener(WaitForTtsSpeak()) | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         updateUI() |         updateUI() | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     override fun onInit(status: Int) { |  | ||||||
|         ttsSpeak() |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     override fun onCreateOptionsMenu(menu: Menu): Boolean { |     override fun onCreateOptionsMenu(menu: Menu): Boolean { | ||||||
|         menuInflater.inflate(R.menu.match_menu, menu) |         menuInflater.inflate(R.menu.match_menu, menu) | ||||||
|         undo = menu.findItem(R.id.action_undo) |         undo = menu.findItem(R.id.action_undo) | ||||||
| @ -229,20 +246,20 @@ class MatchActivity : AppCompatActivity(), TextToSpeech.OnInitListener { | |||||||
|         super.onActivityResult(requestCode, resultCode, data) |         super.onActivityResult(requestCode, resultCode, data) | ||||||
|         when (requestCode) { |         when (requestCode) { | ||||||
|             REQ_CODE_SPEECH_INPUT -> { |             REQ_CODE_SPEECH_INPUT -> { | ||||||
|                 matchModel?.let { |                 matchModel?.apply { | ||||||
|                     if (resultCode == RESULT_OK && data != null) { |                     if (resultCode == RESULT_OK && data != null) { | ||||||
|                         var understood: Boolean = false |                         var understood: Boolean = false | ||||||
|                         val result: String = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)[0] |                         val result: String = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)[0] | ||||||
|                         for (player in it.players) { |                         for (player in players) { | ||||||
|                             if (player.pattern?.matcher(result)?.find() == true) { |                             if (player.pattern?.matcher(result)?.find() == true) { | ||||||
|                                 understood = true |                                 understood = true | ||||||
|                                 it.updateScore(player) |                                 updateScore(player) | ||||||
|                                 updateUI() |                                 updateUI() | ||||||
|                                 break |                                 break | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|                         if (!understood) { |                         if (!understood) { | ||||||
|                             if (it.ttsEnabled) { |                             if (ttsEnabled) { | ||||||
|                                 tts?.speak( |                                 tts?.speak( | ||||||
|                                     getString(R.string.not_understood), |                                     getString(R.string.not_understood), | ||||||
|                                     TextToSpeech.QUEUE_FLUSH, |                                     TextToSpeech.QUEUE_FLUSH, | ||||||
| @ -258,6 +275,10 @@ class MatchActivity : AppCompatActivity(), TextToSpeech.OnInitListener { | |||||||
|                                 launchStt() |                                 launchStt() | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|  |                     } else { | ||||||
|  |                         numSttCancelled++ | ||||||
|  |                         if (numSttCancelled >= STT_RETRIES) | ||||||
|  |                             sttEnabled = false | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -34,12 +34,14 @@ class MatchModel : ViewModel() { | |||||||
|         if ((players.sumBy { it.score } % 2 == 0) or (players.all { it.score >= 10 })) { |         if ((players.sumBy { it.score } % 2 == 0) or (players.all { it.score >= 10 })) { | ||||||
|             serviceSide = relaunchSide.also { relaunchSide = serviceSide } |             serviceSide = relaunchSide.also { relaunchSide = serviceSide } | ||||||
|         } |         } | ||||||
|  |         saveState() | ||||||
|  |         updateMatch() | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     fun updateMatch() { | ||||||
|         val (minScore, maxScore) = players.map { it.score }.sorted() |         val (minScore, maxScore) = players.map { it.score }.sorted() | ||||||
|         matchFinished = (maxScore >= 11) and (maxScore - minScore >= 2) |         matchFinished = (maxScore >= 11) and (maxScore - minScore >= 2) | ||||||
|         matchPoint = (maxScore >= 10) and (maxScore - minScore >= 1) |         matchPoint = (maxScore >= 10) and (maxScore - minScore >= 1) | ||||||
|  |  | ||||||
|         saveState() |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     fun saveState() { |     fun saveState() { | ||||||
| @ -71,5 +73,6 @@ class MatchModel : ViewModel() { | |||||||
|                 else -> 0 |                 else -> 0 | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         updateMatch() | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -1,7 +1,6 @@ | |||||||
| package adrienmalin.pingpoints | package adrienmalin.pingpoints | ||||||
|  |  | ||||||
| import android.Manifest | import android.Manifest | ||||||
| import android.annotation.SuppressLint |  | ||||||
| import android.content.Context | import android.content.Context | ||||||
| import android.content.Intent | import android.content.Intent | ||||||
| import android.content.SharedPreferences | import android.content.SharedPreferences | ||||||
| @ -30,7 +29,6 @@ class StarterNameActivity : AppCompatActivity() { | |||||||
|     var previousMatch: SharedPreferences? = null |     var previousMatch: SharedPreferences? = null | ||||||
|     var previousPlayers: Set<String> = emptySet() |     var previousPlayers: Set<String> = emptySet() | ||||||
|  |  | ||||||
|     @SuppressLint("ClickableViewAccessibility") |  | ||||||
|     override fun onCreate(savedInstanceState: Bundle?) { |     override fun onCreate(savedInstanceState: Bundle?) { | ||||||
|         super.onCreate(savedInstanceState) |         super.onCreate(savedInstanceState) | ||||||
|         setContentView(R.layout.activity_starter_name) |         setContentView(R.layout.activity_starter_name) | ||||||
| @ -42,32 +40,36 @@ class StarterNameActivity : AppCompatActivity() { | |||||||
|         starterRadioGroup = findViewById(R.id.starterRadioGroup) |         starterRadioGroup = findViewById(R.id.starterRadioGroup) | ||||||
|         enableTtsSwitch = findViewById(R.id.enableTtsSwitch) |         enableTtsSwitch = findViewById(R.id.enableTtsSwitch) | ||||||
|         enableSttSwitch = findViewById(R.id.enableSttSwitch) |         enableSttSwitch = findViewById(R.id.enableSttSwitch) | ||||||
|  |  | ||||||
|         // Check if function is available on switch checked or swapped |         // Check if function is available on switch checked or swapped | ||||||
|         enableTtsSwitch?.setOnCheckedChangeListener { view, isChecked -> checkTTS() } |         enableTtsSwitch?.setOnCheckedChangeListener { view, isChecked -> checkTTS() } | ||||||
|         enableTtsSwitch?.setOnTouchListener { view, event -> checkTTS(); false} |         enableTtsSwitch?.setOnTouchListener { view, event -> checkTTS(); false} | ||||||
|         enableSttSwitch?.setOnCheckedChangeListener { view, isChecked -> checkSTT() } |         enableSttSwitch?.setOnCheckedChangeListener { view, isChecked -> checkSTT() } | ||||||
|         enableSttSwitch?.setOnTouchListener { view, event -> checkSTT(); false} |         enableSttSwitch?.setOnTouchListener { view, event -> checkSTT(); false} | ||||||
|  |  | ||||||
|         // Restore |         // Restore previous data | ||||||
|         previousMatch = getPreferences(Context.MODE_PRIVATE) |         previousMatch = getPreferences(Context.MODE_PRIVATE) | ||||||
|         previousMatch?.let { |         previousMatch?.apply { | ||||||
|             previousPlayers = it.getStringSet("previousPlayers", emptySet()) |             previousPlayers = getStringSet("previousPlayers", emptySet()) | ||||||
|             val adapter = ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, previousPlayers.toList()) |             val adapter = ArrayAdapter<String>( | ||||||
|  |                 this@StarterNameActivity, | ||||||
|  |                 android.R.layout.simple_list_item_1, | ||||||
|  |                 previousPlayers.toList()) | ||||||
|             player1NameInput?.run { |             player1NameInput?.run { | ||||||
|                 setText( |                 setText( | ||||||
|                     it.getString("previousPlayer2", getString(R.string.player_1_default_name)), |                     getString("previousPlayer2", getString(R.string.player_1_default_name)), | ||||||
|                     TextView.BufferType.EDITABLE) |                     TextView.BufferType.EDITABLE) | ||||||
|                 setAdapter(adapter) |                 setAdapter(adapter) | ||||||
|             } |             } | ||||||
|             player2NameInput?.run{ |             player2NameInput?.run{ | ||||||
|                 setText( |                 setText( | ||||||
|                     it.getString("previousPlayer1", getString(R.string.player_2_default_name)), |                     getString("previousPlayer1", getString(R.string.player_2_default_name)), | ||||||
|                     TextView.BufferType.EDITABLE) |                     TextView.BufferType.EDITABLE) | ||||||
|                 setAdapter(adapter) |                 setAdapter(adapter) | ||||||
|             } |             } | ||||||
|             starterRadioGroup?.check(it.getInt("previousStarterId", R.id.radioPlayer1Starts)) |             starterRadioGroup?.check(getInt("previousStarterId", R.id.radioPlayer1Starts)) | ||||||
|             enableTtsSwitch?.isChecked = it.getBoolean("enableTTS", false) |             enableTtsSwitch?.isChecked = getBoolean("enableTTS", false) | ||||||
|             enableSttSwitch?.isChecked = it.getBoolean("enableSTT", false) |             enableSttSwitch?.isChecked = getBoolean("enableSTT", false) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @ -78,15 +80,13 @@ class StarterNameActivity : AppCompatActivity() { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     fun checkTTS(){ |     fun checkTTS(){ | ||||||
|         enableTtsSwitch?.let { |         if (enableTtsSwitch?.isChecked == true) { | ||||||
|             if (it.isChecked) { |             Intent().apply { | ||||||
|                 Intent().run { |  | ||||||
|                 action = TextToSpeech.Engine.ACTION_CHECK_TTS_DATA |                 action = TextToSpeech.Engine.ACTION_CHECK_TTS_DATA | ||||||
|                 startActivityForResult(this, CHECK_TTS) |                 startActivityForResult(this, CHECK_TTS) | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     } |  | ||||||
|  |  | ||||||
|     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { | ||||||
|         super.onActivityResult(requestCode, resultCode, data) |         super.onActivityResult(requestCode, resultCode, data) | ||||||
| @ -99,7 +99,7 @@ class StarterNameActivity : AppCompatActivity() { | |||||||
|                         Snackbar.LENGTH_SHORT |                         Snackbar.LENGTH_SHORT | ||||||
|                     ).show() |                     ).show() | ||||||
|                     enableTtsSwitch?.isChecked = false |                     enableTtsSwitch?.isChecked = false | ||||||
|                     Intent().run { |                     Intent().apply { | ||||||
|                         action = TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA |                         action = TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA | ||||||
|                         startActivity(this) |                         startActivity(this) | ||||||
|                     } |                     } | ||||||
| @ -110,35 +110,51 @@ class StarterNameActivity : AppCompatActivity() { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     fun checkSTT(){ |     fun checkSTT(){ | ||||||
|         enableSttSwitch?.let { |         enableSttSwitch?.apply { | ||||||
|             if (it.isChecked) { |             if (isChecked) { | ||||||
|                 if (!SpeechRecognizer.isRecognitionAvailable(this)) { |                 if (!SpeechRecognizer.isRecognitionAvailable(this@StarterNameActivity)) { | ||||||
|                     Snackbar.make( |                     Snackbar.make( | ||||||
|                         findViewById(R.id.coordinatorLayout), |                         findViewById(R.id.coordinatorLayout), | ||||||
|                         R.string.STT_unavailable, |                         R.string.STT_unavailable, | ||||||
|                         Snackbar.LENGTH_SHORT |                         Snackbar.LENGTH_SHORT | ||||||
|                     ).show() |                     ).show() | ||||||
|                     enableSttSwitch?.isChecked = false |                     isChecked = false | ||||||
|                 } else { |                 } else { | ||||||
|                     // Ask for record audio permission |                     // Ask for record audio permission | ||||||
|                     if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { |                     if (ContextCompat.checkSelfPermission( | ||||||
|  |                             this@StarterNameActivity, | ||||||
|  |                             Manifest.permission.RECORD_AUDIO | ||||||
|  |                         ) != PackageManager.PERMISSION_GRANTED) { | ||||||
|                         // Permission is not granted |                         // Permission is not granted | ||||||
|                         // Should we show an explanation? |                         // Should we show an explanation? | ||||||
|                         if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.RECORD_AUDIO)) { |                         if (ActivityCompat.shouldShowRequestPermissionRationale( | ||||||
|                             AlertDialog.Builder(this) |                                 this@StarterNameActivity, | ||||||
|                                 .setTitle(R.string.STT) |                                 Manifest.permission.RECORD_AUDIO | ||||||
|                                 .setMessage(R.string.explain_record_audio_request) |                             ) | ||||||
|                                 .setPositiveButton(R.string.OK) { dialog, id -> |                         ) { | ||||||
|                                     ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.RECORD_AUDIO), ASK_PERMISSIONS_RECORD_AUDIO) |                             AlertDialog.Builder(this@StarterNameActivity).apply { | ||||||
|  |                                 setTitle(R.string.STT) | ||||||
|  |                                 setMessage(R.string.explain_record_audio_request) | ||||||
|  |                                 setPositiveButton(R.string.OK) { dialog, id -> | ||||||
|  |                                     ActivityCompat.requestPermissions( | ||||||
|  |                                         this@StarterNameActivity, | ||||||
|  |                                         arrayOf(Manifest.permission.RECORD_AUDIO), | ||||||
|  |                                         ASK_PERMISSIONS_RECORD_AUDIO | ||||||
|  |                                     ) | ||||||
|                                 } |                                 } | ||||||
|                                 .setNegativeButton(R.string.cancel) { dialog, id -> |                                 setNegativeButton(R.string.cancel) { dialog, id -> | ||||||
|                                     enableSttSwitch?.isChecked = false |                                     isChecked = false | ||||||
|  |                                 } | ||||||
|  |                                 create() | ||||||
|  |                                 show() | ||||||
|                             } |                             } | ||||||
|                                 .create() |  | ||||||
|                                 .show() |  | ||||||
|                         } else { |                         } else { | ||||||
|                             // No explanation needed, we can request the permission. |                             // No explanation needed, we can request the permission. | ||||||
|                             ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.RECORD_AUDIO), ASK_PERMISSIONS_RECORD_AUDIO) |                             ActivityCompat.requestPermissions( | ||||||
|  |                                 this@StarterNameActivity, | ||||||
|  |                                 arrayOf(Manifest.permission.RECORD_AUDIO), | ||||||
|  |                                 ASK_PERMISSIONS_RECORD_AUDIO | ||||||
|  |                             ) | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  | |||||||
| @ -27,11 +27,11 @@ class VictoryActivity : AppCompatActivity() { | |||||||
|         // Init victoryModel |         // Init victoryModel | ||||||
|         victoryModel = ViewModelProviders.of(this).get(VictoryModel::class.java) |         victoryModel = ViewModelProviders.of(this).get(VictoryModel::class.java) | ||||||
|  |  | ||||||
|         victoryModel?.let { |         victoryModel?.apply { | ||||||
|             if (!it.matchFinished) { |             if (!matchFinished) { | ||||||
|                 it.matchFinished = true |                 matchFinished = true | ||||||
|                 it.winnerName = intent.getStringExtra("winnerName") |                 winnerName = intent.getStringExtra("winnerName") | ||||||
|                 it.players = listOf( |                 players = listOf( | ||||||
|                     Player( |                     Player( | ||||||
|                         intent.getStringExtra("player1Name"), |                         intent.getStringExtra("player1Name"), | ||||||
|                         intent.getIntExtra("player1Score", 0) |                         intent.getIntExtra("player1Score", 0) | ||||||
| @ -42,36 +42,36 @@ class VictoryActivity : AppCompatActivity() { | |||||||
|                     ) |                     ) | ||||||
|                 ) |                 ) | ||||||
|  |  | ||||||
|                 it.previousMatches = previousMatch.getString("previousMatches", "") |                 previousMatches = previousMatch.getString("previousMatches", "") | ||||||
|                 previousMatch.edit().apply { |                 previousMatch.edit().apply { | ||||||
|                     putString( |                     putString( | ||||||
|                         "previousMatches", |                         "previousMatches", | ||||||
|                         getString( |                         getString( | ||||||
|                             R.string.result, |                             R.string.result, | ||||||
|                             it.players[0].name, |                             players[0].name, | ||||||
|                             it.players[0].score, |                             players[0].score, | ||||||
|                             it.players[1].score, |                             players[1].score, | ||||||
|                             it.players[1].name |                             players[1].name | ||||||
|                         ) + it.previousMatches |                         ) + previousMatches | ||||||
|                     ) |                     ) | ||||||
|                     commit() |                     commit() | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             // UpdateUI |             // UpdateUI | ||||||
|             findViewById<TextView>(R.id.congrats).text = getString(R.string.congrats, it.winnerName) |             findViewById<TextView>(R.id.congrats).text = getString(R.string.congrats, winnerName) | ||||||
|             findViewById<TextView>(R.id.player1NameTextView).text = it.players[0].name |             findViewById<TextView>(R.id.player1NameTextView).text = players[0].name | ||||||
|             findViewById<TextView>(R.id.scoreTextView).text = getString( |             findViewById<TextView>(R.id.scoreTextView).text = getString( | ||||||
|                 R.string.score, |                 R.string.score, | ||||||
|                 it.players[0].score, |                 players[0].score, | ||||||
|                 it.players[1].score |                 players[1].score | ||||||
|             ) |             ) | ||||||
|             findViewById<TextView>(R.id.player2NameTextView).text = it.players[1].name |             findViewById<TextView>(R.id.player2NameTextView).text = players[1].name | ||||||
|             findViewById<GridView>(R.id.previousMatchesGrid).adapter = ArrayAdapter<String>( |             findViewById<GridView>(R.id.previousMatchesGrid).adapter = ArrayAdapter<String>( | ||||||
|                 this, |                 this@VictoryActivity, | ||||||
|                 R.layout.grid_item, |                 R.layout.grid_item, | ||||||
|                 R.id.grid_item_text, |                 R.id.grid_item_text, | ||||||
|                 it.previousMatches.split("\t|\n".toRegex()) |                 previousMatches.split("\t|\n".toRegex()) | ||||||
|             ) |             ) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @ -83,7 +83,7 @@ class VictoryActivity : AppCompatActivity() { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     fun share(view: View) { |     fun share(view: View) { | ||||||
|         victoryModel?.let { |         victoryModel?.apply { | ||||||
|             startActivity( |             startActivity( | ||||||
|                 Intent().apply { |                 Intent().apply { | ||||||
|                     action = Intent.ACTION_SEND |                     action = Intent.ACTION_SEND | ||||||
| @ -91,19 +91,19 @@ class VictoryActivity : AppCompatActivity() { | |||||||
|                         Intent.EXTRA_SUBJECT, |                         Intent.EXTRA_SUBJECT, | ||||||
|                         getString( |                         getString( | ||||||
|                             R.string.share_subject, |                             R.string.share_subject, | ||||||
|                             it.players[0].name, |                             players[0].name, | ||||||
|                             it.players[1].name |                             players[1].name | ||||||
|                         ) |                         ) | ||||||
|                     ) |                     ) | ||||||
|                     putExtra( |                     putExtra( | ||||||
|                         Intent.EXTRA_TEXT, |                         Intent.EXTRA_TEXT, | ||||||
|                         getString( |                         getString( | ||||||
|                             R.string.share_message, |                             R.string.share_message, | ||||||
|                             it.players[0].name, |                             players[0].name, | ||||||
|                             it.players[1].name, |                             players[1].name, | ||||||
|                             it.winnerName, |                             winnerName, | ||||||
|                             it.players[0].score, |                             players[0].score, | ||||||
|                             it.players[1].score |                             players[1].score | ||||||
|                         ) |                         ) | ||||||
|                     ) |                     ) | ||||||
|                     type = "text/plain" |                     type = "text/plain" | ||||||
|  | |||||||
| @ -1,11 +0,0 @@ | |||||||
| package adrienmalin.pingpoints |  | ||||||
|  |  | ||||||
| import android.speech.tts.UtteranceProgressListener |  | ||||||
|  |  | ||||||
| class WaitForTTS(val callback: () -> Unit) : UtteranceProgressListener() { |  | ||||||
|     override fun onDone(id: String) { |  | ||||||
|         callback() |  | ||||||
|     } |  | ||||||
|     override fun onStart(id: String) {} |  | ||||||
|     override fun onError(id: String) {} |  | ||||||
| } |  | ||||||
| @ -38,6 +38,6 @@ Vous pouvez à tout moment changer la permission dans les paramètres Android." | |||||||
|     <string name="share_message">"%s contre %s:\n%s a gagné par %d à %d\nPing Points est disponible sur Google Play\n "</string> |     <string name="share_message">"%s contre %s:\n%s a gagné par %d à %d\nPing Points est disponible sur Google Play\n "</string> | ||||||
|     <string name="match_point">Balle de match</string> |     <string name="match_point">Balle de match</string> | ||||||
|     <string name="STT_hint">Dîtes : \"Point pour %s\"\nou \"Point pour %s\"</string> |     <string name="STT_hint">Dîtes : \"Point pour %s\"\nou \"Point pour %s\"</string> | ||||||
|     <string name="pattern">point pour %s</string> |     <string name="pattern">(?i:Point pour %s)</string> | ||||||
|     <string name="not_understood">Pouvez-vous répéter ?</string> |     <string name="not_understood">Pouvez-vous répéter ?</string> | ||||||
| </resources> | </resources> | ||||||
| @ -44,7 +44,7 @@ | |||||||
|     <string name="share_message">%s vs. %s:\n%s won by %d to %d\nGet Ping Points on Google Play</string> |     <string name="share_message">%s vs. %s:\n%s won by %d to %d\nGet Ping Points on Google Play</string> | ||||||
|     <string name="match_point">Match point</string> |     <string name="match_point">Match point</string> | ||||||
|     <string name="STT_hint">Say: \"Point for %s\"\nor \"Point for %s\"</string> |     <string name="STT_hint">Say: \"Point for %s\"\nor \"Point for %s\"</string> | ||||||
|     <string name="pattern">point for %s</string> |     <string name="pattern">(?i:Point for %s)</string> | ||||||
|     <string name="not_understood">Can you repeat?</string> |     <string name="not_understood">Can you repeat?</string> | ||||||
|     <string name="score" translatable="false">%d - %d</string> |     <string name="score" translatable="false">%d - %d</string> | ||||||
| </resources> | </resources> | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user