Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ghoststeam.kbsurate;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.fragment.app.Fragment;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Document;
- import org.jsoup.nodes.Element;
- import org.jsoup.select.Elements;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- public class pointsFragment extends Fragment {
- private RecyclerView cardList;
- private Runnable getInfoFrom;
- private Thread studInfo;
- private Handler setMyAdapter;
- private List<Bundle> bundles = new ArrayList<>();
- private int size;
- private String link;
- private static final int TIMEOUT = 200000;
- private static final String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36";
- private boolean generated = false;
- public pointsFragment (String link)
- {
- this.link = link;
- }
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View pointsView = inflater.inflate(R.layout.points_fragment, container, false);
- if (!generated) {
- cardList = pointsView.findViewById(R.id.cardlist_view);
- cardList.setLayoutManager(new LinearLayoutManager(getActivity()));
- cardList.setHasFixedSize(true);
- setMyAdapter = new Handler() {
- public void handleMessage(Message msg) {
- cardsAdapter card = new cardsAdapter(size);
- card.getBundlesFrom(bundles);
- cardList.setAdapter(card);
- }
- };
- getInfoFrom = new Runnable() {
- @Override
- public void run() {
- getInfoFromServer(link);
- }
- };
- studInfo = new Thread(getInfoFrom);
- studInfo.start();
- }
- return pointsView;
- }
- private void getInfoFromServer(String link) {
- Bundle bundle = new Bundle();
- Document doc = null;
- try {
- doc = Jsoup.connect(link).timeout(TIMEOUT).userAgent(userAgent).get();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (doc == null) {
- return;
- }
- Elements mainTable = doc.select("table");
- Elements mainRows = mainTable.select("tr");
- Elements mainCols = mainRows.select("td");
- Element subTable = mainCols.select("table").first();
- Elements rows = subTable.select("tr");
- size = rows.size() - 2;
- for (int i = 2; i < rows.size(); i++) {
- ArrayList<String> firstPoint = new ArrayList<>();
- ArrayList<String> secondPoint = new ArrayList<>();
- ArrayList<String> thirdPoint = new ArrayList<>();
- Element row = rows.get(i);
- Elements cols = row.select("td");
- cols.get(1).select("b");
- String exam = cols.get(1).select("b").text();
- bundle.putString("Examination", exam);
- cols.get(1).select("b").remove();
- bundle.putString("Subject", cols.get(1).text());
- bundle.putString("Value", cols.get(21).text());
- for (int j = 3; j < 7; j++)
- firstPoint.add(cols.get(j).text());
- for (int k = 8; k < 12; k++)
- secondPoint.add(cols.get(k).text());
- for (int l = 13; l < 17; l++)
- thirdPoint.add(cols.get(l).text());
- bundle.putStringArrayList("First point", firstPoint);
- bundle.putStringArrayList("Second point", secondPoint);
- bundle.putStringArrayList("Third point", thirdPoint);
- bundles.add(new Bundle(bundle));
- }
- generated = !generated;
- setMyAdapter.sendEmptyMessage(1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement