Apps-android-commons: Fix slowness of upload activity

Created on 3 Feb 2019  路  11Comments  路  Source: commons-app/apps-android-commons

I am using a decent Android phone and expect the app to run smoothly. But on the upload screen, I experience a noticeable lag in UI rendering. PFA the video:

https://drive.google.com/file/d/1ZMUt4RkxMlPFZcN1oKxxN5TacIYL_GOn/view?usp=sharing

The upload experience should be as smooth as possible. How can we improve the UI rendering?

  • Is there too much nesting of elements ie. too many View elements making the UI slow?
  • Is the keyboard forced to hide/show too many times? In the video its apparent that the lag is while changing the focus of EditText
  • The bottom card uses HeightLimitedRecyclerView which internally overrides onMeasure. Is it causing issues?
  • The background of the screen is rendering a full size Bitmap. Is it causing performance issues?
  • The screen uses Viewflipper and has a total of 4 child views. Would it be better to have individual activities/fragments for each of them?
  • Is the EditText for Title and Description attached to too many event listeners?
discussion user experience

Most helpful comment

@ShridharGoel The first step would be to investigate the causes. It would be great if you could pick up a couple of points and post the findings of your investigation here. Once we are able to identify concrete reasons, we can create separate issues and fix them. :)

I won't be marking the issue as assigned as this issue would benefit from insights from multiple contributors. :)

All 11 comments

I would like to improve this. Maybe we can just use hardware acceleration?

@ShridharGoel The first step would be to investigate the causes. It would be great if you could pick up a couple of points and post the findings of your investigation here. Once we are able to identify concrete reasons, we can create separate issues and fix them. :)

I won't be marking the issue as assigned as this issue would benefit from insights from multiple contributors. :)

  • Is the keyboard forced to hide/show too many times? In the video its apparent that the lag is while changing the focus of EditText

Two of the major problems that I feel are:

I have noticed this aspect quite a few times that that showing keyboard and then hiding keyboard toggle's the views. Yes this slows down the app's activity.
Also the toggling of the view are sometimes not smoothly carried out this also degrades the user experience. it would definitely be a better option to eliminate this view flipping

I have noticed this aspect quite a few times that that showing keyboard and then hiding keyboard toggle's the views. Yes this slows down the app's activity.

Would it help if the bottom and top cards are swapped ie, show the title/desc card at the top and image thumbnails at the bottom?

Also the toggling of the view are sometimes not smoothly carried out this also degrades the user experience. it would definitely be a better option to eliminate this view flipping

Do you mean removing ViewFlipper?

Would it help if the bottom and top cards are swapped ie, show the title/desc card at the top and image thumbnails at the bottom?

Yes I think we can try removing the cards and instead create a new layout which has EditText at the top and image at the bottom to prevent toggling of keyboard

Do you mean removing ViewFlipper?

Yes, ViewFlipper can be removed with individual activities and that might give a better user experience

Yes, ViewFlipper can be removed with individual activities and that might give a better user experience

Let's investigate a bit before making this change. I am optimistic that this would improve performance but it would be a decently big task. So, let us dig up a few articles/references before working on it. :)

Let's investigate a bit before making this change. I am optimistic that this would improve performance but it would be a decently big task. So, let us dig up a few articles/references before working on it. :)

Yes definitely I'll go through some reading s to first know the reason for this

  • The screen uses Viewflipper and has a total of 4 child views. Would it be better to have individual activities/fragments for each of them?

With #1192 in progress, where we need to place edit option for images shall we beforehand update the upload activity to support activities instead of view flippers?

I am fine with picking this up before #1192 but it might take a decent amount of changes to convert it to different activities. So if you are willing to take it to completion then feel free to take this up.

@maskaravivek So do you have any particular UI in my mind if we want to change it to activities?

I think we can UI as it is. Just split it into activities

  • UploadActivity >> that receives the images ie the first screen
  • CategorySelectionActivity >> that allows you to select categories
  • LicenseSelectionActivity that lets you select the license
Was this page helpful?
0 / 5 - 0 ratings