Skip to content

Commit

Permalink
Merge pull request #5 from RENEEGAILP/A6
Browse files Browse the repository at this point in the history
A6
  • Loading branch information
RENEEGAILP authored Jun 27, 2021
2 parents 0f151c9 + 88a177a commit 2bf396b
Show file tree
Hide file tree
Showing 9 changed files with 201 additions and 12 deletions.
3 changes: 0 additions & 3 deletions NUMAD21Su-GailReneePinto/.idea/.gitignore

This file was deleted.

5 changes: 0 additions & 5 deletions NUMAD21Su-GailReneePinto/.idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 6 additions & 3 deletions NUMAD21Su-GailReneePinto/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,21 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.neu.madcourse.numad21su_gailreneepinto">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher_grp"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_grp_round"
android:supportsRtl="true"
android:theme="@style/Theme.NUMAD21SuGailReneePinto">
<activity
android:name=".WebServiceActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
<activity
android:name=".LocateMeActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
></activity>
android:configChanges="keyboardHidden|orientation|screenSize" />
<activity
android:name=".LinkCollectorActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ public void onClick(View view) {
Intent locateme_intent = new Intent(this,LocateMeActivity.class);
startActivity(locateme_intent);
break;
case R.id.webservice_button:
Intent webservice_intent = new Intent(this,WebServiceActivity.class);
startActivity(webservice_intent);
break;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
package edu.neu.madcourse.numad21su_gailreneepinto;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;

import com.google.android.material.snackbar.Snackbar;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;

public class WebServiceActivity extends AppCompatActivity {

ImageView HTTPResponseImageView;
Button loadDataButton;
EditText HTTPStatusCodeEditText;
ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_web_service );
HTTPResponseImageView = findViewById( R.id.http_image );
loadDataButton = findViewById( R.id.HTTP_status_load_image_button );
HTTPStatusCodeEditText = findViewById( R.id.HTTP_status_code_input_editText );
loadDataButton.setOnClickListener( this::onLoadDataButtonClick );
progressBar = findViewById( R.id.progressBar2 );
}

public void onLoadDataButtonClick(View view)
{
WebServiceTask webServiceTask = new WebServiceTask();
webServiceTask.execute( );
}

private class WebServiceTask extends AsyncTask<Void, Void, Bitmap> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressBar.setVisibility(View.VISIBLE);
HTTPResponseImageView.setVisibility( View.INVISIBLE );
}

@Override
protected Bitmap doInBackground(Void... voids) {
String url = "https://http.cat/";
String lHTTPStatusCode = HTTPStatusCodeEditText.getText().toString();

Bitmap bitmap = null;
try {
URL httpStatusURL =new URL(url+ lHTTPStatusCode +".jpg");
HttpURLConnection conn = (HttpURLConnection) httpStatusURL.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
conn.setDoInput(true);
conn.connect();

InputStream inputStream = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}

@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute( result );
progressBar.setVisibility( View.INVISIBLE );
HTTPResponseImageView.setImageBitmap( result );
if( result == null )
{
Snackbar.make( findViewById(R.id.layout), "Could not retrieve image. Please try again later", Snackbar.LENGTH_LONG ).show();
}
HTTPResponseImageView.setVisibility( View.VISIBLE );
}
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/locateme_button" />
app:layout_constraintTop_toBottomOf="@+id/webservice_button" />

<Button
android:id="@+id/clickhere_button"
Expand Down Expand Up @@ -85,4 +85,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linkcollector_button" />

<Button
android:id="@+id/webservice_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:onClick="onClick"
android:text="@string/at_your_service_string"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/locateme_button" />

</androidx.constraintlayout.widget.ConstraintLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
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"
tools:context=".WebServiceActivity" >

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/HTTP_status_code_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/HTTP_Status_code_message"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.19" />

<ImageView
android:id="@+id/http_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="@string/HTTP_image_content_descriptor"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/HTTP_status_load_image_button"
app:layout_constraintVertical_bias="0.62"></ImageView>

<EditText
android:id="@+id/HTTP_status_code_input_editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/HTTP_status_code_textView"
android:importantForAutofill="no" />

<Button
android:id="@+id/HTTP_status_load_image_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/load_image_button_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/HTTP_status_code_input_editText" />

<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyle"
android:layout_width="105dp"
android:layout_height="106dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/HTTP_status_load_image_button"
app:layout_constraintVertical_bias="0.169" />

</androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>
4 changes: 4 additions & 0 deletions NUMAD21Su-GailReneePinto/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@
<string name="locate_me">Locate Me!</string>
<string name="location">Location</string>
<string name="location_permission_error_string">Your app requires permission to show location!</string>
<string name="at_your_service_string">At your service</string>
<string name="HTTP_Status_code_message">Enter an HTTP status code</string>
<string name="load_image_button_text">Load Image</string>
<string name="HTTP_image_content_descriptor">Cat image for HTTP status code</string>
</resources>
Binary file modified NUMAD21Su-GailReneePinto/release_key.jks
Binary file not shown.

0 comments on commit 2bf396b

Please sign in to comment.