diff --git a/app/build.gradle b/app/build.gradle index ce22b77..fff1a0d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,10 +24,12 @@ android { } dependencies { + 'androidx.coordinatorlayout:coordinatorlayout:1.1.0' + implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.1.0' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.2.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.navigation:navigation-fragment:2.3.0' implementation 'androidx.navigation:navigation-ui:2.3.0' @@ -35,6 +37,8 @@ dependencies { // jsoup HTML parser library @ https://jsoup.org/ implementation 'org.jsoup:jsoup:1.11.1' + implementation 'com.squareup.picasso:picasso:2.71828' + testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' diff --git a/app/src/main/java/com/akdev/nofbeventscraper/AboutActivity.java b/app/src/main/java/com/akdev/nofbeventscraper/AboutActivity.java index 6771f8a..59a7187 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/AboutActivity.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/AboutActivity.java @@ -1,6 +1,7 @@ package com.akdev.nofbeventscraper; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.content.Intent; import android.net.Uri; @@ -14,7 +15,7 @@ public class AboutActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); - + this.getSupportActionBar().hide(); ImageView img = (ImageView)findViewById(R.id.paypal_image); diff --git a/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java b/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java index c6426e8..98af545 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java @@ -117,12 +117,23 @@ public class FbScraper extends AsyncTask { String event_description = fixLinks(readFromJson(reader, "description")); String location = fixLocation(readFromJson(reader, "location")); + String image_url = null; + + try { + image_url = readFromJson(reader, "image"); // get from json + + // get from event header + image_url = document.getElementsByClass("scaledImageFitWidth").first().attr("src"); + } catch (Exception e) { + e.printStackTrace(); + this.error = "Error: no image found"; + } if (event_name == null) { this.event = null; throw new Exception(); } else { - this.event = new FbEvent(event_name, event_start, event_end, event_description, location, null); + this.event = new FbEvent(event_name, event_start, event_end, event_description, location, image_url); } } catch (Exception e) { diff --git a/app/src/main/java/com/akdev/nofbeventscraper/HelpActivity.java b/app/src/main/java/com/akdev/nofbeventscraper/HelpActivity.java index 736c500..ba60e18 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/HelpActivity.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/HelpActivity.java @@ -10,5 +10,6 @@ public class HelpActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_help); + this.getSupportActionBar().hide(); } } diff --git a/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java b/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java index ae67afe..fe097f2 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; + +import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.textfield.TextInputEditText; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; @@ -14,8 +16,12 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; +import android.widget.ImageView; import android.widget.Toast; +import com.squareup.picasso.Picasso; + +import java.net.URI; import java.net.URL; import java.time.LocalDateTime; import java.time.ZoneId; @@ -36,6 +42,8 @@ public class MainActivity extends AppCompatActivity { private TextInputEditText field_event_end; private TextInputEditText field_event_location; private TextInputEditText field_event_description; + private ImageView toolbar_image_view; + private CollapsingToolbarLayout toolbar_layout; @Override protected void onCreate(Bundle savedInstanceState) { @@ -54,6 +62,8 @@ public class MainActivity extends AppCompatActivity { field_event_end = (TextInputEditText) findViewById(R.id.field_event_end); field_event_location = (TextInputEditText) findViewById(R.id.field_event_location); field_event_description = (TextInputEditText) findViewById(R.id.field_event_description); + toolbar_image_view = (ImageView) findViewById(R.id.image_view); + toolbar_layout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout); paste_button.setOnClickListener(new View.OnClickListener() { @Override @@ -201,7 +211,7 @@ public class MainActivity extends AppCompatActivity { throw new Exception(); } - String input_uri = "https://m.facebook.com/events/" + eventId; + String input_uri = "https://www.facebook.com/events/" + eventId; str = input_uri; } catch (Exception e) { @@ -242,6 +252,9 @@ public class MainActivity extends AppCompatActivity { field_event_end.setText(""); field_event_location.setText(""); field_event_description.setText(""); + toolbar_image_view.setImageDrawable(null); + + toolbar_layout.setTitle(getString(R.string.app_name)); } public void update(FbEvent event) { @@ -250,6 +263,10 @@ public class MainActivity extends AppCompatActivity { field_event_end.setText(event.end_date); field_event_location.setText(event.location); field_event_description.setText(event.description); + + toolbar_layout.setTitle(" "); + + Picasso.get().load(event.image_url).into(toolbar_image_view); } diff --git a/app/src/main/res/drawable/divider.xml b/app/src/main/res/drawable/divider.xml new file mode 100644 index 0000000..f1c8778 --- /dev/null +++ b/app/src/main/res/drawable/divider.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_content_paste.xml b/app/src/main/res/drawable/ic_content_paste.xml new file mode 100644 index 0000000..37a656c --- /dev/null +++ b/app/src/main/res/drawable/ic_content_paste.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 0da4ca4..40d6164 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".AboutActivity"> + - + android:layout_height="match_parent" + android:background="@color/colorPrimary" + android:fitsSystemWindows="true" + app:contentScrim="?attr/colorPrimary" + app:expandedTitleGravity="center" + app:layout_scrollFlags="scroll|exitUntilCollapsed" + app:toolbarId="@+id/toolbar"> + + + + + + + + + + - + + + + + + + + + +