সাপোর্ট লাইব্রেরিতে সাম্প্রতিক পরিবর্তন

এই পৃষ্ঠায়, সবচেয়ে সাম্প্রতিক Support Library প্যাকেজ রিলিজ সম্পর্কে বিবরণ দেওয়া আছে। আগের রিলিজের জন্য, সাপোর্ট লাইব্রেরি রিভিশন আর্কাইভ দেখুন।

সংশোধন 28.0.0 প্রোডাকশন

(২১ সেপ্টেম্বর, ২০১৮)

এটি Support Library 28.0.0-এর স্থিতিশীল রিলিজ এবং প্রোডাকশনে ব্যবহারের জন্য উপযুক্ত। এটি android.support প্যাকেজিংয়ের অধীনে শেষ ফিচার রিলিজ হবে এবং ডেভেলপারদের AndroidX-এ মাইগ্রেট করার জন্য উৎসাহিত করা হচ্ছে।

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

  • AnimatedStateListDrawableCompat ড্রয়েবল স্টেটের মধ্যে অ্যানিমেটেড ট্রানজিশন প্রদান করে।
  • VectorDrawableCompat গ্রেডিয়েন্ট ও ColorStateList ফিল ও স্ট্রোকের জন্য সহায়তা পায়।

সংশোধন 28.0.0 RC 2

(২৭ আগস্ট, ২০১৮)

সাপোর্ট লাইব্রেরির এই রিলিজ ক্যান্ডিডেটকে ফিচার-সম্পূর্ণ হিসেবে বিবেচনা করা হয় এবং এর পাবলিক এপিআই সারফেস স্থিতিশীল। এই রিলিজটি চূড়ান্ত স্থিতিশীল ভার্সন হিসেবে শিপ করা হবে, তবে কোনও গুরুতর সমস্যা দেখা দিলে তা আলাদা কথা। এই রিলিজ প্রোডাকশনে ব্যবহার করা নিরাপদ। যেকোনও সমস্যার ব্যাপারে সর্বজনীন সমস্যা ট্র্যাকারে অভিযোগ জানান।

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

  • Proguard, View Model Application কনস্ট্রাক্টর সরিয়ে দেয় (public issue 112230489)
  • `AnimatedStateListDrawableCompat` কনস্ট্যান্ট স্টেট সংক্রান্ত সমস্যার সমাধান করা হয়েছে
  • mediarouter 1.0.0 থেকে media2 নির্ভরতা সরানো হয়েছে
  • হোম বোতামে ক্লিক করলে `Fragment.getViewLifecycleOwner()` বন্ধ হয় না (সর্বজনীন সমস্যা 113070421) ([public issue 113070421](https://issuetracker.google.com/issues/113070421))

সংশোধন 28.0.0 RC 1

(৬ আগস্ট, ২০১৮)

সাপোর্ট লাইব্রেরির এই রিলিজ ক্যান্ডিডেটকে ফিচার-সম্পূর্ণ হিসেবে বিবেচনা করা হয় এবং এর পাবলিক API সারফেস স্থিতিশীল। এই রিলিজটি চূড়ান্ত স্থিতিশীল ভার্সন হিসেবে শিপ করা হবে, তবে কোনও গুরুতর সমস্যা দেখা দিলে তা আলাদা কথা। এই রিলিজ প্রোডাকশনে ব্যবহার করা নিরাপদ। যেকোনও সমস্যার ব্যাপারে সর্বজনীন সমস্যা ট্র্যাকারে অভিযোগ জানান।

মনে রাখবেন: media2-এর মতো কিছু লাইব্রেরি এখনও আলফা স্টেজে আছে, কারণ সেগুলির API সারফেস এখনও চূড়ান্ত করা হয়নি। আমরা প্রোডাকশনে আলফা লাইব্রেরি ব্যবহার করার সাজেশন দিই না। প্রোডাকশনে লাইব্রেরিগুলিকে আলফা লাইব্রেরির উপর নির্ভর করা থেকে কঠোরভাবে বিরত থাকতে হবে, কারণ তাদের API সারফেস সোর্স- এবং বাইনারি-ইনকম্প্যাটিবল উপায়ে পরিবর্তিত হতে পারে।

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

  • ডিজাইন সাপোর্ট লাইব্রেরিতে BottomNavigationView মেনু সঠিকভাবে ইনিশিয়ালাইজ করা হয়নি
  • PositionalDataSource ডেটাবেসে আগে থেকে যোগ করা আইটেম ইনসার্ট করা সঠিকভাবে ম্যানেজ করে না
  • স্লাইডারগুলি ঠিকমতো কাজ করছে না এবং রেসপন্সিভ নয়
  • `SlicesProviderCompat.getPinnedSpecs()` URI-তে ব্যবহারকারীর আইডি যোগ করে না
  • RoutePlayer2: রিমোট প্লেব্যাক থেকে লোকাল প্লেব্যাকে আর পরিবর্তন করা যায় না
  • অ্যাকশনে ক্যাশে করা স্লাইস পার্সিং ক্র্যাশ করছে
  • স্ট্যাটিক স্লাইস রেন্ডার করার সময় Google Search অ্যাপ ক্র্যাশ করা
  • RecyclerView selection লাইব্রেরিতে ConcurrentModificationException হয় যখন ডেটা বেছে নেওয়া অংশ সরিয়ে দিয়ে পরিবর্তন করা হয়
  • PreferenceThemeOverlay লেটেস্ট মেটেরিয়াল থিমে আপডেট করা হয়েছে। কোনও কাস্টম থিম দেওয়া না থাকলে, PreferenceThemeOverlay-কে ডিফল্ট থিম হিসেবে ব্যবহার করা হয়।
  • PreferenceThemeOverlay.v14 এবং PreferenceThemeOverlay.v14.Material থিম PreferenceThemeOverlay-এর জন্য বাতিল করা হয়েছে।
  • PreferenceGroup-এর দৃশ্যমানতা এখন এর চাইল্ডের সাথে যুক্ত - কোনও পেরেন্ট গ্রুপ লুকানো হলে এর চাইল্ডকেও হায়ারার্কিতে দেখানো হবে না। হায়ারার্কিতে কোনও প্রেফারেন্স ব্যবহারকারীকে আসলে দেখানো হয়েছে কিনা তা জানতে Preference.isShown() ব্যবহার করুন।
  • Preference.onSetInitialValue(boolean, Object) পদ্ধতিটি বাতিল করা হয়েছে এবং onSetInitialValue(Object) পদ্ধতি দিয়ে পরিবর্তন করা হয়েছে। PreferenceDataStore এখন সঠিকভাবে ডিফল্ট ভ্যালু রিস্টোর করে।

সংশোধন 28.0.0 বিটা 1

(জুলাই ২০১৮)

সাপোর্ট লাইব্রেরির এই বিটা রিলিজকে ফিচার-সম্পূর্ণ হিসেবে বিবেচনা করা হয় এবং এর পাবলিক API সারফেস স্থিতিশীল, তবে কোনও গুরুতর সমস্যা দেখা দিতে পারে। এই রিলিজ প্রোডাকশনে ব্যবহার করার জন্য নিরাপদ হলেও, এতে এখনও সমস্যা থাকতে পারে। সর্বজনীন সমস্যা ট্র্যাকার-এ যেকোনও সমস্যার ব্যাপারে অভিযোগ জানান।

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

  • বেছে নেওয়ার অযোগ্য আইটেমে GestureSelectionHelper ইটিং ইভেন্ট
  • স্লাইডার ভ্যালু আপডেট করার সময় স্লাইডার স্লাইসে ডুপ্লিকেট থাম্ব আইকন থাকতে পারে
  • IconCompat TYPE_URI আইকন ভেঙে দেয়
  • Seekbar ব্যবহার করার সময় Preferences ক্র্যাশ করা
  • Slice.toString()-এ ক্র্যাশ
  • OffsettingListUpdateCallback.onMoved() কল mCallback.onMoved() না করে mCallback.onRemoved() কল করে (Issue 110711937)

সংশোধন 27.1.1

(এপ্রিল ২০১৮)

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

  • AsyncListDiffer getChangePayload কল করে না (AOSP সমস্যা 73961809)
  • Fragment ViewModel-এর onCleared কল করা হয়নি (AOSP সমস্যা 74139250)
  • RecyclerView.setRecycledViewPool() অ্যাডাপ্টার নাল থাকলেও attachCount বাড়িয়ে দেয়
  • SmoothScroller.onStop stop() বা startSmoothScroller() কল করলে RecyclerView NPE
  • নতুন ফ্র্যাগমেন্ট দেখানোর পরে ফ্র্যাগমেন্ট রিপ্লেসমেন্ট ট্রানজ্যাকশনের কারণে আগের ফ্র্যাগমেন্ট ফ্লিকার করে (AOSP সমস্যা 74051124)
  • 27.1.0 ভার্সনে লোডার কলব্যাক ব্রেকিং পরিবর্তন (AOSP সমস্যা 74135998)
  • উল্লম্ব গ্রিড ভিউতে কলাম >১ হিসেবে সেট করা থাকলে RTL লেআউট কাজ করে না
  • FragmentPagerAdapter সহ ViewPager-এ onLoadFinished একাধিকবার কল করা হয়েছে
  • AsyncListDiffer-কে বর্তমান তালিকা সেট করার পরে আপডেট ডিসপ্যাচ করতে হবে (AOSP সমস্যা 74003309)
  • ShareActionProvider 27.1.0-এ ClassCastException দেখায়
  • ViewPager-এর সাথে ফ্র্যাগমেন্ট লাইফসাইকেল পরিবর্তন (AOSP সমস্যা 73976255)

সংশোধন 28.0.0 আলফা ১

(মার্চ ২০১৮)

মনে রাখবেন: 28.0.0-alpha1 হল Android P ডেভেলপার প্রিভিউয়ের জন্য কাজ করে এমন প্রি-রিলিজ ভার্সন। এর API সারফেস পরিবর্তন করা হতে পারে এবং এতে Support Library-এর লেটেস্ট স্থিতিশীল ভার্সনের ফিচার বা সমস্যার সমাধান অন্তর্ভুক্ত নাও থাকতে পারে।

গুরুত্বপূর্ণ পরিবর্তন

  • আগে Android KTX সংক্রান্ত ঘোষণার মধ্যে উল্লেখ করা হয়েছে যে, আমরা androidx প্যাকেজ প্রিফিক্স আমাদের লাইব্রেরি জুড়ে গ্রহণ করা চালিয়ে যাচ্ছি। এই নতুন প্যাকেজে heifwriter ও recyclerview-selection সহ একেবারে নতুন লাইব্রেরির একটি সংগ্রহ শুরু হচ্ছে। আমরা আশা করি, android.* ও androidx.*-এর মধ্যে পার্থক্য থেকে এটি আরও স্পষ্ট হয়ে যাবে যে কোন API প্ল্যাটফর্মের সাথে বান্ডেল করা আছে এবং কোনগুলি অ্যাপ ডেভেলপারদের জন্য স্ট্যাটিক লাইব্রেরি যা Android-এর বিভিন্ন ভার্সনে কাজ করে।
  • আমরা support-core-ui, support-core-utils এবং support-compat-এর অংশগুলিকে ছোট ছোট লাইব্রেরিতে ভাগ করেছি। এই পরিবর্তনের ফলে ভবিষ্যতে আমরা সহায়তা লাইব্রেরির উপর নির্ভরতা কমাতে পারব। আমাদের কাছে এখন নিম্নলিখিত নতুন লাইব্রেরি আছে:
    • asynclayoutinflater (from support-core-ui)
    • collections (from support-compat)
    • coordinatorlayout (from design)
    • cursoradapter (from support-core-ui)
    • customview (from support-core-ui)
    • documentfile (from support-core-utils)
    • drawerlayout (from support-core-ui)
    • ইন্টারপোলেটর (support-core-ui থেকে)
    • লোডার (support-fragments ও core-utils থেকে)
    • localbroadcastmanager (from support-core-utils)
    • print (from support-core-utils)
    • slidingpanelayout (from support-core-ui)
    • swiperefreshlayout (from support-core-ui)
    • viewpager (from support-core-ui)

নতুন API

  • recyclerview-selection RecyclerView-এর জন্য আইটেম বেছে নেওয়ার সহায়তা প্রদান করে। প্যাকেজে এগুলি অন্তর্ভুক্ত:
    • RecyclerView তালিকায় বেছে নেওয়া আইটেমের সেটে পরিবর্তন তৈরি, পরিবর্তন, পরিদর্শন ও মনিটর করার সুবিধা।
    • স্বজ্ঞাত একাধিক বেছে নেওয়ার অ্যাকশনের জন্য সহায়তা:
      • টাচ-চালিত বেছে নেওয়ার সুবিধা ব্যবহারকারীদের স্বজ্ঞাত লং-প্রেস-অ্যান্ড-ড্র্যাগ জেসচারের মাধ্যমে আইটেমের রেঞ্জ বেছে নিতে দেয়।
      • মাউস-পরিচালিত ব্যান্ড বেছে নেওয়ার সুবিধা ব্যবহারকারীদের ঐতিহ্যবাহী মাউস পয়েন্টার ব্যান্ড/ল্যাসো অ্যাকশন ব্যবহার করে RecyclerView তালিকায় আইটেমের একটি ব্লক বেছে নিতে দেয়।
    • ফোন ও টাচ-চালিত ল্যাপটপ ফর্ম-ফ্যাক্টর সহ টাচ-কেন্দ্রিক ডিভাইস এবং পয়েন্টার-কেন্দ্রিক ডিভাইসের জন্য সহায়তা।
  • HEIF Writer, HEIF ফর্ম্যাটের স্টিল ছবি লেখার জন্য সহায়তা প্রদান করে।
  • ডিজাইন লাইব্রেরি
    • আমরা নতুন অ্যাট্রিবিউট ও আপডেট করা স্টাইল সহ Theme.MaterialComponents কম্পোনেন্টের জন্য নতুন অ্যাপ্লিকেশন থিম নিয়ে এসেছি।
    • আমরা নিম্নলিখিত কম্পোনেন্ট যোগ করেছি:
      • BottomAppBar
      • চিপ
      • ChipGroup
      • MaterialButton
      • MaterialCardView
  • স্লাইস, অন্যান্য অ্যাপ থেকে টেমপ্লেট করা কন্টেন্ট এম্বেড করার জন্য অ্যাপকে একটি ফ্রেমওয়ার্ক প্রদান করে।
    • slices-builders-এ টেমপ্লেট ফর্ম্যাটে কন্টেন্ট তৈরি করার পদ্ধতি রয়েছে।
    • slices-view-তে সেই কন্টেন্ট দেখানোর পদ্ধতি থাকে।
  • ব্রাউজার অ্যাকশন অ্যাপ ডেভেলপারদের জন্য URL-এর ক্ষেত্রে সামঞ্জস্যপূর্ণ (তবে কাস্টমাইজ করা যায়) কন্ট্যাক্সট মেনু লঞ্চ করার একটি প্রোটোকল প্রদান করে। এই ফিচারটি ব্রাউজার অ্যাপের (যেমন, Chrome, যেখানে এই ফিচারটি এখনও ডেভেলপ করা হচ্ছে) উপস্থিতির উপর নির্ভর করে যা ব্রাউজার অ্যাকশনের জন্য সহায়তা প্রয়োগ করে।
  • ContextCompat.getSystemService() এবং getSystemServiceName() সব API লেভেলে সিস্টেম পরিষেবা লুক-আপকে অনুমতি দেয়।

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

  • Fragment ViewModel-এর onCleared কল করা হয়নি (AOSP সমস্যা 74139250)
  • ViewPager-এ FragmentPagerAdapter-এর সাথে onLoadFinished() একাধিকবার কল করা হয়েছে (AOSP সমস্যা 74182171)
  • RecyclerView-এর LinearLayoutManager-এর smoothScrollToPosition() নির্দিষ্ট পরিস্থিতিতে অনিয়মিত (এদিক-ওদিক) মুভমেন্ট দেখায় (AOSP সমস্যা 71567765)

রিভিশন 27.1.0 রিলিজ

(ফেব্রুয়ারি ২০১৮)

গুরুত্বপূর্ণ পরিবর্তন

  • Loaders-এর অন্তর্নিহিত প্রয়োগ Lifecycle ব্যবহার করার জন্য আবার লেখা হয়েছে। API অপরিবর্তিত থাকলেও, আচরণের ক্ষেত্রে বেশ কিছু পরিবর্তন হয়েছে:
    • initLoader(), restartLoader() এবং destroyLoader() এখন শুধুমাত্র মূল থ্রেডে কল করা যাবে।
    • কন্টেনিং FragmentActivity/Fragment চালু ও বন্ধ করা হলে, Loader-এর onStartLoading() ও onStopLoading()-কে যথাক্রমে কল করা হয়।
    • onLoadFinished() শুধুমাত্র onStart() এবং onStop-এর মধ্যে কল করা হবে। ফলে, এখন নিরাপদে Fragment ট্রানজ্যাকশন করা যাবে onLoadFinished()।
    • Loaders-এর সাথে সম্পর্কিত FragmentController পদ্ধতিগুলি এখন সচল নেই।
  • DialogFragment-এর getDialog() এখন onDestroyView() পর্যন্ত নন-নাল থাকবে, dismiss()-এ নাল হয়ে যাওয়ার পরিবর্তে। onStop()-এ ডায়ালগ ম্যানুয়ালি বন্ধ করা হয়েছে কিনা তা আপনি এখন নির্ধারণ করতে পারবেন, এর জন্য getDialog().isShowing() ফলস রিটার্ন করে কিনা তা চেক করুন।

নতুন API

  • ListAdapter RecyclerView-এর জন্য (AsyncListDiffer-এর সাথে) ব্যাকগ্রাউন্ড থ্রেডে তালিকার পার্থক্য গণনা করা সহজ করে তোলে। এগুলি UI থ্রেডে ন্যূনতম কাজ করে আপনার RecyclerView-কে কন্টেন্ট পরিবর্তন অটোমেটিক অ্যানিমেট করতে সাহায্য করতে পারে। এগুলি DiffUtil ব্যবহার করে।
  • SortedList.ReplaceAll SortedList-এর মধ্যে থাকা সব ডেটা আপডেট করার সুবিধা চালু করে, যা যোগ করা, সরানো, পরিবর্তন করা ও সরানোর (সরানোকে সরানো ও যোগ করা হিসেবে গণ্য করা হয়) জন্য উপযুক্ত সব অ্যানিমেশন রান করায়।
  • FragmentActivity ও Fragment এখন ViewModelStoreOwner ইমপ্লিমেন্ট করে এবং এখন ViewModelProvider কনস্ট্রাক্টরদের সাথে ব্যবহার করা যেতে পারে। এটি ViewModelProviders.of()ব্যবহার করার বিকল্প হিসেবে কাজ করে
  • Fragment-এ এখন requireContext(), requireActivity(), requireHost() ও requireFragmentManager() মেথড আছে, যা সমতুল্য get মেথডের NonNull অবজেক্ট রিটার্ন করে অথবা IllegalStateException থ্রো করে।
  • requireViewById(), @NonNull কম্প্যাট ভার্সন findViewById()-এর WindowCompat, ActivityCompat ও ViewCompat-এ যোগ করা হয়েছে, যেগুলি টার্গেট খুঁজে না পেলে IllegalArgumentException দেখায়।
  • LoaderCallbacks পদ্ধতিতে এখন উপযুক্ত @Nullable ও @NonNull অ্যানোটেশন আছে।
  • FileProvider এখন API 21 ও তার পরবর্তী যেকোনও ভার্সনে চলে এমন ডিভাইসে নতুন <external-media-path> এলিমেন্টের মাধ্যমে getExternalMediaDirs() কাজ করে।

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

  • onCreate-এ Loader ইনিশিয়ালাইজ করা Fragment-এর লাইফসাইকেল ভেঙে গেছে ViewPager-এর মধ্যে
  • LoaderManager, onLoadFinished-এ IllegalStateException ছুঁড়ে দেয়
  • LoaderViewModel, onCleared-এ এর লোডার মুছে দেয় না
  • Class file for android.arch.lifecycle.ViewModelStoreOwner not found
  • dismiss() কল করার সাথে সাথেই DialogFragment onDismiss কল করা হয় না
  • ডাউনলোড করা যায় এমন ফন্ট ব্যবহার করার সময় রিলিজ কী ডিভাইসে দেশের পতাকা ইমোজি কাজ করে না
  • পছন্দ লাইব্রেরি এমন অ্যাট্রিবিউট ব্যবহার করে যা Android-এর পুরনো ভার্সনে কাজ করবে না
  • MediaCompat-এর testlib আর্টিফ্যাক্ট ধরন ভুলভাবে ডকুমেন্ট করা হয়েছে (AOSP সমস্যা 71559905)
  • TypefaceCompatUtil-এ Google Sans ক্র্যাশ করে
  • Collection গ্রহণ করে এমন ArraySet কনস্ট্রাক্টর এক্সপোজ করুন।
  • updateApi .ignore ফাইল সরিয়ে দেয় যা সেভ করে রাখা উচিত
  • BrowseFragment-এ অতিরিক্ত MainFragment তৈরি করা হয়েছে
  • CarRecyclerView থেকে রিফ্লেকশনের ব্যবহার সরিয়ে দেওয়া
  • java.lang.IllegalStateException at FragmentManagerImpl.checkStateLoss
  • Got (undocumented) java.lang.SecurityException when using android.support.v4.content.PermissionChecker.checkSelfPermission
  • RecyclerView IndexOutOfBoundsException কারণ setAdapter-এ State.mPreviousLayoutItemCount ক্লিয়ার করা হয়নি (AOSP সমস্যা 37657125)
  • onCreate-এ লোডার শুরু করা ফ্র্যাগমেন্টের মধ্যে লাইফসাইকেল ভেঙে গেছে ViewPager (AOSP সমস্যা 34831613)
  • FragmentManagerImpl.execSingleAction ক্র্যাশ করে

সংশোধিত ভার্সন 27.0.2 রিলিজ

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

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

  • EmojiEditTextHelperটি NullPointerException।
  • IllegalStateException: ফ্র্যাগমেন্ট এখনও অ্যাটাচ করা হয়নি।
  • স্ক্রিনের যেকোনও জায়গায় ট্যাপ করে 'কাস্ট' আইকন পপ-আপ বাতিল করা যাচ্ছে না।
  • MediaMetadataCompatটি BadParcelableException।

সংশোধিত ভার্সন 27.0.1 রিলিজ

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

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

  • startActivityForResult() কল করার পরে LifecycleRegistry ভুল স্টেটে আছে। (সমস্যা 65665621)
  • পুরনো API লেভেলে বন্ধ করা বোতামের রঙ খুব হালকা।
  • ব্যবহারকারী স্ক্রল করার পরে, তিনি কোনও আইটেমে ক্লিক করতে পারবেন না RecyclerView. (AOSP issue 66996774)
  • টকব্যাক-এ, আরও বিকল্পে ক্লিক করলে সিস্টেম নতুন পপ-আপ ঘোষণা করে না বা নতুন বিকল্পে ফোকাস যোগ করে না।

রিভিশন 27.0.0 রিলিজ

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

API ডিফারেন্স

API পরিবর্তন

  • নিম্নলিখিত সহ বিভিন্ন API-তে নালিবিলিটি অ্যানোটেশন যোগ করা হয়েছে: নাল হতে পারে এমন রিটার্ন টাইপ সঠিকভাবে ম্যানেজ করা না হলে এর ফলে Kotlin কম্পাইলেশন সংক্রান্ত সমস্যা হতে পারে।
  • Fragment ফ্র্যাগমেন্ট ট্রানজিশনের জন্য Transition সাপোর্ট লাইব্রেরি ভার্সন ব্যবহার করতে পারে, এর মধ্যে শেয়ার করা এলিমেন্ট ট্রানজিশনও অন্তর্ভুক্ত।
  • কন্টেন্ট পেজিং লাইব্রেরি (android.support.content.ContentPager) ContentProvider-এর মাধ্যমে এক্সপোজ করা কন্টেন্ট পেজ করার জন্য সহায়তা প্রদান করে। এই লাইব্রেরি ব্যবহার করলে ক্লায়েন্টকে UI থ্রেডে ইন্টারপ্রসেস "কার্সর উইন্ডো সোয়াপ" এড়ানোর পাশাপাশি Android 8.0 ফিচারের জন্য কম্প্যাটিবিলিটি লাইব্রেরি প্রদান করা যায়।
  • ViewCompat এখন অটোফিল পদ্ধতির জন্য র‍্যাপার যোগ করে, যার মধ্যে রয়েছে getImportantForAutofill(), isImportantForAutofill(), setAutofillHints() এবং setImportantForAutofill().
  • Leanback নতুন ফিচার ও আরও উন্নত কোড পায় এবং কিছু পুরনো ক্লাস বাদ দেওয়া হয়, যেমন:
    • Picker এখন প্রতিটি কলামের মধ্যে আলাদা আলাদা সেপারেটর ব্যবহার করতে পারবে setSeparators() পদ্ধতি ব্যবহার করে।
    • DiffCallback যোগ করা হয়েছে যাতে DiffUtil-এর দেওয়া আউটপুটের সুবিধা ArrayObjectAdapter নিতে পারে।
    • পরিবর্তনযোগ্য কন্ট্রোল সহ মিডিয়া প্লেয়ারের জন্য ইনফ্রাস্ট্রাকচার যোগ করা হয়েছে, ফাস্ট-ফরওয়ার্ড, রিপিট, শাফেল, পরবর্তী, আগের ও রিওয়াইন্ডের জন্য ঐচ্ছিক কন্ট্রোল যোগ করা হয়েছে।
    • MediaControllerGlue, PlaybackControlGlue, PlaybackControlSupportGlue এবং PlaybackOverlayFragment সরানো হয়েছে।
  • পরীক্ষা করার জন্য, AOSP CTS থেকে PollingCheck ইউটিলিটি পোর্ট করা হয়। টাইম-আউট উইন্ডোর মধ্যে কোনও কন্ডিশন হওয়ার জন্য এটি পোল করে।
  • Android 5.0-এর জন্য ইনস্ট্যান্ট অ্যাপে রানটাইম অনুমতি কাজ করানোর জন্য PermissionCompatDelegate ব্যবহার করে পরিকাঠামো যোগ করা হয়েছে।
  • এখন বিশ্বস্ত কাস্টম ট্যাব কাজ করে এবং এর সাথে সাথে কোনও অ্যাপ্লিকেশন ও অরিজিন URI-এর মধ্যে সম্পর্ক নির্ধারণ করার সুবিধাও আছে।
  • AmbientMode হেডলেস ফ্র্যাগমেন্ট ব্যবহার করার মাধ্যমে Android Wear অ্যাম্বিয়েন্ট মোড সাপোর্টকে আরও সহজ করা হয়েছে, যা অ্যাম্বিয়েন্ট মোডকে আর্কিটেকচার কম্পোনেন্ট ব্যবহারের সাথে মানানসই করে তোলে।
  • এই গুরুত্বপূর্ণ পরিবর্তন সম্পর্কে Wear টিম ডেভেলপারদের মতামত জানতে চায়। আরও তথ্যের জন্য, Android Wear রিলিজ নোট দেখুন।
  • আমরা পুরনো প্রি-V14 API থেকে সরে আসার কারণে কিছু বাতিল করা ক্লাস সরিয়ে দেওয়া হয়েছে, যেমন android.support.v7.NotificationCompat (এর পরিবর্তে v4 NotificationCompat ব্যবহার করুন), KeyEventCompat, ParallelExecutorCompat এবং SearchViewCompat।
  • মাইগ্রেট করা Wear ম্যানিফেস্ট মেটাডেটা কনস্ট্যান্ট এখন android.support.wear.utils.MetadataConstants-এর মাধ্যমে উপলভ্য।
  • অ্যাম্বিয়েন্ট মোড এখন শুধু WearableActivity-র জন্য নয়, সব অ্যাক্টিভিটির জন্য উপলভ্য। আরও তথ্যের জন্য, AmbientMode রেফারেন্স দেখুন।
  • RoundedDrawable এখন XML ইনফ্লেশন সমর্থন করে।

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

  • সাপোর্ট লাইব্রেরি 27 ও ডাউনলোড করা যায় এমন ফন্ট সহ অ্যাপ্লিকেশন ক্র্যাশ করে
  • SDK আপডেট করার পরে তৈরি করা নতুন প্রোজেক্টের জন্য ডাউনলোড করা যায় এমন ফন্ট কাজ করছে না
  • লেটেস্ট আপগ্রেডে SpeechRecognizer API কাজ করছে না
  • অ্যানিমেটেড ভিউ সরানোর পরে আঁকার সময় ফ্র্যাগমেন্ট সম্পর্কিত ক্র্যাশ
  • support-leanback-demos media playback are all broken
  • Android Support Library, ম্যানিফেস্টে <meta-data> যোগ করছে
  • FontResourcesParserCompat-এর android: attrs বোঝা উচিত
  • Leanback Glue-তে পজ ইনপুট কী কাজ করে না
  • একাধিক প্যাকেজ একই আর্টিফ্যাক্ট আইডি শেয়ার করলে IDE-তে সমাধান না হওয়া প্রতীক।
  • CarExtender-এ Null Pointer Exception
  • MediaController তৈরি করার পরে প্লেব্যাক স্টেটে ভুল শাফেল / রিপিট মোড সেট করা হয়
  • নেভিগেট করার সময় লাইব্রেরি ক্লাস্টারের ডিফল্ট পোস্টার পরের ক্লাস্টারে চলে যাচ্ছে
  • সাজেশন কার্ডের মেটাডেটা কেটে গেছে
  • RecyclerView.attachViewToParent()-এ IllegalArgumentException
  • SavedState আনমার্শালিং করার সময় ClassNotFoundException (AOSP সমস্যা 37133281)
  • RecyclerView-তে ফোকাস আটকে যায়
  • Leanback LayoutManager-এ ANR সংক্রান্ত সমস্যার সমাধান করা

রিভিশন 26.1.0 রিলিজ

(সেপ্টেম্বর ২০১৭)

এটি হল Support Library-কে Architecture Components থেকে Lifecycles-এর সাথে ইন্টিগ্রেট করার একটি বিশেষ রিলিজ। আপনি Lifecycles লাইব্রেরি ব্যবহার না করলে, আপনাকে 26.0.2 থেকে আপডেট করতে হবে না। আরও তথ্যের জন্য, আর্কিটেকচার কম্পোনেন্ট রিলিজ নোট দেখুন।

গুরুত্বপূর্ণ পরিবর্তন

রিভিশন 26.0.2 রিলিজ

(আগস্ট ২০১৭)

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

  • Support Library 26.0.0-এ মেনু আইকন ফ্ল্যাট হয়ে যায়
  • GuidedAction.multilineDescription Leanback-এর সাথে ঠিকমতো কাজ করে না

রিভিশন 26.0.1 রিলিজ

(আগস্ট ২০১৭)

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

  • O-MR1 ডিভাইসে FontCompat 26.0.0 ক্র্যাশ করে
  • 26.0.0 ডিজাইন সাপোর্ট লাইব্রেরিতে মাল্টিডেক্স সাপোর্ট অন্তর্ভুক্ত থাকা উচিত নয় (সমস্যা 63999442))
  • 26.0.0 ভার্সন থেকে AppBarLayout-এ এখন ৩০০ পিক্সেল বাঁদিকের প্যাডিং আছে
  • PlaybackTransportControl নেভিগেশন কাজ করছে না
  • onCreate শেষ হওয়ার আগে Fragment.onCreateView কল করা হয়
  • android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v4.media.MediaMetadataCompat

রিভিশন 26.0.0 রিলিজ

(জুলাই ২০১৭)

গুরুত্বপূর্ণ: সাপোর্ট লাইব্রেরি এখন Google-এর Maven রিপোজিটরি থেকে উপলভ্য। আপনাকে SDK Manager থেকে support রেপোজিটরি ডাউনলোড করতে হবে না। আরও তথ্যের জন্য, সহায়তা লাইব্রেরি সেট-আপ দেখুন।

গুরুত্বপূর্ণ পরিবর্তন

  • ন্যূনতম SDK ভার্সন বাড়িয়ে ১৪ করা হয়েছে। এর ফলে, ১৪-এর আগের API লেভেলের সাথে মানানসই হওয়ার জন্য তৈরি করা অনেক API অননুমোদিত হয়ে গেছে। এইসব API-এর ক্লায়েন্টদের প্রতিটি বাতিল করা API-এর রেফারেন্স পৃষ্ঠায় উল্লেখ করা তাদের ফ্রেমওয়ার্ক সমতুল্যে মাইগ্রেট করতে হবে।
  • Wear UI লাইব্রেরিতে এমন ক্লাস আছে যা আপনাকে Wear ডিভাইসে কাজ করে এমন প্যাটার্ন ও লেআউট প্রয়োগ করতে সাহায্য করে। আরও তথ্যের জন্য, Wear UI লাইব্রেরি ব্যবহার করা দেখুন।
  • Percent Support মডিউল বন্ধ করে দেওয়া হয়েছে। এই মডিউলের ক্লায়েন্টদের নতুন ConstraintLayout উইজেটে মাইগ্রেট করতে হবে, যা SDK Manager-এ আলাদা আর্টিফ্যাক্ট হিসেবে প্রদান করা হয়।
  • android.support.v7.app.NotificationCompat এবং এর মধ্যে থাকা ক্লাস বন্ধ করা হয়েছে এবং ভবিষ্যতে রিলিজের সময় এটি সরিয়ে দেওয়া হবে:
    • v7.app.NotificationCompat.Builder-এর পরিবর্তে NotificationCompat.Builder ব্যবহার করুন। যেসব ফাংশনালিটি আগে v7 AppCompat Builder-এর উপর নির্ভর করত, সেগুলি এখন v4 Compat Builder-এর মধ্যে অন্তর্ভুক্ত করা হয়েছে।
    • DecoratedCustomViewStyle android.support.v4.app প্যাকেজে সরানো হয়েছে।
    • MediaStyle এবং DecoratedMediaCustomViewStyle এখন media-compat লাইব্রেরির অংশ এবং android.support.v4.media.app প্যাকেজে পাওয়া যাবে।

নতুন API

  • RecyclerView-এর জন্য নতুন fastScrollEnabled বুলিয়ান ফ্ল্যাগ। চালু করা থাকলে, fastScrollHorizontalThumbDrawable, fastScrollHorizontalTrackDrawable, fastScrollVerticalThumbDrawable এবং fastScrollVerticalTrackDrawable সেট করতে হবে।

API ডিফারেন্স

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

  • RecyclerView.toString()-এ অসীম লুপ
  • Canary 6-এ আপগ্রেড করার পরে API 16 AVD-তে Kotlin প্রোজেক্ট রান করলে ResourceNotFoundException হয়
  • Support Library 26.0.0-beta2 সহ ডিজাইন ভিউতে java.lang.AssertionError
  • Support Library উইজেটের জন্য Android Studio লেআউট প্রিভিউ কাজ করছে না
  • Preference-এ অ্যাট্রিবিউট না থাকলে Preference.setSingleLineTitle() কাজ করে না তৈরি করা হয়
  • DAC "Since" অ্যানোটেশনগুলি সাপোর্ট লাইব্রেরির 25.3.0 / 25.4.0 রিভিশনের জন্য ভুল
  • ResourcesCompat.getFont() ব্যতিক্রম ঘটায়
  • টুলবারের শীর্ষক বোল্ড ফন্টে লেখা নেই
  • maxLines সহ অটোমেটিক সাইজ করার ফলে অপ্রত্যাশিত ফলাফল পাওয়া যায়
  • TextView.checkForRelayout()-এ NullPointerException
  • AppCompatTextViewAutoSizeHelper.setRawTextSize() লেআউট চলাকালীন requestLayout() কল করে
  • EmojiAppCompatTextView ক্র্যাশ করে
  • টেক্সট পরিবর্তন করা হলে Autosize TextView অটোমেটিক অ্যাডজাস্ট হয় না
  • Instacart-এ স্ক্রিন করাপশন
  • MenuItemCompat-এ UnsupportedOperationException
  • API 24 বা এর পরের যেকোনও ভার্সনে NotificationCompat অ্যাকশন সম্পূর্ণভাবে এক্সট্র্যাক্ট করে না
  • লেআউট আপডেটে CoordinatorLayout অ্যাঙ্করিং সংক্রান্ত সমস্যা