Effectuer la migration vers le SDK Input 1.0.0-beta

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();
}