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-এর একটি ভার্সন নির্দিষ্ট করুন।

4.1.0 (২৬ মে, ২০২৬)

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

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

  • Kotlin ডিপেন্ডেন্সি ভার্সন v2.3.0-এ আপগ্রেড করা হয়েছে।
  • Android Gradle Plugin 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.1.0 (১০ মার্চ, ২০২৫)

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

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

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

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

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

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

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

API-তে পরিবর্তন

2.2.0 (৭ মে, ২০২৪)

API পরিবর্তন

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

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

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

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

API পরিবর্তন

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

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

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

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

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

সমস্যা

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

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

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

  • ন্যূনতম 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 করা হয়েছে

  • androidx.room:room-runtime লাইব্রেরি যোগ করে, যার ন্যূনতম ভার্সন v2.5.2 হিসেবে সেট করা আছে

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

    • 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 ব্যাকএন্ডের মধ্যে ইন্টার্নাল কমিউনিকেশনের ক্ষেত্রে "সময়সীমা পেরিয়ে গেছে" সংক্রান্ত সমস্যা সমাধান করে।

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

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

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

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

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

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

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

উন্নতি

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

1.99.0 (২২ জুন, ২০২৩)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

এর অর্থ:

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

  • ৩০ জুন, ২০২৩-এর পরে, আমরা শুধুমাত্র Android API লেভেল 23 ও তার পরবর্তী যেকোনও ভার্সনে কাজ করব। অন্যভাবে বলতে গেলে, সেই তারিখের পরে আমরা সমস্ত SDK ভার্সন জুড়ে Android API লেভেল 21 এবং 22-এর জন্য সহায়তা প্রদান করা বন্ধ করে দেব। এর অর্থ হল, যেকোনও 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-তে পরিবর্তন

  • ConsumerTripCallback-এর সব পদ্ধতি আপডেট করে TripInfo-কে প্যারামিটার হিসেবে ব্যবহার করা হয়েছে।
  • ConsumerTrip.isRefreshing() যোগ করা হয়েছে, যা থেকে বোঝা যায় যে Fleet Engine থেকে পাওয়া নতুন ট্রিপ সংক্রান্ত তথ্য দিয়ে 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() আর আর্গুমেন্ট হিসেবে শূন্য মান গ্রহণ করে না।

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 এখন ডিফল্ট হিসেবে চালু করা থাকে এবং এটি আর কখনও নিজে থেকে চালু বা বন্ধ হয় না। আগে, AutoCamera অটোমেটিক TripStatus.ARRIVED_AT_PICKUP চালু হয়ে যেত এবং ব্যবহারকারী জার্নি শেয়ার করার সময় ম্যাপের সাথে ইন্ট্যার‍্যাক্ট করলে এটি অটোমেটিক বন্ধ হয়ে যেত।
  • জার্নি শেয়ারিং গাড়িতে নিম্নলিখিত উন্নতি করা হয়েছে অ্যানিমেশন:
    • জার্নি শেয়ারিং অ্যানিমেশন এখন সেইসব পরিস্থিতি ম্যানেজ করে যেখানে কোনও গাড়ি আগে থেকেই অতিক্রম করা রুট ধরে বৈধভাবে ফিরে আসতে পারে।
    • অ্যালগরিদমের মাধ্যমে উপযুক্ত বলে নির্ধারণ করা হলে, গাড়িটি এখন পয়েন্টগুলির মধ্যে রুট ইন্টারপোলেশনের পরিবর্তে সরাসরি-লাইন অ্যানিমেট করবে।
  • 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 প্রয়োজন):
    • গাড়িটি পিক-আপ পয়েন্ট পেরিয়ে গেলে, ভেহিকল ট্র্যাকিং ফিচার গাড়িটিকে রুটে স্ন্যাপ করে না।
    • ম্যাপে নেই এমন পার্কিং লটের মতো জায়গায় গাড়ি থাকলে, ভেহিকেল ট্র্যাকিংয়ের মাধ্যমে তা দেখানো যায়।
  • ড্রাইভারের গন্তব্য Fleet Engine-এর গন্তব্যের সাথে না মিললে গাড়ির আইকন এখন আপডেট হয়।

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 একটি জেটফাই করা zip আর্কাইভ হিসেবে শিপ করা হয়। কীভাবে জেটফাই করা যায় সেই ব্যাপারে আরও তথ্যের জন্য, জেটফাইয়ার: রিভার্স মোড দেখুন।

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

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

API পরিবর্তন

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

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

  • টোকেন জেনারেশনের জন্য একটি পদ্ধতি প্রকাশ করতে 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 থেকে ConsumerMapState.JOURNEY_SHARING তৈরি করা হয়েছে ENROUTE_TO_PICKUP, ARRIVED_AT_PICKUP, ENROUTE_TO_DROPOFF এবং COMPLETE.

    • 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 ব্যবহার করা হয়েছে।