Skip to content

Instantly share code, notes, and snippets.

View fluxtah's full-sized avatar

Ian Warwick fluxtah

  • Just Eat
  • London
View GitHub Profile
@fluxtah
fluxtah / Example.java
Created April 30, 2012 15:26
A fluent android sqlite selection query builder useful for constructing content provider selections with arguments
SelectionQueryBuilder q = new SelectionQueryBuilder()
.expr("is_awesome", EQ, true)
.expr("money", GT, 50.0f)
.expr("speed", LT, 21.1f)
.or()
.expr("door_number", EQ, 123)
.or().expr(
new SelectionQueryBuilder()
.expr("a", GT, 0)
.expr("a", LT, 100)
class HelloJubakoActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_jubako_recycler)
recyclerView.withJubako(this).load {
for (i in 0..100) {
addView { textView("Hello Jubako!") }
addView { textView("こんにちはジュバコ") }
}
recyclerView.withJubako(this).load(SimpleJubakoAssembler {
for (i in 0..100) {
add(object : ContentDescriptionProvider<Any> {
override fun createDescription(): ContentDescription<Any> {
return ContentDescription(
viewHolderFactory = viewHolderFactory {
object : JubakoViewHolder<Any>(textView("Hello Jubako!")) {
override fun bind(data: Any?) {}
}
},
class SimpleCarouselsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_jubako_recycler)
// Set page size to 1 so we can see it loading (descriptions are delayed by 500ms)
recyclerView.withJubako(this, pageSize(1)).load {
(0 until 100).forEach { i ->
addRecyclerView(
companion object {
fun getNumbersEnglish(): LiveData<List<String>> {
return object : LiveData<List<String>>() {
override fun onActive() {
GlobalScope.launch(Dispatchers.IO) {
delay(500)
postValue(listOf("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight"))
}
}
}
// Set page size to 1 so we can see it loading (descriptions are delayed by 500ms)
recyclerView.withJubako(this, pageSize(1)).load {
(0 until 100).forEach { i ->
addRecyclerView(
//
// Inflate a view for our carousel
//
view = { inflater, parent ->
inflater.inflate(R.layout.simple_carousel, parent, false)
},
class InfiniteHelloJubakoActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_jubako_recycler)
recyclerView.withJubako(this).load(HelloAssembler())
}
class HelloAssembler : SimpleJubakoAssembler() {
var counter = 0
val data = PaginatedLiveData<String> {
hasMore = { loaded.size < 100 }
nextPage = {
listOf("Hello")
}
}
addRecyclerView(
view = { inflater, parent ->
inflater.inflate(R.layout.simple_carousel, parent, false)
},
data = PaginatedLiveData<String> {
hasMore = { loaded.size < 100 }
nextPage = {
delay(2000)
listOf("Hello")
}
@Composable
fun CardDesignerScreen(repository: MemoryCardRepository = get(), cardUuid: String? = null) {
val state = remember { CardDesignerState() }
if (cardUuid != null && cardUuid.isNotEmpty()) {
observe({ repository.getCard(cardUuid) }) {
state.card = it
state.loadingState = LoadingState.Loaded
}
}