Migrar para o SDK de entrada 1.0.0-beta

Este guia descreve como migrar seu jogo para usar o SDK de entrada mais recente. O SDK 1.0.0-beta tem melhorias significativas em relação à versão anterior 0.0.4. Migre das visualizações anteriores assim que possível. O SDK 0.0.4 vai continuar funcionando até março de 2023.

Atualizar a dependência

Exclua a biblioteca 0.0.4 do seu diretório libs, já que ela está disponível no Maven. Em seguida, localize esta linha no arquivo build.grade do módulo:

implementation files('libs/inputmapping-0.0.4.aar')

Substitua por este código:

implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'

Implementar a nova interface InputMappingProvider

A antiga classe abstrata InputMappingProvider se transformou em uma interface na versão 1.0.0-beta. O método onProvideInputMap() ainda faz parte da interface.

Kotlin

Remova () da definição da classe, já que não há um construtor para invocar em InputMappingProvider.

Localize a implementação de InputMappingProvider.

class MyInputMapProvider : InputMappingProvider() {
    override fun onProvideInputMap(): InputMap {
        TODO("Not yet implemented")
    }
}

E atualize para o seguinte:

class MyInputMapProvider : InputMappingProvider {
    override fun onProvideInputMap(): InputMap {
        TODO("Not yet implemented")
    }
}

Java

Substitua extends por implements para indicar que você está implementando uma interface em vez de estender uma classe.

Localize onde você estende o InputMappingProvider:

public class MyInputMapProvider extends InputMappingProvider {
    @NonNull
    @Override
    public InputMap onProvideInputMap() {
        // TODO: return an InputMap
    }
}

E mude-o para implementar InputMappingProvider:

public class MyInputMapProvider implements InputMappingProvider {
    @NonNull
    @Override
    public InputMap onProvideInputMap() {
        // TODO: return an InputMap
    }
}

Usar o novo InputClient

Os elementos registerInputMappingProvider e unregisterInputMappingProvider foram substituídos por setInputMappingProvider e clearInputMappingProvider. Além disso, clearInputMappingProvider não usa mais um argumento. Assim, você não precisa mais manter uma referência ao seu provedor para cancelar o registro depois.

Kotlin

Para registrar seu provedor de mapa de entrada, localize a chamada para 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)
}

E substitua por setInputMappingProvider:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}

Para limpar seu mapa de entrada, localize a chamada para unregisterInputMappingProvider:

override fun onDestroy() {
    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)

    super.onDestroy()
}

E substitua por clearInputMappingprovider:

override fun onDestroy() {
    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.clearInputMappingProvider()

    super.onDestroy()
}

Java

Para registrar seu provedor de mapa de entrada, localize a chamada para 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);
}

E substitua por setInputMappingProvider:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}

Para limpar o provedor de mapeamento de entrada, localize a chamada para unregisterInputMappingProvider:

@Override
protected void onDestroy() {
    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);

    super.onDestroy();
}

E substitua por clearInputMappingProvider:

@Override
protected void onDestroy() {
    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.clearInputMappingProvider();

    super.onDestroy();
}