Loading app/src/main/java/io/eelo/appinstaller/categories/category/CategoryActivity.kt +9 −1 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ import android.view.MenuItem import android.view.View import android.widget.LinearLayout import android.widget.ProgressBar import android.widget.RelativeLayout import android.widget.TextView import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application Loading Loading @@ -49,15 +50,19 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio categoryViewModel = ViewModelProviders.of(this).get(CategoryViewModel::class.java) recyclerView = findViewById(R.id.app_list) val loadMoreContainer = findViewById<RelativeLayout>(R.id.load_more_container) progressBar = findViewById(R.id.progress_bar) val errorContainer = findViewById<LinearLayout>(R.id.error_container) val errorDescription = findViewById<TextView>(R.id.error_description) // Initialise UI elements recyclerView.visibility = View.GONE loadMoreContainer.visibility = View.GONE recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { if (!recyclerView.canScrollVertically(1)) { loadMoreContainer.visibility = View.VISIBLE recyclerView.scrollToPosition(applicationList.size - 1) categoryViewModel.loadApplications(this@CategoryActivity) } } Loading @@ -65,6 +70,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio progressBar.visibility = View.VISIBLE errorContainer.visibility = View.GONE findViewById<TextView>(R.id.error_resolve).setOnClickListener { loadMoreContainer.visibility = View.GONE progressBar.visibility = View.VISIBLE categoryViewModel.loadApplications(this) } Loading @@ -82,6 +88,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio progressBar.visibility = View.GONE recyclerView.adapter.notifyDataSetChanged() recyclerView.visibility = View.VISIBLE loadMoreContainer.visibility = View.GONE } }) Loading @@ -91,6 +98,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio errorDescription.text = getString(Common.getScreenErrorDescriptionId(it)) errorContainer.visibility = View.VISIBLE progressBar.visibility = View.GONE loadMoreContainer.visibility = View.GONE } else { errorContainer.visibility = View.GONE } Loading app/src/main/res/layout/activity_category.xml +16 −3 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container" tools:context=".categories.category.CategoryActivity"> <android.support.v7.widget.Toolbar Loading @@ -21,10 +21,23 @@ android:id="@+id/app_list" android:layout_width="match_parent" android:layout_height="0dp" android:scrollbars="none" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toTopOf="@id/load_more_container" app:layout_constraintTop_toBottomOf="@id/toolbar" /> <RelativeLayout android:id="@+id/load_more_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/layout_padding_medium" app:layout_constraintBottom_toBottomOf="parent"> <ProgressBar android:layout_width="@dimen/load_more_progress_bar_size" android:layout_height="@dimen/load_more_progress_bar_size" android:layout_centerInParent="true" /> </RelativeLayout> <include layout="@layout/error_layout" android:layout_width="wrap_content" Loading app/src/main/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -26,5 +26,6 @@ <dimen name="small_application_list_item_width">116dp</dimen> <dimen name="app_privacy_analyses_height">112dp</dimen> <dimen name="category_icon_size">32dp</dimen> <dimen name="load_more_progress_bar_size">32dp</dimen> </resources> No newline at end of file Loading
app/src/main/java/io/eelo/appinstaller/categories/category/CategoryActivity.kt +9 −1 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ import android.view.MenuItem import android.view.View import android.widget.LinearLayout import android.widget.ProgressBar import android.widget.RelativeLayout import android.widget.TextView import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application Loading Loading @@ -49,15 +50,19 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio categoryViewModel = ViewModelProviders.of(this).get(CategoryViewModel::class.java) recyclerView = findViewById(R.id.app_list) val loadMoreContainer = findViewById<RelativeLayout>(R.id.load_more_container) progressBar = findViewById(R.id.progress_bar) val errorContainer = findViewById<LinearLayout>(R.id.error_container) val errorDescription = findViewById<TextView>(R.id.error_description) // Initialise UI elements recyclerView.visibility = View.GONE loadMoreContainer.visibility = View.GONE recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { if (!recyclerView.canScrollVertically(1)) { loadMoreContainer.visibility = View.VISIBLE recyclerView.scrollToPosition(applicationList.size - 1) categoryViewModel.loadApplications(this@CategoryActivity) } } Loading @@ -65,6 +70,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio progressBar.visibility = View.VISIBLE errorContainer.visibility = View.GONE findViewById<TextView>(R.id.error_resolve).setOnClickListener { loadMoreContainer.visibility = View.GONE progressBar.visibility = View.VISIBLE categoryViewModel.loadApplications(this) } Loading @@ -82,6 +88,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio progressBar.visibility = View.GONE recyclerView.adapter.notifyDataSetChanged() recyclerView.visibility = View.VISIBLE loadMoreContainer.visibility = View.GONE } }) Loading @@ -91,6 +98,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio errorDescription.text = getString(Common.getScreenErrorDescriptionId(it)) errorContainer.visibility = View.VISIBLE progressBar.visibility = View.GONE loadMoreContainer.visibility = View.GONE } else { errorContainer.visibility = View.GONE } Loading
app/src/main/res/layout/activity_category.xml +16 −3 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container" tools:context=".categories.category.CategoryActivity"> <android.support.v7.widget.Toolbar Loading @@ -21,10 +21,23 @@ android:id="@+id/app_list" android:layout_width="match_parent" android:layout_height="0dp" android:scrollbars="none" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toTopOf="@id/load_more_container" app:layout_constraintTop_toBottomOf="@id/toolbar" /> <RelativeLayout android:id="@+id/load_more_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/layout_padding_medium" app:layout_constraintBottom_toBottomOf="parent"> <ProgressBar android:layout_width="@dimen/load_more_progress_bar_size" android:layout_height="@dimen/load_more_progress_bar_size" android:layout_centerInParent="true" /> </RelativeLayout> <include layout="@layout/error_layout" android:layout_width="wrap_content" Loading
app/src/main/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -26,5 +26,6 @@ <dimen name="small_application_list_item_width">116dp</dimen> <dimen name="app_privacy_analyses_height">112dp</dimen> <dimen name="category_icon_size">32dp</dimen> <dimen name="load_more_progress_bar_size">32dp</dimen> </resources> No newline at end of file