Android-এর জন্য Consumer SDK রিলিজ নোট

এই বিভাগে Android-এর জন্য Consumer SDK-এর রিলিজ নোট রয়েছে।

ঘোষণা: API লেভেল ২৩, ২৪ ও ২৫-এর জন্য ফ্রিজিং সাপোর্ট

মোবাইল OS ভার্সন সংক্রান্ত সহায়তা নীতি অনুযায়ী, আমরা Android-এর জন্য Consumer SDK-এর আসন্ন প্রধান ভার্সনে Android 6 ও 7 (API লেভেল 23, 24 ও 25)-এর জন্য সহায়তা বন্ধ করে দিচ্ছি।

২০২৫-এর চতুর্থ কোয়ার্টার থেকে Android-এর জন্য Consumer SDK-এর যে ভার্সন রিলিজ করা হবে, সেটি Android 8 (API লেভেল ২৬) বা তার পরবর্তী ভার্সনে কাজ করবে। SDK-এর আগের ভার্সনগুলি Android 6 ও 7-এ কাজ করা চালিয়ে যাবে।

আপনার ডিপেন্ডেন্সি কোনও ভার্সন নম্বর উল্লেখ না করলে, আপনার IDE লেটেস্ট SDK ভার্সন লোড করবে এবং আপনার অ্যাপের নতুন বিল্ড Android 6 ও 7-এ কাজ করবে না।

আপনার অ্যাপের নতুন ভার্সনের জন্য ন্যূনতম OS ভার্সন কখন বাড়াবেন তা নিয়ন্ত্রণ করতে, আপনার অ্যাপ্লিকেশনের বিল্ড ডিপেন্ডেন্সিতে Android-এর জন্য Consumer SDK-এর একটি ভার্সন উল্লেখ করুন।

5.0.0 (৯ নভেম্বর, ২০২৬)

  • R8 ফুল মোডের জন্য সহায়তা যোগ করা হয়েছে। SDK-এর ProGuard নিয়ম এখন gRPC প্রোভাইডার ক্লাস রাখে যা রিফ্লেকশন দ্বারা লোড করা হয়, তাই R8 ফুল মোড চালু করা অ্যাপ Unable to load OkHttpChannelProvider-এর সাথে স্টার্টআপে আর ব্যর্থ হয় না।

সমস্যার সমাধান

  • কানেকশন সেট-আপ করার সময় কোনও ইন্টারমিডিয়েট ক্যারিয়ার প্রক্সি স্টল হয়ে গেলে, Fleet Engine-এ সুরক্ষিত কানেকশন করার চেষ্টা অনির্দিষ্টকালের জন্য পেন্ডিং থেকে যেতে পারে। এর ফলে, নির্দিষ্ট কিছু মোবাইল নেটওয়ার্কে ট্রিপ স্ট্যাটাস ও ভেহিকল ট্র্যাকিং আপডেট রিফ্রেশ করা যায় না। এই সমস্যার সমাধান করা হয়েছে। Consumer SDK এখন কানেকশন টাইমআউট এনফোর্স করে এবং নতুন কানেকশনে অটোমেটিক রিকভার করে।

ডিপেন্ডেন্সি ও কনফিগারেশনে পরিবর্তন

Android-এর জন্য Consumer SDK-এর 5.0.0 ভার্সন থেকে শুরু করে, নতুন ন্যূনতম প্রয়োজনীয়তা রয়েছে:

  • Android 7.0 (API লেভেল ২৪) বা তার পরবর্তী ভার্সনে এটি কাজ করবে।
  • অ্যাপকে অবশ্যই Kotlin 2.4-এ আপগ্রেড করতে হবে।

SDK এখন নিম্নলিখিত টুল দিয়ে তৈরি করা হয়েছে:

  • Android Gradle প্লাগ-ইন 9.2.0 ভার্সনে আপগ্রেড করা হয়েছে।
  • Gradle-কে 9.4.1-এ আপগ্রেড করা হয়েছে।

৪.১.০ (২৬ মে, ২০২৬)

  • ইন্টার্নাল উন্নতি: ইন্টার্নাল ডেটা স্টোরেজ Jetpack DataStore-এ মাইগ্রেট করা হয়েছে।

ডিপেন্ডেন্সি ও কনফিগারেশনে পরিবর্তন

  • Kotlin ডিপেন্ডেন্সি ভার্সন v2.3.0-এ আপগ্রেড করা হয়েছে।
  • Android Gradle প্লাগ-ইন 8.13.2-এ আপগ্রেড করা হয়েছে।
  • Gradle-কে 8.13-এ আপগ্রেড করা হয়েছে।
  • Desugar লাইব্রেরি 2.1.5 ভার্সনে আপগ্রেড করা হয়েছে।
  • Maps SDK-কে 20.0.0-এ আপডেট করা হয়েছে এবং নিম্নলিখিত GMS Core ডিপেন্ডেন্সি আপডেট করা হয়েছে:
    • play-services-location: 21.3.0
    • play-services-tasks: 18.4.1
    • play-services-common: 18.1.0
    • play-services-basement: 18.1.0
  • Jetpack Datastore ডিপেন্ডেন্সি যোগ করা হয়েছে (androidx.datastore:datastore-core:1.2.0, androidx.datastore:datastore-guava:1.2.0)।

4.0.0 (৩ অক্টোবর, ২০২৫)

  • ইন্টার্নাল উন্নতি।

৩.২.০ (২৬ জুন, ২০২৫)

  • ইন্টার্নাল লগিংয়ের ক্ষেত্রে উন্নতি।

ডিপেন্ডেন্সি ও কনফিগারেশনে পরিবর্তন

  • Android-এর জন্য Consumer SDK-এর 3.2.0 ভার্সন থেকে শুরু করে, অ্যাপগুলিকে অবশ্যই Kotlin 2.1-এ আপগ্রেড করতে হবে।

সমস্যার সমাধান

  • ইন্টার্নাল অ্যানিমেশন সংক্রান্ত সিদ্ধান্ত নেওয়ার জন্য এয়ার ডিস্ট্যান্সের পরিবর্তে পলিলাইন দৈর্ঘ্য ব্যবহার করুন।

৩.১.০ (১০ মার্চ, ২০২৫)

  • ইন্টার্নাল লগিংয়ের ক্ষেত্রে উন্নতি।

3.0.0 (৬ ডিসেম্বর, ২০২৪)

ডিপেন্ডেন্সি ও কনফিগারেশনে পরিবর্তন

২.৯৯.০ (২৫ নভেম্বর, ২০২৪)

সমস্যার সমাধান

  • ConsumerApi.cleanUp() এক্সিকিউট করতে অনেক বেশি সময় লাগলে যে ANR সমস্যা হয় তা সমাধান করে। রিলিজ ইন্টিগ্রেট করা হয়ে গেলে এটি ধীরে ধীরে (০% থেকে শুরু করে) রোল-আউট করা হবে।
  • ড্রাইভাররা "INTERNAL" কোড এবং "Panic!" মেসেজ সহ gRPC সংক্রান্ত সমস্যার সমাধান করে। এটি একটি বাগ!"। রিলিজ ইন্টিগ্রেট করা হয়ে গেলে এটি ধীরে ধীরে (০% থেকে শুরু করে) রোল-আউট করা হবে।

২.৩.০ (২ আগস্ট, ২০২৪)

API সংক্রান্ত পরিবর্তন

২.২.০ (৭ মে, ২০২৪)

API সংক্রান্ত পরিবর্তন

  • Jetpack Compose ইন্টিগ্রেশনের জন্য সাপোর্ট API যোগ করা হয়েছে। এটি একটি পরীক্ষামূলক ফিচার। Jetpack Compose-এর সাথে ইন্টিগ্রেট করার ব্যাপারে আরও জানতে, আপনার প্রতিনিধির সাথে যোগাযোগ করুন।

২.১.০ (১৭ জানুয়ারি, ২০২৪)

সমস্যার সমাধান

  • অ্যাপ্লিকেশন লাইফসাইকেল জুড়ে SDK একাধিকবার ইনিশিয়ালাইজ করা হলে যে ক্র্যাশ হয়, তা ঠিক করে।

API সংক্রান্ত পরিবর্তন

  • SDK-এর মাধ্যমে তৈরি করা GoogleMap ইনস্ট্যান্স ফিরিয়ে আনার পদ্ধতি সম্পর্কে জানায় (ConsumerGoogleMap.getGoogleMap())।
  • গাড়ি (ConsumerController.getConsumerMarker()) দেখানোর জন্য SDK-এর মাধ্যমে তৈরি করা Marker ইনস্ট্যান্স ফিরিয়ে আনতে API নিয়ে আসে।
  • জার্নি শেয়ারিং (ProjectedRouteEta) চলাকালীন সময় ও দূরত্বের জন্য ক্লায়েন্ট প্রোজেক্টেড আপডেট পেতে API চালু করে।

১.৯৯.২ (৩ নভেম্বর, ২০২৩)

  • অ্যাপ্লিকেশন থেকে আলাদা, রিমোট প্রসেস থেকে SDK ইনিশিয়ালাইজ করার সময় যে ক্র্যাশ হয়, তা ঠিক করে।

  • ক্যামেরা অ্যানিমেশন এক্সিকিউট করার সময় ক্র্যাশ হওয়ার সমস্যা সমাধান করে এবং প্যাডিংয়ের জন্য পর্যাপ্ত ভার্টিক্যাল বা হরাইজন্টাল স্পেস নেই। এটি শুধুমাত্র লেটেস্ট ম্যাপ রেন্ডারারে হয়।

  • দ্বিতীয় ট্রিপ একই রাস্তা দিয়ে গেলে, ব্যাক-টু-ব্যাক ট্রিপের প্রথম ট্রিপ ট্রিম হয়ে যাওয়ার সমস্যা সমাধান করে।

সমস্যা

  • API ইনস্ট্যান্স আগে থেকেই থাকলে, ConsumerApi.initialize() ইনভোক করা হলে ব্যতিক্রম দেখায়। এই সমস্যার সমাধান করতে, প্রথমে ConsumerApi.getInstance() কল করুন এবং API ইনস্ট্যান্স আগে থেকেই আছে কিনা তা নির্ধারণ করতে ফেরত আসা Task মূল্যায়ন করুন।

২.০.০ (১৫ সেপ্টেম্বর, ২০২৩)

ঘোষণা: ব্রেকিং পরিবর্তন

  • ন্যূনতম API লেভেলের প্রয়োজনীয়তা ২১ থেকে ২৩-এ আপডেট করা হয়েছে।

  • Maps SDK ভার্সনের প্রয়োজনীয়তা v17.0.0 থেকে v18.1.0-এ আপডেট করে

  • Kotlin স্ট্যান্ডার্ড লাইব্রেরির ন্যূনতম ভার্সন v1.6.10 থেকে v1.9.0-এ আপডেট করা হয়েছে

  • Google Play পরিষেবার ডিপেন্ডেন্সি ভার্সন আপডেট করুন

    • ন্যূনতম play-services-base লাইব্রেরি ভার্সনের প্রয়োজনীয়তা v18.0.1 থেকে v18.2.0-এ আপডেট করা হয়েছে

    • ন্যূনতম play-services-basement লাইব্রেরি ভার্সনের প্রয়োজনীয়তা v18.0.0 থেকে v18.2.0-এ আপডেট করা হয়েছে

    • play-services-location লাইব্রেরির ন্যূনতম ভার্সন v17.0.0 থেকে v21.0.1-এ আপডেট করা হয়েছে

    • ন্যূনতম play-services-tasks লাইব্রেরি ভার্সনের প্রয়োজনীয়তা v18.0.1 থেকে v18.0.2-এ আপডেট করা হয়েছে

  • v2.5.2-এ সেট করা ন্যূনতম ভার্সন সংক্রান্ত প্রয়োজনীয়তা সহ androidx.room:room-runtime লাইব্রেরি যোগ করে

  • নিম্নলিখিত ডিপেন্ডেন্সি ভার্সন আপডেট করুন

    • android-maps-utils লাইব্রেরির ন্যূনতম ভার্সন v0.4.2 থেকে v3.5.2-এ আপডেট করা হয়েছে

    • com.google.android.datatransport:transport-backend-cct-এর ন্যূনতম ভার্সন v3.0.0 থেকে v3.1.9-এ আপডেট করা হয়েছে

    • com.google.android.datatransport:transport-runtime-এর ন্যূনতম ভার্সন v3.0.1 থেকে v3.1.9-এ আপডেট করা হয়েছে

    • ন্যূনতম androidx.lifecycle:lifecycle-extensions ভার্সনের প্রয়োজনীয়তা v2.0.0 থেকে v2.2.0-তে আপডেট করা হয়েছে

    • androidx.lifecycle:lifecycle-common-java8-এর ন্যূনতম ভার্সন v2.0.0 থেকে v2.6.1-এ আপডেট করা হয়েছে

    • ন্যূনতম androidx.appcompat:appcompat ভার্সনের প্রয়োজনীয়তা v1.0.0 থেকে v1.6.1-এ আপডেট করা হয়েছে

    • ন্যূনতম androidx.fragment:fragment ভার্সনের প্রয়োজনীয়তা v1.0.0 থেকে v1.6.1-এ আপডেট করা হয়েছে

  • আগে থেকে বন্ধ হয়ে যাওয়া নিম্নলিখিত API সরিয়ে দেয়: ConsumerTrip, ConsumerTripCallback, ConsumerTripManager, ConsumerTripOptions. সেগুলি TripModel, TripModelCallback, TripModelManager এবং TripModelOptions দ্বারা প্রতিস্থাপিত হয়েছে।

  • Consumer SDK ব্যবহার করে এমন অ্যাপে এখন অবশ্যই API 31 বা তার পরের ভার্সনের targetSdkVersion, API 33 বা তার পরের ভার্সনের compileSdkVersion থাকতে হবে।

  • যেসব অ্যাপ Consumer SDK ব্যবহার করে, সেগুলিকে এখন Java 8 লাইব্রেরি সাপোর্ট চালু করতে হবে। আপডেট করার নির্দেশাবলীর জন্য https://developer.android.com/studio/write/java8-support দেখুন।

  • Proguard বা Dexguard ব্যবহার করে এমন অ্যাপকে অবশ্যই R8-এ মাইগ্রেট করতে হবে। আরও তথ্যের জন্য https://developer.android.com/build/shrink-code দেখুন।

  • Consumer SDK ব্যবহার করে এমন অ্যাপে ডিসুগারিং চালু করতে হবে। নির্দেশাবলীর জন্য https://developer.android.com/studio/write/java8-support#library-desugaring দেখুন।

  • ConsumerApi.initialize() পদ্ধতিটি এখন একটি ব্যতিক্রম দেখায় যদি এটি এমন সময় কল করা হয় যখন একটি API ইনস্ট্যান্স আগে থেকেই তৈরি করা থাকে। ConsumerApi.getInstance()-এর মাধ্যমে ফেরত পাঠানো Task অবশ্যই ব্যবহার করতে হবে যাতে আগে থেকে তৈরি করা কোনও API ইনস্ট্যান্স আছে কিনা তা নির্ধারণ করা যায়।

ঘোষণা: API বন্ধ করা

  • Trip.TripStatus এবং Trip.TripType অ্যানোটেশন ক্লাস বাতিল করে, সেগুলি পরিবর্তন করতে TripInfo.TripStatus এবং TripInfo.TripType অ্যানোটেশন ক্লাস যোগ করে।

    • এই পরিবর্তনের অংশ হিসেবে, TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) বন্ধ করে দেওয়া হয়েছে এবং TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status)-কে এর পরিবর্তে যোগ করা হয়েছে।

    • এই পরিবর্তনের অংশ হিসেবে, TripInfo#getTripStatus() বন্ধ করে দেওয়া হয়েছে, TripInfo#getCurrentTripStatus()-কে এর পরিবর্তে যোগ করা হয়েছে।

    • এই পরিবর্তনের অংশ হিসেবে, TripInfo#getTripType() বন্ধ করে দেওয়া হয়েছে, TripInfo#getCurrentTripType()-কে এর পরিবর্তে যোগ করা হয়েছে।

  • Trip ক্লাস বাতিল করে।

অন্যান্য পরিবর্তন ও ত্রুটি সমাধান

  • লেটেস্ট Maps SDK রেন্ডারারের জন্য অনুরোধ করার সুবিধা দেয়। আরও জানতে নতুন ম্যাপ রেন্ডারার দেখুন।

  • v18.1.0(অন্তর্ভুক্ত) থেকে v19.0.0(এক্সক্লুসিভ) ভার্সন পর্যন্ত Maps SDK রেঞ্জ সংক্রান্ত সহায়তা প্রদান করে।

  • SDK ও Google ব্যাকএন্ডের মধ্যে ইন্টার্নাল কমিউনিকেশনের জন্য "ডেডলাইন পেরিয়ে গেছে" সংক্রান্ত সমস্যার সমাধান করে।

  • ছোট সাইজের স্ক্রিন ও ছবির-মধ্যে-ছবি মোডের জন্য রেন্ডারিং সংক্রান্ত সমস্যার সমাধান করে।

মাইগ্রেশন গাইড

১.৯৯.১ (৩১ আগস্ট, ২০২৩)

সমস্যার সমাধান

  • SDK হোস্ট অ্যাক্টিভিটি বা ফ্র্যাগমেন্ট নষ্ট হয়ে গেলে যে ক্র্যাশ হয় তা ঠিক করে।

  • MapView-এর ডাইমেনশন ০ (উচ্চতা বা প্রস্থ) হলে যে ক্র্যাশ হয় তা ঠিক করে।

  • রুটের পলিলাইনে গাড়ির লোকেশন প্রজেক্ট করার সময় ক্র্যাশ হওয়ার সমস্যার সমাধান করে।

উন্নতি

  • হোস্ট অ্যাপ্লিকেশন সাইডলোড করা হলে এবং ডিফল্ট ভিজ্যুয়াল রিসোর্স উপস্থিত না থাকলে, SDK-কে ক্র্যাশ করা থেকে আটকায়।

১.৯৯.০ (২২ জুন, ২০২৩)

সমস্যার সমাধান

  • ছোট সাইজের স্ক্রিন ও ছবির-মধ্যে-ছবি মোডের জন্য রেন্ডারিং সংক্রান্ত সমস্যার সমাধান করে।

  • জার্নি শেয়ার করার সময় গাড়ির ফ্লিকার সংক্রান্ত সমস্যার সমাধান করে।

১.২.১ (৭ জুন, ২০২৩)

সমস্যার সমাধান

  • জার্নি শেয়ার করার সময় গাড়ির আইকন ফ্লিকার করার সমস্যার সমাধান করা হয়েছে।

১.২.০ (২১ নভেম্বর, ২০২২)

সমস্যার সমাধান

  • onTripActiveRouteTrafficUpdated কলব্যাকে খালি ট্রাফিক রিপোর্ট করার কারণ হিসেবে যে সমস্যা দেখা দেয় তা সমাধান করে।

নতুন বৈশিষ্ট্য

  • "ট্রাফিক-অ্যাওয়ার পলিলাইন" এখন সাধারণভাবে উপলভ্য।

১.১.২ (২৭ অক্টোবর, ২০২২)

সমস্যার সমাধান

  • TripModel-এর জন্য JourneySharingSession একাধিকবার শুরু করার পরে রুট পলিলাইন অদৃশ্য হয়ে যাওয়ার সমস্যার সমাধান করে।

ঘোষণা: Android 5-এর জন্য সহায়তা বন্ধ করা হচ্ছে (২৫ জুলাই, ২০২২)

আমাদের v1.1.1 SDK ভার্সনের জন্য, আমরা Android 5-এ চলা অ্যাপের জন্য অতিরিক্ত এক বছরের সহায়তা প্রদান করছি, API লেভেল 21 এবং 22 উভয়ের জন্যই।

এর অর্থ কী:

  • আপনার Android অ্যাপে চলা Consumer SDK ৩০ জুন, ২০২৩ পর্যন্ত ন্যূনতম Android 5 (API লেভেল ২১) ভার্সনে কাজ করবে।

  • ৩০ জুন, ২০২৩-এর পরে, আমরা শুধুমাত্র Android API লেভেল ২৩ এবং তার পরবর্তী ভার্সনে কাজ করব। অন্যভাবে বলতে গেলে, সেই তারিখের পরে আমরা সব SDK ভার্সন জুড়ে Android API লেভেল ২১ ও ২২-এর জন্য সহায়তা প্রদান করা বন্ধ করে দেব। এর অর্থ হল, যেকোনও SDK ভার্সনে (4.x সহ) Android 21 বা 22 সম্পর্কিত সমস্যা সমাধান করা হবে না এবং SDK সঠিকভাবে কাজ করবে কিনা তার কোনও গ্যারেন্টি আমরা দিই না।

v1.1.1 (২৫ জুলাই, ২০২২)

নির্ভরশীলতা পরিবর্তন

  • Android API লেভেলের ন্যূনতম প্রয়োজনীয়তা কমিয়ে ২১ করে।

v1.1.0 (২৮ এপ্রিল, ২০২২)

  • ইন্টার্নাল উন্নতি।

v1.0.19 (১৭ মার্চ, ২০২২)

সমস্যার সমাধান

  • ConsumerApi ক্লাসে মেমরি লিক সংক্রান্ত সমস্যার সমাধান করা হয়েছে।

v1.0.14 (৩০ নভেম্বর, ২০২১)

Android API লেভেল এখন কমপক্ষে ২৩ হতে হবে।

API সংক্রান্ত পরিবর্তন

  • ConsumerTrip ও ConsumerTripManager ক্লাসে পরিবর্তন।

    • কিছু মেথডের নাম ক্লিন-আপ করা হয়েছে যাতে সেগুলির অর্থ আরও স্পষ্ট হয় এবং iOS প্ল্যাটফর্মের সাথে অ্যালাইন করা যায়।
  • ConsumerTripCallback, ConsumerTrip ও TripInfo-এ পরিবর্তন।

    • iOS-এর সাথে সামঞ্জস্য বজায় রাখতে কিছু ক্লাসের নাম পরিবর্তন করা হয়েছে। ConsumerTrip, ConsumerTripManager এবং ConsumerTripOptions-এর পরিবর্তে TripModel, TirpModelManager এবং TripModelOptions চালু করা হয়েছে।

    • কিছু পদ্ধতির নাম ক্লিন-আপ করা হয়েছে। আরও স্পষ্ট অর্থ বোঝাতে মেথডে JavaDoc কমেন্ট সংশোধন বা যোগ করা হয়েছে।

    • উন্নত ত্রুটি ম্যানেজমেন্ট।

স্টাইলিং কাস্টমাইজেশন

  • বন্ধ হয়ে যাওয়া লিগ্যাসি র‍্যাপার

    • MarkerStyleOptions এবং PolylineStyleOptions বন্ধ করে দেওয়া হয়েছে এবং MarkerOptions ও PolylineOptions দিয়ে পরিবর্তন করা হয়েছে, যেগুলি Maps SDK-এর সাথে শেয়ার করা হয়।

ক্র্যাশ মনিটরিং

  • ক্র্যাশ শনাক্তকরণ ও লগিং যোগ করা হয়েছে।

    • এই কার্যকারিতা থেকে অপ্ট-আউট করার জন্য আপনাকে অনুমতি দিতে একটি অতিরিক্ত সুবিধা যোগ করা হয়েছে। ক্র্যাশ মনিটর করার জন্য আরও বড় জিও-ওয়াইড প্রচেষ্টার অংশ হিসেবে এটি করা হয়েছে।

যাচাইকরণ সম্পর্কিত পরিবর্তন

  • যাচাইকরণ ইন্টারফেস থেকে অপ্রয়োজনীয় পদ্ধতি সরিয়ে দিন।
    • ServiceType প্যারামিটার সরানো হয়েছে।

v0.9.28 (১৮ মে, ২০২১)

API সংক্রান্ত পরিবর্তন

  • প্যারামিটার হিসেবে TripInfo ব্যবহার করার জন্য সব ConsumerTripCallback পদ্ধতি আপডেট করা হয়েছে।
  • ConsumerTrip.isRefreshing() যোগ করা হয়েছে, যা ইঙ্গিত করে যে ConsumerTrip ফ্লিট ইঞ্জিন থেকে নতুন ট্রিপের তথ্য সহ নিজেকে সক্রিয়ভাবে আপডেট করছে কিনা।
  • ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() যোগ করা হয়েছে।
  • ConsumerTripCallback.onTripRemainingRouteUpdated() যোগ করা হয়েছে।
  • Guava রিটার্ন টাইপ (ImmutableSet, ImmutableList) java.util সমতুল্য ক্লাস দিয়ে পাল্টান।
  • প্যাকেজের নাম পরিবর্তন:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

প্রয়োগ সংক্রান্ত পরিবর্তন

  • রেস কন্ডিশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে, যেখানে ম্যাপ রেডি হওয়ার আগে সেটির সাথে ইন্টার‍্যাক্ট করার কারণে SDK ক্র্যাশ করতে পারে।
  • SDK-তে আর io.grpc-এর আনঅবফাসকেটেড কপি নেই।
  • নির্দিষ্ট কিছু ডিভাইসে ট্রাফিক পলিলিন ফ্লিকার করার সমস্যা সমাধান করা হয়েছে। ট্রাফিক সেগমেন্টের শেষ প্রান্ত এখন থেকে গোলাকার হবে।

v0.9.15 (৭ অক্টোবর, ২০২০)

API সংক্রান্ত পরিবর্তন

  • এই রিলিজে ট্রাফিক সম্পর্কে সচেতন পলিলাইন ফিচারটি চালু করা হয়েছে। - TripInfo.getActiveRouteTraffic() এবং TripInfo.getRemainingRouteTraffic() যোগ করা হয়েছে।
    • ট্রাফিক কখন পরিবর্তিত হয়েছে তা দেখাতে ConsumerTripCallback.onTripActiveRouteTrafficUpdated() এবং ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() যোগ করা হয়েছে।
    • ট্রাফিক কাস্টমাইজেশনের জন্য PolylineStyleOptions যোগ করা হয়েছে (setTrafficEnabled(), setTrafficColorNoData(), setTrafficColorNormal(), setTrafficColorSlow(), setTrafficColorTrafficJam())।
    • PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION এক্সপোজ করা হয়েছে।
    • TripWaypoint.getTrafficData() যোগ করা হয়েছে।
    • TrafficData ডেটার ধরন যোগ করা হয়েছে।
    • ConsumerController.hideAllSessions() যোগ করা হয়েছে। ConsumerController.showSession()-এ আর আর্গুমেন্ট হিসেবে null গ্রহণ করা হয় না।

v0.9.9 (১৫ জুলাই, ২০২০)

API সংক্রান্ত পরিবর্তন

  • এটি একটি বড় পরিবর্তন যা একটি মডুলারাইজড আর্কিটেকচার প্রবর্তন করে শুধুমাত্র ডেটা লেয়ারের মধ্যে স্পষ্ট সম্পর্ক (যেমন, ConsumerTripManager) এবং ইউজার ইন্টারফেস লেয়ার (যেমন, JourneySharingSession)। নতুন আর্কিটেকচারে মাইগ্রেট করার বিষয়ে তথ্যের জন্য, মডুলারাইজেশন মাইগ্রেশন গাইড দেখুন। - ConsumerTrip অবজেক্ট এখন ConsumerTripManager.getTrip() থেকে পাওয়া যায়।
    • ConsumerTrip.unregisterCallback-এর নাম পরিবর্তন করে ConsumerTrip.unregisterTripCallback করা হয়েছে।
    • ConsumerTrip.isCallbackRegistered-এর নাম পরিবর্তন করে ConsumerTrip.isTripCallbackRegistered করা হয়েছে।
    • ConsumerTrip.setConsumerTripOptions() এবং ConsumerTrip.getConsumerTripOptions() যোগ করা হয়েছে।
    • ConsumerTrip.setAutoRefreshInterval() কে সরানো হয়েছে।
  • নন-জার্নি শেয়ারিং API সরানো হয়েছে।
    • গাড়ির ঘনত্ব সংক্রান্ত ম্যাপ সরানো হয়েছে।
    • ট্রিপের প্রিভিউ স্ট্যাটাস সরানো হয়েছে।
    • পিক-আপ বেছে নেওয়ার স্ট্যাটাস সরানো হয়েছে।
    • ড্রপ-অফ বেছে নেওয়ার স্ট্যাটাস সরানো হয়েছে।
    • নিম্নলিখিত মার্কারের ধরন সরানো হয়েছে: SELECTED_PICKUP_POINT, SUGGESTED_PICKUP_POINT, HIGHLIGHTED_PICKUP_POINT এবং SELECTED_DROPOFF_POINT.
  • OnConsumerMarkerClickCallback এবং ConsumerMapReadyCallback ইন্টারফেস থেকে অ্যাবস্ট্রাক্ট ক্লাসে পরিবর্তন করা হয়েছে।
  • ConsumerController.getCameraUpdate(), ConsumerController.isAutoCameraEnabled() এবং ConsumerController.enableAutoCamera() যোগ করা হয়েছে।
  • কাস্টম FAB এবং এর সাথে যুক্ত পদ্ধতিগুলি সরানো হয়েছে (ConsumerController.isMyLocationFabEnabled এবং ConsumerController.setMyLocationFabEnabled)।

প্রয়োগ সংক্রান্ত পরিবর্তন

  • ConsumerTripCallback, LifecycleOwner-এর সাথে রেজিস্টার করা হোক বা না হোক, TripStatus.COMPLETE বা TripStatus.CANCELED-এ আর অটোমেটিক আনরেজিস্টার হয় না।
  • AutoCamera এখন ডিফল্ট হিসেবে চালু করা থাকে এবং এটি কখনও নিজে থেকে আবার চালু বা বন্ধ হয় না। আগে, জার্নি শেয়ার করার সময় ব্যবহারকারী ম্যাপের সাথে ইন্টার‍্যাক্ট করলে, TripStatus.ARRIVED_AT_PICKUP-এ AutoCamera অটোমেটিক আবার চালু হয়ে যেত এবং নিজে থেকেই বন্ধ হয়ে যেত।
  • 'জার্নি শেয়ার' ফিচারে গাড়ির অ্যানিমেশনে নিম্নলিখিত উন্নতি করা হয়েছে:
    • জার্নি শেয়ারিং অ্যানিমেশন এখন এমন পরিস্থিতি ম্যানেজ করে যেখানে কোনও গাড়ি বৈধভাবে আগে থেকে অতিক্রম করা রুটে ফিরে যেতে পারে।
    • অ্যালগরিদম অনুযায়ী উপযুক্ত বলে নির্ধারিত হলে, গাড়িটি এখন পয়েন্টের মধ্যে রুট ইন্টারপোলেট করার পরিবর্তে সরলরেখায় অ্যানিমেট করবে।
  • FINE_LOCATION-এর অনুমতি আর প্রয়োজন নেই।

অন্যান্য পরিবর্তন

  • নিম্নলিখিত ডিপেন্ডেন্সি ভার্সন আপডেট করা হয়েছে:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

v0.9.1 (২৩ মার্চ, ২০২০)

API সংক্রান্ত পরিবর্তন

  • TripInfo.getVehicleId(), TripInfo.getNumberOfPassengers(), TripInfo.getIntermediateDestinationIndex(), TripInfo.getTripActiveRoute() এবং TripInfo.getTripRemainingRoute() যোগ করা হয়েছে।
  • ConsumerApi ইনিশিয়ালাইজেশনের সময় ব্যবহার করা options ক্লাস যোগ করা হয়েছে যা FleetEngine অ্যাড্রেসকে ডায়নামিকভাবে সেট করতে দেয়। FleetEngine ভ্যালু সহ API কল করা না হলে, এটি Android ম্যানিফেস্ট থেকে এটি আনার চেষ্টা করে অথবা ডিফল্ট ভ্যালুতে ফিরে যায়।

উন্নতি

  • ট্রিপের স্ট্যাটাস ARRIVED_AT_PICKUP হলে, রুটের পলিলাইন দেখানো হয় না।
  • রুটের বাইরে থাকা গাড়ি ট্র্যাক করার সুবিধা উন্নত করা হয়েছে (DriverSDK 1.15 প্রয়োজন):
    • গাড়িটি পিক-আপ পয়েন্ট পেরিয়ে গেলে, গাড়ি ট্র্যাকিংয়ের সময় গাড়িটি রুটে স্ন্যাপ করে না।
    • গাড়ি ট্র্যাক করার সুবিধা চালু থাকলে, রাস্তার বাইরেও গাড়িকে দেখানো যায়; যেমন, ম্যাপে নেই এমন পার্কিং লটে।
  • গাড়ির আইকন এখন আপডেট হয় যখন ড্রাইভারের গন্তব্য মেলে না ফ্লিট ইঞ্জিনে গন্তব্য।

v0.8.6 (১৬ ডিসেম্বর, ২০১৯)

API সংক্রান্ত পরিবর্তন

  • TripInfo.getVehicleLocation() যোগ করা হয়েছে।

  • ConsumerMapView আর চূড়ান্ত নয়।

প্রয়োগ সংক্রান্ত পরিবর্তন

  • অ্যাক্টিভ লেগের বাকি দূরত্ব এখন লোকাল স্ন্যাপিংয়ের পরিবর্তে সার্ভার দূরত্ব (ড্রাইভারের রিপোর্ট করা + প্রযোজ্য ক্ষেত্রে স্ট্যাটিক রুট) ব্যবহার করে গণনা করা হয়। এই পরিবর্তনের ফলে বাকি দূরত্বের ভ্যালু আরও নির্ভুলভাবে পাওয়া যায়।

অন্যান্য পরিবর্তন

  • নতুন ডিপেনডেন্সি প্রয়োজন। বিস্তারিত জানতে .pom ফাইল দেখুন।

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • ট্রিপের অনুরোধের লেটেন্সির জন্য লগ যোগ করা হয়েছে।

  • ট্রিপের উত্তর সংক্রান্ত সমস্যার জন্য লগ যোগ করা হয়েছে।

নোট

  • 0.8.1 ভার্সন থেকে, Android-এর জন্য Consumer SDK একটি জেটিফাইড জিপ আর্কাইভ হিসেবে শিপ করা হয়। এটি কীভাবে ডি-জেটিফাই করবেন সেই সম্পর্কে তথ্য পেতে, Jetifier: রিভার্স মোড দেখুন।

v0.8.1 (১৩ সেপ্টেম্বর, ২০১৯)

নতুন বৈশিষ্ট্য

API সংক্রান্ত পরিবর্তন

  • centerMapForState()-এর বিপরীত ফাংশন হিসেবে ConsumerController.disableAutoCamera() যোগ করা হয়েছে।

  • VehicleLocation.getUpdateTime() এখন একটি লং রিটার্ন করে যা টাইমস্ট্যাম্প (মিলিসেকেন্ডে) দেখায়।

  • টোকেন জেনারেশনের জন্য একটি পদ্ধতি প্রকাশ করতে AuthTokenFactory ইন্টারফেসকে সরলীকৃত করা হয়েছে। Java7-এ ব্যাকওয়ার্ড কম্প্যাটিবিলিটি চালু করতে, ইন্টারফেস থেকে AuthTokenFactory-কে অ্যাবস্ট্রাক্ট ক্লাসে পরিবর্তন করা হয়েছে। এই পরিবর্তনটি ব্যাকওয়ার্ড কম্প্যাটিবল, তবে সিঙ্গেল সার্ভিস টোকেন জেনারেশনের পুরনো পদ্ধতিগুলি বন্ধ করা হয়েছে এবং শেষ পর্যন্ত তা সরিয়ে দেওয়া হবে।

প্রয়োগ সংক্রান্ত পরিবর্তন

  • অ্যাসেট এখন আইকনের কেন্দ্রে কেন্দ্রীভূত, শ্যাডো অফসেট বাদ দেওয়া হয়েছে।

  • মনিটর করা ট্রিপের স্ট্যাটাসের জন্য অপেক্ষা করার পরিবর্তে setState থেকে JOURNEY_SHARING onStartTripMonitoring()।

  • ট্রিপ ডেটা সিঙ্ক না হলেও, প্রথম ট্রিপ ডেটা আপডেটের জন্য সবসময় ডেটা ফেরত দেয়।

  • প্রদান করা ডিপেন্ডেন্সি হিসেবে Android Map Utils যোগ করা হয়েছে।

সমস্যার সমাধান

  • grpc keep-এর জন্য প্রোগার্ড এক্সপোর্ট সিনট্যাক্স ঠিক করা হয়েছে।

v0.7.0 (৭ আগস্ট, ২০১৯)

নতুন বৈশিষ্ট্য

  • 'জার্নি শেয়ারিং' ফিচারের জন্য একাধিক গন্তব্য সংক্রান্ত সহায়তা।

API সংক্রান্ত পরিবর্তন

  • ConsumerTripCallback-এর জন্য নতুন পদ্ধতি।

    • onTripIntermediateDestinationsUpdated()।
    • onTripETAToNextTripWaypointUpdated()।
  • নতুন ConsumerControllerটি পদ্ধতি।

    • getIntermediateDestinations()।
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations)।
  • নতুন TripStatuses।

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION।
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION।
  • নতুন TripWaypoint গেটার।

    • getETAMillis()।
    • getDistanceMeters()।
  • TripInfo ক্লাস যোগ করা হয়েছে।

    • আপনি ConsumerTripManager.getActiveTripInfo()-এর সাথে অ্যাক্টিভ ট্রিপের জন্য TripInfo পেতে পারেন।
  • WaypointType.INTERMEDIATE_DESTINATION যোগ করা হয়েছে।

  • MarkerType.TRIP_INTERMEDIATE_DESTINATION যোগ করা হয়েছে।

  • ConsumerMapStates, ENROUTE_TO_PICKUP, ARRIVED_AT_PICKUP, ENROUTE_TO_DROPOFF এবং COMPLETE মার্জ করে ConsumerMapState.JOURNEY_SHARING তৈরি করা হয়েছে।

    • StateChangeCallbacks আপডেট করা হয়েছে।

    • onStateJourneySharing() যোগ করা হয়েছে।

    • onStateWaitingForPickup(), onStateDriverArrived(), onStateEnroute() ও onStateEndofTrip() সরানো হয়েছে।

সমস্যার সমাধান

  • একটি সমস্যার সমাধান করা হয়েছে যেখানে কোনও অ্যাক্টিভ ট্রিপের মাঝখানে (রুটের শুরুতে নয়) ট্রিপ মনিটর করা শুরু হলে, গাড়ির লোকেশন অনুযায়ী রুট ট্রিম করা হয় না।

  • TripManager ইতিমধ্যেই ট্রিপ ডেটা নিয়ে আসার পরে Tripmanager-এ রেজিস্টার করা শ্রোতাদের জন্য ট্রিপ কলব্যাক ইনভোক না হওয়ার সমস্যা সমাধান করা হয়েছে।

  • ক্যামেরা জুম এখন শুধুমাত্র অ্যাক্টিভ রুট এবং পরবর্তী ট্রিপের ওয়েপয়েন্ট অন্তর্ভুক্ত করে (ওয়েপয়েন্ট যা ট্রিপের অন্তর্গত)। বাকি লেগ দেখা গেলেও, জুম কখনই এটি অন্তর্ভুক্ত করবে না। আগে, ভেইকেল পিক-আপের জন্য রওনা হলে বা পিক-আপ লোকেশনে পৌঁছালে, জুম করার সময় ড্রপ-অফ পয়েন্ট দেখানো হত। এটি আর সত্য নয়।

উন্নতি

  • ড্রাইভার ডেটা সহ শূন্যতম বাকি থাকা ওয়েপয়েন্ট পপুলেট করুন (বাকি থাকা ওয়েপয়েন্ট তালিকা ConsumerTripCallback.onTripRemainingWaypointsUpdated এবং TripInfo.getRemainingWaypoints() থেকে ফেরত পাঠানো হয়।

  • তালিকায় প্রথম ওয়েপয়েন্টের ETA পরিবর্তন হলে, বাকি সব ওয়েপয়েন্টের ETA আপডেট করুন।

  • ড্রাইভার পিক-আপ লোকেশনে পৌঁছালে তবেই অটো-ক্যামেরা আবার চালু করার জন্য জোর করুন। আগে, প্রতিবার ট্রিপের স্ট্যাটাস পরিবর্তন হলে, অটো ক্যামেরা রিসেট হয়ে চালু হয়ে যেত। অটো ক্যামেরা এখনও ডিফল্ট হিসেবে চালু আছে। startTripMonitoring()-এ নতুন কল না করে নতুন অ্যাক্টিভ ট্রিপ সেট করা হলে অটোক্যামেরা আবার চালু হবে না।

v0.6.1 (২৬ জুন, ২০১৯)

নতুন বৈশিষ্ট্য

  • জার্নি শেয়ার করার জন্য কারপুল সহায়তা।

API সংক্রান্ত পরিবর্তন

  • ConsumerController.getConsumerMapStyle() এখন Task<ConsumerMapStyle>-এর পরিবর্তে ConsumerMapStyle রিটার্ন করে।

  • PolylineStyle.setZIndex() যোগ করা হয়েছে।

সমস্যার সমাধান

  • রুট অ্যানিমেশন এখন শুধুমাত্র তখনই হয় যখন রুট সেগমেন্ট সিঙ্ক হয়, যার ফলে ব্যবহারকারীর অভিজ্ঞতা উন্নত হয়।

  • ড্রাইভারের লোকেশন আপডেট কাছাকাছি থাকলে অ্যানিমেশন ইন্টারপোলেশনের সময় গাড়ির "ফ্লিকারিং" সংক্রান্ত সমস্যার সমাধান করা হয়েছে।

  • একটি সমস্যার সমাধান করা হয়েছে যেখানে কোনও অ্যাক্টিভ ট্রিপের মাঝখানে ট্রিপ মনিটর করা শুরু হলে, গাড়িটি তার সবচেয়ে আপডেটেড লোকেশনের পরিবর্তে রুটের শুরু থেকে শুরু হয়।

  • বাকি রুটের উপরে অ্যাক্টিভ রুট পলিলাইন দেখান যখন সেগুলি ওভারল্যাপ করে।

উন্নতি

  • এখন gRPC Status ক্লাসকে আনঅবফাসকেটেড পদ্ধতিতে এক্সপোজ করুন।

v0.5.1.01 (১৭ মে, ২০১৯)

নতুন বৈশিষ্ট্য

  • 'জার্নি শেয়ারিং' ফিচারের জন্য ব্যাক-টু-ব্যাক সহায়তা।

API সংক্রান্ত পরিবর্তন

  • নতুন ConsumerController ক্লাস।

PolylineType

পুরনো ভ্যালু নতুন ভ্যালু
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

পুরনো ভ্যালু নতুন ভ্যালু
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • আপনি এখন কোনও স্টেটে প্রবেশ না করেই সেই স্টেটের জন্য কলব্যাক সেট করতে পারবেন।
পদ্ধতি কলব্যাক
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) আপনাকে FleetEngine কলে ব্যবহৃত ভাষা সেট করতে দেয় (যেমন, পিক-আপ পয়েন্টের বিবরণের জন্য)।

উন্নতি

  • ড্রপ-অফ বেছে নেওয়ার স্ট্যাটাসে এখন ড্র্যাগ করা যায় এমন পিন আছে।
  • INITIALIZE অবস্থায় ক্যামেরা অ্যানিমেশন সরানো হয়েছে।
  • ManagedChannelBuilder পরিবর্তন করে AndroidChannelBuilder করা হয়েছে।