Merge pull request #118 from joshsoftware/master

Adding the loading screen when user scroll through videoList.
This commit is contained in:
Christian Schabesberger 2015-12-20 13:35:10 +01:00
commit 73e2c42931
3 changed files with 41 additions and 0 deletions

View file

@ -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.

View file

@ -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();
}
}

View 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>