Ce guide explique comment effectuer la migration de votre jeu pour utiliser le dernier SDK Input. Le SDK 1.0.0-bêta présente des améliorations substantielles par rapport à la version 0.0.4 précédente. Nous vous conseillons d'effectuer la migration depuis les versions preview précédentes dès que possible. Le SDK 0.0.4 continuera de fonctionner jusqu'en mars 2023.
Mettre à jour la dépendance
Supprimez la bibliothèque 0.0.4 de votre répertoire libs
, car elle est désormais disponible dans Maven. Recherchez ensuite cette ligne dans votre fichier build.grade
au niveau du module :
implementation files('libs/inputmapping-0.0.4.aar')
Remplacez-la par le code suivant :
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Implémenter la nouvelle interface InputMappingProvider
L'ancienne classe abstraite InputMappingProvider
est désormais une interface dans la version 1.0.0-beta
. La méthode onProvideInputMap()
fait toujours partie de l'interface.
Kotlin
Supprimez ()
de la définition de classe, car il n'existe aucun constructeur à appeler dans InputMappingProvider
.
Localisez votre implémentation InputMappingProvider
:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Apportez-lui la modification suivante :
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Remplacez extends
par implements
pour indiquer que vous implémentez une interface plutôt que d'étendre une classe.
Recherchez l'emplacement où vous étendez InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Modifiez-le pour implémenter InputMappingProvider
:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Utiliser le nouvel élément InputClient
Les éléments registerInputMappingProvider
et unregisterInputMappingProvider
ont été remplacés par setInputMappingProvider
et clearInputMappingProvider
.
De plus, clearInputMappingProvider
n'accepte plus d'argument. Il n'est donc plus nécessaire de conserver une référence à votre fournisseur pour annuler l'enregistrement ultérieurement.
Kotlin
Pour enregistrer votre fournisseur de mappage d'entrées, localisez votre appel àregisterInputMappingProvider
:
private val myInputMapProvider by lazy {
MyInputMapProvider()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.registerInputMappingProvider(myInputMapProvider)
}
Remplacez-le par setInputMappingProvider
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Pour effacer votre mappage d'entrées, localisez votre appel à unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
Remplacez-le par clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Pour enregistrer votre fournisseur de mappage d'entrées, localisez votre appel à registerInputMappingProvider
:
private final MyInputMapProvider myInputMapProvider = new MyInputMapProvider();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.registerInputMappingProvider(myInputMapProvider);
}
Remplacez-le par setInputMappingProvider
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Pour effacer votre fournisseur de mappage d'entrées, localisez votre appel à unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
Remplacez-le par clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}