From 667371ca3a1394a729b2292af693d51f3ce7dfd4 Mon Sep 17 00:00:00 2001 From: Ezerous Date: Wed, 2 Aug 2017 20:07:57 +0300 Subject: [PATCH] Minor layout & ParseTask changes --- .../downloads/DownloadsActivity.java | 64 +++++++------------ .../main/recent/RecentFragment.java | 1 + .../gr/thmmy/mthmmy/receiver/Receiver.java | 1 - .../java/gr/thmmy/mthmmy/utils/ParseTask.java | 4 +- .../main/res/layout-sw600dp/activity_main.xml | 34 ---------- .../layout-v21/activity_topic_post_row.xml | 2 +- app/src/main/res/layout/activity_main.xml | 3 + app/src/main/res/layout/activity_topic.xml | 1 + .../res/layout/activity_topic_post_row.xml | 2 +- 9 files changed, 32 insertions(+), 80 deletions(-) delete mode 100644 app/src/main/res/layout-sw600dp/activity_main.xml diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java index 292c4050..3df917af 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java @@ -11,7 +11,6 @@ import android.view.View; import android.widget.ProgressBar; import android.widget.Toast; -import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; @@ -19,15 +18,13 @@ import org.jsoup.select.Elements; import java.util.ArrayList; import java.util.Objects; -import javax.net.ssl.SSLHandshakeException; - import gr.thmmy.mthmmy.R; import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.model.Download; import gr.thmmy.mthmmy.model.ThmmyPage; +import gr.thmmy.mthmmy.utils.ParseTask; +import gr.thmmy.mthmmy.utils.exceptions.ParseException; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; -import okhttp3.Request; -import okhttp3.Response; import timber.log.Timber; public class DownloadsActivity extends BaseActivity implements DownloadsAdapter.OnLoadMoreListener { @@ -159,16 +156,14 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. } /** - * An {@link AsyncTask} that handles asynchronous fetching of a downloads page and parsing it's - * data. {@link AsyncTask#onPostExecute(Object) OnPostExecute} method calls {@link RecyclerView#swapAdapter} + * An {@link ParseTask} that handles asynchronous fetching of a downloads page and parsing it's + * data. {@link ParseTask#postParsing(ResultCode) postParsing} method calls {@link RecyclerView#swapAdapter} * to build graphics. *

- *

Calling TopicTask's {@link AsyncTask#execute execute} method needs to have profile's url + *

Calling TopicTask's {@link ParseTask#execute execute} method needs to have profile's url * as String parameter!

*/ - class ParseDownloadPageTask extends AsyncTask { - private String thisPageUrl; - + private class ParseDownloadPageTask extends ParseTask { @Override protected void onPreExecute() { if (!isLoadingMore) progressBar.setVisibility(ProgressBar.VISIBLE); @@ -176,36 +171,7 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. } @Override - protected Void doInBackground(String... downloadsUrl) { - thisPageUrl = downloadsUrl[0]; - Request request = new Request.Builder() - .url(downloadsUrl[0]) - .build(); - try { - Response response = client.newCall(request).execute(); - parseDownloads(Jsoup.parse(response.body().string())); - } catch (SSLHandshakeException e) { - Timber.w("Certificate problem (please switch to unsafe connection)."); - } catch (Exception e) { - Timber.e(e, "Exception"); - } - return null; - } - - @Override - protected void onPostExecute(Void voids) { - if (downloadsTitle != null && !Objects.equals(downloadsTitle, "") && - toolbar.getTitle() != downloadsTitle) - toolbar.setTitle(downloadsTitle); - - ++pagesLoaded; - if (uploadFAB.getVisibility() != View.GONE) uploadFAB.setEnabled(true); - progressBar.setVisibility(ProgressBar.INVISIBLE); - downloadsAdapter.notifyDataSetChanged(); - isLoadingMore = false; - } - - private void parseDownloads(Document downloadPage) { + protected void parse(Document downloadPage) throws ParseException { if (downloadsTitle == null || Objects.equals(downloadsTitle, "")) downloadsTitle = downloadPage.select("div.nav>b>a.nav").last().text(); @@ -215,7 +181,7 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. } Download.DownloadItemType type; - if (ThmmyPage.resolvePageCategory(Uri.parse(thisPageUrl)).is(ThmmyPage. + if (ThmmyPage.resolvePageCategory(Uri.parse(url)).is(ThmmyPage. PageCategory.DOWNLOADS_CATEGORY)) type = Download.DownloadItemType.DOWNLOADS_CATEGORY; else type = Download.DownloadItemType.DOWNLOADS_FILE; @@ -265,5 +231,19 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. rows.select("span:has(a)").first().text())); } } + + + @Override + protected void postParsing(ResultCode result) { + if (downloadsTitle != null && !Objects.equals(downloadsTitle, "") && + toolbar.getTitle() != downloadsTitle) + toolbar.setTitle(downloadsTitle); + + ++pagesLoaded; + if (uploadFAB.getVisibility() != View.GONE) uploadFAB.setEnabled(true); + progressBar.setVisibility(ProgressBar.INVISIBLE); + downloadsAdapter.notifyDataSetChanged(); + isLoadingMore = false; + } } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java b/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java index 89aa027b..ce940cd2 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java @@ -138,6 +138,7 @@ public class RecentFragment extends BaseFragment { //---------------------------------------ASYNC TASK----------------------------------- private class RecentTask extends ParseTask { + @Override protected void onPreExecute() { progressBar.setVisibility(ProgressBar.VISIBLE); } diff --git a/app/src/main/java/gr/thmmy/mthmmy/receiver/Receiver.java b/app/src/main/java/gr/thmmy/mthmmy/receiver/Receiver.java index a36916ea..971475ff 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/receiver/Receiver.java +++ b/app/src/main/java/gr/thmmy/mthmmy/receiver/Receiver.java @@ -13,7 +13,6 @@ import android.webkit.MimeTypeMap; import java.io.File; -import gr.thmmy.mthmmy.R; import timber.log.Timber; import static gr.thmmy.mthmmy.services.DownloadService.ACTION_DOWNLOAD; diff --git a/app/src/main/java/gr/thmmy/mthmmy/utils/ParseTask.java b/app/src/main/java/gr/thmmy/mthmmy/utils/ParseTask.java index 9ce5a882..ce7df62a 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/utils/ParseTask.java +++ b/app/src/main/java/gr/thmmy/mthmmy/utils/ParseTask.java @@ -21,6 +21,7 @@ import timber.log.Timber; * and modify prepareRequest() as needed. */ public abstract class ParseTask extends AsyncTask { + protected String url; protected enum ResultCode { SUCCESS, PARSING_ERROR, NETWORK_ERROR, OTHER_ERROR } @@ -29,8 +30,9 @@ public abstract class ParseTask extends AsyncTask - - - - - - - - - diff --git a/app/src/main/res/layout-v21/activity_topic_post_row.xml b/app/src/main/res/layout-v21/activity_topic_post_row.xml index 2362427d..a4c6ee2d 100644 --- a/app/src/main/res/layout-v21/activity_topic_post_row.xml +++ b/app/src/main/res/layout-v21/activity_topic_post_row.xml @@ -189,7 +189,7 @@ diff --git a/app/src/main/res/layout/activity_topic.xml b/app/src/main/res/layout/activity_topic.xml index e726d372..e7aa2a66 100644 --- a/app/src/main/res/layout/activity_topic.xml +++ b/app/src/main/res/layout/activity_topic.xml @@ -39,6 +39,7 @@ android:layout_gravity="top|start" android:background="@color/background" android:paddingTop="4dp" + android:paddingBottom="4dp" android:clipToPadding="false" android:scrollbars="none" tools:context="gr.thmmy.mthmmy.activities.topic.TopicActivity" diff --git a/app/src/main/res/layout/activity_topic_post_row.xml b/app/src/main/res/layout/activity_topic_post_row.xml index 99eeefd6..4581ac89 100644 --- a/app/src/main/res/layout/activity_topic_post_row.xml +++ b/app/src/main/res/layout/activity_topic_post_row.xml @@ -188,7 +188,7 @@