diff --git a/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java b/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java index 4bee8ca..88d22cf 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/FbScraper.java @@ -1,15 +1,9 @@ package com.akdev.nofbeventscraper; -import android.app.Activity; -import android.content.Context; + import android.os.AsyncTask; import android.text.Editable; import android.text.SpannableStringBuilder; -import android.util.Log; -import android.view.View; -import android.widget.Toast; - -import com.google.android.material.textfield.TextInputEditText; import org.json.JSONException; import org.json.JSONObject; @@ -142,7 +136,7 @@ public class FbScraper extends AsyncTask { e.printStackTrace(); this.error = "Error: Scraping event data failed"; } - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); this.error = "Error: URL not available"; } @@ -161,7 +155,7 @@ public class FbScraper extends AsyncTask { this.main.update(event); } else { - main.toast(error); + main.error(error); this.main.clear(false); } } diff --git a/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java b/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java index 111b69d..c80b6da 100644 --- a/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java +++ b/app/src/main/java/com/akdev/nofbeventscraper/MainActivity.java @@ -19,6 +19,7 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; +import com.google.android.material.textfield.TextInputLayout; import com.squareup.picasso.Picasso; import java.net.URL; @@ -40,6 +41,7 @@ public class MainActivity extends AppCompatActivity { private TextInputEditText field_event_description; private ImageView toolbar_image_view; private CollapsingToolbarLayout toolbar_layout; + private TextInputLayout input_layout; @Override protected void onCreate(Bundle savedInstanceState) { @@ -48,11 +50,11 @@ public class MainActivity extends AppCompatActivity { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - cancel_button = (Button) findViewById(R.id.cancel_button); ok_button = (Button) findViewById(R.id.ok_button); paste_button = (Button) findViewById(R.id.paste_button); field_uri_input = (TextInputEditText) findViewById(R.id.field_uri_input); + input_layout = (TextInputLayout) findViewById(R.id.textInputLayout); field_event_name = (TextInputEditText) findViewById(R.id.field_event_name); field_event_start = (TextInputEditText) findViewById(R.id.field_event_start); field_event_end = (TextInputEditText) findViewById(R.id.field_event_end); @@ -61,6 +63,7 @@ public class MainActivity extends AppCompatActivity { toolbar_image_view = (ImageView) findViewById(R.id.image_view); toolbar_layout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout); + paste_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -74,13 +77,20 @@ public class MainActivity extends AppCompatActivity { } catch (NullPointerException e) { e.printStackTrace(); - toast("Error: Clipboard empty"); + error("Error: Clipboard empty"); } startScraping(); } }); - cancel_button.setOnClickListener(new View.OnClickListener() { + + input_layout.setEndIconOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + clear(true); + } + }); + input_layout.setErrorIconOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { clear(true); @@ -106,13 +116,12 @@ public class MainActivity extends AppCompatActivity { intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, start_epoch); intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, end_epoch); intent.putExtra(CalendarContract.Events.EVENT_LOCATION, location); - intent.putExtra(CalendarContract.Events.DESCRIPTION, uri + "\n" + description); + intent.putExtra(CalendarContract.Events.DESCRIPTION, uri + "\n\n" + description); startActivity(intent); } catch (Exception e ) { e.printStackTrace(); - toast("Error: Invalid fields"); } } @@ -213,8 +222,8 @@ public class MainActivity extends AppCompatActivity { } catch (Exception e) { e.printStackTrace(); - clear(true); - toast("Invalid URL"); + clear(false); + error("Error: Invalid URL"); str = ""; } return str; @@ -222,23 +231,31 @@ public class MainActivity extends AppCompatActivity { public void startScraping() { - String str = checkURI(field_uri_input.getText().toString()); - field_uri_input.setText(str); + error(null); try { - FbScraper scraper = new FbScraper(this, field_uri_input.getText().toString()); - scraper.execute(); + String str = checkURI(field_uri_input.getText().toString()); + + + if (!str.equals("")) + { + field_uri_input.setText(str); + FbScraper scraper = new FbScraper(this, field_uri_input.getText().toString()); + scraper.execute(); + } + } catch (Exception e) { e.printStackTrace(); - clear(true); - toast("Invalid URL"); + clear(false); + error("Error: Invalid URL"); } } - public void toast(String str) { - Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); + public void error(String str) { + //Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); + input_layout.setError(str); } public void clear(boolean clearUri) { if (clearUri) { @@ -261,6 +278,7 @@ public class MainActivity extends AppCompatActivity { public void update(FbEvent event) { field_event_name.setText(event.name); + input_layout.setError(null); if (event.name.equals("")) { diff --git a/app/src/main/res/drawable/ic_backspace_black.xml b/app/src/main/res/drawable/ic_backspace_black.xml new file mode 100644 index 0000000..da5be63 --- /dev/null +++ b/app/src/main/res/drawable/ic_backspace_black.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_event_available.xml b/app/src/main/res/drawable/ic_event_available.xml new file mode 100644 index 0000000..9f454d2 --- /dev/null +++ b/app/src/main/res/drawable/ic_event_available.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1a3d03c..36c977e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -70,38 +70,21 @@ android:layout_margin="0dp" app:contentInsetStart="0dp"> - - -