Browse Source

Minor layout & ParseTask changes

pull/24/head
Ezerous 7 years ago
parent
commit
667371ca3a
  1. 64
      app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java
  2. 1
      app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java
  3. 1
      app/src/main/java/gr/thmmy/mthmmy/receiver/Receiver.java
  4. 4
      app/src/main/java/gr/thmmy/mthmmy/utils/ParseTask.java
  5. 34
      app/src/main/res/layout-sw600dp/activity_main.xml
  6. 2
      app/src/main/res/layout-v21/activity_topic_post_row.xml
  7. 3
      app/src/main/res/layout/activity_main.xml
  8. 1
      app/src/main/res/layout/activity_topic.xml
  9. 2
      app/src/main/res/layout/activity_topic_post_row.xml

64
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.
* <p>
* <p>Calling TopicTask's {@link AsyncTask#execute execute} method needs to have profile's url
* <p>Calling TopicTask's {@link ParseTask#execute execute} method needs to have profile's url
* as String parameter!</p>
*/
class ParseDownloadPageTask extends AsyncTask<String, Void, Void> {
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;
}
}
}

1
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);
}

1
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;

4
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<String, Void, ParseTask.ResultCode> {
protected String url;
protected enum ResultCode {
SUCCESS, PARSING_ERROR, NETWORK_ERROR, OTHER_ERROR
}
@ -29,8 +30,9 @@ public abstract class ParseTask extends AsyncTask<String, Void, ParseTask.Result
protected abstract void postParsing (ParseTask.ResultCode result); //ResultCode.NETWORK_ERROR is handled automatically
protected Request prepareRequest(String... params) {
url = params[0];
return new Request.Builder()
.url(params[0])
.url(url)
.build();
}

34
app/src/main/res/layout-sw600dp/activity_main.xml

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".activities.main.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ToolbarTheme">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/accent"
app:tabTextColor="@color/white"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>

2
app/src/main/res/layout-v21/activity_topic_post_row.xml

@ -189,7 +189,7 @@
<View
android:id="@+id/header_body_devider"
android:id="@+id/header_body_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="9dp"

3
app/src/main/res/layout/activity_main.xml

@ -19,6 +19,9 @@
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/accent"
app:tabTextColor="@color/white"/>
</android.support.design.widget.AppBarLayout>

1
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"

2
app/src/main/res/layout/activity_topic_post_row.xml

@ -188,7 +188,7 @@
<View
android:id="@+id/header_body_devider"
android:id="@+id/header_body_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="9dp"

Loading…
Cancel
Save