Merge pull request #118 from joshsoftware/master
Adding the loading screen when user scroll through videoList.
This commit is contained in:
commit
73e2c42931
3 changed files with 41 additions and 0 deletions
|
@ -20,6 +20,9 @@ Project status:
|
|||
[<img src="screenshots/screenshot_5.png" width=150>](screenshots/screenshot_5.png)
|
||||
[<img src="screenshots/screenshot_6.png" width=250>](screenshots/screenshot_6.png)
|
||||
|
||||
[![Screenshot 1](assets/screenshot_1.png)](assets/screenshot_1.png)
|
||||
[![Screenshot 2](assets/screenshot_2.png)](assets/screenshot_2.png)
|
||||
|
||||
## Description
|
||||
|
||||
NewPipe does not use any Google framework libraries, or the YouTube API. It only parses the website in order to gain the information it needs. Therefore this app can be used on devices without Google Services installed. Also, you don't need a YouTube account to use NewPipe, and it's FLOSS.
|
||||
|
|
|
@ -9,6 +9,7 @@ import android.os.Handler;
|
|||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.app.ListFragment;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.AbsListView;
|
||||
import android.widget.ListView;
|
||||
|
@ -63,6 +64,8 @@ public class VideoItemListFragment extends ListFragment {
|
|||
private int currentRequestId = -1;
|
||||
private ListView list;
|
||||
|
||||
private View footer;
|
||||
|
||||
private class ResultRunnable implements Runnable {
|
||||
private final SearchEngine.Result result;
|
||||
private final int requestId;
|
||||
|
@ -112,6 +115,16 @@ public class VideoItemListFragment extends ListFragment {
|
|||
}
|
||||
});
|
||||
}
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
|
||||
public void run() {
|
||||
getListView().removeFooterView(footer);
|
||||
}
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -283,6 +296,9 @@ public class VideoItemListFragment extends ListFragment {
|
|||
super.onViewCreated(view, savedInstanceState);
|
||||
list = getListView();
|
||||
videoListAdapter = new VideoListAdapter(getActivity(), this);
|
||||
footer = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.paginate_footer, null, false);
|
||||
|
||||
|
||||
setListAdapter(videoListAdapter);
|
||||
|
||||
// Restore the previously serialized activated item position.
|
||||
|
@ -292,6 +308,7 @@ public class VideoItemListFragment extends ListFragment {
|
|||
setActivatedPosition(savedInstanceState.getInt(STATE_ACTIVATED_POSITION));
|
||||
}
|
||||
|
||||
|
||||
getListView().setOnScrollListener(new AbsListView.OnScrollListener() {
|
||||
long lastScrollDate = 0;
|
||||
|
||||
|
@ -308,6 +325,7 @@ public class VideoItemListFragment extends ListFragment {
|
|||
long time = System.currentTimeMillis();
|
||||
if ((time - lastScrollDate) > 200) {
|
||||
lastScrollDate = time;
|
||||
getListView().addFooterView(footer);
|
||||
nextPage();
|
||||
}
|
||||
}
|
||||
|
|
20
app/src/main/res/layout/paginate_footer.xml
Normal file
20
app/src/main/res/layout/paginate_footer.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Loading"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/paginate_progress_bar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="10dp" />
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in a new issue