1.0.0-বিটা ইনপুট SDK-এ স্থানান্তর করুন৷

এই নির্দেশিকায় বর্ণনা করা হয়েছে কীভাবে আপনার গেমকে সর্বশেষ ইনপুট এসডিকে (Input SDK) ব্যবহারের জন্য মাইগ্রেট করবেন। ১.০.০-বিটা এসডিকে-তে পূর্ববর্তী ০.০.৪ প্রিভিউয়ের তুলনায় উল্লেখযোগ্য উন্নতি করা হয়েছে। আপনার যত দ্রুত সম্ভব পূর্ববর্তী প্রিভিউগুলো থেকে মাইগ্রেট করা উচিত। ০.০.৪ এসডিকে ২০২৩ সালের মার্চ মাস পর্যন্ত কার্যকর থাকবে।

নির্ভরতা আপডেট করুন

আপনার 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() মেথডটি এখনও ইন্টারফেসটির অংশ।

কোটলিন

ক্লাস ডেফিনিশন থেকে () সরিয়ে দিন, কারণ InputMappingProvider এ কল করার মতো কোনো কনস্ট্রাক্টর নেই।

আপনার InputMappingProvider ইমপ্লিমেন্টেশনটি খুঁজুন:

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

এবং এটিকে এভাবে আপডেট করুন:

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

জাভা

আপনি কোনো ক্লাস এক্সটেন্ড না করে একটি ইন্টারফেস ইমপ্লিমেন্ট করছেন, তা বোঝাতে 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 এখন আর কোনো আর্গুমেন্ট গ্রহণ করে না, ফলে পরবর্তীতে আপনার প্রোভাইডারকে আনরেজিস্টার করার জন্য সেটির রেফারেন্স রাখার আর প্রয়োজন নেই।

কোটলিন

আপনার ইনপুট ম্যাপ প্রোভাইডার নিবন্ধন করতে, 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()
}

জাভা

আপনার ইনপুট ম্যাপ প্রোভাইডার নিবন্ধন করতে, 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();
}