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

সর্বশেষ ইনপুট SDK ব্যবহার করার জন্য কীভাবে আপনার গেম স্থানান্তর করবেন তা এই নির্দেশিকা বর্ণনা করে৷ 1.0.0-বিটা SDK-এর আগের 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() এখনও ইন্টারফেসের অংশ।

কোটলিন

শ্রেণী সংজ্ঞা থেকে () সরান যেহেতু InputMappingProvider এ আহ্বান করার জন্য কোন কনস্ট্রাক্টর নেই।

আপনার InputMappingProvider বাস্তবায়ন সনাক্ত করুন:

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

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

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

জাভা

আপনি একটি ক্লাস প্রসারিত করার পরিবর্তে একটি ইন্টারফেস বাস্তবায়ন করছেন তা নির্দেশ করার জন্য implements সাথে extends প্রতিস্থাপন করুন।

যেখানে আপনি 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
    }
}

নতুন ইনপুট ক্লায়েন্ট ব্যবহার করুন

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