Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Feb 01 15:17
    KaiMaStarling commented #229
  • Jan 29 11:48
    dvdciri edited #231
  • Jan 29 11:47
    dvdciri opened #231
  • Jan 29 11:43
    dvdciri commented #97
  • Jan 29 11:02
    mpatsis opened #230
  • Nov 03 2020 16:15
    CharlyLafon37 commented #142
  • Sep 24 2020 01:03
    tomblenz commented #224
  • Jun 04 2020 19:27
    tomblenz commented #224
  • May 04 2020 09:28
    oskitar89 opened #229
  • Nov 26 2018 10:27
    pipixiawomen commented #77
  • Jul 31 2018 07:09
    z907758247 commented #224
  • Jun 26 2018 02:06
    jihunim opened #228
  • Apr 27 2018 07:53
    varunchandran333 edited #227
  • Apr 27 2018 07:53
    varunchandran333 edited #227
  • Apr 27 2018 07:52
    varunchandran333 edited #227
  • Apr 27 2018 07:52
    varunchandran333 opened #227
  • Mar 05 2018 23:13
    debjitk commented #225
  • Feb 15 2018 06:44
    raghav-g commented #224
  • Jan 26 2018 03:43
    banking commented #77
  • Dec 25 2017 17:58
    oleksiyp closed #226
Tonic Artos
@TonicArtos
I understand.
Corin Lawson
@au-phiware
Thanks for taking the time to talk to me; I look forward to checking out what you've done, tomorrow :smile:
Tonic Artos
@TonicArtos
No problems mate. Have a good one!
Tonic Artos
@TonicArtos

I didn't have as much time to put in as I'd hoped. I'll have to get the upload done tomorrow. For now, here is an incomplete version in a gist. https://gist.github.com/TonicArtos/c5df9906547655e3de94

For now, of most interest is Section.java, SectionGraphAdapter.java, and SectionConfiguration.java. They provide the bulk of the interface clients work with.

Alright, good night for now.
Tonic Artos
@TonicArtos
Argh, some components in Android are just a pain when running unit tests.
Anyway, I've just got a couple of tests that aren't passing now.
Corin Lawson
@au-phiware
Thanks for the update... I was beginning to wonder...
I might check back here in a few hours. I can't wait to give it a spin! :smile:
Tonic Artos
@TonicArtos
Good news. I got some free time during my lunch. I've separated out the new adapter, accompanying tests and demo app. It is all uploaded to the orphan branch version5. https://github.com/TonicArtos/SuperSLiM/tree/version5
The demo app is currently backed by a regular LinearLayoutManager/RecyclerView as the SuperSLiM LayoutManager is not yet finished or working.
Corin Lawson
@au-phiware
Thanks @TonicArtos , Kotlin's new to me but I'll take a closer look in the morning...
Corin Lawson
@au-phiware
the demo app works well, but I was hoping to play around with the grid layout...
Tonic Artos
@TonicArtos
I have to write it. That will be simple, once I have finalised the interaction between the section graph and data changes. It is a little tricky because RecyclerView handles a lot of this with predictive actions and a double layout pass. However, I have to do some extra stuff for sections and make sure it works well with RecyclerView.
Tonic Artos
@TonicArtos
Alright, I have a solution to easily support horizontal and vertical orientations, reverse, stack from end, ttb, btt, in addition to the previously supported ltr and rtl locale layout directions. It is pretty simple actually.
Corin Lawson
@au-phiware

@TonicArtos, I don't know if you noticed my commits on your gist above...

I didn't have as much time to put in as I'd hoped. I'll have to get the upload done tomorrow. For now, here is an incomplete version in a gist. https://gist.github.com/TonicArtos/c5df9906547655e3de94

For now, of most interest is Section.java, SectionGraphAdapter.java, and SectionConfiguration.java. They provide the bulk of the interface clients work with.

But I went ahead and implemented my ideas based on early_release_4 branch: https://github.com/au-phiware/SuperSLiM/tree/lazy-adapter
It wasn't as simple as I thought (nothing ever is!) but it does remove the Item abstractions, which in my view are and should be an implementation concern of the user of SuperSLiM
Corin Lawson
@au-phiware
@TonicArtos have you push the up-to-date layout manager code?
I've noticed that getChildAt can and often does return null, which is causing most of the problems that I encounter with SuperSLiM... I've put in some error checking and either continued or breaked out of for loops, which seems to get me out of trouble... but I'm finding a lot of the layout stuff hard to follow...
Tonic Artos
@TonicArtos
Hi, I've been sick so my off-time has been spent sleeping instead of working on sslm. The old layout stuff was complicated as slms were internally stateless, there was lots of looking back and forwards in the adapter and child list to figure things out. This also caused many problems with animations and image caching. Anyway, this week I intend to have the new implementation ready for testing.
Corin Lawson
@au-phiware
no worries, hope you're feeling better :)
I've moved on to application logic and other stuff, but would definitely try out the new layout manager when it's ready...
Tonic Artos
@TonicArtos
I am still working on tracking data changes across recyclerview layouts.
Tonic Artos
@TonicArtos
Sorry, posting from mobile here. I am moving house at the moment, so I haven't gotten the latest changes up. I figured out the strange things (perfectly understandable) recycler view was doing that was causing problems. I will hopefully have an internet connection again next week and I'll have the changes up then.
Corin Lawson
@au-phiware
Sounds great Tonic, thanks for the update :)
Tonic Artos
@TonicArtos
Still waiting on the Internet connection. Maybe it will happen next week. Super annoying.
Brandon Wilson (Stramz)
@Bcsmartz
Please help me get SBT to recognize the new android support v7 library
Tonic Artos
@TonicArtos

Milestone 1 is complete, check it out on the version5 branch.

About version 5

Version 5 is a new implementation of SuperSLiM that works using an internal graph of your data set. This solves many problems with the old design. In Milestone 1, version 5 renders your data set as a graph of sections and items. It supports horizontal and vertical configurations, in addition to the other common layout configurations for RecyclerView. Oh yes, it also works with RecyclerView's predictive animations. The design is also simpler to use and easier to extend. However, right now that actual layout is incomplete as it does not scroll.

Milestone 2 is focused on bringing the library up to a usable point. It will add scrolling, a complete linear section layout, a complete set of header layouts, and a few other things. There are a few more planned milestones too. Please see the project plan for more information.

bejibx
@bejibx
Hi there! Am I right SuperSLIM now supports add/remove animations?
Corin Lawson
@au-phiware
Hi @TonicArtos, I've been offline due to the arrival of my daughter mid-December! It's great to see milestone 1 (I've now subscribe to some of the Trello boards). It's quite the departure from the old code and I don't see how I can incorporate the adapter that I wrote :( Do you see any merit in it? I have some pressing deadlines and I don't believe I'll be able to move forward with version5 until it reaches milestone 2 + grid layouts, so in the meantime I will address some problems that I am encountering with version 4...
Zack Juhasz
@zjuhasz
Any updates on V5?
Tonic Artos
@TonicArtos

Sorry, my life took a bit of a spin. I don't really want to get in to it, but I realise that I should have let you all know things were not the best.

Anyway, V5 is coming along again. It looks like I am able to put aside a few days a week for the foreseeable future so I anticipate being able to knock out milestones 2 & 3 in the next month. As for current progress: Most of the items in Milestone 2 are finished, I also ended out getting grid layouts mostly done. Getting scrolling to work properly has been a real chore, it is also part of why I decided to get to work on grid layout already as I wanted to make sure it all worked fine together. Finishing and testing scrolling is probably a few more days work. Based on the time I have available I'll probably get out Milestone 2 before the end of the March.

@au-phiware Congratulations. I hope you and your family are doing well. I did look through your adapter back then, but I was already well into revisiting the graph implementation and how the library wraps around RecyclerView. Obviously version5 isn't very relevant for the moment, however I also don't have the time for now to try and patch things up with version4 either. Not that version4 is fixable in any way, it is just not good.
Corin Lawson
@au-phiware
I think you mean "unfixable" :)
Yes I fixed a couple of little things and haven't encountered any crashes since but occasionally an item won't display if it is the only item in the list... but that might be caused by my adapter not have the data ready at the right time :/
Tonic Artos
@TonicArtos
The new design should solve this problem.
Zack Juhasz
@zjuhasz
Great news @TonicArtos thanks for the update
Tonic Artos
@TonicArtos
Okay, I've almost got it all done. I am going to see about getting a release up on Maven too.
bejibx
@bejibx
Yes! I'm so excited about this release!
mahendranv
@mahendranv

Thanks for the great library.

It seems first section item are overlapped by section header? Or am I doing anything wrong?

Tonic Artos
@TonicArtos
You're welcome. For your problem, it is probably best to wait for version5.
Tonic Artos
@TonicArtos
I ran into some basic problems which I should have caught with my tests. I am currently going over everything again and checking all my tests.
Tonic Artos
@TonicArtos
Writing tests for the layouts is driving me nuts. I wish it was simpler.
Tonic Artos
@TonicArtos
Okay, I ended out spending more of my free time with health issues. They were the best of times. Anyway, I got the problems with the new version of support lib fixed. I ran into some additional issues on the way, but that is all resolved too. As for scrolling, well... I've had to go over it a few times now. Getting all the parts to work in isolation has been quite a difficult task. Every time I think I have it sorted out on paper, there is another complexity that throws it all in a spin. I've gone through it all and added layout state tracking between layout and scroll events. I've made sure all layouts are working in isolation as much as possible. In my last pass I completely separated header layouts and section layouts; sections with headers are now logically a section with a single subsection, insofar as the header layout manager is concerned. I am very excited to get it all working. I just need more time to put into it!
Tonic Artos
@TonicArtos
I updated the wiki with a whole bunch of version5 related developer documentation.
Tonic Artos
@TonicArtos
Alright, padding is in so scrolling can now be finished.
Padding is inserted at the HLM level. The root section takes its padding from the recycler view and initialises the HLM layout helper with it. Other sections use their own padding here. HLMs handle all the complications of padding, insulating SLMs from it all. HLM.layout is also padding agnostic as that part is handled in the layout helper. However, the HLM fill and trim methods (scrolling related methods) have to handle padding effects.