এই নির্দেশিকাটিতে বর্ণনা করা হয়েছে কিভাবে আপনার গেমটিকে সর্বশেষ ইনপুট SDK ব্যবহার করার জন্য মাইগ্রেট করবেন। 1.0.0-বিটা SDK-তে পূর্ববর্তী 0.0.4 প্রিভিউয়ের তুলনায় যথেষ্ট উন্নতি হয়েছে। আপনার যত তাড়াতাড়ি সম্ভব পূর্ববর্তী প্রিভিউগুলি থেকে মাইগ্রেট করা উচিত। 0.0.4 SDK মার্চ 2023 পর্যন্ত কাজ করবে।
নির্ভরতা আপডেট করুন
আপনার libs ডিরেক্টরি থেকে 0.0.4 লাইব্রেরিটি মুছে ফেলুন কারণ লাইব্রেরিটি এখন maven-এ উপলব্ধ। তারপর আপনার module-level 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
}
}
নতুন ইনপুট ক্লায়েন্ট ব্যবহার করুন
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();
}