SpinWill
1.0.0
مكتبة حديثة وقابلة للتخصيص للغاية لتنفيذ ميزة الدوران في تطبيق Android الخاص بك والتي تأتي مليئة بدعم قواعد البيانات المحلية في ثناياه عوامل يتيح لك جلب وتخزين عناصر المكافآت بشكل دوري؟

// on jitpack.io
implementation 'com.github.sidsharma2002:SpinWill:[latest_version]'
قم بإنشاء وحفظ مثيل الحاقن هذا (الموصى به لتكون مخطوطة للتطبيق)
private val injector by lazy { SpinWillInjector<SpinWillItem>() // We are assuming SpinWillItem is the reward item model class. }
توفير التبعيات التالية للحاقن:
مثال :
injector.init(this, RemoteDatabaseImpl()) // impl of SpinWheelRemoteDatabase
// provide localDatabase
injector.setLocalDatabase(
// predefined impl provided by the library
SpinWillLocalDbImpl(daoActions) // provide daoActions to the local db
)
// provide bitmap load usecase
injector.setBitmapLoadUseCase(
// predefined impl provided by the library
SpinWillBitmapLoadUseCaseImpl(
this.applicationContext,
// provide the ItemAdapter
object : WillItemAdapter<SpinWillItem> {
override fun getRewardImageUrl(item: SpinWillItem): String {
return item.rewardImage
}
override fun setRewardBitmap(item: SpinWillItem, bitmap: Bitmap) {
item.rewardBitmap = bitmap
}
})
)
}
// customise according to your usecase
val workReq = PeriodicWorkRequest = PeriodicWorkRequest.Builder(
SpinWillWorker::class.java, x, TimeUnit.MINUTES
)
Configuration.Builder()
.setMinimumLoggingLevel(Log.DEBUG)
.setWorkerFactory(SpinWillWorkerFactory(injector.getRepository()))
.build()
WorkManager.getInstance(this)
.enqueueUniquePeriodicWork(
"spinwill_item_update",
ExistingPeriodicWorkPolicy.REPLACE,
workReq
)
// add SpinWillView1
val willView = SpinWillView1<SpinWillItem>(this)
someLayout.addView(willView)
// run on background thread
injector.getRepository().fetchAndUpdateWheelItem()
val result = injector.getRepository().loadBitmapAndSave()
if (result is Resource.Success && result.data != null) {
runOnUiThread {
// set data items
willView.setItems(result.data!!)
// provide adapter for the items
willView.setItemAdapter(object : WillItemUiAdapter<SpinWillItem> {
override fun getRewardText(item: SpinWillItem): String {
return item.rewardText
}
override fun getOverlayText(item: SpinWillItem): String {
return item.rewardText
}
override fun getRewardBitmap(item: SpinWillItem): Bitmap? {
return item.rewardBitmap
}
})
// invalidate the view
willView.invalidate()
}
}