MatchActivity almost finished. Started VictoryActivity
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.
										
									
								
							
							
								
								
									
										2
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							| @ -29,7 +29,7 @@ | |||||||
|       </value> |       </value> | ||||||
|     </option> |     </option> | ||||||
|   </component> |   </component> | ||||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | ||||||
|     <output url="file://$PROJECT_DIR$/build/classes" /> |     <output url="file://$PROJECT_DIR$/build/classes" /> | ||||||
|   </component> |   </component> | ||||||
|   <component name="ProjectType"> |   <component name="ProjectType"> | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ | |||||||
|                 android:windowSoftInputMode="adjustResize"> |                 android:windowSoftInputMode="adjustResize"> | ||||||
|             <intent-filter> |             <intent-filter> | ||||||
|                 <action android:name="android.intent.action.MAIN"/> |                 <action android:name="android.intent.action.MAIN"/> | ||||||
|  |  | ||||||
|                 <category android:name="android.intent.category.LAUNCHER"/> |                 <category android:name="android.intent.category.LAUNCHER"/> | ||||||
|             </intent-filter> |             </intent-filter> | ||||||
|         </activity> |         </activity> | ||||||
| @ -25,6 +26,8 @@ | |||||||
|                 android:name=".MatchActivity" |                 android:name=".MatchActivity" | ||||||
|                 android:label="@string/title_activity_match"> |                 android:label="@string/title_activity_match"> | ||||||
|         </activity> |         </activity> | ||||||
|  |         <activity android:name=".VictoryActivity"> | ||||||
|  |         </activity> | ||||||
|     </application> |     </application> | ||||||
|  |  | ||||||
| </manifest> | </manifest> | ||||||
| @ -7,25 +7,37 @@ import android.view.View | |||||||
| import android.arch.lifecycle.ViewModelProviders | import android.arch.lifecycle.ViewModelProviders | ||||||
| import android.speech.tts.TextToSpeech | import android.speech.tts.TextToSpeech | ||||||
| import android.support.design.widget.Snackbar | import android.support.design.widget.Snackbar | ||||||
|  | import android.text.method.LinkMovementMethod | ||||||
|  | import android.view.Menu | ||||||
|  | import android.view.MenuItem | ||||||
| import android.widget.* | import android.widget.* | ||||||
|  |  | ||||||
| const val REQ_CODE_SPEECH_INPUT = 1 | const val REQ_CODE_SPEECH_INPUT = 1 | ||||||
|  |  | ||||||
|  |  | ||||||
| class MatchActivity : AppCompatActivity() { | class MatchActivity : AppCompatActivity() { | ||||||
|  |     var matchModel: MatchModel? = null | ||||||
|     var textScore: android.widget.TextView? = null |     var textScore: android.widget.TextView? = null | ||||||
|     var textService: android.widget.TextView? = null |     var textService: android.widget.TextView? = null | ||||||
|     var buttons: Array<Button> = emptyArray() |     var buttons: Array<Button> = emptyArray() | ||||||
|     var imageViews: Array<ImageView?> = emptyArray() |     var imageViews: Array<ImageView?> = emptyArray() | ||||||
|     var matchModel: MatchModel? = null |  | ||||||
|     var tts: TextToSpeech? = null |     var tts: TextToSpeech? = null | ||||||
|  |     var undo: MenuItem? = null | ||||||
|  |     var redo: MenuItem? = null | ||||||
|  |  | ||||||
|     override fun onCreate(savedInstanceState: Bundle?) { |     override fun onCreate(savedInstanceState: Bundle?) { | ||||||
|         super.onCreate(savedInstanceState) |         super.onCreate(savedInstanceState) | ||||||
|         AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) |         AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) | ||||||
|         setContentView(R.layout.activity_match) |         setContentView(R.layout.activity_match) | ||||||
|         setSupportActionBar(findViewById(R.id.toolbar)) |         setSupportActionBar(findViewById(R.id.toolbar)) | ||||||
|  |  | ||||||
|  |         // Set HTML text for icons credits | ||||||
|  |         findViewById<TextView>(R.id.iconsCredit).run { | ||||||
|  |             setText(fromHtml(getString(R.string.iconCredits))) | ||||||
|  |             movementMethod = LinkMovementMethod.getInstance() | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         // Find views | ||||||
|         textScore = findViewById(R.id.textScore) |         textScore = findViewById(R.id.textScore) | ||||||
|         textService = findViewById(R.id.textService) |         textService = findViewById(R.id.textService) | ||||||
|         buttons = arrayOf( |         buttons = arrayOf( | ||||||
| @ -36,16 +48,19 @@ class MatchActivity : AppCompatActivity() { | |||||||
|             findViewById(R.id.imgService0), |             findViewById(R.id.imgService0), | ||||||
|             findViewById(R.id.imgService1) |             findViewById(R.id.imgService1) | ||||||
|         ) |         ) | ||||||
|         val matchModel = ViewModelProviders.of(this).get(MatchModel::class.java) |  | ||||||
|         if (!matchModel.matchStarted) { |         // Init or restore ViewModel | ||||||
|             matchModel.startMatch( |         matchModel = ViewModelProviders.of(this).get(MatchModel::class.java) | ||||||
|  |         matchModel?.let { | ||||||
|  |             if (!it.matchStarted) { | ||||||
|  |                 it.startMatch( | ||||||
|                     intent.getStringExtra("player1Name"), |                     intent.getStringExtra("player1Name"), | ||||||
|                     intent.getStringExtra("player2Name"), |                     intent.getStringExtra("player2Name"), | ||||||
|                     intent.getIntExtra("starterId", 0), |                     intent.getIntExtra("starterId", 0), | ||||||
|                     intent.getBooleanExtra("enableTTS", false), |                     intent.getBooleanExtra("enableTTS", false), | ||||||
|                     intent.getBooleanExtra("enableSTT", false) |                     intent.getBooleanExtra("enableSTT", false) | ||||||
|                 ) |                 ) | ||||||
|             if (matchModel.ttsEnabled) { |                 if (it.ttsEnabled) { | ||||||
|                     tts = TextToSpeech( |                     tts = TextToSpeech( | ||||||
|                         this, |                         this, | ||||||
|                         TextToSpeech.OnInitListener { |                         TextToSpeech.OnInitListener { | ||||||
| @ -59,11 +74,38 @@ class MatchActivity : AppCompatActivity() { | |||||||
|                     Snackbar.LENGTH_SHORT |                     Snackbar.LENGTH_SHORT | ||||||
|                 ).show() |                 ).show() | ||||||
|             } |             } | ||||||
|  |         } | ||||||
|         updateUI() |         updateUI() | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     override fun onCreateOptionsMenu(menu: Menu): Boolean { | ||||||
|  |         menuInflater.inflate(R.menu.match_menu, menu) | ||||||
|  |         undo = menu.findItem(R.id.action_undo) | ||||||
|  |         redo = menu.findItem(R.id.action_redo) | ||||||
|  |         return super.onCreateOptionsMenu(menu) | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { | ||||||
|  |         R.id.action_undo -> { | ||||||
|  |             matchModel?.undo() | ||||||
|  |             updateUI() | ||||||
|  |             true | ||||||
|  |         } | ||||||
|  |         R.id.action_redo -> { | ||||||
|  |             matchModel?.redo() | ||||||
|  |             updateUI() | ||||||
|  |             true | ||||||
|  |         } | ||||||
|  |         else -> { | ||||||
|  |             super.onOptionsItemSelected(item) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     fun updateUI() { |     fun updateUI() { | ||||||
|         matchModel?.apply { |         matchModel?.apply { | ||||||
|  |             if (matchFinished) { | ||||||
|  |  | ||||||
|  |             } else { | ||||||
|                 textScore?.text = getString( |                 textScore?.text = getString( | ||||||
|                     R.string.score, |                     R.string.score, | ||||||
|                     players[serviceSide].score, |                     players[serviceSide].score, | ||||||
| @ -86,6 +128,15 @@ class MatchActivity : AppCompatActivity() { | |||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  |                 undo?.isVisible = when (playId) { | ||||||
|  |                     0 -> false | ||||||
|  |                     else -> true | ||||||
|  |                 } | ||||||
|  |                 redo?.isVisible = when (playId) { | ||||||
|  |                     history.size - 1 -> false | ||||||
|  |                     else -> true | ||||||
|  |                 } | ||||||
|  |  | ||||||
|                 if (ttsEnabled) { |                 if (ttsEnabled) { | ||||||
|                     tts?.speak( |                     tts?.speak( | ||||||
|                         getString( |                         getString( | ||||||
| @ -100,11 +151,19 @@ class MatchActivity : AppCompatActivity() { | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     fun updateScore(view: View) { |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     fun updateScore(view: View) { | ||||||
|  |         matchModel?.apply { | ||||||
|  |             if (!matchFinished) { | ||||||
|  |                 for (side in 0..1) { | ||||||
|  |                     if (view == buttons[side]) { | ||||||
|  |                         updateScore(side) | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 updateUI() | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -7,21 +7,69 @@ import android.arch.lifecycle.ViewModel | |||||||
|  |  | ||||||
| class MatchModel : ViewModel() { | class MatchModel : ViewModel() { | ||||||
|     var matchStarted: Boolean = false |     var matchStarted: Boolean = false | ||||||
|  |     var matchFinished: Boolean = false | ||||||
|     var players: List<Player> = emptyList() |     var players: List<Player> = emptyList() | ||||||
|     var serviceSide: Int = 0 |     var serviceSide: Int = 0 | ||||||
|     var relaunchSide: Int = 1 |     var relaunchSide: Int = 1 | ||||||
|     var ttsEnabled: Boolean = false |     var ttsEnabled: Boolean = false | ||||||
|     var sttEnabled: Boolean = false |     var sttEnabled: Boolean = false | ||||||
|  |     var playId: Int = 0 | ||||||
|  |     var history: MutableList<Play> = ArrayList() | ||||||
|  |  | ||||||
|     fun startMatch(player1Name: String, player2Name:String, starterId: Int, enableTTS: Boolean, enableSTT: Boolean) { |     fun startMatch(player1Name: String, player2Name:String, starterId: Int, enableTTS: Boolean, enableSTT: Boolean) { | ||||||
|         matchStarted = true |         matchStarted = true | ||||||
|         players = listOf(Player(player1Name), Player(player2Name)) |         players = listOf(Player(player1Name), Player(player2Name)) | ||||||
|         serviceSide = starterId |         serviceSide = starterId | ||||||
|         relaunchSide = when(starterId) { |         relaunchSide = when(serviceSide) { | ||||||
|             0 -> 1 |             0 -> 1 | ||||||
|             else -> 0 |             else -> 0 | ||||||
|         } |         } | ||||||
|         ttsEnabled = enableTTS |         ttsEnabled = enableTTS | ||||||
|         sttEnabled = enableSTT |         sttEnabled = enableSTT | ||||||
|  |         saveState() | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     fun updateScore(scorerId: Int) { | ||||||
|  |         playId++ | ||||||
|  |         players[scorerId].score++ | ||||||
|  |         if ((players.sumBy { it.score } % 2 == 0) or (players.all { it.score >= 10 })) { | ||||||
|  |             serviceSide = relaunchSide.also { relaunchSide = serviceSide } | ||||||
|  |         } | ||||||
|  |         saveState() | ||||||
|  |  | ||||||
|  |         // Is match finished? | ||||||
|  |         val (minScore, maxScore) = players.map { it.score }.sorted() | ||||||
|  |         if ((maxScore >= 11) and (maxScore - minScore >= 2)) matchFinished = true | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     fun saveState() { | ||||||
|  |         val play = Play(players.map { it.score }, serviceSide) | ||||||
|  |         if (playId == history.size) { | ||||||
|  |             history.add(play) | ||||||
|  |         } else { | ||||||
|  |             history[playId] = play | ||||||
|  |             history = history.subList(0, playId+1).toMutableList() | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     fun undo() { | ||||||
|  |         playId-- | ||||||
|  |         reloadState() | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     fun redo() { | ||||||
|  |         playId++ | ||||||
|  |         reloadState() | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     fun reloadState() { | ||||||
|  |         history[playId].let{ | ||||||
|  |             players.zip(it.score).forEach{(player, score) -> player.score = score} | ||||||
|  |             serviceSide = it.serviceSide | ||||||
|  |             relaunchSide = when(serviceSide) { | ||||||
|  |                 0 -> 1 | ||||||
|  |                 else -> 0 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -2,5 +2,5 @@ package adrienmalin.pingpoints | |||||||
|  |  | ||||||
| data class Play ( | data class Play ( | ||||||
|     val score: List<Int>, |     val score: List<Int>, | ||||||
|     val server: Int |     val serviceSide: Int | ||||||
| ) | ) | ||||||
| @ -1,6 +1,6 @@ | |||||||
| package adrienmalin.pingpoints | package adrienmalin.pingpoints | ||||||
|  |  | ||||||
| data class Player ( | data class Player ( | ||||||
|     var name: String = "", |     var name: String, | ||||||
|     var score: Int = 0 |     var score: Int = 0 | ||||||
| ) | ) | ||||||
| @ -37,11 +37,7 @@ class StarterNameActivity : AppCompatActivity() { | |||||||
|         super.onCreate(savedInstanceState) |         super.onCreate(savedInstanceState) | ||||||
|         setContentView(R.layout.activity_starter_name) |         setContentView(R.layout.activity_starter_name) | ||||||
|         setSupportActionBar(findViewById(R.id.toolbar)) |         setSupportActionBar(findViewById(R.id.toolbar)) | ||||||
|         // Set HTML text for icons credits |  | ||||||
|         findViewById<TextView>(R.id.iconsCredit).run { |  | ||||||
|             setText(fromHtml(getString(R.string.iconCredits))) |  | ||||||
|             movementMethod = LinkMovementMethod.getInstance() |  | ||||||
|         } |  | ||||||
|         // Find views |         // Find views | ||||||
|         player1NameInput = findViewById(R.id.player1Name) |         player1NameInput = findViewById(R.id.player1Name) | ||||||
|         player2NameInput = findViewById(R.id.player2Name) |         player2NameInput = findViewById(R.id.player2Name) | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								app/src/main/java/adrienmalin/pingpoints/VictoryActivity.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								app/src/main/java/adrienmalin/pingpoints/VictoryActivity.kt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | package adrienmalin.pingpoints | ||||||
|  |  | ||||||
|  | import android.support.v7.app.AppCompatActivity | ||||||
|  | import android.os.Bundle | ||||||
|  |  | ||||||
|  | class VictoryActivity : AppCompatActivity() { | ||||||
|  |  | ||||||
|  |     override fun onCreate(savedInstanceState: Bundle?) { | ||||||
|  |         super.onCreate(savedInstanceState) | ||||||
|  |         setContentView(R.layout.activity_victory) | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -1,21 +1,12 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  |  | ||||||
| <android.support.design.widget.CoordinatorLayout | <android.support.design.widget.CoordinatorLayout | ||||||
|         android:id="@+id/coordinatorLayout" |         xmlns:tools="http://schemas.android.com/tools" android:id="@+id/coordinatorLayout" | ||||||
|         xmlns:android="http://schemas.android.com/apk/res/android" |         xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" |         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|         android:layout_width="match_parent" |         android:layout_width="match_parent" | ||||||
|         android:layout_height="match_parent"> |         android:layout_height="match_parent"> | ||||||
|  |  | ||||||
|     <android.support.constraint.ConstraintLayout |  | ||||||
|             xmlns:android="http://schemas.android.com/apk/res/android" |  | ||||||
|             xmlns:app="http://schemas.android.com/apk/res-auto" |  | ||||||
|             xmlns:tools="http://schemas.android.com/tools" |  | ||||||
|             android:layout_width="match_parent" |  | ||||||
|             android:layout_height="match_parent" |  | ||||||
|             tools:context=".MatchActivity" |  | ||||||
|             tools:layout_editor_absoluteY="73dp"> |  | ||||||
|  |  | ||||||
|     <LinearLayout |     <LinearLayout | ||||||
|             android:layout_width="match_parent" |             android:layout_width="match_parent" | ||||||
|             android:layout_height="match_parent" |             android:layout_height="match_parent" | ||||||
| @ -29,7 +20,7 @@ | |||||||
|                 android:background="@color/colorPrimary" |                 android:background="@color/colorPrimary" | ||||||
|                 android:elevation="4dp" |                 android:elevation="4dp" | ||||||
|                 android:theme="@style/ThemeOverlay.AppCompat.ActionBar" |                 android:theme="@style/ThemeOverlay.AppCompat.ActionBar" | ||||||
|                     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> |                 app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:layout_weight="0"/> | ||||||
|  |  | ||||||
|         <LinearLayout |         <LinearLayout | ||||||
|                 android:id="@+id/linearLayoutText" |                 android:id="@+id/linearLayoutText" | ||||||
| @ -42,11 +33,11 @@ | |||||||
|                 android:orientation="horizontal" |                 android:orientation="horizontal" | ||||||
|                 app:layout_constraintEnd_toEndOf="parent" |                 app:layout_constraintEnd_toEndOf="parent" | ||||||
|                 app:layout_constraintStart_toStartOf="parent" |                 app:layout_constraintStart_toStartOf="parent" | ||||||
|                     tools:layout_editor_absoluteY="8dp"> |                 tools:layout_editor_absoluteY="8dp" android:layout_weight="0"> | ||||||
|  |  | ||||||
|             <TextView |             <TextView | ||||||
|                     android:id="@+id/textScore" |                     android:id="@+id/textScore" | ||||||
|                         android:layout_width="match_parent" |                     android:layout_width="wrap_content" | ||||||
|                     android:layout_height="wrap_content" |                     android:layout_height="wrap_content" | ||||||
|                     android:layout_marginLeft="8dp" |                     android:layout_marginLeft="8dp" | ||||||
|                     android:layout_marginStart="8dp" |                     android:layout_marginStart="8dp" | ||||||
| @ -55,10 +46,10 @@ | |||||||
|                     android:textAppearance="@style/TextAppearance.AppCompat.Large" |                     android:textAppearance="@style/TextAppearance.AppCompat.Large" | ||||||
|                     app:layout_constraintStart_toStartOf="parent" |                     app:layout_constraintStart_toStartOf="parent" | ||||||
|                     app:layout_constraintTop_toTopOf="parent" |                     app:layout_constraintTop_toTopOf="parent" | ||||||
|                         tools:text="@string/score" android:layout_marginRight="8dp"/> |                     android:layout_marginRight="8dp" android:text="@string/score"/> | ||||||
|             <TextView |             <TextView | ||||||
|                     android:id="@+id/textService" |                     android:id="@+id/textService" | ||||||
|                         android:layout_width="match_parent" |                     android:layout_width="wrap_content" | ||||||
|                     android:layout_height="wrap_content" |                     android:layout_height="wrap_content" | ||||||
|                     android:layout_marginEnd="8dp" |                     android:layout_marginEnd="8dp" | ||||||
|                     android:layout_marginStart="8dp" |                     android:layout_marginStart="8dp" | ||||||
| @ -69,15 +60,15 @@ | |||||||
|                     app:layout_constraintHorizontal_bias="1.0" |                     app:layout_constraintHorizontal_bias="1.0" | ||||||
|                     app:layout_constraintStart_toEndOf="@+id/textScore" |                     app:layout_constraintStart_toEndOf="@+id/textScore" | ||||||
|                     app:layout_constraintTop_toTopOf="parent" |                     app:layout_constraintTop_toTopOf="parent" | ||||||
|                         tools:text="@string/service" android:layout_marginRight="8dp" |                     android:layout_marginRight="8dp" | ||||||
|                         android:layout_marginLeft="8dp"/> |                     android:layout_marginLeft="8dp" android:text="@string/service"/> | ||||||
|  |  | ||||||
|         </LinearLayout> |         </LinearLayout> | ||||||
|  |  | ||||||
|         <LinearLayout |         <LinearLayout | ||||||
|                 android:layout_width="match_parent" |                 android:layout_width="match_parent" | ||||||
|                 android:layout_height="match_parent" |                 android:layout_height="match_parent" | ||||||
|                     android:orientation="horizontal"> |                 android:orientation="horizontal" android:layout_weight="1"> | ||||||
|  |  | ||||||
|             <ImageView |             <ImageView | ||||||
|                     android:id="@+id/imgService0" |                     android:id="@+id/imgService0" | ||||||
| @ -90,7 +81,6 @@ | |||||||
|  |  | ||||||
|             <Button |             <Button | ||||||
|                     android:id="@+id/buttonPlayer0" |                     android:id="@+id/buttonPlayer0" | ||||||
|                         style="@style/Widget.AppCompat.Button.Colored" |  | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="match_parent" |                     android:layout_height="match_parent" | ||||||
|                     android:layout_marginBottom="8dp" |                     android:layout_marginBottom="8dp" | ||||||
| @ -112,7 +102,6 @@ | |||||||
|  |  | ||||||
|             <Button |             <Button | ||||||
|                     android:id="@+id/buttonPlayer1" |                     android:id="@+id/buttonPlayer1" | ||||||
|                         style="@style/Widget.AppCompat.Button.Colored" |  | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="match_parent" |                     android:layout_height="match_parent" | ||||||
|                     android:layout_marginBottom="8dp" |                     android:layout_marginBottom="8dp" | ||||||
| @ -144,9 +133,33 @@ | |||||||
|                     tools:layout_editor_absoluteY="120dp"/> |                     tools:layout_editor_absoluteY="120dp"/> | ||||||
|  |  | ||||||
|         </LinearLayout> |         </LinearLayout> | ||||||
|  |         <LinearLayout | ||||||
|  |                 android:orientation="horizontal" | ||||||
|  |                 android:layout_width="match_parent" | ||||||
|  |                 android:layout_height="wrap_content" android:layout_weight="0"> | ||||||
|  |             <TextView | ||||||
|  |                     android:id="@+id/pingPointsCredit" | ||||||
|  |                     android:layout_width="wrap_content" | ||||||
|  |                     android:layout_height="wrap_content" | ||||||
|  |                     android:text="@string/PingPointsCredits" | ||||||
|  |                     app:layout_constraintTop_toBottomOf="@+id/enableSttSwitch" | ||||||
|  |                     app:layout_constraintStart_toStartOf="parent" | ||||||
|  |                     android:layout_marginStart="8dp" | ||||||
|  |                     app:layout_constraintEnd_toEndOf="parent" | ||||||
|  |                     android:layout_marginEnd="8dp" | ||||||
|  |                     android:layout_weight="1" android:layout_margin="8dp" android:gravity="left"/> | ||||||
|  |             <TextView | ||||||
|  |                     android:id="@+id/iconsCredit" | ||||||
|  |                     android:layout_width="wrap_content" | ||||||
|  |                     android:layout_height="wrap_content" | ||||||
|  |                     android:text="@string/iconCredits" | ||||||
|  |                     app:layout_constraintTop_toBottomOf="@+id/PingPointsCredit" | ||||||
|  |                     app:layout_constraintStart_toStartOf="parent" | ||||||
|  |                     android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" | ||||||
|  |                     android:layout_marginEnd="8dp" | ||||||
|  |                     android:layout_weight="1" android:layout_margin="8dp" android:gravity="right"/> | ||||||
|  |         </LinearLayout> | ||||||
|  |  | ||||||
|     </LinearLayout> |     </LinearLayout> | ||||||
|  |  | ||||||
|     </android.support.constraint.ConstraintLayout> |  | ||||||
|  |  | ||||||
| </android.support.design.widget.CoordinatorLayout> | </android.support.design.widget.CoordinatorLayout> | ||||||
| @ -89,23 +89,6 @@ | |||||||
|                 android:layout_marginEnd="8dp" android:layout_marginRight="8dp" |                 android:layout_marginEnd="8dp" android:layout_marginRight="8dp" | ||||||
|                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" |                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" | ||||||
|                 android:layout_marginStart="8dp"/> |                 android:layout_marginStart="8dp"/> | ||||||
|         <TextView |  | ||||||
|                 android:id="@+id/pingPointsCredit" |  | ||||||
|                 android:layout_width="match_parent" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:text="@string/PingPointsCredits" |  | ||||||
|                 app:layout_constraintTop_toBottomOf="@+id/enableSttSwitch" app:layout_constraintStart_toStartOf="parent" |  | ||||||
|                 android:layout_marginLeft="8dp" android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" |  | ||||||
|                 android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:layout_marginTop="24dp"/> |  | ||||||
|         <TextView |  | ||||||
|                 android:id="@+id/iconsCredit" |  | ||||||
|                 android:layout_width="match_parent" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:text="@string/iconCredits" |  | ||||||
|                 app:layout_constraintTop_toBottomOf="@+id/pingPointsCredit" |  | ||||||
|                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" |  | ||||||
|                 android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp" |  | ||||||
|                 android:layout_marginRight="8dp"/> |  | ||||||
|         <Button |         <Button | ||||||
|                 android:text="@string/start" |                 android:text="@string/start" | ||||||
|                 android:layout_width="wrap_content" |                 android:layout_width="wrap_content" | ||||||
|  | |||||||
| @ -1,21 +1,12 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  |  | ||||||
| <android.support.design.widget.CoordinatorLayout | <android.support.design.widget.CoordinatorLayout | ||||||
|         android:id="@+id/coordinatorLayout" |         xmlns:tools="http://schemas.android.com/tools" android:id="@+id/coordinatorLayout" | ||||||
|         xmlns:android="http://schemas.android.com/apk/res/android" |         xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|         xmlns:app="http://schemas.android.com/apk/res-auto" |         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|         android:layout_width="match_parent" |         android:layout_width="match_parent" | ||||||
|         android:layout_height="match_parent"> |         android:layout_height="match_parent"> | ||||||
|  |  | ||||||
|     <android.support.constraint.ConstraintLayout |  | ||||||
|             xmlns:android="http://schemas.android.com/apk/res/android" |  | ||||||
|             xmlns:app="http://schemas.android.com/apk/res-auto" |  | ||||||
|             xmlns:tools="http://schemas.android.com/tools" |  | ||||||
|             android:layout_width="match_parent" |  | ||||||
|             android:layout_height="match_parent" |  | ||||||
|             tools:context=".MatchActivity" |  | ||||||
|             tools:layout_editor_absoluteY="73dp"> |  | ||||||
|  |  | ||||||
|     <LinearLayout |     <LinearLayout | ||||||
|             android:layout_width="match_parent" |             android:layout_width="match_parent" | ||||||
|             android:layout_height="match_parent" |             android:layout_height="match_parent" | ||||||
| @ -29,7 +20,7 @@ | |||||||
|                 android:background="@color/colorPrimary" |                 android:background="@color/colorPrimary" | ||||||
|                 android:elevation="4dp" |                 android:elevation="4dp" | ||||||
|                 android:theme="@style/ThemeOverlay.AppCompat.ActionBar" |                 android:theme="@style/ThemeOverlay.AppCompat.ActionBar" | ||||||
|                     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> |                 app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:layout_weight="0"/> | ||||||
|  |  | ||||||
|         <LinearLayout |         <LinearLayout | ||||||
|                 android:id="@+id/linearLayoutText" |                 android:id="@+id/linearLayoutText" | ||||||
| @ -42,58 +33,55 @@ | |||||||
|                 android:orientation="horizontal" |                 android:orientation="horizontal" | ||||||
|                 app:layout_constraintEnd_toEndOf="parent" |                 app:layout_constraintEnd_toEndOf="parent" | ||||||
|                 app:layout_constraintStart_toStartOf="parent" |                 app:layout_constraintStart_toStartOf="parent" | ||||||
|                     tools:layout_editor_absoluteY="8dp"> |                 tools:layout_editor_absoluteY="8dp" android:layout_weight="0"> | ||||||
|  |  | ||||||
|             <TextView |             <TextView | ||||||
|                     android:id="@+id/textScore" |                     android:id="@+id/textScore" | ||||||
|                         android:layout_width="match_parent" |                     android:layout_width="wrap_content" | ||||||
|                     android:layout_height="wrap_content" |                     android:layout_height="wrap_content" | ||||||
|                     android:layout_marginLeft="8dp" |                     android:layout_marginLeft="8dp" | ||||||
|                     android:layout_marginStart="8dp" |                     android:layout_marginStart="8dp" | ||||||
|                         android:layout_weight="1" |  | ||||||
|                     android:gravity="left" |                     android:gravity="left" | ||||||
|                     android:textAppearance="@style/TextAppearance.AppCompat.Large" |                     android:textAppearance="@style/TextAppearance.AppCompat.Large" | ||||||
|                     app:layout_constraintStart_toStartOf="parent" |                     app:layout_constraintStart_toStartOf="parent" | ||||||
|                     app:layout_constraintTop_toTopOf="parent" |                     app:layout_constraintTop_toTopOf="parent" | ||||||
|                         tools:text="@string/score" android:layout_marginRight="8dp"/> |                     android:layout_marginRight="8dp" android:text="@string/score" | ||||||
|  |                     android:layout_weight="1"/> | ||||||
|             <TextView |             <TextView | ||||||
|                     android:id="@+id/textService" |                     android:id="@+id/textService" | ||||||
|                         android:layout_width="match_parent" |                     android:layout_width="wrap_content" | ||||||
|                     android:layout_height="wrap_content" |                     android:layout_height="wrap_content" | ||||||
|                     android:layout_marginEnd="8dp" |                     android:layout_marginEnd="8dp" | ||||||
|                     android:layout_marginStart="8dp" |                     android:layout_marginStart="8dp" | ||||||
|                         android:layout_weight="1" |  | ||||||
|                     android:textAppearance="@style/TextAppearance.AppCompat.Large" |                     android:textAppearance="@style/TextAppearance.AppCompat.Large" | ||||||
|                     app:layout_constraintEnd_toEndOf="parent" |                     app:layout_constraintEnd_toEndOf="parent" | ||||||
|                     app:layout_constraintHorizontal_bias="1.0" |                     app:layout_constraintHorizontal_bias="1.0" | ||||||
|                     app:layout_constraintStart_toEndOf="@+id/textScore" |                     app:layout_constraintStart_toEndOf="@+id/textScore" | ||||||
|                     app:layout_constraintTop_toTopOf="parent" |                     app:layout_constraintTop_toTopOf="parent" | ||||||
|                         tools:text="@string/service" android:gravity="right"/> |                     android:gravity="right" android:text="@string/service" | ||||||
|  |                     android:layout_weight="1"/> | ||||||
|  |  | ||||||
|         </LinearLayout> |         </LinearLayout> | ||||||
|  |  | ||||||
|         <LinearLayout |         <LinearLayout | ||||||
|                 android:layout_width="match_parent" |                 android:layout_width="match_parent" | ||||||
|                 android:layout_height="match_parent" |                 android:layout_height="match_parent" | ||||||
|                     android:orientation="vertical"> |                 android:orientation="vertical" android:layout_weight="1"> | ||||||
|  |  | ||||||
|             <ImageView |             <ImageView | ||||||
|                     android:id="@+id/imgService0" |                     android:id="@+id/imgService0" | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="48dp" |                     android:layout_height="48dp" | ||||||
|                     android:layout_margin="8dp" |                     android:layout_margin="8dp" | ||||||
|                         android:layout_weight="0" |  | ||||||
|                     android:contentDescription="@string/service_img_description" |                     android:contentDescription="@string/service_img_description" | ||||||
|                     app:srcCompat="@drawable/ic_service_1" |                     app:srcCompat="@drawable/ic_service_1" | ||||||
|                     tools:layout_editor_absoluteY="120dp"/> |                     tools:layout_editor_absoluteY="120dp"/> | ||||||
|  |  | ||||||
|             <Button |             <Button | ||||||
|                     android:id="@+id/buttonPlayer0" |                     android:id="@+id/buttonPlayer0" | ||||||
|                         style="@style/Widget.AppCompat.Button.Colored" |  | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="match_parent" |                     android:layout_height="match_parent" | ||||||
|                     android:layout_marginStart="8dp" |                     android:layout_marginStart="8dp" | ||||||
|                         android:layout_weight="1" |  | ||||||
|                     android:background="@color/colorAccent" |                     android:background="@color/colorAccent" | ||||||
|                     android:bufferType="spannable" |                     android:bufferType="spannable" | ||||||
|                     android:onClick="updateScore" |                     android:onClick="updateScore" | ||||||
| @ -104,16 +92,14 @@ | |||||||
|                     app:layout_constraintBottom_toBottomOf="parent" |                     app:layout_constraintBottom_toBottomOf="parent" | ||||||
|                     app:layout_constraintStart_toEndOf="@+id/imgService0" |                     app:layout_constraintStart_toEndOf="@+id/imgService0" | ||||||
|                     app:layout_constraintTop_toTopOf="parent" |                     app:layout_constraintTop_toTopOf="parent" | ||||||
|                         tools:text="@string/button_text" android:layout_margin="8dp"/> |                     tools:text="@string/button_text" android:layout_margin="8dp" android:layout_weight="1"/> | ||||||
|  |  | ||||||
|             <Button |             <Button | ||||||
|                     android:id="@+id/buttonPlayer1" |                     android:id="@+id/buttonPlayer1" | ||||||
|                         style="@style/Widget.AppCompat.Button.Colored" |  | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="match_parent" |                     android:layout_height="match_parent" | ||||||
|                     android:layout_marginEnd="8dp" |                     android:layout_marginEnd="8dp" | ||||||
|                     android:layout_marginStart="8dp" |                     android:layout_marginStart="8dp" | ||||||
|                         android:layout_weight="1" |  | ||||||
|                     android:background="@color/colorAccent" |                     android:background="@color/colorAccent" | ||||||
|                     android:bufferType="spannable" |                     android:bufferType="spannable" | ||||||
|                     android:onClick="updateScore" |                     android:onClick="updateScore" | ||||||
| @ -124,21 +110,39 @@ | |||||||
|                     app:layout_constraintBottom_toBottomOf="parent" |                     app:layout_constraintBottom_toBottomOf="parent" | ||||||
|                     app:layout_constraintEnd_toStartOf="@+id/imgService1" |                     app:layout_constraintEnd_toStartOf="@+id/imgService1" | ||||||
|                     app:layout_constraintStart_toEndOf="@+id/buttonPlayer0" |                     app:layout_constraintStart_toEndOf="@+id/buttonPlayer0" | ||||||
|                         tools:text="@string/button_text" android:layout_margin="8dp"/> |                     tools:text="@string/button_text" android:layout_margin="8dp" android:layout_weight="1"/> | ||||||
|  |  | ||||||
|             <ImageView |             <ImageView | ||||||
|                     android:id="@+id/imgService1" |                     android:id="@+id/imgService1" | ||||||
|                     android:layout_width="match_parent" |                     android:layout_width="match_parent" | ||||||
|                     android:layout_height="48dp" |                     android:layout_height="48dp" | ||||||
|                     android:layout_margin="8dp" |                     android:layout_margin="8dp" | ||||||
|                         android:layout_weight="0" |  | ||||||
|                     android:contentDescription="@string/service_img_description" |                     android:contentDescription="@string/service_img_description" | ||||||
|                     tools:layout_editor_absoluteY="120dp"/> |                     tools:layout_editor_absoluteY="120dp"/> | ||||||
|  |  | ||||||
|         </LinearLayout> |         </LinearLayout> | ||||||
|  |         <TextView | ||||||
|  |                 android:id="@+id/pingPointsCredit" | ||||||
|  |                 android:layout_width="match_parent" | ||||||
|  |                 android:layout_height="wrap_content" | ||||||
|  |                 android:text="@string/PingPointsCredits" | ||||||
|  |                 app:layout_constraintTop_toBottomOf="@+id/enableSttSwitch" | ||||||
|  |                 app:layout_constraintStart_toStartOf="parent" | ||||||
|  |                 android:layout_marginLeft="8dp" android:layout_marginStart="8dp" | ||||||
|  |                 app:layout_constraintEnd_toEndOf="parent" | ||||||
|  |                 android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:layout_marginTop="24dp" | ||||||
|  |                 android:layout_weight="0"/> | ||||||
|  |         <TextView | ||||||
|  |                 android:id="@+id/iconsCredit" | ||||||
|  |                 android:layout_width="match_parent" | ||||||
|  |                 android:layout_height="wrap_content" | ||||||
|  |                 android:text="@string/iconCredits" | ||||||
|  |                 app:layout_constraintTop_toBottomOf="@+id/PingPointsCredit" | ||||||
|  |                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" | ||||||
|  |                 android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" | ||||||
|  |                 android:layout_marginEnd="8dp" | ||||||
|  |                 android:layout_marginRight="8dp" android:layout_weight="0"/> | ||||||
|  |  | ||||||
|     </LinearLayout> |     </LinearLayout> | ||||||
|  |  | ||||||
|     </android.support.constraint.ConstraintLayout> |  | ||||||
|  |  | ||||||
| </android.support.design.widget.CoordinatorLayout> | </android.support.design.widget.CoordinatorLayout> | ||||||
| @ -106,23 +106,6 @@ | |||||||
|                 app:layout_constraintTop_toBottomOf="@+id/enableTtsSwitch" android:layout_marginStart="8dp" |                 app:layout_constraintTop_toBottomOf="@+id/enableTtsSwitch" android:layout_marginStart="8dp" | ||||||
|                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" android:layout_marginEnd="8dp" |                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" android:layout_marginEnd="8dp" | ||||||
|                 app:layout_constraintEnd_toEndOf="parent" android:layout_marginRight="8dp"/> |                 app:layout_constraintEnd_toEndOf="parent" android:layout_marginRight="8dp"/> | ||||||
|         <TextView |  | ||||||
|                 android:id="@+id/PingPointsCredit" |  | ||||||
|                 android:layout_width="match_parent" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:text="@string/PingPointsCredits" |  | ||||||
|                 app:layout_constraintTop_toBottomOf="@+id/enableSttSwitch" app:layout_constraintStart_toStartOf="parent" |  | ||||||
|                 android:layout_marginLeft="8dp" android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" |  | ||||||
|                 android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:layout_marginTop="24dp"/> |  | ||||||
|         <TextView |  | ||||||
|                 android:id="@+id/iconsCredit" |  | ||||||
|                 android:layout_width="match_parent" |  | ||||||
|                 android:layout_height="wrap_content" |  | ||||||
|                 android:text="@string/iconCredits" |  | ||||||
|                 app:layout_constraintTop_toBottomOf="@+id/PingPointsCredit" |  | ||||||
|                 app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp" |  | ||||||
|                 android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp" |  | ||||||
|                 android:layout_marginRight="8dp"/> |  | ||||||
|         <Button |         <Button | ||||||
|                 android:text="@string/start" |                 android:text="@string/start" | ||||||
|                 android:layout_width="wrap_content" |                 android:layout_width="wrap_content" | ||||||
|  | |||||||
							
								
								
									
										35
									
								
								app/src/main/res/layout/activity_victory.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								app/src/main/res/layout/activity_victory.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  |  | ||||||
|  | <android.support.design.widget.CoordinatorLayout | ||||||
|  |         xmlns:tools="http://schemas.android.com/tools" android:id="@+id/coordinatorLayout" | ||||||
|  |         xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |         xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="match_parent"> | ||||||
|  |  | ||||||
|  |     <android.support.constraint.ConstraintLayout | ||||||
|  |             xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |             xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |             xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             tools:context=".VictoryActivity"> | ||||||
|  |  | ||||||
|  |         <android.support.v7.widget.Toolbar | ||||||
|  |                 android:id="@+id/toolbar" | ||||||
|  |                 android:layout_width="match_parent" | ||||||
|  |                 android:layout_height="?attr/actionBarSize" | ||||||
|  |                 android:layout_marginBottom="8dp" | ||||||
|  |                 android:background="@color/colorPrimary" | ||||||
|  |                 android:elevation="4dp" | ||||||
|  |                 android:theme="@style/ThemeOverlay.AppCompat.ActionBar" | ||||||
|  |                 app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:layout_weight="0"/> | ||||||
|  |         <TextView | ||||||
|  |                 android:text="TextView" | ||||||
|  |                 android:layout_width="wrap_content" | ||||||
|  |                 android:layout_height="wrap_content" tools:layout_editor_absoluteY="106dp" | ||||||
|  |                 tools:layout_editor_absoluteX="57dp" android:id="@+id/textView"/> | ||||||
|  |  | ||||||
|  |     </android.support.constraint.ConstraintLayout> | ||||||
|  |  | ||||||
|  | </android.support.design.widget.CoordinatorLayout> | ||||||
							
								
								
									
										20
									
								
								app/src/main/res/menu/match_menu.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/src/main/res/menu/match_menu.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  |  | ||||||
|  | <menu xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |       xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  |  | ||||||
|  |     <item | ||||||
|  |             android:id="@+id/action_undo" | ||||||
|  |             android:icon="@drawable/ic_undo" | ||||||
|  |             android:title="@string/undo" | ||||||
|  |             app:showAsAction="ifRoom" | ||||||
|  |             android:visible="false" /> | ||||||
|  |  | ||||||
|  |     <item | ||||||
|  |             android:id="@+id/action_redo" | ||||||
|  |             android:icon="@drawable/ic_redo" | ||||||
|  |             android:title="@string/redo" | ||||||
|  |             app:showAsAction="ifRoom" | ||||||
|  |             android:visible="false" /> | ||||||
|  |  | ||||||
|  | </menu> | ||||||
| @ -9,7 +9,7 @@ | |||||||
|     <string name="start">Allons-y !</string> |     <string name="start">Allons-y !</string> | ||||||
|     <string name="swap_names">Échanger les noms</string> |     <string name="swap_names">Échanger les noms</string> | ||||||
|     <string name="PingPointsCredits">Ping Points par Adrien Malin</string> |     <string name="PingPointsCredits">Ping Points par Adrien Malin</string> | ||||||
|     <string name="iconCredits"><html>Icônes par <a href="http://www.freepik.com" title="Freepik">Freepik</a> chez <a href="https://www.flaticon.com/" title="Flaticon">flaticon.com</a> Licence <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></html></string> |     <string name="iconCredits">Icônes par <a href="http://www.freepik.com" title="Freepik">Freepik</a> chez <a href="https://www.flaticon.com/" title="Flaticon">flaticon.com</a> Licence <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></string> | ||||||
|     <string name="TTS_unavailable">Désolé, votre appareil ne permet pas la synthèse vocale.</string> |     <string name="TTS_unavailable">Désolé, votre appareil ne permet pas la synthèse vocale.</string> | ||||||
|     <string name="STT_unavailable">Désolé, votre appareil ne permet pas la reconnaissance vocale.</string> |     <string name="STT_unavailable">Désolé, votre appareil ne permet pas la reconnaissance vocale.</string> | ||||||
|     <string name="explain_record_audio_request">"Cette appli utilise l'API de Google pour la reconnaissance vocale : votre voix sera enregistrée et envoyée aux serveurs de Google pour analyse. |     <string name="explain_record_audio_request">"Cette appli utilise l'API de Google pour la reconnaissance vocale : votre voix sera enregistrée et envoyée aux serveurs de Google pour analyse. | ||||||
| @ -27,4 +27,6 @@ Vous pouvez à tout moment changer la permission dans les paramètres Android." | |||||||
|     <string name="title_activity_match">Ping Points</string> |     <string name="title_activity_match">Ping Points</string> | ||||||
|     <string name="update_score_speech">%d - %d. Service : %s</string> |     <string name="update_score_speech">%d - %d. Service : %s</string> | ||||||
|     <string name="button_hint">Cliquez sur le joueur qui a marqué</string> |     <string name="button_hint">Cliquez sur le joueur qui a marqué</string> | ||||||
|  |     <string name="redo">Rétablir</string> | ||||||
|  |     <string name="undo">Annuler</string> | ||||||
| </resources> | </resources> | ||||||
| @ -8,10 +8,10 @@ | |||||||
|     <string name="start">Let\'s go!</string> |     <string name="start">Let\'s go!</string> | ||||||
|     <string name="swap_names">Swap names</string> |     <string name="swap_names">Swap names</string> | ||||||
|     <string name="PingPointsCredits">Ping Points by Adrien Malin</string> |     <string name="PingPointsCredits">Ping Points by Adrien Malin</string> | ||||||
|     <string name="iconCredits">"<html>Icons made by <a href="http://www.freepik.com" title="Freepik">Freepik</a> |     <string name="iconCredits">Icons made by <a href="http://www.freepik.com" title="Freepik">Freepik</a> | ||||||
|         from <a href="https://www.flaticon.com/" title="Flaticon">flaticon.com</a> is |         from <a href="https://www.flaticon.com/" title="Flaticon">flaticon.com</a> is | ||||||
|         licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY |         licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY | ||||||
|         3.0" target="_blank">CC 3.0 BY</a></html>" |         3.0" target="_blank">CC 3.0 BY</a> | ||||||
|     </string> |     </string> | ||||||
|     <string name="TTS_unavailable">Sorry, your device doesn\'t support text to speech.</string> |     <string name="TTS_unavailable">Sorry, your device doesn\'t support text to speech.</string> | ||||||
|     <string name="STT_unavailable">Sorry, your device doesn\'t support voice recognition.</string> |     <string name="STT_unavailable">Sorry, your device doesn\'t support voice recognition.</string> | ||||||
| @ -27,8 +27,11 @@ | |||||||
|     <string name="service">Service: %s</string> |     <string name="service">Service: %s</string> | ||||||
|     <string name="score">Score: %d - %d</string> |     <string name="score">Score: %d - %d</string> | ||||||
|     <string name="service_img_description">Service</string> |     <string name="service_img_description">Service</string> | ||||||
|     <string name="button_text" translatable="false">%s <br /> <br /> <big> <big> %d </big> </big> |     <string name="button_text" translatable="false">%s <br /> <br /> <big> <big> %d </big> | ||||||
|  |         </big> | ||||||
|     </string> |     </string> | ||||||
|     <string name="update_score_speech">%d - %d. Service: %s</string> |     <string name="update_score_speech">%d - %d. Service: %s</string> | ||||||
|     <string name="button_hint">Click on the scoring player</string> |     <string name="button_hint">Click on the scoring player</string> | ||||||
|  |     <string name="undo">Undo</string> | ||||||
|  |     <string name="redo">Redo</string> | ||||||
| </resources> | </resources> | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user