diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 928856f9..0050acd3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@ image: openjdk:8-jdk
variables:
ANDROID_TARGET_SDK: "27"
- ANDROID_BUILD_TOOLS: "27.0.1"
+ ANDROID_BUILD_TOOLS: "27.0.3"
ANDROID_SDK_TOOLS_REV: "3859397"
before_script:
diff --git a/app/build.gradle b/app/build.gradle
index d1c5c4a9..ab4808bf 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,27 +28,27 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:appcompat-v7:27.1.0'
- implementation 'com.android.support:design:27.1.0'
- implementation 'com.android.support:support-v4:27.1.0'
- implementation 'com.android.support:cardview-v7:27.1.0'
- implementation 'com.android.support:recyclerview-v7:27.1.0'
- implementation 'com.google.firebase:firebase-crash:11.8.0'
- implementation 'com.squareup.okhttp3:okhttp:3.9.0'
+ implementation 'com.android.support:appcompat-v7:27.1.1'
+ implementation 'com.android.support:design:27.1.1'
+ implementation 'com.android.support:support-v4:27.1.1'
+ implementation 'com.android.support:cardview-v7:27.1.1'
+ implementation 'com.android.support:recyclerview-v7:27.1.1'
+ implementation 'com.google.firebase:firebase-crash:12.0.1'
+ implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
- implementation 'org.jsoup:jsoup:1.10.3'
+ implementation 'org.jsoup:jsoup:1.10.3' //Warning: upgrading from 1.10.3 will break stuff!
implementation 'com.github.franmontiel:PersistentCookieJar:v1.0.1'
- implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
- implementation("com.mikepenz:materialdrawer:6.0.1@aar") {
+ implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
+ implementation("com.mikepenz:materialdrawer:6.0.7@aar") {
transitive = true
}
implementation 'com.mikepenz:fontawesome-typeface:4.7.0.0@aar'
implementation 'com.mikepenz:google-material-typeface:3.0.1.2.original@aar'
- implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'
+ implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.12'
implementation 'com.bignerdranch.android:expandablerecyclerview:3.0.0-RC1' //TODO: Deprecated - needs replacement!
implementation 'me.zhanghai.android.materialprogressbar:library:1.4.2'
- implementation 'com.jakewharton.timber:timber:4.6.0'
+ implementation 'com.jakewharton.timber:timber:4.7.0'
}
if (getGradle().getStartParameter().getTaskRequests().toString().contains("Release")){
diff --git a/app/src/main/assets/apache_libraries.html b/app/src/main/assets/apache_libraries.html
index 817ee602..fd866258 100644
--- a/app/src/main/assets/apache_libraries.html
+++ b/app/src/main/assets/apache_libraries.html
@@ -39,7 +39,7 @@
-
-
OkHttp v3.9.0 (Copyright ©2016 Square, Inc.)
+ OkHttp v3.10.0 (Copyright ©2016 Square, Inc.)
-
Picasso v2.5.2 (Copyright ©2013 Square, Inc.)
@@ -48,10 +48,10 @@
PersistentCookieJar v1.0.1 (Copyright ©2016 Francisco José Montiel Navarro)
-
-
MPAndroidChart v3.0.2 (Copyright ©2016 Philipp Jahoda)
+ MPAndroidChart v3.0.3 (Copyright ©2018 Philipp Jahoda)
-
-
MaterialDrawer v6.0.1 (Copyright ©2016 Mike Penz)
+ MaterialDrawer v6.0.7 (Copyright ©2018 Mike Penz)
-
Android-Iconics v2.9.5 (Copyright ©2016 Mike Penz)
@@ -60,7 +60,7 @@
-
-
Timber v4.6.0 (Copyright ©2013 Jake Wharton)
+ Timber v4.7.0 (Copyright ©2013 Jake Wharton)
diff --git a/app/src/main/assets/mit_libraries.html b/app/src/main/assets/mit_libraries.html
index f9d92c13..e5681966 100644
--- a/app/src/main/assets/mit_libraries.html
+++ b/app/src/main/assets/mit_libraries.html
@@ -42,7 +42,7 @@
jsoup v1.10.3 (Copyright ©2009-2017, Jonathan Hedley <jonathan@hedley.net>)
- android-gif-drawable v1.2.8 (Copyright ©2013 -2017 Karol Wrótniak, Droids on Roids)
+ android-gif-drawable v1.2.12 (Copyright ©2013 -2018 Karol Wrótniak, Droids on Roids)
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java
index f8e7ea01..f5f2c06e 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java
@@ -327,6 +327,17 @@ public class TopicActivity extends BaseActivity {
drawer.closeDrawer();
return;
}
+ else if(postsList.get(postsList.size()-1)==null)
+ {
+ postsList.remove(postsList.size() - 1);
+ topicAdapter.notifyItemRemoved(postsList.size());
+ topicAdapter.setBackButtonHidden();
+ replyFAB.setVisibility(View.INVISIBLE);
+ bottomNavBar.setVisibility(View.INVISIBLE);
+ paginationEnabled(true);
+ replyFAB.setEnabled(true);
+ return;
+ }
super.onBackPressed();
}
@@ -528,7 +539,7 @@ public class TopicActivity extends BaseActivity {
//------------------------------------BOTTOM NAV BAR METHODS END------------------------------------
/**
- * An {@link AsyncTask} that handles asynchronous fetching of this topic page and parsing of it's
+ * An {@link AsyncTask} that handles asynchronous fetching of this topic page and parsing of its
* data.
* TopicTask's {@link AsyncTask#execute execute} method needs a topic's url as String
* parameter.
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java
index 6ea8f2c5..8cb33275 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java
@@ -203,7 +203,6 @@ class TopicAdapter extends RecyclerView.Adapter {
.into(holder.thumbnail);
//Sets username,submit date, index number, subject, post's and attached files texts
- Timber.i("ASDF " + currentPost.getAuthor());
holder.username.setText(currentPost.getAuthor());
holder.postDate.setText(currentPost.getPostDate());
if (currentPost.getPostNumber() != 0)
@@ -474,6 +473,11 @@ class TopicAdapter extends RecyclerView.Adapter {
holder.submitButton.setEnabled(true);
}
});
+ if(backPressHidden)
+ {
+ holder.quickReply.requestFocus();
+ backPressHidden = false;
+ }
}
}
@@ -537,6 +541,13 @@ class TopicAdapter extends RecyclerView.Adapter {
}
}
+ private boolean backPressHidden = false;
+
+ void setBackButtonHidden() {
+ this.backPressHidden = true;
+ }
+
+
/**
* Custom {@link RecyclerView.ViewHolder} implementation
*/
diff --git a/app/src/main/java/gr/thmmy/mthmmy/session/SessionManager.java b/app/src/main/java/gr/thmmy/mthmmy/session/SessionManager.java
index 4c2c60cc..961b998d 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/session/SessionManager.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/session/SessionManager.java
@@ -108,9 +108,7 @@ public class SessionManager {
Response response = client.newCall(request).execute();
Document document = Jsoup.parse(response.body().string());
- Elements unreadRepliesLinks = document.select("a[href=https://www.thmmy.gr/smf/index.php?action=unreadreplies]");
-
- if (unreadRepliesLinks.size() >= 2) //Normally it's just == 2, but who knows what can be posted by users
+ if (validateRetrievedCookies())
{
Timber.i("Login successful!");
setPersistentCookieSession(); //Store cookies
@@ -262,23 +260,24 @@ public class SessionManager {
//--------------------------------------GETTERS END---------------------------------------------
//------------------------------------OTHER FUNCTIONS-------------------------------------------
+ private boolean validateRetrievedCookies() {
+ List cookieList = cookieJar.loadForRequest(indexUrl);
+ return (cookieList.size() == 2) && (cookieList.get(0).name().equals("THMMYgrC00ki3")) && (cookieList.get(1).name().equals("PHPSESSID"));
+ }
+
+ // Call validateRetrievedCookies() first
private void setPersistentCookieSession() {
List cookieList = cookieJar.loadForRequest(indexUrl);
+ Cookie.Builder builder = new Cookie.Builder();
+ builder.name(cookieList.get(1).name())
+ .value(cookieList.get(1).value())
+ .domain(cookieList.get(1).domain())
+ .expiresAt(cookieList.get(0).expiresAt());
+ cookieList.remove(1);
+ cookieList.add(builder.build());
+ cookiePersistor.clear();
+ cookiePersistor.saveAll(cookieList);
- if (cookieList.size() == 2) {
- if ((cookieList.get(0).name().equals("THMMYgrC00ki3"))
- && (cookieList.get(1).name().equals("PHPSESSID"))) {
- Cookie.Builder builder = new Cookie.Builder();
- builder.name(cookieList.get(1).name())
- .value(cookieList.get(1).value())
- .domain(cookieList.get(1).domain())
- .expiresAt(cookieList.get(0).expiresAt());
- cookieList.remove(1);
- cookieList.add(builder.build());
- cookiePersistor.clear();
- cookiePersistor.saveAll(cookieList);
- }
- }
}
private void clearSessionData() {
diff --git a/build.gradle b/build.gradle
index d494b63e..a748ded8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,10 +5,11 @@ buildscript {
jcenter()
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.0.1'
- classpath 'com.google.gms:google-services:3.1.0'
+ classpath 'com.android.tools.build:gradle:3.1.0'
+ classpath 'com.google.gms:google-services:3.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 9a77e6f4..3cae3bf9 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Thu Oct 26 11:21:06 EEST 2017
+#Sat Apr 07 11:11:36 EEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip