diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index ea076f1..b6e4c90 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -4,6 +4,8 @@
android:versionCode="2"
android:versionName="1.0.0-SNAPSHOT">
+
+
();
@@ -42,6 +37,15 @@ protected void onCreate(Bundle savedInstanceState) {
final TextView _lat = (TextView) findViewById(R.id.fieldloclatvalue);
final TextView _long = (TextView) findViewById(R.id.fieldloclongvalue);
+
+ Gson gson = new Gson();
+ Zipcode z = gson.fromJson(JSON_ZIPCODE,Zipcode.class);
+
+ z.setId("11101");
+ z.setCity("ASTORIA");
+ z.setState("NY");
+ z.setPop(23142);
+
addjson.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
diff --git a/src/main/java/nyc/c4q/ListViewActivity.java b/src/main/java/nyc/c4q/ListViewActivity.java
index 78104c6..260ed10 100644
--- a/src/main/java/nyc/c4q/ListViewActivity.java
+++ b/src/main/java/nyc/c4q/ListViewActivity.java
@@ -1,9 +1,21 @@
package nyc.c4q;
import android.app.Activity;
+import android.database.DataSetObserver;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.ListAdapter;
+import android.widget.ListView;
import android.widget.TextView;
+import java.lang.reflect.Array;
+import java.util.List;
+
public class ListViewActivity extends Activity {
public static final String[] COLORS = {
@@ -19,11 +31,30 @@ public class ListViewActivity extends Activity {
"#bf538d"
};
public TextView textLog;
+ public ListView list;
+ public EditText adapterCount;
+ // public Color[] colorArray = R.array.colorArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);
textLog = (TextView) findViewById(R.id.textLog);
+ list = (ListView) findViewById(R.id.list);
+ adapterCount = (EditText) findViewById(R.id.adapterCount);
+
+ ListAdapter adapter = new ArrayAdapter(ListViewActivity.this,android.R.layout.simple_list_item_1,COLORS);
+ list.setAdapter(adapter);
+
+ for (int i = 0; i < COLORS.length; i++) {
+ View v = adapter.getView(i,null,list);
+ // for(int j =0; j < colorArray.length;j++)
+ //v.setBackgroundColor(array.colorArray[j]);
+
+ }
+
+
+
+
}
}
diff --git a/src/main/java/nyc/c4q/NetworkActivity.java b/src/main/java/nyc/c4q/NetworkActivity.java
index 3604cfc..861d111 100644
--- a/src/main/java/nyc/c4q/NetworkActivity.java
+++ b/src/main/java/nyc/c4q/NetworkActivity.java
@@ -18,6 +18,7 @@
import java.io.BufferedInputStream;
import java.io.DataOutputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
@@ -50,6 +51,27 @@ protected void onCreate(Bundle savedInstanceState) {
httptextlog = (TextView) findViewById(R.id.httptextlog);
httptextlog.setMovementMethod(new ScrollingMovementMethod());
+ AsyncTask replaceText = new AsyncTask() {
+ @Override
+ protected Object doInBackground(Object[] params) {
+ httptextlog.setText(urlParams);
+
+ return null;
+ }
+ };
+
+ AsyncTask replaceText2 = new AsyncTask() {
+ @Override
+ protected Object doInBackground(Object[] params) {
+ String replaced = urlParams.replaceAll("\\+"," ");
+ httptextlog.setText(replaced);
+ return null;
+ }
+ };
+ replaceText.execute();
+ replaceText2.execute();
+
+
/*
The goal is to use AsyncTasks here.
Shortcut to create URL in Java:
@@ -73,9 +95,16 @@ protected void onCreate(Bundle savedInstanceState) {
https://httpbin.org/post
*/
+ final String newUrl = "https://httpbin.org/get?custname=james+dean&custtel=347-841-6090&custemail=hello%40c4q.nyc&size=small&topping=cheese&delivery=18%3A15&comments=Leave+it+by+the+garage+door.+Don%27t+ask+any+questions.";
+
httpbinget.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ try {
+ httptextlog.setText(run(newUrl));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
});
@@ -102,6 +131,16 @@ public void onClick(View v) {
public void onClick(View v) {
httptextlog.setText("cleared HTTP response");
}
- });
+ });}
+
+ public String run(String url) throws IOException {
+ OkHttpClient client = new OkHttpClient();
+ Request request = new Request.Builder()
+ .url(url)
+ .build();
+ Response response = client.newCall(request).execute();
+ return response.body().string();
+
}
+
}
diff --git a/src/main/java/nyc/c4q/NotificationActivity.java b/src/main/java/nyc/c4q/NotificationActivity.java
index f1f56ad..7892da2 100644
--- a/src/main/java/nyc/c4q/NotificationActivity.java
+++ b/src/main/java/nyc/c4q/NotificationActivity.java
@@ -1,8 +1,14 @@
package nyc.c4q;
import android.app.Activity;
+import android.app.Notification;
import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
+import android.support.v4.app.NotificationCompat;
+import android.view.View;
import android.widget.Button;
public class NotificationActivity extends Activity {
@@ -25,5 +31,74 @@ protected void onCreate(Bundle savedInstanceState) {
Button dismisspermanentnotification = (Button) findViewById(R.id.dismisspermanentnotification);
Button buttonnotification = (Button) findViewById(R.id.buttonnotification);
+ autocancelnotification.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(NotificationActivity.this.getApplicationContext());
+
+ builder.setContentTitle("default@c4q.nyc");
+ builder.setContentText("Touch me to dismiss me!");
+ builder.setSmallIcon(R.drawable.c4qfavicon);
+
+ PendingIntent pendingIntent =
+ PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0);
+ builder.setContentIntent(pendingIntent);
+
+ Notification n = builder.build();
+ n.flags |= Notification.FLAG_AUTO_CANCEL;
+ builder.setAutoCancel(true);
+ notificationManager.notify(ID_AUTOCANCEL_NOTIFICATION, n);
+ }
+ });
+
+ swipenotification.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(NotificationActivity.this.getApplicationContext());
+
+ builder.setContentTitle("swipe@c4q.nyc");
+ builder.setContentText("Swipe right if you want to meet me. Otherwise, I'm not going away.");
+ builder.setSmallIcon(R.drawable.c4qfavicon);
+
+ PendingIntent pendingIntent =
+ PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0);
+ builder.setContentIntent(pendingIntent);
+
+ Notification n = builder.build();
+ builder.setAutoCancel(false);
+ notificationManager.notify(ID_SWIPE_NOTIFICATION, n);
+ }
+ });
+
+ permanentnotification.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(NotificationActivity.this.getApplicationContext());
+
+ builder.setContentTitle("permanent@c4q.nyc");
+ builder.setContentText("I'm staying planted right here.");
+ builder.setSmallIcon(R.drawable.c4qfavicon);
+
+ PendingIntent pendingIntent =
+ PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0);
+ builder.setContentIntent(pendingIntent);
+
+ Notification n = builder.build();
+ builder.setAutoCancel(false);
+ builder.setOngoing(true);
+ n.flags |= Notification.FLAG_NO_CLEAR;
+ notificationManager.notify(ID_PERMANENT_NOTIFICATION, n);
+ }
+ });
+
+ dismisspermanentnotification.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ notificationManager.cancel(ID_PERMANENT_NOTIFICATION);
+ }
+ });
+
}
}
+
diff --git a/src/main/java/nyc/c4q/Unit2AssessmentActivity.java b/src/main/java/nyc/c4q/Unit2AssessmentActivity.java
index f469eff..2c5497d 100644
--- a/src/main/java/nyc/c4q/Unit2AssessmentActivity.java
+++ b/src/main/java/nyc/c4q/Unit2AssessmentActivity.java
@@ -1,6 +1,7 @@
package nyc.c4q;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
@@ -53,4 +54,6 @@ public void onClick(View v) {
});
}
+
+
}
\ No newline at end of file
diff --git a/src/main/java/nyc/c4q/json/Zipcode.java b/src/main/java/nyc/c4q/json/Zipcode.java
index 6d4761f..9ef19c3 100644
--- a/src/main/java/nyc/c4q/json/Zipcode.java
+++ b/src/main/java/nyc/c4q/json/Zipcode.java
@@ -1,4 +1,53 @@
package nyc.c4q.json;
public class Zipcode {
+ public String id;
+ public String city;
+ public String state;
+ public int pop;
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public int getPop() {
+ return pop;
+ }
+
+ public void setPop(int pop) {
+ this.pop = pop;
+ }
+
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ public String getField(String field){
+ if(field.equalsIgnoreCase("_id")){
+ return this.id;
+ }else if(field.equalsIgnoreCase("city")){
+ return this.city;
+ }else if(field.equalsIgnoreCase("state")){
+ return this.state;
+ }else if(field.equalsIgnoreCase("pop")){
+ return String.valueOf(this.pop);
+ }
+ else return null;
+ }
}
diff --git a/src/main/res/layout/activity_listview.xml b/src/main/res/layout/activity_listview.xml
index 0d4b9d6..6e252d3 100644
--- a/src/main/res/layout/activity_listview.xml
+++ b/src/main/res/layout/activity_listview.xml
@@ -9,20 +9,30 @@
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="3"
+ android:text="You have not clicked anything." />
+
+
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="9"/>
\ No newline at end of file
diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml
new file mode 100644
index 0000000..898ff74
--- /dev/null
+++ b/src/main/res/values/colors.xml
@@ -0,0 +1,15 @@
+
+
+
+ - #142b44
+ - #1d508d
+ - #297cbb
+ - #288ad6
+ - #0fdebd
+ - #16c98d
+ - #feef6d
+ - #ffc83f
+ - #fa5e5b
+ - #bf538d
+
+
\ No newline at end of file
diff --git a/src/test/java/nyc/c4q/Part1ListViewActivityTests.java b/src/test/java/nyc/c4q/Part1ListViewActivityTests.java
index c473ee1..76eb7c5 100644
--- a/src/test/java/nyc/c4q/Part1ListViewActivityTests.java
+++ b/src/test/java/nyc/c4q/Part1ListViewActivityTests.java
@@ -38,14 +38,14 @@ public void setUp() {
listViewActivity = Robolectric.buildActivity(ListViewActivity.class).setup().get();
}
- @Test
+ @Test //DONE
public void test01ListViewActvityCheckFirstLevelHas2Views() {
LinearLayout activity_listview = (LinearLayout) Helpers.findViewByIdString(listViewActivity, "activity_listview");
assertThat(activity_listview.getChildCount(), equalTo(2));
Assertions.assertThat(activity_listview).hasOrientation(LinearLayout.VERTICAL);
}
- @Test
+ @Test //DONE
public void test02ListViewActivityCheckFirstLevelLayoutViewHeader() {
LinearLayout header = (LinearLayout) Helpers.findViewByIdString(listViewActivity, "header");
assertThat(header, notNullValue());
@@ -55,7 +55,7 @@ public void test02ListViewActivityCheckFirstLevelLayoutViewHeader() {
assertThat(((LinearLayout.LayoutParams) header.getLayoutParams()).weight, equalTo(1.0f));
Assertions.assertThat(header).hasOrientation(LinearLayout.HORIZONTAL);
}
- @Test
+ @Test //DONE
public void test03ListViewActivityCheckFirstLevelLayoutViewList() {
ListView list = (ListView) Helpers.findViewByIdString(listViewActivity, "list");
assertThat(list, notNullValue());
@@ -65,7 +65,7 @@ public void test03ListViewActivityCheckFirstLevelLayoutViewList() {
assertThat(((LinearLayout.LayoutParams) list.getLayoutParams()).weight, equalTo(9.0f));
}
- @Test
+ @Test //DONE
public void test04ListViewActivityCheckSecondLevelLayoutViewTextLog() {
TextView textLog = (TextView) Helpers.findViewByIdString(listViewActivity, "textLog");
@@ -77,7 +77,7 @@ public void test04ListViewActivityCheckSecondLevelLayoutViewTextLog() {
Assertions.assertThat(textLog).containsText("You have not clicked anything.");
}
- @Test
+ @Test //DONE
public void test05ListViewActivityCheckSecondLevelLayoutViewAdapterCount() {
EditText adapterCount = (EditText) Helpers.findViewByIdString(listViewActivity, "adapterCount");
@@ -89,7 +89,7 @@ public void test05ListViewActivityCheckSecondLevelLayoutViewAdapterCount() {
assertThat(adapterCount.getInputType(), equalTo(InputType.TYPE_CLASS_PHONE));
}
- @Test
+ @Test //DONE
public void test06ListViewActivityCheckAdapterCount() {
ListView list = (ListView) Helpers.findViewByIdString(listViewActivity, "list");
ListAdapter adapter = list.getAdapter();
diff --git a/src/test/java/nyc/c4q/Part2NetworkActivityTests.java b/src/test/java/nyc/c4q/Part2NetworkActivityTests.java
index 3a561c6..64c13c5 100644
--- a/src/test/java/nyc/c4q/Part2NetworkActivityTests.java
+++ b/src/test/java/nyc/c4q/Part2NetworkActivityTests.java
@@ -33,7 +33,7 @@ public void setUp() {
networkActivity = Robolectric.buildActivity(NetworkActivity.class).setup().get();
}
- @Test
+ @Test //DONE
public void test11AppHasInternetPermissions() {
AndroidManifest manifest = Robolectric.getShadowApplication().getAppManifest();
List usedPermissions = manifest.getUsedPermissions();