1.0.0-बीटा इनपुट SDK टूल पर माइग्रेट करें

इस गाइड में, अपने गेम को नए Input SDK का इस्तेमाल करने के लिए माइग्रेट करने का तरीका बताया गया है. SDK टूल के 1.0.0-बीटा वर्शन में, 0.0.4 के पिछले बीटा वर्शन के मुकाबले काफ़ी सुधार किए गए हैं. आपको जल्द से जल्द, पुरानी झलकों से माइग्रेट कर लेना चाहिए. 0.0.4 SDK टूल, मार्च 2023 तक काम करता रहेगा.

डिपेंडेंसी अपडेट करना

अपनी libs डायरेक्ट्री से 0.0.4 लाइब्रेरी मिटाएं, क्योंकि लाइब्रेरी अब Maven पर उपलब्ध है. इसके बाद, अपने मॉड्यूल-लेवल की build.grade फ़ाइल में यह लाइन ढूंढें:

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

इसे इस कोड से बदलें:

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

InputMappingProvider का नया इंटरफ़ेस लागू करना

पुरानी ऐब्सट्रैक्ट क्लास InputMappingProvider, 1.0.0-beta वर्शन के इंटरफ़ेस में बदल गई. onProvideInputMap() तरीका अब भी इंटरफ़ेस का हिस्सा है.

Kotlin

क्लास की परिभाषा से () को हटाएं, क्योंकि InputMappingProvider में कोई कंस्ट्रक्टर नहीं है.

InputMappingProvider लागू करने के लिए:

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

और इसे इसमें अपडेट करें:

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

Java

extends की जगह implements का इस्तेमाल करें, ताकि यह पता चल सके कि क्लास को बढ़ाने के बजाय इंटरफ़ेस को लागू किया जा रहा है.

InputMappingProvider को एक्सटेंड करने की जगह ढूंढें:

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

और InputMappingProvider लागू करने के लिए, इसे बदलें:

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

नए InputClient का इस्तेमाल करें

registerInputMappingProvider और unregisterInputMappingProvider को setInputMappingProvider और clearInputMappingProvider से बदल दिया गया है. इसके अलावा, clearInputMappingProvider में अब कोई आर्ग्युमेंट नहीं दिया जाता. इसलिए, अब आपको सेवा देने वाली कंपनी का रेफ़रंस नहीं रखना होगा, ताकि बाद में उसे अनरजिस्टर किया जा सके.

Kotlin

इनपुट मैप सेवा देने वाली कंपनी को रजिस्टर करने के लिए, 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)
}

और इसे setInputMappingProvider से बदलें:

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

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

इनपुट मैप को मिटाने के लिए, unregisterInputMappingProvider पर कॉल करें:

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

    super.onDestroy()
}

और इसे clearInputMappingprovider से बदलें:

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

    super.onDestroy()
}

Java

इनपुट मैप की सेवा देने वाली कंपनी को रजिस्टर करने के लिए, 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);
}

और इसे setInputMappingProvider से बदलें:

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

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

इनपुट मैपिंग की सेवा देने वाली कंपनी की जानकारी मिटाने के लिए, unregisterInputMappingProvider पर कॉल करें:

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

    super.onDestroy();
}

और इसे clearInputMappingProvider से बदलें:

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

    super.onDestroy();
}