পেজিং
এই টেবিলটি androidx.paging
গ্রুপের সমস্ত শিল্পকর্মের তালিকা করে।
আর্টিফ্যাক্ট | স্থিতিশীল রিলিজ | প্রার্থী মুক্তি | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
পেজিং-* | 3.3.2 | - | - | - |
পেজিং-কম্পোজ | 3.3.2 | - | - | - |
নির্ভরতা ঘোষণা করা
পেজিংয়ের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle
ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { def paging_version = "3.3.2" implementation "androidx.paging:paging-runtime:$paging_version" // alternatively - without Android dependencies for tests testImplementation "androidx.paging:paging-common:$paging_version" // optional - RxJava2 support implementation "androidx.paging:paging-rxjava2:$paging_version" // optional - RxJava3 support implementation "androidx.paging:paging-rxjava3:$paging_version" // optional - Guava ListenableFuture support implementation "androidx.paging:paging-guava:$paging_version" // optional - Jetpack Compose integration implementation "androidx.paging:paging-compose:3.3.2" }
কোটলিন
dependencies { val paging_version = "3.3.2" implementation("androidx.paging:paging-runtime:$paging_version") // alternatively - without Android dependencies for tests testImplementation("androidx.paging:paging-common:$paging_version") // optional - RxJava2 support implementation("androidx.paging:paging-rxjava2:$paging_version") // optional - RxJava3 support implementation("androidx.paging:paging-rxjava3:$paging_version") // optional - Guava ListenableFuture support implementation("androidx.paging:paging-guava:$paging_version") // optional - Jetpack Compose integration implementation("androidx.paging:paging-compose:3.3.2") }
কোটলিন এক্সটেনশন ব্যবহার করার তথ্যের জন্য, ktx ডকুমেন্টেশন দেখুন।
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ 3.3
সংস্করণ 3.3.2
7 আগস্ট, 2024
androidx.paging:paging-*:3.3.2
প্রকাশিত হয়েছে। সংস্করণ 3.3.2- এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
-
paging-common
এবংpaging-testing
নতুন কোটলিন-মাল্টিপ্ল্যাটফর্ম লক্ষ্য যোগ করেছে:watchos
,tvos
, এবংlinuxArm64
( 90c9768 ), ( 53e0eca )
সংস্করণ 3.3.1
জুলাই 24, 2024
androidx.paging:paging-*:3.3.1
প্রকাশিত হয়েছে। সংস্করণ 3.3.1- এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে
AsyncPagingDataDiffer
বা APIs এর উপরে তৈরি করা হয়েছে যেমনRecyclerView
এর সাথে ব্যবহৃতPagingDataAdapter
স্ক্রোল করার সময় ব্যাকিং ডেটা উৎস রিফ্রেশ হলে আরও লোড ট্রিগার করতে অক্ষম হবে। ( I60ca5 , b/352586078 ) -
PagingDataAdapter
বাAsyncPagingDataDiffer
ব্যবহার করে একটিRecyclerView
স্ক্রোল করার সময় ব্যাকিং ডেটা উত্স থেকে আইটেমগুলি সরানো হলে একটি ক্র্যাশ সংশোধন করা হয়েছে৷ ( I8c65a , b/347649763 )
সংস্করণ 3.3.0
14 মে, 2024
androidx.paging:paging-*:3.3.0
প্রকাশিত হয়েছে। সংস্করণ 3.3.0-এ এই কমিটগুলি রয়েছে।
3.2.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
-
PagingDataPresenter
এখন একটি পাবলিক ক্লাস। মাল্টিপ্ল্যাটফর্ম উপস্থাপক এখন অভ্যন্তরীণ পেজিং API বাpaging-runtime
AsyncPagingDataDiffer
এর প্রয়োজন না করেPagingDataPresenter
এর উপরে তৈরি করা যেতে পারে। -
LoadStates
যথাক্রমে ত্রুটি বাNotLoading
অবস্থায় আছে কিনা তা পরীক্ষা করতেhasError
এবংisIdle
এ নতুনLoadStates
এবংCombinedLoadStates
সহায়ক পদ্ধতি যোগ করা হয়েছে। এছাড়াওFlow<CombinedLoadStates>
-এ একটি নতুনawaitNotLoading()
Kotlin এক্সটেনশন পদ্ধতি যোগ করা হয়েছে যা একটি লোডNotLoading
বা Error State এ স্থির না হওয়া পর্যন্ত অপেক্ষা করে। -
PagingData.empty()
এখন ডিফল্টরূপেNotLoading
স্টেট পাঠায় যদি না কাস্টমLoadStates
এর কনস্ট্রাক্টরের কাছে পাঠানো হয়। এটি বিদ্যমান আচরণ থেকে প্রস্থান করে যেখানে এটি একটিPagingDataAdapter
এ জমা দেওয়ার সময়LoadStates
প্রেরণ করে না বাLazyPagingItems
হিসাবে সংগ্রহ করা হলে এটি লোডিং অবস্থা প্রেরণ করে।LazyPagingItems
হিসাবে সংগ্রহ করা হলে, এটি এখন প্রাথমিক রচনার সাথে সাথে একটি খালি তালিকা প্রদর্শন করবে।
কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
পেজিং এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ আর্টিফ্যাক্ট পাঠায়, ক্যাশঅ্যাপের মাল্টিপ্ল্যাটফর্ম-পেজিং প্রকল্প থেকে আপস্ট্রিম করা কাজের জন্য অনেকাংশে ধন্যবাদ।
-
paging-common
সমস্ত পেজিং 3 এপিআইকেcommon
-এ স্থানান্তরিত করেছে এবং এখন অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS-এর সাথে সামঞ্জস্যপূর্ণ। -
paging-testing
এর কোডকেcommon
নিয়ে গেছে এবং এখন অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS এর সাথে সামঞ্জস্যপূর্ণ। -
paging-compose
তার কোডকেcommon
-এ স্থানান্তরিত করেছে এবংandroidx.compose
এর মাল্টিপ্ল্যাটফর্ম সমর্থনের সাথে মিলে একটি অ্যান্ড্রয়েড আর্টিফ্যাক্ট পাঠিয়েছে। -
paging-runtime
,paging-guava
,paging-rxjava2
, এবংpaging-rxjava3
শুধুমাত্র Android থাকবে।
সংস্করণ 3.3.0-rc01
1 মে, 2024
androidx.paging:paging-*:3.3.0-rc01
পেজিং 3.3.0-beta01-এ কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 3.3.0-rc01-এ এই কমিটগুলি রয়েছে।
সংস্করণ 3.3.0-beta01
3 এপ্রিল, 2024
androidx.paging:paging-*:3.3.0-beta01
কোন উল্লেখযোগ্য পরিবর্তন ছাড়াই প্রকাশিত হয়েছে। সংস্করণ 3.3.0-beta01-এ এই কমিট রয়েছে।
সংস্করণ 3.3.0-alpha05
20 মার্চ, 2024
androidx.paging:paging-*:3.3.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 3.3.0-alpha05-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
- পেজিং এখন সাধারণ কোডের জন্য AndroidX অ্যানোটেশন
@MainThread
টীকা ব্যবহার করে। ( I78f0d , b/327682438 )
সংস্করণ 3.3.0-alpha04
6 মার্চ, 2024
androidx.paging:paging-*:3.3.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 3.3.0-alpha04-এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- Kotlin মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য যোগ করার সাথে সম্পর্কিত ছোটখাটো ডকুমেন্টেশন ত্রুটি সংশোধন করা হয়েছে। ( aosp/2950785 )
সংস্করণ 3.3.0-alpha03
7 ফেব্রুয়ারি, 2024
androidx.paging:paging-*:3.3.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 3.3.0-alpha03 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
PagingDataPresenter
এখন একটি পাবলিক ক্লাস। মাল্টিপ্ল্যাটফর্ম উপস্থাপক এখন অভ্যন্তরীণ পেজিং API বাpaging-runtime
AsyncPagingDataDiffer
এর প্রয়োজন না করেPagingDataPresenter
এর উপরে তৈরি করা যেতে পারে। ( Id1f74 , b/315214786 ) -
LoadStates
ত্রুটি বাNotLoading
অবস্থায় আছে কিনা তা পরীক্ষা করতে নতুনLoadStates
এবংCombinedLoadStates
সহায়ক পদ্ধতি যোগ করা হয়েছে। এছাড়াও একটি নতুন API যোগ করা হয়েছে যা একটিLoadStateFlow
এ অপেক্ষা করছে যতক্ষণ না একটি লোডNotLoading
বা Error State এ স্থির হয়। ( Id6c67 )
আচরণ পরিবর্তন
-
PagingData.empty()
এখন ডিফল্টরূপেNotLoading
স্টেট পাঠায় যদি না কাস্টমLoadStates
এর কনস্ট্রাক্টরের কাছে পাঠানো হয়। এটি বিদ্যমান আচরণ থেকে প্রস্থান করে যেখানে এটি একটিPagingDataAdapter
এ জমা দেওয়ার সময়LoadStates
প্রেরণ করে না বাLazyPagingItems
হিসাবে সংগ্রহ করা হলে এটি লোডিং অবস্থা প্রেরণ করে।LazyPagingItems
হিসাবে সংগ্রহ করা হলে, এটি এখন প্রাথমিক রচনার সাথে সাথে একটি খালি তালিকা প্রদর্শন করবে। ( I4d11d , b/301833847 )
সংস্করণ 3.3.0-alpha02
20 সেপ্টেম্বর, 2023
androidx.paging:paging-*:3.3.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 3.3.0-alpha02 এই কমিট ধারণ করে।
কোটলিন মাল্টিপ্ল্যাটফর্ম সামঞ্জস্য
পেজিং এখন কোটলিন মাল্টিপ্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ আর্টিফ্যাক্ট পাঠায়, ক্যাশঅ্যাপের মাল্টিপ্ল্যাটফর্ম-পেজিং প্রকল্প থেকে আপস্ট্রিম করা কাজের জন্য অনেকাংশে ধন্যবাদ। এটি আমাদের দুটি সংগ্রহস্থলের মধ্যে ভিন্নতা এড়াতে এবং তাদের সামঞ্জস্যপূর্ণ রাখতে অনুমতি দেবে।
-
paging-common
সমস্ত পেজিং 3 এপিআইকেcommon
-এ স্থানান্তরিত করেছে এবং এখন অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS-এর সাথে সামঞ্জস্যপূর্ণ। -
paging-testing
এর কোডকেcommon
নিয়ে গেছে এবং এখন অ্যান্ড্রয়েড ছাড়াও jvm এবং iOS এর সাথে সামঞ্জস্যপূর্ণ। -
paging-compose
তার কোডকেcommon
-এ স্থানান্তরিত করেছে এবংandroidx.compose
এর মাল্টিপ্ল্যাটফর্ম সমর্থনের সাথে মিলে একটি অ্যান্ড্রয়েড আর্টিফ্যাক্ট পাঠিয়েছে। -
paging-runtime
,paging-guava
,paging-rxjava2
, এবংpaging-rxjava3
শুধুমাত্র Android থাকবে।
এপিআই পরিবর্তন
- পাবলিক লগার ইন্টারফেস যা শুধুমাত্র অভ্যন্তরীণ ব্যবহারের জন্য ছিল তা অবমূল্যায়িত করা হয়েছে ( I16e95 , b/288623117 )
বাহ্যিক অবদান
- পেজিংকে কোটলিন মাল্টিপ্ল্যাটফর্মে ( #560 , #561 , #562 , #573 , #576 , #577 , #578 , # 579 , #580 , #581 , # 583 , #584 , #584 # এ নিয়ে যেতে সাহায্য করার জন্য ক্যাশ অ্যাপ থেকে ভেন্ডানকে ধন্যবাদ। 586 , #609 )
সংস্করণ 3.3.0-alpha01
20 সেপ্টেম্বর, 2023
- এটি androidx.pageing লাইব্রেরির প্রথম মাল্টিপ্ল্যাটফর্ম রিলিজ। এই সংস্করণে শুধুমাত্র
*-jvm
, এবং*-android
আর্টিফ্যাক্ট রয়েছে। macOS, iOS এবং linux ভেরিয়েন্টের জন্য,3.3.0-alpha02
ব্যবহার করুন।
সংস্করণ 3.2
সংস্করণ 3.2.1
6 সেপ্টেম্বর, 2023
androidx.paging:paging-*:3.2.1
প্রকাশিত হয়েছে। সংস্করণ 3.2.1 এই কমিট ধারণ করে.
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে পেজিং টেস্টিং আর্টিফ্যাক্টের
asSnapshot()
API যখনPagingData.from(List)
ব্যবহার করে নির্মিত একটি ফ্লো পাস করা হবে তখন হ্যাং হয়ে যাবে যেহেতুasSnapshot()
কখন লোডিং শেষ হবে সে সম্পর্কে কোনো তথ্য থাকবে না (PagingData.from(List, LoadStates)
বিপরীতে)PagingData.from(List, LoadStates)
ওভারলোড)। এই সমাধানটি শুধুমাত্র সম্পূর্ণযোগ্য প্রবাহের জন্য কাজ করে (যেমন, একটিflowOf(PagingData.from(...))
। অ-সম্পূর্ণ প্রবাহের জন্য (যেমন,MutableStateFlow
,PagingData.from
ওভারলোড ব্যবহার করুন যাLoadStates
প্রদান করে)। ( I502c3 ) - পেজিং কম্পোজ এখন অভ্যন্তরীণভাবে
AndroidUiDispatcher.Main
ব্যবহার করে যাতে লোডিং সম্পূর্ণ হওয়ার সাথে সাথে একই ফ্রেমে নতুন ডেটা পাওয়া যায়। ( IA55af )
সংস্করণ 3.2.0
জুলাই 26, 2023
androidx.paging:paging-*:3.2.0
প্রকাশিত হয়েছে। সংস্করণ 3.2.0 এই কমিট ধারণ করে.
3.1.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
- পেজিং কম্পোজ এপিআই স্থায়িত্বে পৌঁছেছে এবং পেজিংয়ের বাকি অংশে আবার মার্জ করা হয়েছে যেখানে এর সংস্করণটি এখন অন্যান্য সমস্ত পেজিং আর্টফ্যাক্টের সাথে মেলে। 3.1.0 থেকে পরিবর্তনগুলি অন্তর্ভুক্ত:
- একটি
PagingData.from(fakeData)
তৈরি করে এবং একটিMutableStateFlow
(যেমনMutableStateFlow(PagingData.from(listOf(1, 2, 3)))
এPagingData
মোড়ানোর মাধ্যমে জাল ডেটার একটি তালিকার পূর্বরূপ দেখার জন্য সমর্থন। প্রিভিউ করার জন্যcollectAsLazyPagingItems()
এর রিসিভার হিসাবে@Preview
composables-এ এই প্রবাহটি পাস করুন। - সমস্ত অলস লেআউট যেমন
LazyVerticalGrid
এবংHorizontalPager
পাশাপাশি Wear এবং TV লাইব্রেরি থেকে কাস্টম অলস উপাদানগুলির জন্য সমর্থন। এটি নতুন নিম্ন স্তরেরLazyPagingItems
এক্সটেনশন পদ্ধতির মাধ্যমে অর্জন করা হয়েছেitemKey
এবংitemContentType
, যা আপনাকেLazyColumn
,LazyVerticalGrid
এর পাশাপাশিHorizontalPager
এর মতো API-এ তাদের সমতুল্যগুলির জন্য ইতিমধ্যেই বিদ্যমান স্ট্যান্ডার্ডitems
APIগুলিরkey
এবংcontentType
পরামিতিগুলি প্রয়োগ করতে সহায়তা করে৷ -
items(lazyPagingItems)
এবংitemsIndexed(lazyPagingItems)
যেগুলি শুধুমাত্রLazyListScope
সমর্থন করে সেগুলিকে অবমূল্যায়িত করা হয়েছে৷
- একটি
- নতুন
paging-testing
আর্টিফ্যাক্ট যা আপনার অ্যাপের প্রতিটি স্তরের ইউনিট টেস্টিং এবং বিচ্ছিন্নভাবে পেজিং এর সাথে এর একীকরণের চারপাশে ডিজাইন করা API প্রদান করে। উদাহরণস্বরূপ, এটি অন্তর্ভুক্ত-
TestPager
ক্লাস যা আপনাকে পেজার এবং বাস্তব UI থেকে স্বাধীনভাবে আপনার নিজস্ব কাস্টমPagingSource
বাস্তবায়নের আচরণ যাচাই করতে দেয়। -
asPagingSourceFactory
APIs হয় একটিFlow<List<Value>>
অথবা একটি স্ট্যাটিকList<Value>
একটিPagingSourceFactory
রূপান্তরিত করতে যা পরীক্ষায় একটি পেজারে পাস করা যেতে পারে -
asSnapshot
Kotlin extension onFlow<PagingData<Value>>
, যাFlow<PagingData<Value>>
একটি সরাসরিList<Value>
এ অনুবাদ করে।asSnapshot lambda
আপনাকে APIs যেমনscrollTo
বাappendScrollWhile
এর মাধ্যমে আপনার অ্যাপের UI অনুকরণ করতে দেয় যাতে আপনি আপনার পৃষ্ঠাযুক্ত ডেটার সেটের যেকোনো সময়ে ডেটার স্ন্যাপশট সঠিক কিনা তা যাচাই করতে পারেন।
-
- দুটি স্তরে পেজিং ডিবাগিং তথ্য প্রকাশ করতে ডিফল্ট লগ যুক্ত করা হয়েছে:
VERBOSE
এবংDEBUG
। লগগুলিadb shell setprop log.tag.Paging [DEBUG|VERBOSE]
কমান্ডের মাধ্যমে সক্রিয় করা যেতে পারে। এটি ভিউ সহ পেজিং বা কম্পোজ সহ পেজিং উভয় ক্ষেত্রেই প্রযোজ্য। -
PagingDataAdapter
এবংAsyncPagingDataDiffer
এর জন্য কনস্ট্রাক্টর যোগ করা হয়েছে যাCoroutineDispatcher
এর পরিবর্তেCoroutineContext
স্বীকার করে। - একটি নতুন
PagingSourceFactory
কার্যকরী ইন্টারফেস যোগ করা হয়েছে যা পূর্ববর্তী ()->PagingSource
ল্যাম্বডাসের তুলনায় আরও স্পষ্ট API পৃষ্ঠ প্রদান করে। এই ফ্যাক্টরিটি পেজারকে ইনস্ট্যান্ট করতে ব্যবহার করা যেতে পারে।
সংস্করণ 3.2.0-rc01
জুন 21, 2023
androidx.paging:paging-*:3.2.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-rc01-এ এই কমিট রয়েছে।
বাহ্যিক অবদান
- পেজিংকে অ্যান্ড্রয়েড/জেভিএম স্পেসিফিকেশন থেকে দূরে সরিয়ে দেওয়ার জন্য অবদানের জন্য ভেইন্ডানকে ধন্যবাদ। ( #553 , #554 , #555 , #559 )
সংস্করণ 3.2.0-beta01
7 জুন, 2023
androidx.paging:paging-*:3.2.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-beta01-এ এই কমিট রয়েছে।
পেজিং রচনা
- পেজিং কম্পোজ আনুষ্ঠানিকভাবে API স্থিতিশীলতায় পৌঁছেছে। যেমন, সংস্করণটি
1.0.0-alpha20
থেকে আপডেট করা হয়েছে এখন অন্য সমস্ত পেজিং আর্টিফ্যাক্টের সংস্করণের সাথে মেলে।
এপিআই পরিবর্তন
- পেজিং কম্পোজ থেকে অবহেলিত
items(LazyPagingItems)
এবংitemsIndexed(LazyPagingItems)
APIগুলি সরানো হয়েছে৷ তাদের প্রতিস্থাপন API-এর উদাহরণের জন্য পেজিং কম্পোজ1.0.0-alpha20
রিলিজ নোট দেখুন। ( I9626e )
সংস্করণ 3.2.0-alpha06
24 মে, 2023
androidx.paging:paging-*:3.2.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-alpha06 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
- একটি নতুন
PagingSourceFactory
কার্যকরী ইন্টারফেস যোগ করা হয়েছে যা বিদ্যমান() -> PagingSource
ল্যাম্বডাসের তুলনায় আরও স্পষ্ট API পৃষ্ঠ প্রদান করে। এই ফ্যাক্টরিটি একটিPager
ইনস্ট্যান্টিয়েট করতে ব্যবহার করা যেতে পারে। ( I33165 , b/280655188 ) - একটি
PagingSourceFactory
পেতেList<Value>.asPagingSourceFactory()
এর নতুনpaging-testing
API যোগ করা হয়েছে যা শুধুমাত্র ডেটার অপরিবর্তনীয় তালিকা থেকে লোড হয়।Flow<List<Value>>
এ বিদ্যমান এক্সটেনশনটি এখনও স্ট্যাটিক ডেটার একাধিক প্রজন্মের সাথে পরীক্ষার জন্য ব্যবহার করা উচিত। ( Id34d1 , b/280655188 )
এপিআই পরিবর্তন
- পেজিং-টেস্টিং-এ সমস্ত পাবলিক API এখন
@VisibleForTesting
এর সাথে টীকা করা হয়েছে যাতে এই APIগুলি শুধুমাত্র পরীক্ষায় ব্যবহার করা হয়। ( I7db6e ) -
asSnapshot
API-এর আর কোনোCoroutineScope
এ পাস করার প্রয়োজন নেই। এটি এখন এর মূল সুযোগ থেকে উত্তরাধিকারসূত্রে প্রাপ্ত প্রসঙ্গ ব্যবহার করার জন্য ডিফল্ট। ( Id0a78 , b/282240990 ) - প্রকৃত
Pager
কনস্ট্রাক্টর প্যারামিটারের ( I6185a ) সাথে স্বজ্ঞাতভাবে মেলেTestPager
কনস্ট্রাক্টর প্যারামিটারগুলি পুনরায় সাজানো হয়েছে - মাইগ্রেটেড পেজিং-টেস্টিং-এর ল্যাম্বডা টাইপ ব্যবহার
() -> PagingSource<Key, Value>
PagingSourceFactory<Key, Value>
টাইপ করতে। ( I4a950 , b/280655188 )
আচরণ পরিবর্তন
-
asSnapshot
পেজিং পরীক্ষা হিসাবে চালানোর জন্য প্রধান প্রেরণকারীর আর প্রয়োজন নেই। এটি সেট করা আর পরীক্ষার আচরণে কোনো পরিবর্তন করে না। ( IE56ea )
সংস্করণ 3.2.0-alpha05
3 মে, 2023
androidx.paging:paging-*:3.2.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-alpha05 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
asSnapshot
এর পেজিং টেস্টিং API এখন তারloadOperations
প্যারামিটারটিকে একটি খালি lambda-তে ডিফল্ট করে। এটি প্রাথমিক রিফ্রেশ লোড থেকে ডেটা পুনরুদ্ধার করতে কোনও লোড অপারেশনে পাস না করেasSnapshot
কল করার অনুমতি দেয়। ( Ied354 , b/277233770 )
ডকুমেন্টেশন উন্নতি
-
asPagingSourceFactory()
এ ডকুমেন্টেশন আপডেট করা হয়েছে স্পষ্ট করার জন্য যে এটি একটিFlow
একটি এক্সটেনশন পদ্ধতি যাPagingSource
দৃষ্টান্ত তৈরি করার জন্য একটি পুনঃব্যবহারযোগ্য কারখানা প্রদান করে। ( I5ff4f , I705b5 ) -
LoadResult.Page
কনস্ট্রাক্টরে ডকুমেন্টেশন আপডেট করা হয়েছেitemsBefore
ওitemsAfter
জাম্পিং সমর্থন করার জন্য ওভাররাইড করার প্রয়োজনীয়তা স্পষ্ট করতে। ( Ied354 )
বাহ্যিক অবদান
- পেজিংকে অ্যান্ড্রয়েড/জেভিএম স্পেসিফিকেশন থেকে দূরে সরিয়ে দেওয়ার জন্য অবদানের জন্য ভেইন্ডানকে ধন্যবাদ। ( #525 , #523 , #520 , #519 , #507 , #506 , #505 , #499 , #497 , #496 , #493 )
সংস্করণ 3.2.0-alpha04
ফেব্রুয়ারী 8, 2023
androidx.paging:paging-*:3.2.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-alpha04 এই কমিট ধারণ করে।
পেজিং টেস্টিং
-
paging-testing
আর্টিফ্যাক্টে এখন একটি পেজারে সরবরাহ করার জন্য একটিFlow<List<Value>>
থেকে একটিpagingSourceFactory
তৈরি করার জন্য একটিasPagingSourceFactory
পদ্ধতি রয়েছে। ফ্লো থেকে নির্গত প্রতিটিList<Value>>
পেজড ডেটার একটি প্রজন্মের প্রতিনিধিত্ব করে। এটি পেজিং পরীক্ষাকে সহজতর করে, উদাহরণস্বরূপ, পেজার থেকে সংগ্রহ করার জন্য একটি ডেটা উত্স জাল করেPagingData
রূপান্তর। ( I6f230 , b/235528239 ) একটি
Flow<PagingData<T>>
সঠিক কিনা তা যাচাই করার জন্য উপযুক্ত নতুন APIগুলির সাথেpaging-testing
আর্টিফ্যাক্টটি প্রসারিত করা হয়েছে। এটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, আপনার ViewModel স্তর থেকে একটিFlow<PagingData<T>>
এর আউটপুট জাহির করতে।এটি
Flow<PagingData<Value>>
এasSnapshot
Kotlin এক্সটেনশনের মাধ্যমে করা হয়, যাFlow<PagingData<Value>>
একটি সরাসরিList<Value>
-এ অনুবাদ করে।asSnapshot
lambda আপনাকে API-এর মাধ্যমে আপনার অ্যাপের UI অনুকরণ করতে দেয় যেমনscrollTo
বাappendScrollWhile
এমনভাবে যেটি পুনরাবৃত্তিযোগ্য এবং সামঞ্জস্যপূর্ণ যাতে আপনি আপনার পৃষ্ঠাযুক্ত ডেটার সেটের যেকোনো সময়ে ডেটার স্ন্যাপশট সঠিক কিনা তা যাচাই করতে পারেন।// Create your ViewModel instance val viewModel = … // Get the Flow of PagingData from the ViewModel val data< Flow<PagingData<String>> = viewModel.data val snapshot: List<String> = data.asSnapshot { // Each operation inside the lambda waits for the data to settle before continuing scrollTo(index = 50) // While you can’t view the items within the asSnapshot call, // you can continuously scroll in a direction while some condition is true // i.e., in this case until you hit a placeholder item appendScrollWhile { item: String -> item != “Header 1” } } // With the asSnapshot complete, you can now verify that the snapshot // has the expected values
asSnapshot
হল একটিsuspend
পদ্ধতি যাrunTest
মধ্যে চালানো হবে বলে আশা করা হচ্ছে। আরও তথ্যের জন্য অ্যান্ড্রয়েডে কোটলিন কোরোটিন পরীক্ষা করা দেখুন। ( I55fd2 , I5bd26 , I7ce34 , I51f4d , I2249f , Id6223 , Ic4bab , Ib29b9 , Ic1238 , I96def , b/235528239 )
এপিআই পরিবর্তন
-
getItem
এ UI কল করা এবংAsyncPagingDataDiffer
এবংPagingDataAdapter
এpeek
এখন সঠিকভাবে প্রধান থ্রেডে শুধুমাত্র কলযোগ্য হিসেবে চিহ্নিত করা হয়েছে। ( I699b6 ) -
TestPager
দ্বারা ব্যবহৃত জেনেরিক ধরনের থেকে ওয়াইল্ডকার্ডগুলি সরানো হয়েছে, যা জাভা প্রোগ্রামিং ভাষায় লিখিত কোডগুলিতে সেই পদ্ধতিগুলির ফলাফলগুলি ব্যবহার করা সহজ করে তোলে। ( I56c42 )
সংস্করণ 3.2.0-alpha03
24 অক্টোবর, 2022
androidx.paging:paging-*:3.2.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-alpha03 এই কমিট ধারণ করে।
পেজিং টেস্টিং
এই রিলিজে একটি নতুন আর্টিফ্যাক্ট রয়েছে: paging-testing
। এই আর্টিফ্যাক্টটি আপনার অ্যাপের প্রতিটি স্তরের ইউনিট পরীক্ষা করে এবং বিচ্ছিন্নভাবে পেজিংয়ের সাথে এর একীকরণের চারপাশে ডিজাইন করা API প্রদান করে।
উদাহরণস্বরূপ, এই প্রথম রিলিজে একটি TestPager
ক্লাস রয়েছে যা আপনাকে Pager
এবং বাস্তব UI থেকে স্বাধীনভাবে আপনার নিজস্ব কাস্টম PagingSource
বাস্তবায়নের আচরণকে যাচাই করতে দেয় যা আপনাকে সাধারণত এন্ড-টু-এন্ড পেজিং ইন্টিগ্রেশন অনুকরণ করতে হবে।
TestPager
একটি জাল হিসাবে বিবেচনা করা উচিত - একটি পরীক্ষা দ্বিগুণ যা একটি PagingSource
পরীক্ষার জন্য একটি সরলীকৃত API পৃষ্ঠ প্রদান করার সময় Pager
বাস্তব বাস্তবায়নকে প্রতিফলিত করে। এই APIগুলি suspend
API এবং Android-এ Kotlin coroutines পরীক্ষা করার নির্দেশিকাতে বর্ণিত হিসাবে runTest
মধ্যে চালানো উচিত৷
ব্যবহার করা এই APIগুলির একটি উদাহরণ room-paging
পরীক্ষায় পাওয়া যেতে পারে, যা TestPager
ব্যবহার করার জন্য রিফ্যাক্টর করা হয়েছিল।
এপিআই পরিবর্তন
-
LoadResult.Page.iterator()
এর মাধ্যমেLoadResult.Page.data
এর উপর সুবিধাজনক পুনরাবৃত্তি সক্ষম করে। এটি পরোক্ষভাবে Kotlin স্ট্যান্ডার্ড লাইব্রেরিflatten
পদ্ধতির ব্যবহারের অনুমতি দেয় যখন একটিList<LoadResult.Page>
দেওয়া হয় যেমনPagingState
এরpages
সম্পত্তি যাPagingSource.getRefreshKey
পদ্ধতিতে পাস করা হয়। ( IE0718 )
সংস্করণ 3.2.0-alpha02
10 আগস্ট, 2022
androidx.paging:paging-*:3.2.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
- পেজিং এখন
AsyncPagingDataDiffer
বাPagingDataAdapter
ক্লাসের মাধ্যমেPagingData
থেকে সংগৃহীত ডিবাগিং তথ্য প্রকাশ করার জন্য লগ প্রদান করে। - লগগুলি
adb shell
কমান্ডadb shell setprop log.tag.Paging [DEBUG|VERBOSE].
( b/235527159 )
বাগ ফিক্স
-
paging-common:3.2.0-alpha01
রানটাইমpaging-runtime:3.1.1
বা তার বেশি ব্যবহার করার সময় অনুপস্থিতPagingDataDiffer
কনস্ট্রাক্টর ত্রুটি সংশোধন করা হয়েছে।( b/235256201 )
সংস্করণ 3.2.0-alpha01
জুন 1, 2022
androidx.paging:paging-*:3.2.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 3.2.0-alpha01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
PagingDataAdapter
এবংAsyncPagingDataDiffer
এর জন্য কনস্ট্রাক্টর যোগ করা হয়েছে যাCoroutineDispatcher
এর পরিবর্তেCoroutineContext
স্বীকার করে। ( আইডিসি৮৭৮ ) - ডিফল্টরূপে,
PagingData.from()
এবংPagingData.empty()
উপস্থাপকের পাশেCombinedLoadStates
আর প্রভাবিত করবে না। একটি নতুন ওভারলোড যা এই কন্সট্রাকটরগুলিতেsourceLoadStates
এবংremoteLoadStates
পাস করার অনুমতি দেয়LoadStates
সম্পূর্ণ টার্মিনাল হিসাবে সেট করার বিদ্যমান আচরণ বজায় রাখতে যোগ করা হয়েছে (যেমন,NotLoading(endOfPaginationReached = false)
), প্রয়োজনে দূরবর্তী রাজ্যগুলিকে অন্তর্ভুক্ত করার বিকল্প সহ . যদিLoadStates
পাস না করা হয়, তাহলে পূর্ববর্তীCombinedLoadStates
উপস্থাপকের পাশে রক্ষণাবেক্ষণ করা হবে যখন এটি স্ট্যাটিকPagingData
পাবে। ( Ic3ce5 , b/205344028 )
বাগ ফিক্স
-
PagingSource.getRefreshKey()
এর ফলাফলটি এখন সঠিকভাবেinitialKey
উপর প্রাধান্য দেওয়া হয়েছে যেখানে এটি শূন্য হবে, কিন্তু একটি নন-নালinitialKey
সেট করা হয়েছে। ( IC9542 , b/230391606 )
বাহ্যিক অবদান
- আপডেট করা হয়েছে :compose:ui:ui-test api (updateApi) test-coroutines-lib মাইগ্রেশনের কারণে ( I3366d )
সংস্করণ 3.1
সংস্করণ 3.1.1
9 মার্চ, 2022
androidx.paging:paging-*:3.1.1
প্রকাশিত হয়েছে। সংস্করণ 3.1.1 এই কমিট ধারণ করে.
বাগ ফিক্স
- মধ্যবর্তী
LoadState.NotLoading
সরানো হয়েছে.cachedIn()
দ্বারা ভুলভাবে ঢোকানো প্রজন্মের মধ্যে ইভেন্ট লোড হচ্ছে না। এই পরিবর্তনটি অপ্রয়োজনীয়LoadState.NotLoading
ইভেন্টগুলিকে সরিয়ে দিয়েLoadState
পরিবর্তনগুলিতে প্রতিক্রিয়া জানাতে অনেক সহজ করে তোলে যা ব্যর্থ লোডগুলি পুনরায় চেষ্টা করার সময়, রিফ্রেশ করার সময় বা অবৈধ হওয়ার সময় তৈরি হয়েছিল৷
সংস্করণ 3.1.0
17 নভেম্বর, 2021
androidx.paging:paging-*:3.1.0
প্রকাশিত হয়েছে। সংস্করণ 3.1.0 এই কমিট ধারণ করে.
3.0.0 থেকে গুরুত্বপূর্ণ পরিবর্তন
-
Flow<PagingData>.observable
এবংFlow<PagingData>.flowable
APIগুলি আর পরীক্ষামূলক নয় -
LoadState
আচরণের পরিবর্তন:-
endOfPaginationReached
এখনLoadType.REFRESH
PagingSource
RemoteMediator
সবসময়false
- পেজিং থেকে
LoadStates
ডাউনস্ট্রিম নির্গত করার আগেPagingSource
এবংRemoteMediator
উভয়ের বৈধ মানগুলির জন্য অপেক্ষা করছে৷ নতুন প্রজন্মেরPagingData
এখন কিছু ক্ষেত্রে ভুলভাবেNotLoading
এ রিসেট করার পরিবর্তে রিফ্রেশ অবস্থার জন্যLoading
দিয়ে সঠিকভাবে শুরু করবে। - উপস্থাপক এপিআই-এ
.loadStateFlow
এবং.addLoadStateListener
আর অপ্রয়োজনীয়ভাবে একটি প্রাথমিকCombinedLoadStates
পাঠায় না যেখানে সর্বদা মধ্যস্থতাকারী অবস্থাnull
সেট করা থাকে
-
- অতীত প্রজন্মের উপর বাতিল এখন অবৈধ / নতুন প্রজন্মের উপর সাগ্রহে ঘটবে।
Flow<PagingData>
-এ.collectLatest
ব্যবহার করার আর প্রয়োজন হবে না, যদিও এটি এখনও করার পরামর্শ দেওয়া হচ্ছে। -
PagingSource.LoadResult.Invalid
PagingSource.load
থেকে একটি নতুন রিটার্ন টাইপ হিসেবে যোগ করা হয়েছে, যার কারণে পেজিং এইPagingSource
কোনো মুলতুবি বা ভবিষ্যতে লোডের অনুরোধ বাতিল করে এবং এটিকে বাতিল করে। এই রিটার্ন টাইপটি সম্ভাব্য অবৈধ বা বাসি ডেটা পরিচালনা করার জন্য ডিজাইন করা হয়েছে যা ডাটাবেস বা নেটওয়ার্ক থেকে ফেরত দেওয়া যেতে পারে। -
.onPagesPresented
এবং.addOnPagesUpdatedListener
উপস্থাপক API যোগ করা হয়েছে যা পৃষ্ঠাগুলি UI-তে উপস্থাপিত হওয়ার সাথে সাথে সিঙ্ক্রোনাসভাবে ট্রিগার হয়। পৃষ্ঠা আপডেটগুলি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে:- পেজিং ডেটার একটি নতুন প্রজন্মের প্রাথমিক লোড সম্পূর্ণ হয়, নতুন প্রজন্মের উপস্থাপিত আইটেমগুলিতে কোনো পরিবর্তন থাকলে তা নির্বিশেষে। অর্থাত্, একটি নতুন প্রজন্ম কোনো আপডেট ছাড়াই প্রাথমিক লোড সম্পূর্ণ করছে কারণ তালিকাটি ঠিক একই রকম এখনও এই কলব্যাকটিকে ট্রিগার করবে।
- একটি পৃষ্ঠা ঢোকানো হয়, এমনকি যদি সন্নিবেশিত পৃষ্ঠাটিতে কোনো নতুন আইটেম না থাকে।
- একটি পৃষ্ঠা বাদ দেওয়া হয়, এমনকি যদি বাদ দেওয়া পৃষ্ঠাটি খালি ছিল।
সংস্করণ 3.1.0-rc01
3 নভেম্বর, 2021
androidx.paging:paging-*:3.1.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 3.1.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- .cachedIn() তে রেস কন্ডিশন + মেমরি লিক ঠিক করা হয়েছে যেখানে কোনো পর্যবেক্ষক না থাকা অবস্থায় পেজিং ডাউনস্ট্রিমের মাধ্যমে একাধিক লোড ইভেন্ট পাঠানো হয়েছে বা যখন একজন পর্যবেক্ষক একটি নতুন পেজিংডেটাতে স্যুইচ করছে। ( Ib682e )
সংস্করণ 3.1.0-beta01
13 অক্টোবর, 2021
androidx.paging:paging-*:3.1.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 3.1.0-beta01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে অনেক দ্রুত আইটেম অ্যাক্সেসের ফলে সেগুলিকে প্রিফেচডিসট্যান্সে বিবেচনার জন্য বাদ দেওয়া হতে পারে, যার ফলে পৃষ্ঠা লোড বন্ধ হয়ে যায়। এটি বিশেষত একটি সমস্যা যখন অনেকগুলি আইটেম একবারে এমন একটি ক্রমে সাজানো হয় যা ব্যবহারকারীর স্ক্রোল দিকনির্দেশের বিপরীতে লোডিংকে অগ্রাধিকার দেয়। এই আইটেম অ্যাক্সেসগুলিকে এখন বাফার করা হয়েছে এবং সিঙ্ক্রোনাসভাবে অগ্রাধিকার দেওয়া হয়েছে যাতে সেগুলি বাদ না যায়৷ ( aosp/1833273 )
সংস্করণ 3.1.0-alpha04
29 সেপ্টেম্বর, 2021
androidx.paging:paging-*:3.1.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 3.1.0-alpha04 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
-
Flow<PagingData>.observable
এবংFlow<PagingData>.flowable
APIগুলি আর পরীক্ষামূলক নয়৷ ( Ie0bdd )
বাগ ফিক্স
- LoadStates এর জন্য,
endOfPaginationReached
এখনLoadType.REFRESH
এর জন্য সর্বদাfalse
। পূর্বে, RemoteMediatorREFRESH
এর জন্য endOfPaginationReached-এর জন্যtrue
হওয়া সম্ভব ছিল, কিন্তু পেজিংসোর্সের জন্য নয়। এই আচরণটি এখন সর্বদাfalse
ফেরত দেওয়ার জন্য একত্রিত করা হয়েছে কারণ এটি REFRESH-এর টার্মিনাল হওয়ার জন্য কখনই বোঝা যায় না, এবং এখন LoadStates-এ API চুক্তির অংশ হিসাবে নথিভুক্ত করা হয়েছে। পৃষ্ঠা সংখ্যা বন্ধ করা হয়েছে কিনা তা সিদ্ধান্ত নেওয়ার সময়, আপনাকে সবসময় APPEND বা PREPEND নির্দেশাবলীর ক্ষেত্রে তা করতে হবে। ( I047b6 ) পেজিং থেকে লোডস্টেটগুলি এখন প্রজন্মের মধ্যে ডাউনস্ট্রিম নির্গত করার আগে পেজিংসোর্স এবং রিমোটমিডিয়েটর উভয়ের বৈধ মানগুলির জন্য অপেক্ষা করছে৷ এটি পেজিং ডেটার নতুন প্রজন্মকে CombinedLoadStates.source.refresh-এ NotLoading পাঠাতে বাধা দেয় যদি এটি ইতিমধ্যেই লোড হচ্ছে; নতুন প্রজন্মের PagingData এখন কিছু ক্ষেত্রে ভুলভাবে NotLoading-এ রিসেট করার পরিবর্তে রিফ্রেশ অবস্থার জন্য লোডিং দিয়ে সঠিকভাবে শুরু করবে।
অতীত প্রজন্মের উপর বাতিল এখন অবৈধ / নতুন প্রজন্মের উপর সাগ্রহে ঘটবে।
Flow<PagingData>
-এ .collectLatest ব্যবহার করার জন্য এটি আর প্রয়োজন হবে না, যদিও এটি এখনও অত্যন্ত সুপারিশ করা হয়। ( I0b2b5 , b/177351336 , b/195028524 )উপস্থাপক এপিআই-এ
.loadStateFlow
এবং.addLoadStateListener
আর অপ্রয়োজনীয়ভাবে একটি প্রাথমিকCombinedLoadStates
পাঠায় না যেখানে সবসময় মধ্যস্থতাকারী স্টেটnull
সেট করা থাকে এবং সোর্স স্টেটNotLoading(endOfPaginationReached = false)
এ সেট করা থাকে। এর মানে হল:- আপনি যদি RemoteMediator ব্যবহার করেন তবে মধ্যস্থতাকারী রাজ্যগুলি সর্বদা জনবহুল হবে।
-
.loadStateFlow
এ একটি নতুন loadState শ্রোতা বা একটি নতুন সংগ্রাহক নিবন্ধন করা হলে তা অবিলম্বে বর্তমান মান নির্গত করবে না যদি এটিPagingData
থেকে প্রকৃতCombinedLoadStates
না পায়।PagingData
জমা দেওয়ার আগে একজন সংগ্রাহক বা শ্রোতা শুরু করলে এটি ঘটতে পারে। ( I1a748 )
সংস্করণ 3.1.0-alpha03
জুলাই 21, 2021
androidx.paging:paging-*:3.1.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 3.1.0-alpha03 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
একটি তৃতীয় LoadResult রিটার্ন টাইপ LoadResult.Invalid পেজিংসোর্সে যোগ করা হয়েছে। যখন একটি PagingSource.load LoadResult.Invalid ফেরত দেয়, তখন পেজিং লোড করা ডেটা বাতিল করে এবং পেজিংসোর্সকে অবৈধ করে দেয়। এই রিটার্ন টাইপটি সম্ভাব্য অবৈধ বা বাসি ডেটা পরিচালনা করার জন্য ডিজাইন করা হয়েছে যা ডাটাবেস বা নেটওয়ার্ক থেকে ফেরত দেওয়া যেতে পারে।
উদাহরণ স্বরূপ, যদি অন্তর্নিহিত ডাটাবেস লিখিত হয় কিন্তু পেজিংসোর্স সময়মতো বাতিল না হয়, তাহলে এটি অসামঞ্জস্যপূর্ণ ফলাফল দিতে পারে যদি এর বাস্তবায়ন নির্ভর করে ব্যাকিং ডেটাসেটের অপরিবর্তনীয়তার উপর যে এটি থেকে লোড হয় (যেমন, সীমা অফসেট শৈলী ডিবি বাস্তবায়ন)। এই পরিস্থিতিতে, এটি লোড করার পরে অবৈধতা পরীক্ষা করার এবং LoadResult.Invalid ফেরত দেওয়ার সুপারিশ করা হয়, যার ফলে পেজিং এই পেজিংসোর্সে কোনো মুলতুবি বা ভবিষ্যতে লোডের অনুরোধ বাতিল করে এবং এটিকে অবৈধ করে।
এই রিটার্ন টাইপ পেজিং 2 এপিআই দ্বারা সমর্থিত যা LivePagedList বা RxPagedList ব্যবহার করে। Paging2-এর PagedList API-এর সাথে একটি পেজিংসোর্স ব্যবহার করার সময়, PagedList অবিলম্বে বিচ্ছিন্ন হয়ে যায়, এই PagedList-এ ডেটা লোড করার আরও প্রচেষ্টা বন্ধ করে এবং পেজিংসোর্সে অবৈধতা ট্রিগার করে৷
LoadResult হল একটি সীলমোহর করা শ্রেণী, যার মানে হল এটি একটি উৎস-অসঙ্গতিপূর্ণ পরিবর্তন যেমন PagingSource.load ফলাফলগুলি ব্যবহার করে কেসগুলিকে সরাসরি কম্পাইলের সময় LoadResult.Invalid পরিচালনা করতে হবে৷ উদাহরণ স্বরূপ, Kotlin ব্যবহারকারীরা সম্পূর্ণভাবে ব্যবহার করছেন- কখন রিটার্ন টাইপ চেক করতে হবে অবৈধ টাইপের জন্য একটি চেক যোগ করতে হবে। ( Id6bd3 , b/191806126 , b/192013267 )
বাগ ফিক্স
- PagingSource.registerInvalidatedCallback বা DataSource.addInvalidatedCallback-এর মাধ্যমে অবৈধ কলব্যাকগুলি এখন স্বয়ংক্রিয়ভাবে ট্রিগার হয় যদি সেগুলি একটি পেজিংসোর্স/ডেটাসোর্সে নিবন্ধিত হয় যা ইতিমধ্যেই অবৈধ ছিল৷ এটি একটি রেস অবস্থার সমাধান করে যার কারণে পেজিং অবৈধতার সংকেত ড্রপ করে এবং একটি উত্স সরবরাহ করলে আটকে যায় যা প্রাথমিক লোডের সময় ইতিমধ্যেই অবৈধ ছিল। অতিরিক্তভাবে, অবৈধ কলব্যাকগুলি এখন ট্রিগার হওয়ার পরে সঠিকভাবে সরানো হয়েছে কারণ সেগুলিকে সর্বাধিক একবার কল করার নিশ্চয়তা রয়েছে৷ ( I27e69 )
- একটি নতুন ইনস্ট্যান্টিয়েটেড PagedList স্ট্রীম থেকে স্থানধারক প্রাথমিক মান (InitialPagedList) জমা দেওয়া, যেমন, LivePagedListBuilder বা RxPagedListBuilder পূর্বে লোড করা ডেটা আর পরিষ্কার করবে না।
সংস্করণ 3.1.0-alpha02
জুলাই 1, 2021
androidx.paging:paging-*:3.1.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 3.1.0-alpha02 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
অনপেজে যোগ করা হয়েছে উপস্থাপিত শ্রোতা এবং ফ্লো উপস্থাপক API যা উপস্থাপিত পৃষ্ঠাগুলি UI-তে আপডেট হওয়ার পরপরই ট্রিগার করে।
যেহেতু এই আপডেটগুলি UI এর সাথে সিঙ্ক্রোনাস, আপনি আপডেট প্রয়োগ করার পরে অবস্থা পরিদর্শন করতে অ্যাডাপ্টার পদ্ধতি যেমন .snapshot, .getItemCount কল করতে পারেন৷ মনে রাখবেন যে .snapshot() কে স্পষ্টভাবে কল করা বাকি ছিল কারণ এটি প্রতিটি আপডেটে করা ব্যয়বহুল হতে পারে।
পৃষ্ঠা আপডেটগুলি নিম্নলিখিত পরিস্থিতিতে ঘটতে পারে:
- পেজিং ডেটার একটি নতুন প্রজন্মের প্রাথমিক লোড সম্পূর্ণ হয়, নতুন প্রজন্মের উপস্থাপিত আইটেমগুলিতে কোনো পরিবর্তন থাকলে তা নির্বিশেষে। অর্থাত্, একটি নতুন প্রজন্ম কোনো আপডেট ছাড়াই প্রাথমিক লোড সম্পূর্ণ করছে কারণ তালিকাটি ঠিক একই রকম এখনও এই কলব্যাকটিকে ট্রিগার করবে।
- একটি পৃষ্ঠা ঢোকানো হয়, এমনকি যদি সন্নিবেশিত পৃষ্ঠাটিতে কোনো নতুন আইটেম না থাকে
- একটি পৃষ্ঠা বাদ দেওয়া হয়, এমনকি যদি বাদ দেওয়া পৃষ্ঠাটি খালি থাকে ( I272c9 , b/189999634 )
বাগ ফিক্স
- LivePagedList বা RxPagedList দ্বারা উত্পাদিত প্রাথমিক মান থেকে PagedList.dataSource অ্যাক্সেস করা আর ভুলভাবে একটি IllegalStateException ( I96707 ) নিক্ষেপ করবে না
সংস্করণ 3.1.0-alpha01
2 জুন, 2021
androidx.paging:paging-*:3.1.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 3.1.0-alpha01-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
paging-rxjava3
দ্বারা প্রদত্ত ক্লাসগুলি এখনandroidx.paging.rxjava3
প্যাকেজের অধীনে থাকে যাতে তারাpaging-rxjava2
( Ifa7f6 ) এর সাথে বিরোধ না করে
বাগ ফিক্স
- একটি সমস্যা সমাধান করা হয়েছে যেখানে পেজিং কখনও কখনও রিসাইক্লারভিউতে নো-অপ ডিফার ইভেন্ট পাঠাবে, যা নির্দিষ্ট শ্রোতাদের তাড়াতাড়ি ট্রিগার করতে পারে। ( Ic507f , b/182510751 )
বাহ্যিক অবদান
- rxjava3 আর্টিফ্যাক্ট ( Id1ce2 , b/182497591 ) এ অবচয়িত PagedList compat API যোগ করা হয়েছে
পেজিং কম্পোজ সংস্করণ 1.0.0
সংস্করণ 1.0.0-alpha20
24 মে, 2023
androidx.paging:paging-compose:1.0.0-alpha20
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha20 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
- পেজিং কম্পোজ এখন একটি
PagingData.from(fakeData)
তৈরি করে এবং সেইPagingData
টিকেMutableStateFlow
(যেমন,MutableStateFlow(PagingData.from(listOf(1, 2, 3)))
তৈরি করে জাল ডেটার একটি তালিকার পূর্বরূপ দেখতে সমর্থন করে৷ আপনার@Preview
এ ইনপুট হিসাবে সেই ডেটা ব্যবহার করে,collectAsLazyPagingItems()
-এর কলগুলি প্রিভিউযোগ্যLazyPagingItems
প্রদান করবে। ( I8a78d , b/194544557 )
বাগ ফিক্স
-
pager.flow.cachedIn
থেকে ক্যাশে করা ডেটা যাLazyPagingItems
এ সংগ্রহ করা হয়েছে এখন অ্যাসিঙ্ক্রোনাস সংগ্রহের প্রয়োজন ছাড়াই রাজ্য পুনরুদ্ধারের পরে অবিলম্বে উপলব্ধ হবে৷ এর অর্থ হল ক্যাশে করা ডেটা স্টেট পুনরুদ্ধার করার পরে প্রাথমিক রচনার সাথে সাথে উপস্থাপনার জন্য প্রস্তুত হবে। ( I97a60 , b/177245496 )
সংস্করণ 1.0.0-alpha19
3 মে, 2023
androidx.paging:paging-compose:1.0.0-alpha19
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha19-এ এই কমিট রয়েছে।
সব অলস বিন্যাস সমর্থন
পূর্বে, পেজিং কম্পোজ LazyListScope
এ কাস্টম items
এবং itemsIndexed
এক্সটেনশন প্রদান করেছিল, যার অর্থ হল আপনি LazyVerticalGrid
, HorizontalPager
, বা Wear এবং TV লাইব্রেরি দ্বারা প্রদত্ত অন্যান্য অলস লেআউটগুলির সাথে পেজিং কম্পোজ ব্যবহার করতে পারবেন না৷ এই অনমনীয়তা মোকাবেলা করা এই রিলিজের প্রাথমিক আপডেট।
আরও অলস লেআউট সমর্থন করার জন্য, আমাদের একটি ভিন্ন স্তরে API তৈরি করতে হবে - প্রতিটি অলস লেআউটের জন্য একটি কাস্টম items
API প্রদান করার পরিবর্তে, পেজিং রচনা এখন itemKey
এবং itemContentType
এ LazyPagingItems
এ সামান্য নিম্ন স্তরের এক্সটেনশন পদ্ধতি সরবরাহ করে। LazyColumn
, LazyVerticalGrid
এবং HorizontalPager
এর মত এপিআই-এ তাদের সমতুল্যগুলির জন্য ইতিমধ্যেই বিদ্যমান স্ট্যান্ডার্ড items
APIগুলির key
এবং contentType
পরামিতিগুলি প্রয়োগ করতে এই APIগুলি আপনাকে সাহায্য করার উপর ফোকাস করে। ( Ifa13b , Ib04f0 , b/259385813 )
এর মানে হল যে একটি LazyVerticalGrid
সমর্থন করা দেখতে এরকম হবে:
// This part is unchanged
val lazyPagingItems = pager.collectAsLazyPagingItems()
LazyVerticalGrid(columns = GridCells.Fixed(2)) {
// Here we use the standard items API
items(
count = lazyPagingItems.itemCount,
// Here we use the new itemKey extension on LazyPagingItems to
// handle placeholders automatically, ensuring you only need to provide
// keys for real items
key = lazyPagingItems.itemKey { it.uniqueId },
// Similarly, itemContentType lets you set a custom content type for each item
contentType = lazyPagingItems.itemContentType { "contentType" }
) { index ->
// As the standard items call provides only the index, we get the item
// directly from our lazyPagingItems
val item = lazyPagingItems[index]
PagingItem(item = item)
}
}
এই নতুন APIগুলি ব্যবহার করার আরও উদাহরণের জন্য, দয়া করে আমাদের নমুনাগুলি দেখুন৷
যদিও এই পরিবর্তনগুলি LazyColumn
এবং LazyRow
উদাহরণগুলিকে কয়েক লাইন দীর্ঘ করে তোলে, আমরা অনুভব করেছি যে সমস্ত অলস বিন্যাস জুড়ে সামঞ্জস্যতা যারা পেজিং কম্পোজ ব্যবহার করছেন তাদের জন্য একটি গুরুত্বপূর্ণ বিষয়। সেই কারণে, LazyListScope
এ বিদ্যমান এক্সটেনশনগুলি এখন অবমূল্যায়িত করা হয়েছে। ( I0c459 , I92c8f , b/276989796 )
এপিআই পরিবর্তন
- নতুন API-এ স্থানান্তর সহজ করতে,
LazyListScope
এitems
এবংitemsIndexed
এক্সটেনশন ফাংশনগুলি এখন একটিcontentType
পরামিতি সমর্থন করে, নতুন APIগুলিতে সমর্থনকে মিরর করে৷ ( Ib1918 , b/255283378 )
নির্ভরতা আপডেট
- পেজিং কম্পোজ এর নির্ভরতা কম্পোজ 1.0.5 থেকে কম্পোজ 1.2.1 এ আপডেট করেছে। ( Ib1918 , b/255283378 )
সংস্করণ 1.0.0-alpha18
ফেব্রুয়ারী 8, 2023
androidx.paging:paging-compose:1.0.0-alpha18
কোনো পরিবর্তন ছাড়াই প্রকাশ করা হয়েছে। সংস্করণ 1.0.0-alpha18-এ এই কমিট রয়েছে।
সংস্করণ 1.0.0-alpha17
24 অক্টোবর, 2022
androidx.paging:paging-compose:1.0.0-alpha17
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha17 এই কমিট ধারণ করে।
নতুন বৈশিষ্ট্য
-
collectLazyPagingItems
কল করার সময় একটি কাস্টমCoroutineContext
এর জন্য সমর্থন যোগ করুন। ( I7a574 , b/243182795 , b/233783862 )
সংস্করণ 1.0.0-alpha16
10 আগস্ট, 2022
androidx.paging:paging-compose:1.0.0-alpha16
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha16-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
- পেজিং এখন পেজিং ডেটা থেকে সংগৃহীত ডিবাগিং তথ্য প্রকাশ করতে
LazyPagingItems
ক্লাসের মাধ্যমে লগ প্রদান করে। - লগগুলি
adb shell
কমান্ডadb shell setprop log.tag.Paging [DEBUG|VERBOSE]
এর মাধ্যমে সক্রিয় করা যেতে পারে। ([b/235527159}(https://issuetracker.google.com/issues/235527159))
বাগ ফিক্স
-
paging-common:3.1.1
বা তার বেশির সাথে পেজিংpaging-compose:1.0.0-alpha15
ব্যবহার করার সময় অনুপস্থিতPagingDataDiffer
কনস্ট্রাক্টর ত্রুটি সংশোধন করা হয়েছে।( b/235256201 , b/239868768 )
সংস্করণ 1.0.0-alpha15
জুন 1, 2022
androidx.paging:paging-compose:1.0.0-alpha15
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha15-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
PagingDataAdapter
এবংAsyncPagingDataDiffer
এর জন্য কনস্ট্রাক্টর যোগ করা হয়েছে যাCoroutineDispatcher
এর পরিবর্তেCoroutineContext
স্বীকার করে। ( আইডিসি৮৭৮ )
বাগ ফিক্স
-
LazyPagingItems
এখন একটিLoadState.Loading
রিফ্রেশ করার জন্য প্রাথমিকloadState
সেট করে। ( I55043 , b/224855902 )
সংস্করণ 1.0.0-alpha14
13 অক্টোবর, 2021
androidx.paging:paging-compose:1.0.0-alpha14
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha14 এই কমিট ধারণ করে।
সংস্করণ 1.0.0-alpha13
29 সেপ্টেম্বর, 2021
androidx.paging:paging-compose:1.0.0-alpha13
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha13-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
LazyPagingItems.snapshot()
ফাংশনLazyPagingItems.itemSnapshotList
প্রপার্টি ( Ie2da8 ) দিয়ে প্রতিস্থাপিত হয়েছে - অপ্রচলিত
LazyPagingItems.getAsState()
সরানো হয়েছে ( Ie65e4 )
সংস্করণ 1.0.0-আলফা12
জুলাই 21, 2021
androidx.paging:paging-compose:1.0.0-alpha12
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha12-এ এই কমিট রয়েছে।
এপিআই পরিবর্তন
-
items(lazyPagingItems)
এবংitemsIndexed(lazyPagingItems)
পেজিংকেLazyColumn/Row
দিয়ে সংযুক্ত করতে ব্যবহৃত হয় এখন বিকল্প কী প্যারামটি গ্রহণ করুন যা আপনাকে আইটেমটির প্রতিনিধিত্বকারী একটি স্থিতিশীল কী নির্দিষ্ট করতে দেয়। আপনি এখানে কী সম্পর্কে আরও পড়তে পারেন। ( I7986d ) - ফাংশন
lazyPagingItems.getAsState(index)
এখন হ্রাস করা হয়। পরিবর্তেlazyPagingItems[index]
ব্যবহার করুন। ( I086cb , খ/187339372 )
সংস্করণ 1.0.0-আলফা 11
৩০ জুন, ২০২১
androidx.paging:paging-compose:1.0.0-alpha11
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-আলফা 11 এ এই কমিটগুলি রয়েছে।
সংস্করণ 1.0.0-আলফা 10
2 জুন, 2021
androidx.paging:paging-compose:1.0.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-আলফা 10 এ এই কমিটগুলি রয়েছে।
সংস্করণ 1.0.0-Alpha09
18 মে, 2021
androidx.paging:paging-compose:1.0.0-alpha09
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA09 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- লাজাইপেজিং আইটেমগুলির আইটেমকাউন্ট এবং আইটেম গেটর এখন পর্যবেক্ষণযোগ্য যা এটি অলসভার্টিকালগ্রিডের সাথেও ব্যবহার করতে দেয় ( আইই 2446 , বি/171872064 , বি/168285687 )
সামঞ্জস্যতা রচনা
-
androidx.paging:paging-compose:1.0.0-alpha09
কেবলমাত্র কমপোজ সংস্করণ1.0.0-beta07
এবং তারও বেশি সাথে সামঞ্জস্যপূর্ণ।
সংস্করণ 1.0.0-Alpha08
24 ফেব্রুয়ারি, 2021
androidx.paging:paging-compose:1.0.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA08 এ এই কমিটগুলি রয়েছে।
রচনা 1.0.0-BETA01 এর সাথে সংহত করতে আপডেট হয়েছে।
সংস্করণ 1.0.0-Alpha07
ফেব্রুয়ারী 10, 2021
androidx.paging:paging-compose:1.0.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA07 এর মধ্যে এই কমিটগুলি রয়েছে।
রচনা আলফা 12 এর সাথে সংহত করতে আপডেট হয়েছে।
সংস্করণ 1.0.0-Alpha06
28 জানুয়ারী, 2021
androidx.paging:paging-compose:1.0.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।
বাগ ফিক্স
রচনা 1.0.0-আলফা 11 এর উপর নির্ভর করতে আপডেট হয়েছে।
সংস্করণ 1.0.0-Alpha05
13 জানুয়ারী, 2021
androidx.paging:paging-compose:1.0.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA05 এর মধ্যে এই কমিট রয়েছে।
রচনা 1.0.0-আলফা 10 এর উপর নির্ভর করতে আপডেট হয়েছে।
সংস্করণ 1.0.0-Alpha04
16 ডিসেম্বর, 2020
androidx.paging:paging-compose:1.0.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA04 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- সুবিধামত বৈশিষ্ট্যগুলি,
CombinedLoadStates.refresh
,CombinedLoadStates.prepend
,CombinedLoadStates.append
আপডেট করেছেন Ret মধ্যস্থতাকারী এবং উত্স লোড উভয় রাষ্ট্রই রিমোট আপডেট প্রয়োগ করা হয়েছে তা নিশ্চিত করার জন্য লোডিংNotLoading
পরে কেবলLoading
থেকেNotLoading
রূপান্তরিত করার জন্য প্রস্তুত। ( I65619 )
সংস্করণ 1.0.0-Alpha03
2 ডিসেম্বর, 2020
androidx.paging:paging-compose:1.0.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA03 এ এই কমিটগুলি রয়েছে।
- ম্যাচটি কমপোজ 1.0.0-Alpha08 এ আপডেট হয়েছে।
সংস্করণ 1.0.0-Alpha02
11 নভেম্বর, 2020
androidx.paging:paging-compose:1.0.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-ALPHA02 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
সংস্করণ 1.0.0-alpha01
অক্টোবর 28, 2020
androidx.paging:paging-compose:1.0.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
paging-compose
আর্টিফ্যাক্টটি পেজিং লাইব্রেরি এবং জেটপ্যাক রচনার মধ্যে সংহতকরণ সরবরাহ করে। একটি সহজ ব্যবহার উদাহরণ:
@Composable
@OptIn(ExperimentalLazyDsl::class)
fun ItemsDemo(flow: Flow<PagingData<String>>) {
val lazyPagingItems = flow.collectAsLazyPagingItems()
LazyColumn {
items(lazyPagingItems) {
Text("Item is $it")
}
}
}
সংস্করণ 3.0.1
সংস্করণ 3.0.1
জুলাই 21, 2021
androidx.paging:paging-*:3.0.1
প্রকাশিত হয়েছে। সংস্করণ 3.0.1 এ এই কমিটস রয়েছে।
বাগ ফিক্স
-
LivePagedList
বাRxPagedList
দ্বারা উত্পাদিত প্রাথমিক মান থেকেPagedList.dataSource
অ্যাক্সেস করা আর ভুলভাবে একটি অবৈধ স্টেটেক্সেপশন ( আই 96707 ) নিক্ষেপ করবে না
সংস্করণ 3.0.0
সংস্করণ 3.0.0
5 মে, 2021
androidx.paging:paging-*:3.0.0
প্রকাশিত হয়েছে। সংস্করণ 3.0.0 এ এই কমিটস রয়েছে।
3.0.0 এর প্রধান বৈশিষ্ট্য
পেজিং ২.xx থেকে বিদ্যমান এপিআইয়ের বেশিরভাগ অংশ নিম্নলিখিত উন্নতি আনতে নতুন পেজিং 3 এপিআইয়ের পক্ষে হ্রাস করা হয়েছে:
- কোটলিন করুটাইনস এবং প্রবাহের জন্য প্রথম শ্রেণির সমর্থন
- বাতিল করার জন্য সমর্থন
- অন্তর্নির্মিত লোড অবস্থা এবং ত্রুটি সংকেত
- পুনরায় চেষ্টা করুন + রিফ্রেশ কার্যকারিতা
- তিনটি ডেটাসোর্স সাবক্লাসকে একত্রিত প্যাগিংসোর্স ক্লাসে একত্রিত করা হয়েছে
- বিভাজক যুক্ত করার জন্য অন্তর্নির্মিত একটি সহ কাস্টম পৃষ্ঠা রূপান্তর
- রাষ্ট্রীয় শিরোনাম এবং পাদচরণ লোড হচ্ছে
সংস্করণ 3.0.0-rc01
21 এপ্রিল, 2021
androidx.paging:paging-*:3.0.0-rc01
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-rc01-এ এই কমিট রয়েছে।
বাগ ফিক্স
- এমন একটি সমস্যা স্থির করা হয়েছে যেখানে পেজিং কখনও কখনও পুনর্ব্যবহারের জন্য কোনও-অপ-পৃথক ইভেন্ট প্রেরণ করে, যার ফলে নির্দিষ্ট শ্রোতাদের তাড়াতাড়ি ট্রিগার হতে পারে। ( আইসি 507 এফ , বি/182510751 )
সংস্করণ 3.0.0-BETA03
24 মার্চ, 2021
androidx.paging:paging-*:3.0.0-beta03
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-BETA03 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- পুনর্ব্যবহারযোগ্য জাম্পগুলি প্রতিরোধের জন্য তালিকা পুনরায় লোড করা হলে স্থানধারীদের কীভাবে পরিচালনা করা হয় তা আমরা পুনর্নির্মাণ করেছি। বিশদের জন্য নালপ্যাডেডডিফিং.এমডি দেখুন। ( আইএফ 1490 , বি/170027529 , বি/177338149 )
- বিভিন্ন পেজডলিস্ট বিল্ডার (পুরাতন সামঞ্জস্যতার পথ) আর ভুলভাবে সিঙ্ক্রোনালি
DataSource.Factory.create()
মূল থ্রেডে কল করে না যখন.build()
বলা হয়। ( খ/182798948 )
সংস্করণ 3.0.0-BETA02
10 মার্চ, 2021
androidx.paging:paging-*:3.0.0-beta02
প্রকাশিত হয়েছে। সংস্করণ 3.0.0.0-BETA02 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
- আরএক্স 3 এক্সটেনশনগুলি এখন সঠিকভাবে
@ExperimentalCoroutinesApi
অপ্ট-ইন প্রয়োজনীয়তার প্রচার করে। পূর্বে এগুলি@get
পদ্ধতিতে চিহ্নিত করা হয়েছিল, যা কোটলিন সংকলক দ্বারা উপেক্ষা করা হয়:
বাগ ফিক্স
- পরীক্ষামূলক এপিআইগুলির জনসাধারণের ব্যবহারের উপর বিধিনিষেধ প্রয়োগ করুন ( আই 6 এএ 29 , বি/174531520 )
- রিমোট রিফ্রেশ বলা হয় যখন
PagingState
সর্বদাnull
হয়ে যায় এমন একটি বাগ স্থির করে। - একটি বাগ স্থির করা হয়েছে যেখানে প্যাগিংসোর্স দ্বারা ফিরে আসা খালি পৃষ্ঠাগুলি পেজিং আবার আনতে বাধা দিতে পারে
prefetchDistance
পূরণ করতে পারে যার ফলে পেজিং "আটকে" যায়।
সংস্করণ 3.0.0-beta01
ফেব্রুয়ারী 10, 2021
androidx.paging:paging-*:3.0.0-beta01
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-beta01 এই কমিট ধারণ করে।
এপিআই পরিবর্তন
- আরএক্স 2 এবং আরএক্স 3 মোড়ক এখন পরীক্ষামূলক টীকাগুলির উপর নির্ভর করে এটি নির্ভর করে। আপনি যদি পেজিং-আরএক্সজ্যাভিএ 2 বা পেজিং-আরএক্সজ্যাভি 3-তে আরএক্স কমপ্যাট র্যাপারগুলি ব্যবহার করছেন তবে আপনাকে এখন
@OptIn(ExperimentalCoroutinesApi::class)
(আইবি 1 এফ 9 ডি) দিয়ে ব্যবহারগুলি টীকা দিতে হবে ( আইবি 1 এফ 9 ডি )
বাগ ফিক্স
- স্থির
IndexOutOfBoundsException: Inconsistency detected
সামঞ্জস্যতা পাথের মাধ্যমে ভি 2DataSource
এপিআই ব্যবহার করার সময় কখনও কখনও নিক্ষেপ করা অসঙ্গতি সনাক্ত করা যায় -
DataSource
শুরু করার সময়isInvalid
কল যখন সামঞ্জস্যতা পাথের মাধ্যমে ব্যবহৃত হয় তখন এখন মূল থ্রেডের পরিবর্তে ফেচডিস্প্যাচারে সঠিকভাবে চালু করা হয়। ঘরেরPagingSource
বাস্তবায়ন ব্যবহার করার সময় এটি মূল থ্রেডে ডিবি অ্যাক্সেসের কারণে একটিIllegalStateException
ঠিক করে।
সংস্করণ 3.0.0-আলফা 13
জানুয়ারী 27, 2021
androidx.paging:paging-*:3.0.0-alpha13
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-আলফা 13 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
-
PagingSource.getRefreshKey
আর প্রয়োগের জন্য আর al চ্ছিক নয়, এটি এখন ডিফল্ট বাস্তবায়ন ছাড়াই একটি বিমূর্ত ফাংশন। স্থানান্তরকারী ব্যবহারকারীরা হয় ডিফল্ট বাস্তবায়নটি ফিরিয়ে দেওয়া চালিয়ে যেতে পারেন, যা কেবলnull
ফিরিয়ে দেয়, তবেgetRefreshKey()
ব্যবহারকারীর বর্তমান স্ক্রোল অবস্থানের উপর ভিত্তি করে একটি কী ফিরিয়ে দেওয়ার একটি বাস্তব বাস্তবায়ন হওয়া উচিত যাPagingState.anchorPosition
মাধ্যমে ভিউপোর্টের চারপাশে লোডিংকে কেন্দ্র করে লোডিং চালিয়ে যেতে দেয়। ( I4339a ) -
InvalidatingPagingSourceFactory
এখন একটি চূড়ান্ত শ্রেণি ( আইএ 3 বি 0 এ ) - অতিরিক্ত al চ্ছিক বিচ্ছিন্নতা প্যারামিটারের সাথে টার্মিনাল বিভাজক (শিরোনাম / পাদদেশ) আচরণের কনফিগারেশনের অনুমতি দিন। দুটি বিকল্প হল:
-
FULLY_COMPLETE
- বিদ্যমান আচরণ; টার্মিনাল বিভাজক যুক্ত করার আগে এন্ডোফপ্যাগিনেশন রিচকে চিহ্নিত করার জন্য প্যাগিংসোর্স এবং রিমোটেমডিয়েটার উভয়ের জন্য অপেক্ষা করুন। যদি রিমোটেমডিয়েটর ব্যবহার না করা হয় তবে রিমোট লোডস্টেট উপেক্ষা করা হয়। এটি প্রাথমিকভাবে কার্যকর যদি আপনি কেবলমাত্র বিভাগের বিভাজকগুলি দেখাতে চান যখন বিভাগটি সম্পূর্ণরূপে লোড করা হয়, দূরবর্তী উত্স ইজি, নেটওয়ার্ক থেকে আনার সহ। -
SOURCE_COMPLETE
- রিমোটেমডিয়েটর ব্যবহার করা হলেও কেবল এন্ডোফপ্যাগিনেশন রিচ চিহ্নিত করার জন্য প্যাগিংসোর্সটির জন্য অপেক্ষা করুন। এটি শিরোনাম এবং পাদদেশগুলিকে প্রাথমিক লোডের সাথে সিঙ্ক্রোনালি উপস্থাপনের অনুমতি দেয়, যা ব্যবহারকারীদের টার্মিনাল বিভাজকগুলি দেখতে স্ক্রোল করতে প্রয়োজন হতে বাধা দেয়। ( Ibe993 , খ/174700218 )
-
বাগ ফিক্স
- একটি বিরল মেমরি ফুটো স্থির করে যা ঘটে যখন প্যাগিংসোর্সটি অবৈধ হয় যখন পেজফেচার এমনকি এটি থেকে লোড করা শুরু করতে শুরু করতে পারে। ( I9606 বি , বি/174625633 )
সংস্করণ 3.0.0-আলফা 12
13 জানুয়ারী, 2021
androidx.paging:paging-*:3.0.0-alpha12
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-আলফা 12 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- অবৈধপ্যাগিংসোর্সফ্যাক্টরি আর কোনও বিমূর্ত শ্রেণি নয় কারণ এর কোনও বিমূর্ত পদ্ধতি কখনও ছিল না। ( I4a8c4 )
- .Cachedin () এর একটি ওভারলোড যুক্ত করা হয়েছে যা জাভা ব্যবহারকারীদের জন্য লাইফাইসাইকেল বা করটিনেস্কোপের পরিবর্তে ভিউমোডেল গ্রহণ করে। ( I97d81 , বি/175332619 )
- জাভা কলারদেরকে ট্রান্সফর্ম অপারেটর যুক্তিগুলিতে একজন নির্বাহককে গ্রহণ করে পেজিংডাটা ট্রান্সফর্ম অপারেশনগুলি একটি অ্যাসিঙ্ক উপায়ে ব্যবহার করার অনুমতি দিন। সমস্ত -এসওয়াইএনসি ট্রান্সফর্ম অপারেটরগুলির মধ্যে এখন -এসওয়াইএনসি প্রত্যয়টি সরানো হয়েছে এবং কোটলিন করুটাইন ব্যবহারকারীদের এক্সটেনশন ফাংশনটি কল করে কলঙ্ক করতে হবে যা পরিবর্তে একটি স্থগিতকরণ ব্লক গ্রহণ করে। সমস্ত পেজিংডাটা ট্রান্সফর্মেশন অপারেটরগুলি স্ট্যাটিক পেজিংড্যাটট্রান্সফর্মস ক্লাসের অধীনে এক্সটেনশনে স্থানান্তরিত হয়েছে। জাভা ব্যবহারকারীদের স্ট্যাটিক হেল্পারদের মাধ্যমে তাদের কল করতে হবে যেমন,
PagingDataTransforms.map(pagingData, transform)
কোটলিন ব্যবহারকারীদের জন্য, সিনট্যাক্সটি একই তবে আপনাকে ফাংশনটি আমদানি করতে হবে। ( If6885 , খ/172895919 )
বাগ ফিক্স
- একটি বাগ ঠিক করা হয়েছে যেখানে
RemoteMediator.load()
adapter.refresh()
করা হবে না
সংস্করণ 3.0.0-আলফা 11
16 ডিসেম্বর, 2020
androidx.paging:paging-*:3.0.0-alpha11
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-আলফা 11 এ এই কমিটস রয়েছে।
নতুন বৈশিষ্ট্য
- নিম্নলিখিত বেসিক ব্যবহারের ক্ষেত্রে সংরক্ষণ করা রাষ্ট্রীয় সমর্থন যুক্ত করা হয়েছে (সম্পূর্ণ সমর্থন, বিশেষত স্তরযুক্ত উত্স ক্ষেত্রে এখনও একটি কাজ চলছে):
- প্রবাহকে ক্যাশে করা হয় এবং প্রয়োগ করা হয় না (যেমন প্রবাহটি একটি ভিউ মডেলটিতে ক্যাশে করা হয় এবং ক্রিয়াকলাপটি প্রক্রিয়াধীন পুনরায় তৈরি করা হয়)
- পেজিং উত্স গণনা করা হয়, স্থানধারীরা সক্ষম হয় এবং বিন্যাসটি স্তম্ভিত হয় না।
এপিআই পরিবর্তন
-
PagingSource.getRefreshKey()
এখন স্থিতিশীল এপিআই ( আই 22 এফ 6 এফ , বি/173530980 ) -
PagingSource.invalidate
আর কোনও উন্মুক্ত ফাংশন নয়। অবৈধতা যখন ঘটে তখন আপনার যদি অবহিত করা হয় তবে অবৈধভাবে ওভাররাইডিংয়ের পরিবর্তে রেজিস্টার ইনভ্যালিডেটেডক্যালব্যাক পদ্ধতিটি কল করার বিষয়টি বিবেচনা করুন। ( I628d9 , বি/173029013 , বি/137971356 ) - অপ্ট-ইন টীকাটির মাধ্যমে পরীক্ষামূলক এপিআইগুলিকে অ-পরীক্ষামূলক পাবলিক এপিআইতে ফাঁস করার পরিবর্তে প্যাগারের এখন নিয়মিত নির্মাণকারীদের পাশাপাশি একটি একক পরীক্ষামূলক কনস্ট্রাক্টর রয়েছে। ( I9dc61 , খ/174531520 )
- সুবিধামত বৈশিষ্ট্যগুলি,
CombinedLoadStates.refresh
,CombinedLoadStates.prepend
,CombinedLoadStates.append
আপডেট করেছেন Ret মধ্যস্থতাকারী এবং উত্স লোড উভয় রাষ্ট্রই রিমোট আপডেট প্রয়োগ করা হয়েছে তা নিশ্চিত করার জন্য লোডিংNotLoading
পরে কেবলLoading
থেকেNotLoading
রূপান্তর করতে প্রস্তুত। ( I65619 ) লোডপ্যারামস.পেজসাইজ সরানো হয়েছে (এটি ইতিমধ্যে অবমূল্যায়িত হয়েছিল)। সুপারিশটি হ'ল
LoadParams.loadSize
ব্যবহার করা আপনার প্যাগিংসোর্সটিতে লোডসাইজ।LoadParams.loadSize
সর্বদাPagingConfig.pageSize
সমানPagingConfig.initialLoadSize
আপনি যদি কোনও পেজার বা পেজেজলিস্ট ব্যবহার না করে আপনার পেজিং 2 ডেটাসোর্স পরীক্ষা করে দেখছেন তবে পৃষ্ঠাগুলি
PagingConfig.pageSize
সাথে মেলে না। আপনি যদিinitialLoadSize
সেট করে থাকেন তবেpageSize
। যদি এটি আপনার পরীক্ষার জন্য গুরুত্বপূর্ণ হয় তবে পরিবর্তে কোনও পেজার/পেজডলিস্ট ব্যবহার করার চেষ্টা করুন যা আপনার ডেটাসোর্স লোড পদ্ধতির জন্য অভ্যন্তরীণভাবে সঠিক পেজাইজ সেট করবে। ( I98ac7 , বি/149157296 )
বাগ ফিক্স
- PagingConfig.maxsize সেট সহ বিভাজকগুলি ব্যবহার করার সময় অবৈধ স্টেটেক্সেপশন কারণে একটি ক্র্যাশ স্থির করে। ( I0ed33 , বি/174787528 )
- একটি বাগ স্থির করে যেখানে প্রিপেন্ড / অ্যাপেন্ডের জন্য লোড স্টেটটি
NotLoading(endOfPaginationReached = true)
অবিলম্বে প্রাথমিক লোডের পরে যদি রিমোটেমডিয়েটর সেট করা থাকে ( i8cf5a ) - এমন একটি বাগ স্থির করা হয়েছে যেখানে উপস্থাপক-পাশের এপিআই যেমন .snapshot (), .পিক () ইত্যাদি, লিস্টআপডেটক্যালব্যাক আপডেটের মধ্যে পূর্ববর্তী (তারিখের বাইরে) তালিকাটি ফিরিয়ে দেবে।
- একটি বাগ স্থির করে যেখানে বিভাজক অপারেটরগুলি রিমোটেমডিয়েটারের সাথে ব্যবহার করার সময় শিরোনাম বা পাদদেশগুলি যুক্ত করবে না
- একটি বাগ ঠিক করা হয়েছে যেখানে রিমোটেমডিয়েটারের জন্য লোড করার জন্য লোডস্টেট আপডেটগুলি লোডিং অবস্থায় আটকে থাকবে
- একটি বাগ ঠিক করা হয়েছে যেখানে পেজিং 2.0 সামঞ্জস্যতা এপিআই,
.asPagingSourceFactory()
, ব্যাকিংDataSource
ভুল করআউটাইন্ডিস্প্যাচারে আরম্ভ করা যেতে পারে। এটি একটি ক্র্যাশ এবং সম্ভাব্য এএনআর কেসগুলি সমাধান করে, বিশেষত যখন কক্ষের বর্তমান প্যাগিংসোর্স ব্যবহার করে, যা এই সামঞ্জস্যতার পথটি ব্যবহার করে।
সংস্করণ 3.0.0-আলফা 10
2 ডিসেম্বর, 2020
androidx.paging:paging-*:3.0.0-alpha10
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-আলফা 10 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
লোডস্টেটফ্লো / শ্রোতার আপডেটের সাথে অপ্রয়োজনীয় হওয়ায় অবমূল্যায়িত
dataRefreshFlow
এবংdataRefreshListener
এপিআইগুলি সরানো হয়েছে। যারা স্থানান্তরিত করছেন তাদের জন্য, লোডস্টেটফ্লো সমতুল্য:loadStateFlow.distinctUntilChangedBy { it.refresh } .filter { it.refresh is NotLoading }
( আইবি 5570 , বি/173530908 )
বাগ ফিক্স
- রিমোটেমডিয়েটর
REFRESH
জন্য এন্ডোফপ্যাগিনেশন রিচড এখন সঠিকভাবে লোডস্টেট আপডেটগুলিতে প্রচার করে এবং দূরবর্তীAPPEND
এবং ট্রিগার থেকেPREPEND
প্রতিরোধ করে। ( I94a3f , খ/155290248 ) - খালি প্রাথমিক পৃষ্ঠার কারণে বা ভারী ফিল্টারিংয়ের কারণে খালি তালিকা উপস্থাপন করা আর পেজিংকে
PREPEND
বাAPPEND
লোডগুলিকে লাথি মারতে বাধা দেবে না। ( I3e702 , বি/168169730 ) - এমন একটি সমস্যা স্থির করে যেখানে অবৈধতা দ্রুত ঘটে গেলে
getRefreshKey
পরবর্তী প্রজন্মের প্যাগিংসোর্সকে ডাকা হয় না। ( আই 45460 , বি/170027530 )
বাহ্যিক অবদান
- একটি নতুন বিমূর্ত শ্রেণীর অবৈধ শ্রেণীর একটি
.invalidate()
এপিআই দিয়ে যুক্ত করা হয়েছে যা এটি নির্গত সমস্ত প্যাগিংসোর্সগুলিতে অকার্যকর ফরোয়ার্ড করে। @ক্লারফ 3 ধন্যবাদ! ( আইই 71 এফসি , বি/160716447 )
পরিচিত সমস্যা
- রিমোটেমডিয়েটর বি/172254056 ব্যবহার করার সময় .insterseparaters () রূপান্তরটি অবিলম্বে উপস্থিত হতে পারে না।
- রিমোটেমডিয়েটর ব্যবহার করে রিমোট
LoadState
অবৈধকরণ এবংPagingSource.load(LoadParams.Refresh(...))
RemoteMediator.load()
।
সংস্করণ 3.0.0-Alpha09
11 নভেম্বর, 2020
androidx.paging:paging-*:3.0.0-alpha09
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-ALPHA09 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
- একটি প্রতিস্থাপনের ধারা সহ সম্পূর্ণরূপে ডেটারফ্রেসফ্লো / শ্রোতার পদ্ধতিগুলি হ্রাস করুন। ( I6e2dd )
বাগ ফিক্স
- রিমোটেমডিয়েটর এবং অকার্যকরতার সাথে বিভাজকগুলি ব্যবহার করার সময়
IllegalArgumentException
নিক্ষেপ করার জন্য ঠিক করুন ট্রিগার করা হয় যখন একটি দূরবর্তী লোড যা এন্ডোফ্যাগিনেশন ফিরে আসবে তা এখনও চলছে ( i3a260 )
সংস্করণ 3.0.0-Alpha08
অক্টোবর 28, 2020
androidx.paging:paging-*:3.0.0-alpha08
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-ALPHA08 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- কোটলিন / জাভা ভেরিয়েন্টগুলি
DataSource.InvalidatedCallback
সাথে কোটলিনে ফাংশনাল ইন্টারফেসের মাধ্যমে (কোটলিন 1.4 এ উপলব্ধ) এসএএম-কনভার্সশনগুলি সক্ষম করে একত্রিত করা হয়েছে। এটি এমন একটি বাগও ঠিক করে যেখানে.map
বা.mapByPage
দ্বারা রূপান্তরিত হওয়ার পরে অবৈধ কলব্যাকগুলির কোটলিন ভেরিয়েন্টকে কল করা হয়নি। ( আই 1 এফ 244 , বি/165313046 )
বাগ ফিক্স
- ভিউপেজারের সাথে পেজিংয়ের মিথস্ক্রিয়াটি যথেষ্ট উন্নত হয়েছে। বিশেষত, পেজিং আর কোনও পৃষ্ঠা অবৈধতার কারণে কোনও
RemoteMediator#load
কল বাতিল করবে না। রিফ্রেশ অনুরোধটি সফলভাবে শেষ না হওয়া পর্যন্ত এটি আর কোনও সংযোজন/প্রিপেন্ড লোড অনুরোধ তৈরি করবে না, যদি রিফ্রেশের প্রয়োজন হয় । ( I6390 বি , বি/162252536 ) - এপিআই লিন্ট চেকটি নিখোঁজ
- একটি বাগ ঠিক করা
ConcatAdapter
যেখানে.withLoadState*
- একটি বাগ স্থির করে যেখানে খুব ছোট অ-খালি পৃষ্ঠাটি লোড করা কখনও কখনও প্রিফেচকে সঠিকভাবে ট্রিগার করা থেকে বিরত রাখে। Iffda3 বি/169259468
সংস্করণ 3.0.0-Alpha07
অক্টোবর 1, 2020
androidx.paging:paging-*:3.0.0-alpha07
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-ALPHA07 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
- অ্যাসিঙ্ক পেজিংডাটা পেয়ারা-ভিত্তিক অপারেটররা এখন নির্বাহের প্রসঙ্গটি নিয়ন্ত্রণের জন্য একজন নির্বাহককে পরম হিসাবে গ্রহণ করেন। ( আইডি 4372 )
বাগ ফিক্স
- একটি জাতি শর্তের কারণে রিমোটেমডিয়েটারে নিক্ষিপ্ত ফিক্সড ইনডেক্সআউটফাউন্ডস ব্যতিক্রম। ( I00b7f , খ/165821814 )
- ডেটাসোর্স -> প্যাগিংসোর্স রূপান্তরটিতে একটি রেসের শর্ত স্থির করে যা ফলস্বরূপ প্যাগিংসোর্সকে ডেটাসোর্স থেকে অবৈধতা সংকেত উপেক্ষা করতে পারে।
- পৃষ্ঠা ফেচিন লজিকের এমন একটি সমস্যা স্থির করেছে যা কখনও কখনও এটি প্যাগিংডাটাএডাপ্টার.রেফ্রেশ () না হওয়া পর্যন্ত নতুন প্রজন্মকে প্যাগিংসোর্স বাছাই করতে ব্যর্থ হতে পারে
- রিমোটেমডিয়েটারের সাথে একত্রে কোনও প্যাগিংসোর্স (যেমন রুম দ্বারা উত্পাদিত একটি) রূপান্তরিত কোনও ডেটাসোর্স ব্যবহার করার সময় কখনও কখনও স্ক্রোল-পজিশনটি হারিয়ে যেতে পারে এমন একটি সমস্যা স্থির করে
বাহ্যিক অবদান
- Rxjava2, rxjava3, এবং গাভা-ভিত্তিক অ্যাসিঙ্ক ট্রান্সফর্মেশন অপারেটরগুলি পেজিংডেটার জন্য যুক্ত করার জন্য @সিমনচিলারকে ধন্যবাদ!
সংস্করণ 3.0.0-Alpha06
2শে সেপ্টেম্বর, 2020
androidx.paging:paging-*:3.0.0-alpha06
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।
এপিআই পরিবর্তন
- স্থিতিশীল আইডিগুলির জন্য সমর্থনের অভাবের চারপাশে পরিষ্কার মেসেজিংয়ের সাথে
UnsupportedOperationException
এখন যখনইPagingDataAdapter.setHasStableIds
বলা হয়। ( আইবি 3890 , বি/158801427 )
বাগ ফিক্স
- সন্নিবেশকারীকারীরা আর খালি পৃষ্ঠাগুলি ফিল্টার করে না যা উপস্থাপকের দ্বারা প্রিফেচ দূরত্বকে সম্মান করার অনুমতি দেয় এমনকি অনেকগুলি খালি পৃষ্ঠাগুলি serted োকানো হয়। ( আই 9 সিএফএফ 6 , বি/162538908 )
সংস্করণ 3.0.0-Alpha05
আগস্ট 19, 2020
androidx.paging:paging-*:3.0.0-alpha05
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-Alpha05 এ এই কমিটগুলি রয়েছে।
বাগ ফিক্স
- উপস্থাপিত ডেটা ভারীভাবে ফিল্টার করা হলেও পেজিং এখন সঠিকভাবে পৃষ্ঠাগুলি প্রিফেচ করে
- রিটার্নিং
LoadResult.Error
রিট্রিড লোডে আর ভুলভাবে পুনরায় ট্রিগার পুনরায় ট্রাই করার জন্য আইটেমের অ্যাক্সেসের কারণ হয় না
বাহ্যিক অবদান
- কিছু পরীক্ষা পরিষ্কার করতে সহায়তা করার জন্য ক্লারা এফকে ধন্যবাদ! ( 549612 )
সংস্করণ 3.0.0-Alpha04
আগস্ট 5, 2020
androidx.paging:paging-*:3.0.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-Alpha04 এ এই কমিটস রয়েছে।
এপিআই পরিবর্তন
- ট্রিগার পৃষ্ঠা লোড ছাড়াই উপস্থাপিত ডেটা অ্যাক্সেসের অনুমতি দেওয়ার জন্য
AsyncPagingDataDiffer
এবংPagingDataAdapter
peek()
এপিআই যুক্ত করা হয়েছে। ( I38898 , বি/159104197 ) -
PagingDataAdapter
এবংAsyncPagingDataDiffer
একটিsnapshot()
এপিআই যুক্ত করেছেন যাতে পৃষ্ঠা আনতে ট্রিগার না করে উপস্থাপিত আইটেমগুলি পুনরুদ্ধার করার অনুমতি দেয়। ( I566b6 , বি/159104197 ) - স্ট্যাটিক তালিকা উপস্থাপনের অনুমতি দেওয়ার জন্য একটি
PagingData.from(List<T>)
কনস্ট্রাক্টর যুক্ত করা হয়েছে, যা নির্দিষ্ট রাজ্যে স্থির তালিকাগুলি দেখানোর জন্য সামগ্রিক পেজিংডাটা প্রবাহের সাথে একত্রিত হতে পারে, যেমন প্রাথমিক রিফ্রেশ সমাপ্তির আগে বা কেবল পরীক্ষার রূপান্তরগুলির জন্য। ( আইডি 134 ডি ) - ডেটারফ্রেশ ফ্লো / শ্রোতার এপিআইগুলি হ্রাস করুন কারণ তারা উপস্থাপিত আইটেমগুলি রিফ্রেশে প্রকাশ করার উদ্দেশ্যে করা হয়েছিল, তবে লোডস্টেট প্রবাহ / শ্রোতার কলব্যাক টাইমিং এবং আইটেমকাউন্ট সম্পত্তির উন্নতির সাথে এটি অপ্রয়োজনীয় ( আইএ 19 এফ 3 )
-
PagingSource
এবংRemoteMediator
জন্য আরএক্সজ্যাভি 3 সামঞ্জস্যতা মোড়ক যুক্ত করা হয়েছে ( আই 49 এফ 3 , বি/161480176 )
বাগ ফিক্স
-
PositionalDataSource
toPagingSourceFactory
হেল্পারের মাধ্যমেPagingSource
রূপান্তরিত হয়েছে, কক্ষ দ্বারা উত্পাদিতPagingSource
সহ এখন সঠিকভাবে জাম্পিংকে সমর্থন করার জন্য নিজেকে চিহ্নিত করুন। ( I3e84c , খ/162161201 ) - একটি বাগ ঠিক করা হয়েছে যেখানে সাবমিটডেটার সিঙ্ক্রোনাস বৈকল্পিক ব্যবহার করে কখনও কখনও একটি দৌড়ের দিকে পরিচালিত করে যা একটি
ClosedSendChannelException
( আই 4 ডি 702 , বি/160192222 ) তৈরি করে
বাহ্যিক অবদান
- স্ল্যাকের পক্ষে RXJAVA3 সামঞ্জস্যতা মোড়ক যুক্ত করার জন্য জ্যাক সুইয়ার্সকে ধন্যবাদ! ( I49ef3 , খ/161480176 )
সংস্করণ 3.0.0-Alpha03
22 জুলাই, 2020
androidx.paging:paging-*:3.0.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-Alpha03 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- পেজিংস্টেটের কনস্ট্রাক্টর এখন সর্বজনীন, যা গেটরেফ্রেশকি () এর পরীক্ষার বাস্তবায়নগুলি সহজ করে তোলে ( আই 8 বিএফ 15 )
- মূল এবং কোটলিন ভেরিয়েন্টগুলির মধ্যে অস্পষ্টতা সমাধানের জন্য জাভা থেকে ডাটাসোর্স কোটলিন মানচিত্রের ফাংশন ভেরিয়েন্টগুলি এইচআইডি করুন। ( If7b23 , খ/161150011 )
- কোটলিন ব্যবহারকারীদের সুবিধার্থে রিডানড্যান্ট এপিআইগুলি @জেভিএমসিন্থেটিক ( i56ae5 ) চিহ্নিত করা হয়েছে
- লোডরেসাল্ট.পেজের কনস্ট্রাক্টর এর জন্য ওভারলোডগুলি যুক্ত করা হয়েছে যা আইটেমগুলি ডিফল্ট করে এবং আইটেমগুলি কাউন্ট_অ্যান্ডফাইন্ডে ( আই 47849 ) এ ডিফল্ট করে
- বিদ্যমান পেজিংডাটা অপারেটররা সাসপেন্ডিং পদ্ধতিগুলি গ্রহণ করে এবং জাভা ব্যবহারকারীদের জন্য নতুন ম্যাপসিনসি, ফ্ল্যাটম্যাপসিঙ্ক এবং ফিল্টারসনে অ-সাসপেন্ডিং অপারেটর প্রবর্তন করে। বিদ্যমান রূপান্তর পদ্ধতিগুলি এক্সটেনশন ফাংশনে স্থানান্তরিত করা হয়েছে তাই কোটলিন ব্যবহারকারীদের এখন সেগুলি আমদানি করতে হবে। ( I34239 , বি/159983232 )
বাগ ফিক্স
- রুম (এবং পজিশনালড্যাটাসোর্স) প্যাগিংসোর্সগুলি এখন প্রথম পৃষ্ঠার অংশ হিসাবে একটি শীর্ষস্থানীয় বিভাজক প্রদর্শন করবে, সুতরাং এটি প্রকাশ করার জন্য ব্যবহারকারীকে স্ক্রোল করার দরকার নেই। ( I6f747 , বি/160257628 )
- স্থানধারীদের মধ্যে আইটেম অ্যাক্সেস করে এখন কোনও পৃষ্ঠা ফিরে না আসা পর্যন্ত প্যাগিংসোর্স লোডগুলি সঠিকভাবে ট্রিগার করে যা পেজিংডাটা.ফিল্টার () ( আই 95625 , বি/158763195 ) দ্বারা রূপান্তরিত হওয়ার পরে অনুরোধ করা সূচকটি পূরণ করে
- এমন একটি বাগের জন্য ঠিক করুন যেখানে কখনও কখনও প্যাগিংসোর্স ফেরত দেওয়ার পরে স্ক্রোলিং একটি ত্রুটি পেজিংডাটাএডাপ্টার.রেট্রি () পুনরায় চেষ্টা করা থেকে বিরত রাখতে পারে। ( আই 1084 এফ , বি/160194384 )
- কোনও পৃষ্ঠা বাদ দেওয়ার পরে আইটেম অ্যাক্সেস করে এমন একটি সমস্যা সমাধান করে যেখানে আইটেম অ্যাক্সেস প্রিফেচডিস্ট্যান্সের মধ্যে ছিল ( আইই 95 এ , বি/160038730 )
- Pagingconfig.maxsize সেট করা একটি ড্রপ ইভেন্টের পরে স্থানধারীদের আর সক্ষম করে না ( i2be29 , বি/1596677766 )
সংস্করণ 3.0.0-Alpha02
জুন 24, 2020
androidx.paging:paging-*:3.0.0-alpha02
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-ALPHA02 এ এই কমিটগুলি রয়েছে।
এপিআই পরিবর্তন
- সাধারণ ডিফল্ট মানগুলির সাথে
PagingConfig
কনস্ট্রাক্টর ( আই 39 সি 50 , বি/158576040 ) এর জন্য ওভারলোডগুলি যুক্ত করা হয়েছে - সাধারণ ডিফল্ট মানগুলির সাথে
PagingDataAdapter
এবংAsyncPagingDataDiffer
কনস্ট্রাক্টরদের জন্য ওভারলোড যুক্ত করা হয়েছে ( ie91f5 ) - অ্যাডাপ্টার এপিআই,
dataRefreshFlow
এবংdataRefreshListener
এখন একটিPagingData
খালি আছে কিনা তা সংকেত দেওয়ার জন্য একটি বুলিয়ান পাস করে ( i6e37e , বি/159054196 ) - রিমোটেমডিয়েটারের জন্য আরএক্সজাভা এবং পেয়ারা এপিআই যুক্ত করেছেন - আরএক্সআরমোটেমিডিয়েটর এবং শ্রবণযোগ্য ফিউটারমোটেমিডিয়েটর
- সাধারণ আইটেম অ্যাক্সেসের জন্য পেজিংস্টেটে সহায়ক যুক্ত করেছেন যেমন
isEmpty()
এবংfirstItemOrNull()
( আই 3 বি 5 বি 6 , বি/158892717 )
বাগ ফিক্স
- পেজার এখন অবৈধ প্যাগিংসোর্সেসের দুর্ঘটনাজনিত পুনরায় ব্যবহার রোধ করতে কারখানায় প্যাগিংসোর্স পুনরায় ব্যবহারের জন্য পরীক্ষা করে, যা একটি অস্পষ্ট ত্রুটি দিয়েছে ( আই 99809 , বি/158486430 )
- রিমোটেমডিয়েটর রিফ্রেশ থেকে ব্যর্থতা আর প্যাগিংসোর্স লোডিং থেকে রোধ করে না ( i38b1b , বি/158892717 )
-
submitData
অ-সাসপেন্ডিং সংস্করণটি যখনsubmitData
স্থগিতাদেশের সংস্করণটির পরে ডাকা হয় তখন একাধিকPagingData
একযোগে সংগ্রহের কারণে আর ক্র্যাশ ঘটায় না। ( আই 26358 , বি/158048877 ) - কনফিগার পরিবর্তনের পরে ঘটতে পারে এমন ব্যতিক্রম স্থির "পেজার থেকে দু'বার সংগ্রহ করতে পারে না"
সংস্করণ 3.0.0-alpha01
জুন 10, 2020
androidx.paging:paging-*:3.0.0-alpha01
প্রকাশিত হয়েছে। সংস্করণ 3.0.0-alpha01-এ এই কমিট রয়েছে।
বেশ কয়েকটি বড় নতুন বৈশিষ্ট্য সক্ষম করতে পেজিং লাইব্রেরিটি 3.0 এ আপডেট হয়েছে।
3.0 এর নতুন বৈশিষ্ট্য
- কোটলিন করুটাইনস এবং প্রবাহের জন্য প্রথম শ্রেণির সমর্থন।
- করুটাইনস সাসপেন্ড ফাংশনগুলির সাথে অ্যাসিঙ্ক লোডিংয়ের জন্য সমর্থন, আরএক্সজাভা একক বা পেয়ারা শ্রবণযোগ্য ফিউচার আদিম ।
- পুনরায় চেষ্টা এবং রিফ্রেশ কার্যকারিতা সহ প্রতিক্রিয়াশীল ইউআই ডিজাইনের জন্য অন্তর্নির্মিত লোড স্টেট এবং ত্রুটি সংকেত ।
- সংগ্রহস্থল স্তর উন্নতি
- সরলীকৃত ডেটা উত্স ইন্টারফেস
- সরলীকৃত নেটওয়ার্ক + ডাটাবেস পৃষ্ঠাগুলি
- বাতিল সমর্থন
- উপস্থাপনা স্তর উন্নতি
পরিচিত সমস্যা
- পেজিং 3 জাভাডোকগুলি এখনও উপলভ্য নয়। অন্তর্বর্তী সময়ে, দয়া করে উপরের লিঙ্কযুক্ত গাইডগুলি বা কোটলিন ডক্স ব্যবহার করুন। ( খ/158614050 )
সংস্করণ 2.1.2
সংস্করণ 2.1.2
18 মার্চ, 2020
androidx.paging:paging:2.1.2
প্রকাশিত হয়েছে। সংস্করণ ২.১.২ এর মধ্যে ২.১.০ এর বিপরীতে এই প্রতিশ্রুতি রয়েছে ।
বাগ ফিক্স
- অবৈধতার সময় কোনও অবস্থানকে রূপান্তর করার সময় বিরল ক্ষেত্রে
IndexOutOfBoundsException
জন্য ঠিক করুন।
প্রকাশের বিষয়টি
পেজিং সংস্করণ
2.1.1
একটি ভুল কনফিগার করা শাখা থেকে ভুলভাবে প্রকাশিত হয়েছিল, ভবিষ্যতে প্রকাশে আসন্ন আংশিক-বাস্তবায়িত এপিআই এবং কার্যকারিতা প্রকাশ করে।পেজিং
2.1.2
লোড-সেন্টারিং ফিক্সটি মূলত ২.১.১ এ প্রকাশিত হয়েছে, তবে এবার ২.১.০ রিলিজের উপরে সঠিকভাবে চেরি-বাছাই করা হয়েছে। আপনি যদি বর্তমানে ২.১.১ এ থাকেন তবে এই প্রকাশে আপগ্রেড করার জন্য দৃ strongly ়ভাবে সুপারিশ করা হয়।
সংস্করণ 2.1.1
সংস্করণ 2.1.1
18 ডিসেম্বর, 2019
androidx.paging:paging-*:2.1.1
প্রকাশিত হয়েছে। সংস্করণ 2.1.1-এ এই কমিটগুলি রয়েছে ।
বাগ ফিক্স
- প্লেসহোল্ডাররা অক্ষম হয়ে গেলে এখন পজিশনালড্যাটাসোর্সগুলি থেকে সুস্পষ্ট প্রাথমিক লোডগুলি এখন শেষ অ্যাক্সেসকে কেন্দ্র করে থাকে
সংস্করণ 2.1.0
সংস্করণ 2.1.0
25 জানুয়ারী, 2019
পেজিং 2.1.0
2.1.0-rc01
থেকে কোনও পরিবর্তন ছাড়াই প্রকাশিত হয়।
সংস্করণ 2.1.0-rc01
ডিসেম্বর 6, 2018
পেজিং 2.1.0-rc01
2.1.0-beta01
থেকে কোনও পরিবর্তন ছাড়াই প্রকাশিত হয়।
সংস্করণ 2.1.0-beta01
নভেম্বর 1, 2018
পেজিং 2.1.0-beta01
2.1.0-alpha01
থেকে কোনও পরিবর্তন ছাড়াই প্রকাশিত হয়।
সংস্করণ 2.1.0-alpha01
অক্টোবর 12, 2018
পেজিং 2.1.0-alpha01
দুটি প্রধান সংযোজন রয়েছে - পৃষ্ঠা ড্রপিং, এবং প্রতিটি শিল্পকর্মের জন্য কেটিএক্স এক্সটেনশন লাইব্রেরি - পাশাপাশি বেশ কয়েকটি অন্যান্য এপিআই পরিবর্তন এবং বাগফিক্স।
এপিআই পরিবর্তন
- মেমরিতে লোড হওয়া আইটেমের সংখ্যা সীমাবদ্ধ করার জন্য
PagedList.Config.Builder.setMaxSize()
যুক্ত করা হয়েছে। -
androidx.paging.Config()
যোগ করা হয়েছেPagedList.Config.Builder
জন্য কোটলিন বিকল্প হিসাবে -
androidx.paging.PagedList()
যোগ করা হয়েছেPagedList.Builder
জন্য কোটলিন বিকল্প হিসাবে -
LivePagedListBuilder
জন্য কোটলিন বিকল্প হিসাবেDataSourceFactory.toLiveData()
যুক্ত করা হয়েছে -
RxPagedListBuilder
এর জন্য কোটলিন বিকল্প হিসাবেDataSourceFactory.toObservable()
এবংtoFlowable()
যুক্ত করা হয়েছে - পেজডলিস্টটি অদলবদল করার সময় শোনার জন্য
AsyncPagedListDiffer.addPagedListListener()
যুক্ত করা হয়েছে। বি/111698609 -
PagedListAdapter.onCurrentListChanged()
যুক্ত করা হয়েছে on -
PagedListAdapter/AsyncPagedListDiffer.submitList()
বৈকল্পিকগুলি যুক্ত করা হয়েছে যা একটি অতিরিক্ত কলব্যাক নেয় যা/যখন পেজডলিস্টটি প্রদর্শিত হয়, তখন পৃথক হওয়ার পরে ট্রিগার করে। এটি আপনাকে অন্যান্য ইউআই আপডেটের সাথে একটি পেজডলিস্ট অদলবদল সিঙ্ক্রোনাইজ করতে দেয়। বি/73781068 -
PagedList.getLoadedCount()
আপনাকে কতগুলি আইটেম স্মৃতিতে রয়েছে তা জানাতে যুক্ত হয়েছে। নোট করুন যে স্থানধারীরা অক্ষম থাকলে রিটার্ন মান সর্বদা.size()
এর সমান।
বাগ ফিক্স
- তালিকাগুলি পুনরায় ব্যবহার করা হলে বি/111591017 পুনরায় ব্যবহার করা হলে একটি জাতি শর্ত স্থির করে
-
PagedList.loadAround()
এখন সূচকটি অবৈধ হলেIndexOutOfBoundsException
নিক্ষেপ করে। পূর্বে এটি একটি অস্পষ্ট অন্যান্য ব্যতিক্রমের সাথে ক্র্যাশ করতে পারে। - এমন একটি কেস স্থির করা হয়েছে যেখানে অপরিবর্তিত ডেটার সাথে একত্রে অত্যন্ত ছোট প্রাথমিক লোডের আকারটি বি/113122599 এর আর কোনও লোডিং হবে না
সংস্করণ 2.0.0
সংস্করণ 2.0.0
অক্টোবর 1, 2018
পেজিং 2.0.0
একটি একক বাগফিক্স দিয়ে প্রকাশিত হয়।
বাগ ফিক্স
-
PositionalDataSource
এবং স্থানধারক বি/114635383 ব্যবহার করে খুব দ্রুত স্ক্রোলিংয়ের সাথে ঘটতে পারে এমন একটি ক্র্যাশ স্থির করে।
সংস্করণ 2.0.0-beta01
জুলাই 2, 2018
বাগ ফিক্স
- কিছু প্রিপেন্ড কেস (স্থানধারক অক্ষম, পজিশনালড্যাটাসোর্স) বি/80149146 এ স্থির সামগ্রী অদৃশ্য
- (ইতিমধ্যে
1.0.1
এ প্রকাশিত হয়েছে) স্থির ক্র্যাশগুলি যেখানেPagedListAdapter
এবংAsyncPagedListDiffer
সরানোর ইভেন্টগুলিকে সংকেত দিতে ব্যর্থ হবে। বি/110711937
প্রাক-অ্যান্ড্রয়েডএক্স নির্ভরতা
পেজিংয়ের প্রাক-অ্যান্ড্রয়েডএক্স সংস্করণগুলির জন্য, এই নির্ভরতাগুলি অন্তর্ভুক্ত করুন:
dependencies {
def paging_version = "1.0.0"
implementation "android.arch.paging:runtime:$paging_version"
// alternatively - without Android dependencies for testing
testImplementation "android.arch.paging:common:$paging_version"
// optional - RxJava support
implementation "android.arch.paging:rxjava2:$paging_version"
}
সংস্করণ 1.0.1
সংস্করণ 1.0.1
জুন 26, 2018
পেজিং 1.0.1
runtime
একটি একক বাগফিক্স দিয়ে প্রকাশিত হয়। স্থিতিশীলতার জন্য আমরা 1.0.1
ব্যবহার করার পরামর্শ দিই। পেজিং আরএক্সজাভা 2 1.0.1
এছাড়াও প্রকাশিত হয় এবং এটি 1.0.0-rc1
এর সমান।
বাগ ফিক্স
- ফিক্সড ক্র্যাশগুলি যেখানে
PagedListAdapter
এবংAsyncPagedListDiffer
সরানো ইভেন্টগুলি সংকেত দিতে ব্যর্থ হবে। বি/110711937
Rxjava2 সংস্করণ 1.0.0
Rxjava2 সংস্করণ 1.0.0-আরসি 1
16 মে, 2018
পেজিং আরএক্সজাভা 2 1.0.0-rc1
প্রাথমিক আলফা থেকে কোনও পরিবর্তন ছাড়াই প্রার্থীকে মুক্তি দিতে চলেছে।
সংস্করণ 1.0.0
সংস্করণ 1.0.0-আরসি 1
এপ্রিল 19, 2018 পেজিং রিলিজ প্রার্থী
পেজিং 1.0.0
রিলিজের জন্য আমাদের আর কোনও পরিচিত সমস্যা বা নতুন বৈশিষ্ট্য নির্ধারিত নেই । দয়া করে আপনার প্রকল্পগুলি 1.0.0-rc1
ব্যবহার করতে আপগ্রেড করুন এবং এটি পরীক্ষা করতে আমাদের সহায়তা করতে সহায়তা করুন যাতে আমরা একটি রক সলিড 1.0.0
প্রেরণ করতে পারি।
এই প্রকাশে কোনও পরিবর্তন নেই, এটি 1.0.0-beta1
এর সমান।
সংস্করণ 1.0.0-BETA1
5 এপ্রিল, 2018
প্রার্থীকে মুক্তি দেওয়ার অগ্রগতির আগে পেজিং অল্প সময়ের জন্য বিটাতে থাকবে। আমরা Paging 1.0
এর জন্য আরও এপিআই পরিবর্তনের পরিকল্পনা করছি না এবং যে কোনও এপিআই পরিবর্তনের জন্য বারটি খুব বেশি।
পেজিং এর জন্য আলফা আরএক্সজাভা 2 সমর্থন একটি পৃথক al চ্ছিক মডিউল ( android.arch.paging:rxjava2:1.0.0-alpha1
) হিসাবে প্রকাশিত হয় এবং এটি স্থিতিশীল না হওয়া পর্যন্ত অস্থায়ীভাবে সংস্করণ করা হবে।
এই নতুন লাইব্রেরিটি LivePagedListBuilder
জন্য একটি আরএক্সজেভিএ 2 বিকল্প সরবরাহ করে, যা Executor
পরিবর্তে Scheduler
এস গ্রহণ করে Observable
এস এবং Flowable
এস তৈরি করতে সক্ষম:
কোটলিন
val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable()
জাভা
Observable<PagedList<Item>> pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable();
নতুন বৈশিষ্ট্য
-
RxPagedListBuilder
নতুনandroid.arch.paging:rxjava2
আর্টিফ্যাক্ট।
এপিআই পরিবর্তন
বিল্ডারদের মধ্যে নির্বাহকদের ভূমিকা স্পষ্ট করতে এপিআই পরিবর্তন করে:
setBackgroundThreadExecutor()
setFetchExecutor()
এর নামকরণ করা হয়েছে (PagedList.Builder
এবংLivePagedListBuilder
)setMainThreadExecutor()
নামকরণ করেsetNotifyExecutor()
(PagedList.Builder
) এ নামকরণ করুন।
ফিক্সড
PagedList.mCallbacks
সদস্য ব্যক্তিগত হতে।
বাগ ফিক্স
LivePagedListBuilder
আর্চ উপাদানগুলি আইও থ্রেড পুলের পরিবর্তে নির্দিষ্ট এক্সিকিউটারের উপর প্রাথমিকPagedList
লোড ট্রিগার করে।অভ্যন্তরীণ
DataSource
র্যাপারগুলিতে স্থির অকার্যকর আচরণ (DataSource.map
প্রয়োগ করতে ব্যবহৃত হয়, পাশাপাশি স্থানধারক-অক্ষমPositionalDataSource
লোডিং) বি/77237534
সংস্করণ 1.0.0-আলফা 7
21 মার্চ, 2018
পেজিং 1.0.0-alpha7
লাইফসাইকেলগুলির পাশাপাশি প্রকাশিত হয়েছে 1.1.1
। যেমন পেজিং আলফা 7 উপরে উল্লিখিত Function
শ্রেণীর সরানোর উপর নির্ভর করে, আপনাকে আপনার lifecycle:runtime
নির্ভরতা android.arch.lifecycle:runtime:1.1.1
।
পেজিং alpha7
পেজিং হিট বিটা হিট করার আগে চূড়ান্ত প্রকাশের পরিকল্পনা করা হয়েছে।
এপিআই পরিবর্তন
-
DataSource.LoadParams
অবজেক্টগুলিতে এখন একটি পাবলিক কনস্ট্রাক্টর এবংDataSource.LoadCallback
রয়েছে Load লোডক্যালব্যাক অবজেক্টগুলি এখন বিমূর্ত। এটি একটিDataSource
মোড়ানো বা সরাসরি একটি মক কলব্যাক সহ একটিDataSource
পরীক্ষা করতে সক্ষম করে। বি/72600421 - ডেটাসোর্স এবং ডেটাসোর্স.ফ্যাক্টরির জন্য ম্যাপার্স
-
map(Function<IN,OUT>)
আপনাকে কোনওDataSource
দ্বারা লোড হওয়া ফলাফলগুলি রূপান্তর, মোড়ানো বা সাজানোর অনুমতি দেয়। -
mapByPage(<List<IN>,List<OUT>>)
ব্যাচ প্রসেসিংয়ের জন্য একই সক্ষম করে (যেমন এসকিউএল থেকে লোড হওয়া আইটেমগুলি অতিরিক্তভাবে একটি পৃথক ডাটাবেস জিজ্ঞাসা করা প্রয়োজন, যা ব্যাচ হিসাবে করা যেতে পারে))
-
-
PagedList#getDataSource()
একটি সুবিধার্থে পদ্ধতি হিসাবে যুক্ত করা হয়েছে B/72611341 - সমস্ত অবমূল্যায়িত ক্লাসগুলি এপিআই থেকে অপসারণ করা হয়েছে,
recyclerview.extensions
LivePagedListProvider
-
DataSource.Factory
মানচিত্রের কার্যকারিতা সক্ষম করতে একটি ইন্টারফেস থেকে একটি বিমূর্ত শ্রেণিতে পরিবর্তন করা হয়।
বাগ ফিক্স
- চূড়ান্ত হতে নির্মাতাদের পরিবর্তন করেছে। বি/70848565
- রুম
DataSource
বাস্তবায়ন এখন মাল্টি-টেবিল কোয়েরিগুলি পরিচালনা করার জন্য স্থির করা হয়েছে-এই ফিক্সটি কক্ষ 1.1.0-বিটা 1 এর মধ্যে রয়েছে, উপরে দেখুন। - এমন একটি বাগ স্থির করা হয়েছে যেখানে
BoundaryCallback.onItemAtEndLoaded
প্লেসহোল্ডারদের সক্ষম করা থাকলে এবং মোট আকার পৃষ্ঠার আকারের সঠিক একাধিক হয় তবেPositionalDataSource
জন্য আহ্বান করা হবে না।
সংস্করণ 1.0.0-আলফা 5
জানুয়ারী 22, 2018
বাগ ফিক্স
- স্থানধারীরা বি/70573345 অক্ষম থাকলে পৃষ্ঠা লোডিং ঠিক করুন
- অবৈধরগমেন্ট এক্সসেপশন বাগ বি/70360195 (এবং অনুমানমূলক রুম-সাইড ফিক্স) ট্র্যাক করার জন্য অতিরিক্ত লগিং
- জাভাদোক নমুনা কোড ফিক্স বি/70411933 , বি/71467637