Browse Source

Minor layout & ParseTask changes

pull/24/head
Ezerous 8 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.ProgressBar;
import android.widget.Toast; import android.widget.Toast;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document; import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element; import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import org.jsoup.select.Elements;
@ -19,15 +18,13 @@ import org.jsoup.select.Elements;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects; import java.util.Objects;
import javax.net.ssl.SSLHandshakeException;
import gr.thmmy.mthmmy.R; import gr.thmmy.mthmmy.R;
import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.base.BaseActivity;
import gr.thmmy.mthmmy.model.Download; import gr.thmmy.mthmmy.model.Download;
import gr.thmmy.mthmmy.model.ThmmyPage; 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 me.zhanghai.android.materialprogressbar.MaterialProgressBar;
import okhttp3.Request;
import okhttp3.Response;
import timber.log.Timber; import timber.log.Timber;
public class DownloadsActivity extends BaseActivity implements DownloadsAdapter.OnLoadMoreListener { 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 * An {@link ParseTask} that handles asynchronous fetching of a downloads page and parsing it's
* data. {@link AsyncTask#onPostExecute(Object) OnPostExecute} method calls {@link RecyclerView#swapAdapter} * data. {@link ParseTask#postParsing(ResultCode) postParsing} method calls {@link RecyclerView#swapAdapter}
* to build graphics. * to build graphics.
* <p> * <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> * as String parameter!</p>
*/ */
class ParseDownloadPageTask extends AsyncTask<String, Void, Void> { private class ParseDownloadPageTask extends ParseTask {
private String thisPageUrl;
@Override @Override
protected void onPreExecute() { protected void onPreExecute() {
if (!isLoadingMore) progressBar.setVisibility(ProgressBar.VISIBLE); if (!isLoadingMore) progressBar.setVisibility(ProgressBar.VISIBLE);
@ -176,36 +171,7 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter.
} }
@Override @Override
protected Void doInBackground(String... downloadsUrl) { protected void parse(Document downloadPage) throws ParseException {
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) {
if (downloadsTitle == null || Objects.equals(downloadsTitle, "")) if (downloadsTitle == null || Objects.equals(downloadsTitle, ""))
downloadsTitle = downloadPage.select("div.nav>b>a.nav").last().text(); downloadsTitle = downloadPage.select("div.nav>b>a.nav").last().text();
@ -215,7 +181,7 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter.
} }
Download.DownloadItemType type; Download.DownloadItemType type;
if (ThmmyPage.resolvePageCategory(Uri.parse(thisPageUrl)).is(ThmmyPage. if (ThmmyPage.resolvePageCategory(Uri.parse(url)).is(ThmmyPage.
PageCategory.DOWNLOADS_CATEGORY)) PageCategory.DOWNLOADS_CATEGORY))
type = Download.DownloadItemType.DOWNLOADS_CATEGORY; type = Download.DownloadItemType.DOWNLOADS_CATEGORY;
else type = Download.DownloadItemType.DOWNLOADS_FILE; else type = Download.DownloadItemType.DOWNLOADS_FILE;
@ -265,5 +231,19 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter.
rows.select("span:has(a)").first().text())); 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----------------------------------- //---------------------------------------ASYNC TASK-----------------------------------
private class RecentTask extends ParseTask { private class RecentTask extends ParseTask {
@Override
protected void onPreExecute() { protected void onPreExecute() {
progressBar.setVisibility(ProgressBar.VISIBLE); 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 java.io.File;
import gr.thmmy.mthmmy.R;
import timber.log.Timber; import timber.log.Timber;
import static gr.thmmy.mthmmy.services.DownloadService.ACTION_DOWNLOAD; 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. * and modify prepareRequest() as needed.
*/ */
public abstract class ParseTask extends AsyncTask<String, Void, ParseTask.ResultCode> { public abstract class ParseTask extends AsyncTask<String, Void, ParseTask.ResultCode> {
protected String url;
protected enum ResultCode { protected enum ResultCode {
SUCCESS, PARSING_ERROR, NETWORK_ERROR, OTHER_ERROR 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 abstract void postParsing (ParseTask.ResultCode result); //ResultCode.NETWORK_ERROR is handled automatically
protected Request prepareRequest(String... params) { protected Request prepareRequest(String... params) {
url = params[0];
return new Request.Builder() return new Request.Builder()
.url(params[0]) .url(url)
.build(); .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 <View
android:id="@+id/header_body_devider" android:id="@+id/header_body_divider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginBottom="9dp" android:layout_marginBottom="9dp"

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

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

1
app/src/main/res/layout/activity_topic.xml

@ -39,6 +39,7 @@
android:layout_gravity="top|start" android:layout_gravity="top|start"
android:background="@color/background" android:background="@color/background"
android:paddingTop="4dp" android:paddingTop="4dp"
android:paddingBottom="4dp"
android:clipToPadding="false" android:clipToPadding="false"
android:scrollbars="none" android:scrollbars="none"
tools:context="gr.thmmy.mthmmy.activities.topic.TopicActivity" tools:context="gr.thmmy.mthmmy.activities.topic.TopicActivity"

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

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

Loading…
Cancel
Save