From d344673cc43f955747639f56b5f5880ca1b696e6 Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 11:52:17 -0400 Subject: [PATCH 01/24] Lets add butterknife --- app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle b/app/build.gradle index 5033f65..e5c7135 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,4 +25,5 @@ dependencies { compile 'se.emilsjolander:StickyScrollViewItems:1.1.0' compile 'com.google.android.gms:play-services:7.5.0' compile 'com.squareup.picasso:picasso:2.5.2' + compile 'com.jakewharton:butterknife:7.0.1' } From e4bd45df4ef420c30277ee9e772c0484752e2f0d Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 11:52:44 -0400 Subject: [PATCH 02/24] Start grouping together similar methods. --- .../bernieapp/fragments/ConnectFragment.java | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java index 354b9e5..03e8a50 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java @@ -26,6 +26,7 @@ import android.widget.TextView; import android.widget.Toast; +import butterknife.ButterKnife; import com.google.android.gms.common.GooglePlayServicesNotAvailableException; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; @@ -55,6 +56,7 @@ public class ConnectFragment extends Fragment { public int mRadius = 50; public boolean fetchCountry = true; private static ConnectFragment mInstance; + public static ConnectFragment getInstance() { if (mInstance == null) { mInstance = new ConnectFragment(); @@ -63,17 +65,15 @@ public static ConnectFragment getInstance() { return mInstance; } } - - public static void cancelTask() { - if (mTask != null) { - if (mTask.getStatus() == AsyncTask.Status.RUNNING) { - mTask.cancel(true); - } - } + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.frag_connect, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { + getView().findViewById(R.id.c_btnRadius).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -219,6 +219,14 @@ private void startTask() { } } + public static void cancelTask() { + if (mTask != null) { + if (mTask.getStatus() == AsyncTask.Status.RUNNING) { + mTask.cancel(true); + } + } + } + private boolean validZip() { String text = ((EditText) getView().findViewById(R.id.c_edtZip)).getText().toString(); try { @@ -234,13 +242,6 @@ private void setRadius(int m) { mRadius = m++ < 4 ? m*25 : ((m-2)*50); ((Button) getView().findViewById(R.id.c_btnRadius)).setText(mRadius + " miles"); } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - return inflater.inflate(R.layout.frag_connect, container, false); - } - private void setUpMap() { SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.c_map); mapFragment.getMapAsync(new OnMapReadyCallback() { From 52853126fddf5562329f999b8e6f803aee167221 Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 11:57:32 -0400 Subject: [PATCH 03/24] Move onclicks into their own @OnClick methods. --- app/src/main/AndroidManifest.xml | 2 +- .../bernieapp/fragments/ConnectFragment.java | 62 +++++++++---------- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f1b06e2..0160754 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ + android:value="@string/google_maps_api_key"/> adapterView, View view, int i, long l) { - listItemClicked(i, false); - } - }); - fetchCountry = true; - setUpMap(); - MapsInitializer.initialize(getActivity().getApplicationContext()); - super.onViewCreated(view, savedInstanceState); + bld.create().show(); } + @OnClick(R.id.c_btnGo) void onGoClicked(View view){ + fetchCountry = false; + startTask(); + InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + @OnItemClick(R.id.c_listEvents) void onEventsListClicked(int position){ + listItemClicked(position,false); + } + + private void listItemClicked(int pos, boolean alreadyLoaded) { final View base = getView(); if (!alreadyLoaded) { From 52e52d263dbda31088679d51809c66548498054c Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 12:32:17 -0400 Subject: [PATCH 04/24] Replace all findViewById with basic ButterKnife binding. --- .../bernieapp/fragments/ConnectFragment.java | 125 ++++++++++-------- 1 file changed, 69 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java index 558e8dc..fdf439c 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java @@ -9,6 +9,7 @@ import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v7.app.AlertDialog; import android.text.Html; import android.text.method.ScrollingMovementMethod; import android.util.Log; @@ -18,19 +19,21 @@ import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.inputmethod.InputMethodManager; -import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; +import android.widget.FrameLayout; import android.widget.ListView; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; +import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.OnItemClick; -import com.google.android.gms.common.GooglePlayServicesNotAvailableException; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapsInitializer; @@ -53,13 +56,31 @@ */ public class ConnectFragment extends Fragment { private static ConnectTask mTask; - private static GoogleMap map; + private GoogleMap map; private HashMap mHashMap; public String mZip = ""; public int mRadius = 50; public boolean fetchCountry = true; private static ConnectFragment mInstance; + @Bind(R.id.c_btnGo) Button goButton; + @Bind(R.id.c_btnRadius) Button radiusButton; + @Bind(R.id.cd_btnRSVP) Button rsvpButton; + @Bind(R.id.cd_btnDirections) Button directionButton; + + @Bind(R.id.cd_txtDate) TextView dateText; + @Bind(R.id.cd_txtTitle) TextView titleText; + @Bind(R.id.cd_txtDescContent) TextView descriptionText; + @Bind(R.id.cd_txtLocation) TextView locationText; + @Bind(R.id.cd_txtRSVP) TextView rsvpText; + + @Bind(R.id.c_edtZip) EditText zipEdit; + @Bind(R.id.c_progress) ProgressBar progressBar; + @Bind(R.id.c_mapContainer) FrameLayout mapFrame; + @Bind(R.id.cd_container) RelativeLayout container; + @Bind(R.id.c_listEvents) ListView eventList; + @Bind(R.id.c_map) SupportMapFragment mapFragment; + public static ConnectFragment getInstance() { if (mInstance == null) { mInstance = new ConnectFragment(); @@ -84,7 +105,7 @@ public void onViewCreated(View view, Bundle savedInstanceState) { } @OnClick(R.id.c_btnRadius) void onRadiusClicked(){ - android.support.v7.app.AlertDialog.Builder bld = new android.support.v7.app.AlertDialog.Builder(getActivity()); + AlertDialog.Builder bld = new AlertDialog.Builder(getActivity()); bld.setTitle("Pick a Radius"); bld.setSingleChoiceItems(R.array.radius_choices, 1, new DialogInterface.OnClickListener() { @Override @@ -104,17 +125,16 @@ public void onClick(DialogInterface dialogInterface, int i) { } @OnItemClick(R.id.c_listEvents) void onEventsListClicked(int position){ - listItemClicked(position,false); + listItemClicked(position, false); } private void listItemClicked(int pos, boolean alreadyLoaded) { - final View base = getView(); if (!alreadyLoaded) { View[] topViews = new View[]{ - base.findViewById(R.id.c_edtZip), - base.findViewById(R.id.c_btnRadius), - base.findViewById(R.id.c_btnGo) + zipEdit, + radiusButton, + goButton }; for (final View v : topViews) { Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.abc_slide_out_top); @@ -136,7 +156,6 @@ public void onAnimationRepeat(Animation animation) { }); v.startAnimation(anim); } - final View list = base.findViewById(R.id.c_listEvents); Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.abc_slide_out_bottom); anim.setAnimationListener(new Animation.AnimationListener() { @Override @@ -146,7 +165,7 @@ public void onAnimationStart(Animation animation) { @Override public void onAnimationEnd(Animation animation) { - list.setVisibility(View.GONE); + eventList.setVisibility(View.GONE); } @Override @@ -154,12 +173,11 @@ public void onAnimationRepeat(Animation animation) { } }); - list.startAnimation(anim); - View mapContainer = base.findViewById(R.id.c_mapContainer); - mapContainer.startAnimation(new AnimationUtils().loadAnimation(getActivity(), R.anim.view_slide_up)); + eventList.startAnimation(anim); + mapFrame.startAnimation(new AnimationUtils().loadAnimation(getActivity(), R.anim.view_slide_up)); } final Event e = ConnectTask.getEvents().get(pos); - base.findViewById(R.id.cd_btnRSVP).setOnClickListener(new View.OnClickListener() { + rsvpButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent i = new Intent(Intent.ACTION_VIEW); @@ -167,7 +185,7 @@ public void onClick(View view) { startActivity(i); } }); - base.findViewById(R.id.cd_btnDirections).setOnClickListener(new View.OnClickListener() { + directionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Uri gmmIntentUri = Uri.parse("geo:" + Double.toString(e.getLatitude()) + "," + Double.toString(e.getLongitude())); @@ -176,17 +194,17 @@ public void onClick(View view) { startActivity(mapIntent); } }); - if (e.getDate() != null) ((TextView) base.findViewById(R.id.cd_txtDate)).setText(e.getDate()); - ((TextView) base.findViewById(R.id.cd_txtTitle)).setText(e.getName()); - ((TextView) base.findViewById(R.id.cd_txtDescContent)).setText(Html.fromHtml(e.getDescription())); - ((TextView) base.findViewById(R.id.cd_txtDescContent)).setMovementMethod(new ScrollingMovementMethod()); - if (e.getVenue_city() != null) ((TextView) base.findViewById(R.id.cd_txtLocation)).setText(e.getVenue_addr() + "\n" + e.getVenue_city() + ", " + e.getState() + " - " + e.getZip()); - if (e.getAttendee_count() != 0) ((TextView) base.findViewById(R.id.cd_txtRSVP)).setText(e.isOfficial() ? "N/A" : Integer.toString(e.getAttendee_count())); + if (e.getDate() != null) dateText.setText(e.getDate()); + titleText.setText(e.getName()); + descriptionText.setText(Html.fromHtml(e.getDescription())); + descriptionText.setMovementMethod(new ScrollingMovementMethod()); + if (e.getVenue_city() != null) locationText.setText(String.format("%s\n%s, %s - %d", e.getVenue_addr(), e.getVenue_city(), e.getState(), e.getZip())); + if (e.getAttendee_count() != 0) rsvpText.setText(e.isOfficial() ? "N/A" : Integer.toString(e.getAttendee_count())); Animation fadeIn = AnimationUtils.loadAnimation(getActivity(), alreadyLoaded ? R.anim.view_fade_in_fast : R.anim.view_fade_in); fadeIn.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { - base.findViewById(R.id.cd_container).setVisibility(View.VISIBLE); + container.setVisibility(View.VISIBLE); } @Override @@ -198,7 +216,7 @@ public void onAnimationRepeat(Animation animation) { } }); - base.findViewById(R.id.cd_container).startAnimation(fadeIn); + container.startAnimation(fadeIn); } private void startTask() { @@ -207,9 +225,9 @@ private void startTask() { mTask = new ConnectTask(getActivity(), getInstance()); mTask.execute(); } else if (validZip()) { - getView().findViewById(R.id.c_btnGo).setEnabled(false); - getView().findViewById(R.id.c_btnGo).setBackgroundColor(Color.parseColor("#CCCCCC")); - getView().findViewById(R.id.c_progress).setVisibility(View.VISIBLE); + goButton.setEnabled(false); + goButton.setBackgroundColor(Color.parseColor("#CCCCCC")); + progressBar.setVisibility(View.VISIBLE); mTask = new ConnectTask(getActivity(), getInstance()); mTask.execute(); } else { @@ -226,7 +244,7 @@ public static void cancelTask() { } private boolean validZip() { - String text = ((EditText) getView().findViewById(R.id.c_edtZip)).getText().toString(); + String text = zipEdit.getText().toString(); try { Integer.parseInt(text); } catch (NumberFormatException e) { @@ -238,18 +256,17 @@ private boolean validZip() { private void setRadius(int m) { mRadius = m++ < 4 ? m*25 : ((m-2)*50); - ((Button) getView().findViewById(R.id.c_btnRadius)).setText(mRadius + " miles"); + radiusButton.setText(mRadius + " miles"); } private void setUpMap() { - SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.c_map); mapFragment.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(GoogleMap googleMap) { Log.d("Map Ready", "Bam."); - ConnectFragment.this.map = googleMap; - ConnectFragment.this.getView().findViewById(R.id.c_btnGo).setEnabled(true); - ConnectFragment.this.getView().findViewById(R.id.c_progress).setVisibility(View.GONE); - ConnectFragment.this.getView().findViewById(R.id.c_btnGo).setBackgroundColor(Color.parseColor("#147FD7")); + map = googleMap; + goButton.setEnabled(true); + goButton.setBackgroundColor(Color.parseColor("#147FD7")); + progressBar.setVisibility(View.GONE); } }); startTask(); @@ -281,19 +298,18 @@ public void setMarkers() { @Override public boolean onMarkerClick(final Marker marker) { final int id = Integer.parseInt(marker.getId().substring(1)); - if (getView().findViewById(R.id.cd_container).getVisibility() == View.VISIBLE) { + if (container.getVisibility() == View.VISIBLE) { listItemClicked(mHashMap.get(marker), true); return false; } - final ListView list = (ListView) getView().findViewById(R.id.c_listEvents); - list.post(new Runnable() { + eventList.post(new Runnable() { @Override public void run() { - list.smoothScrollToPositionFromTop(mHashMap.get(marker), 0, 500); - list.postDelayed(new Runnable() { + eventList.smoothScrollToPositionFromTop(mHashMap.get(marker), 0, 500); + eventList.postDelayed(new Runnable() { @Override public void run() { - list.setSelection(mHashMap.get(marker)); + eventList.setSelection(mHashMap.get(marker)); } }, 510); } @@ -304,30 +320,27 @@ public void run() { } public void updateViews(ArrayAdapter a) { - View parent = getView(); - if (parent == null) { + if (getView() == null) { return; //We switched out of this view. } - ListView list = (ListView) getView().findViewById(R.id.c_listEvents); - list.setAdapter(a); - list.setVisibility(View.VISIBLE); - parent.findViewById(R.id.c_mapContainer).setVisibility(View.VISIBLE); - parent.findViewById(R.id.c_progress).setVisibility(View.GONE); - parent.findViewById(R.id.c_btnGo).setEnabled(true); - parent.findViewById(R.id.c_btnGo).setBackgroundColor(Color.parseColor("#147FD7")); + eventList.setAdapter(a); + eventList.setVisibility(View.VISIBLE); + mapFrame.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.GONE); + goButton.setEnabled(true); + goButton.setBackgroundColor(Color.parseColor("#147FD7")); } public void backPressed() { - View parent = getView(); - if (parent.findViewById(R.id.c_btnGo).getVisibility() == View.VISIBLE) { + if (goButton.getVisibility() == View.VISIBLE) { getActivity().finish(); cancelTask(); } else { - parent.findViewById(R.id.c_edtZip).setVisibility(View.VISIBLE); - parent.findViewById(R.id.c_btnRadius).setVisibility(View.VISIBLE); - parent.findViewById(R.id.c_listEvents).setVisibility(View.VISIBLE); - parent.findViewById(R.id.c_btnGo).setVisibility(View.VISIBLE); - parent.findViewById(R.id.cd_container).setVisibility(View.GONE); + zipEdit.setVisibility(View.VISIBLE); + radiusButton.setVisibility(View.VISIBLE); + eventList.setVisibility(View.VISIBLE); + goButton.setVisibility(View.VISIBLE); + container.setVisibility(View.GONE); } } } From 28d72e7d8141bb09d8a775a3e69019278c1827d9 Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 12:36:01 -0400 Subject: [PATCH 05/24] Can't bind fragments. --- .../spielpark/steve/bernieapp/fragments/ConnectFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java index fdf439c..5072485 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java @@ -79,7 +79,6 @@ public class ConnectFragment extends Fragment { @Bind(R.id.c_mapContainer) FrameLayout mapFrame; @Bind(R.id.cd_container) RelativeLayout container; @Bind(R.id.c_listEvents) ListView eventList; - @Bind(R.id.c_map) SupportMapFragment mapFragment; public static ConnectFragment getInstance() { if (mInstance == null) { @@ -259,6 +258,7 @@ private void setRadius(int m) { radiusButton.setText(mRadius + " miles"); } private void setUpMap() { + SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.c_map); mapFragment.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(GoogleMap googleMap) { From 8b681de7afde39d7754a6d418665a7248091815f Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 12:54:32 -0400 Subject: [PATCH 06/24] Make sure to unbind a Fragment in onDestroyView. --- .../steve/bernieapp/fragments/ConnectFragment.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java index 5072485..828a8a0 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java @@ -96,6 +96,12 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, return view; } + @Override + public void onDestroyView() { + super.onDestroyView(); + ButterKnife.unbind(this); + } + @Override public void onViewCreated(View view, Bundle savedInstanceState) { setUpMap(); From ad75dd5eef3831e143cdfe17c09ff28be027b13e Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 13:05:51 -0400 Subject: [PATCH 07/24] Format strings instead of appending, use color resources instead of parsing. --- .../steve/bernieapp/fragments/ConnectFragment.java | 8 ++++---- app/src/main/res/values/colors.xml | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/values/colors.xml diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java index 828a8a0..dedf00f 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java @@ -231,7 +231,7 @@ private void startTask() { mTask.execute(); } else if (validZip()) { goButton.setEnabled(false); - goButton.setBackgroundColor(Color.parseColor("#CCCCCC")); + goButton.setBackgroundResource(R.color.fragment_connect_go_button_disabled); progressBar.setVisibility(View.VISIBLE); mTask = new ConnectTask(getActivity(), getInstance()); mTask.execute(); @@ -261,7 +261,7 @@ private boolean validZip() { private void setRadius(int m) { mRadius = m++ < 4 ? m*25 : ((m-2)*50); - radiusButton.setText(mRadius + " miles"); + radiusButton.setText(String.format("%d miles", mRadius)); } private void setUpMap() { SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.c_map); @@ -271,7 +271,7 @@ public void onMapReady(GoogleMap googleMap) { Log.d("Map Ready", "Bam."); map = googleMap; goButton.setEnabled(true); - goButton.setBackgroundColor(Color.parseColor("#147FD7")); + goButton.setBackgroundResource(R.color.fragment_connect_go_button_background); progressBar.setVisibility(View.GONE); } }); @@ -334,7 +334,7 @@ public void updateViews(ArrayAdapter a) { mapFrame.setVisibility(View.VISIBLE); progressBar.setVisibility(View.GONE); goButton.setEnabled(true); - goButton.setBackgroundColor(Color.parseColor("#147FD7")); + goButton.setBackgroundResource(R.color.fragment_connect_go_button_background); } public void backPressed() { diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..ae7dace --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #147FD7 + #CCCCCC + \ No newline at end of file From b1f6709c088361df96e069b59a515db8650d97bd Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 23:01:43 -0400 Subject: [PATCH 08/24] Square Style --- .../bernieapp/fragments/ConnectFragment.java | 540 +++++++++--------- 1 file changed, 261 insertions(+), 279 deletions(-) diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java index dedf00f..d4a26c3 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/ConnectFragment.java @@ -1,10 +1,8 @@ package com.spielpark.steve.bernieapp.fragments; - import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; -import android.graphics.Color; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; @@ -28,12 +26,10 @@ import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; - import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.OnItemClick; - import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapsInitializer; @@ -47,7 +43,6 @@ import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.tasks.ConnectTask; import com.spielpark.steve.bernieapp.wrappers.Event; - import java.util.ArrayList; import java.util.HashMap; @@ -55,298 +50,285 @@ * A simple {@link Fragment} subclass. */ public class ConnectFragment extends Fragment { - private static ConnectTask mTask; - private GoogleMap map; - private HashMap mHashMap; - public String mZip = ""; - public int mRadius = 50; - public boolean fetchCountry = true; - private static ConnectFragment mInstance; - - @Bind(R.id.c_btnGo) Button goButton; - @Bind(R.id.c_btnRadius) Button radiusButton; - @Bind(R.id.cd_btnRSVP) Button rsvpButton; - @Bind(R.id.cd_btnDirections) Button directionButton; - - @Bind(R.id.cd_txtDate) TextView dateText; - @Bind(R.id.cd_txtTitle) TextView titleText; - @Bind(R.id.cd_txtDescContent) TextView descriptionText; - @Bind(R.id.cd_txtLocation) TextView locationText; - @Bind(R.id.cd_txtRSVP) TextView rsvpText; - - @Bind(R.id.c_edtZip) EditText zipEdit; - @Bind(R.id.c_progress) ProgressBar progressBar; - @Bind(R.id.c_mapContainer) FrameLayout mapFrame; - @Bind(R.id.cd_container) RelativeLayout container; - @Bind(R.id.c_listEvents) ListView eventList; - - public static ConnectFragment getInstance() { - if (mInstance == null) { - mInstance = new ConnectFragment(); - return mInstance; - } else { - return mInstance; - } - } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.frag_connect, container, false); - ButterKnife.bind(this,view); - return view; + private static ConnectTask mTask; + private static ConnectFragment mInstance; + public String mZip = ""; + public int mRadius = 50; + public boolean fetchCountry = true; + @Bind(R.id.c_btnGo) Button goButton; + @Bind(R.id.c_btnRadius) Button radiusButton; + @Bind(R.id.cd_btnRSVP) Button rsvpButton; + @Bind(R.id.cd_btnDirections) Button directionButton; + @Bind(R.id.cd_txtDate) TextView dateText; + @Bind(R.id.cd_txtTitle) TextView titleText; + @Bind(R.id.cd_txtDescContent) TextView descriptionText; + @Bind(R.id.cd_txtLocation) TextView locationText; + @Bind(R.id.cd_txtRSVP) TextView rsvpText; + @Bind(R.id.c_edtZip) EditText zipEdit; + @Bind(R.id.c_progress) ProgressBar progressBar; + @Bind(R.id.c_mapContainer) FrameLayout mapFrame; + @Bind(R.id.cd_container) RelativeLayout container; + @Bind(R.id.c_listEvents) ListView eventList; + private GoogleMap map; + private HashMap mHashMap; + + public static ConnectFragment getInstance() { + if (mInstance == null) { + mInstance = new ConnectFragment(); + return mInstance; + } else { + return mInstance; } + } - @Override - public void onDestroyView() { - super.onDestroyView(); - ButterKnife.unbind(this); + public static void cancelTask() { + if (mTask != null) { + if (mTask.getStatus() == AsyncTask.Status.RUNNING) { + mTask.cancel(true); + } } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - setUpMap(); - MapsInitializer.initialize(getActivity().getApplicationContext()); - super.onViewCreated(view, savedInstanceState); - } - - @OnClick(R.id.c_btnRadius) void onRadiusClicked(){ - AlertDialog.Builder bld = new AlertDialog.Builder(getActivity()); - bld.setTitle("Pick a Radius"); - bld.setSingleChoiceItems(R.array.radius_choices, 1, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - setRadius(i); - dialogInterface.dismiss(); - } + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.frag_connect, container, false); + ButterKnife.bind(this, view); + return view; + } + + @Override public void onDestroyView() { + super.onDestroyView(); + ButterKnife.unbind(this); + } + + @Override public void onViewCreated(View view, Bundle savedInstanceState) { + setUpMap(); + MapsInitializer.initialize(getActivity().getApplicationContext()); + super.onViewCreated(view, savedInstanceState); + } + + @OnClick(R.id.c_btnRadius) void onRadiusClicked() { + AlertDialog.Builder bld = new AlertDialog.Builder(getActivity()); + bld.setTitle("Pick a Radius"); + bld.setSingleChoiceItems(R.array.radius_choices, 1, new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialogInterface, int i) { + setRadius(i); + dialogInterface.dismiss(); + } + }); + bld.create().show(); + } + + @OnClick(R.id.c_btnGo) void onGoClicked(View view) { + fetchCountry = false; + startTask(); + InputMethodManager inputMethodManager = + (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + @OnItemClick(R.id.c_listEvents) void onEventsListClicked(int position) { + listItemClicked(position, false); + } + + private void listItemClicked(int pos, boolean alreadyLoaded) { + if (!alreadyLoaded) { + View[] topViews = new View[] { + zipEdit, radiusButton, goButton + }; + for (final View v : topViews) { + Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.abc_slide_out_top); + anim.setAnimationListener(new Animation.AnimationListener() { + @Override public void onAnimationStart(Animation animation) { + + } + + @Override public void onAnimationEnd(Animation animation) { + v.setVisibility(View.GONE); + } + + @Override public void onAnimationRepeat(Animation animation) { + + } }); - bld.create().show(); - } - - @OnClick(R.id.c_btnGo) void onGoClicked(View view){ - fetchCountry = false; - startTask(); - InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); - inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - - @OnItemClick(R.id.c_listEvents) void onEventsListClicked(int position){ - listItemClicked(position, false); - } - - - private void listItemClicked(int pos, boolean alreadyLoaded) { - if (!alreadyLoaded) { - View[] topViews = new View[]{ - zipEdit, - radiusButton, - goButton - }; - for (final View v : topViews) { - Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.abc_slide_out_top); - anim.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - - } - - @Override - public void onAnimationEnd(Animation animation) { - v.setVisibility(View.GONE); - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - }); - v.startAnimation(anim); - } - Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.abc_slide_out_bottom); - anim.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - - } - - @Override - public void onAnimationEnd(Animation animation) { - eventList.setVisibility(View.GONE); - } + v.startAnimation(anim); + } + Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.abc_slide_out_bottom); + anim.setAnimationListener(new Animation.AnimationListener() { + @Override public void onAnimationStart(Animation animation) { - @Override - public void onAnimationRepeat(Animation animation) { - - } - }); - eventList.startAnimation(anim); - mapFrame.startAnimation(new AnimationUtils().loadAnimation(getActivity(), R.anim.view_slide_up)); } - final Event e = ConnectTask.getEvents().get(pos); - rsvpButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse(e.getUrl())); - startActivity(i); - } - }); - directionButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Uri gmmIntentUri = Uri.parse("geo:" + Double.toString(e.getLatitude()) + "," + Double.toString(e.getLongitude())); - Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); - mapIntent.setPackage("com.google.android.apps.maps"); - startActivity(mapIntent); - } - }); - if (e.getDate() != null) dateText.setText(e.getDate()); - titleText.setText(e.getName()); - descriptionText.setText(Html.fromHtml(e.getDescription())); - descriptionText.setMovementMethod(new ScrollingMovementMethod()); - if (e.getVenue_city() != null) locationText.setText(String.format("%s\n%s, %s - %d", e.getVenue_addr(), e.getVenue_city(), e.getState(), e.getZip())); - if (e.getAttendee_count() != 0) rsvpText.setText(e.isOfficial() ? "N/A" : Integer.toString(e.getAttendee_count())); - Animation fadeIn = AnimationUtils.loadAnimation(getActivity(), alreadyLoaded ? R.anim.view_fade_in_fast : R.anim.view_fade_in); - fadeIn.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - container.setVisibility(View.VISIBLE); - } - - @Override - public void onAnimationEnd(Animation animation) { - } - @Override - public void onAnimationRepeat(Animation animation) { - - } - }); - container.startAnimation(fadeIn); - } - - private void startTask() { - cancelTask(); - if (fetchCountry) { - mTask = new ConnectTask(getActivity(), getInstance()); - mTask.execute(); - } else if (validZip()) { - goButton.setEnabled(false); - goButton.setBackgroundResource(R.color.fragment_connect_go_button_disabled); - progressBar.setVisibility(View.VISIBLE); - mTask = new ConnectTask(getActivity(), getInstance()); - mTask.execute(); - } else { - Toast.makeText(getActivity(), "Please enter a valid Zip Code!", Toast.LENGTH_SHORT).show(); + @Override public void onAnimationEnd(Animation animation) { + eventList.setVisibility(View.GONE); } - } - public static void cancelTask() { - if (mTask != null) { - if (mTask.getStatus() == AsyncTask.Status.RUNNING) { - mTask.cancel(true); - } - } - } + @Override public void onAnimationRepeat(Animation animation) { - private boolean validZip() { - String text = zipEdit.getText().toString(); - try { - Integer.parseInt(text); - } catch (NumberFormatException e) { - return false; } - mZip = text; - return text.length() == 5; + }); + eventList.startAnimation(anim); + mapFrame.startAnimation( + new AnimationUtils().loadAnimation(getActivity(), R.anim.view_slide_up)); } - - private void setRadius(int m) { - mRadius = m++ < 4 ? m*25 : ((m-2)*50); - radiusButton.setText(String.format("%d miles", mRadius)); + final Event e = ConnectTask.getEvents().get(pos); + rsvpButton.setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View view) { + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(e.getUrl())); + startActivity(i); + } + }); + directionButton.setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View view) { + Uri gmmIntentUri = Uri.parse( + "geo:" + Double.toString(e.getLatitude()) + "," + Double.toString(e.getLongitude())); + Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); + mapIntent.setPackage("com.google.android.apps.maps"); + startActivity(mapIntent); + } + }); + if (e.getDate() != null) dateText.setText(e.getDate()); + titleText.setText(e.getName()); + descriptionText.setText(Html.fromHtml(e.getDescription())); + descriptionText.setMovementMethod(new ScrollingMovementMethod()); + if (e.getVenue_city() != null) { + locationText.setText( + String.format("%s\n%s, %s - %d", e.getVenue_addr(), e.getVenue_city(), e.getState(), + e.getZip())); } - private void setUpMap() { - SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.c_map); - mapFragment.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(GoogleMap googleMap) { - Log.d("Map Ready", "Bam."); - map = googleMap; - goButton.setEnabled(true); - goButton.setBackgroundResource(R.color.fragment_connect_go_button_background); - progressBar.setVisibility(View.GONE); - } - }); - startTask(); + if (e.getAttendee_count() != 0) { + rsvpText.setText(e.isOfficial() ? "N/A" : Integer.toString(e.getAttendee_count())); } - - public void setMarkers() { - map.clear(); - ArrayList events = ConnectTask.getEvents(); - if (events.size() == 0) { - return; //There are no events to draw. - } - mHashMap = new HashMap<>(events.size()); - LatLngBounds.Builder bld = new LatLngBounds.Builder(); - LatLng pos; - float hue; - int id = 0; - for (Event e : ConnectTask.getEvents()) { - hue = e.isOfficial() ? 1.0f : 214f; - pos = new LatLng(e.getLatitude(), e.getLongitude()); - mHashMap.put(map.addMarker(new MarkerOptions() - .position(pos) - .title(e.getName()) - .icon(BitmapDescriptorFactory.defaultMarker(hue))), id++); - bld.include(pos); - } - LatLngBounds bounds = bld.build(); - map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0)); - map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { - @Override - public boolean onMarkerClick(final Marker marker) { - final int id = Integer.parseInt(marker.getId().substring(1)); - if (container.getVisibility() == View.VISIBLE) { - listItemClicked(mHashMap.get(marker), true); - return false; - } - eventList.post(new Runnable() { - @Override - public void run() { - eventList.smoothScrollToPositionFromTop(mHashMap.get(marker), 0, 500); - eventList.postDelayed(new Runnable() { - @Override - public void run() { - eventList.setSelection(mHashMap.get(marker)); - } - }, 510); - } - }); - return false; - } - }); + Animation fadeIn = AnimationUtils.loadAnimation(getActivity(), + alreadyLoaded ? R.anim.view_fade_in_fast : R.anim.view_fade_in); + fadeIn.setAnimationListener(new Animation.AnimationListener() { + @Override public void onAnimationStart(Animation animation) { + container.setVisibility(View.VISIBLE); + } + + @Override public void onAnimationEnd(Animation animation) { + } + + @Override public void onAnimationRepeat(Animation animation) { + + } + }); + container.startAnimation(fadeIn); + } + + private void startTask() { + cancelTask(); + if (fetchCountry) { + mTask = new ConnectTask(getActivity(), getInstance()); + mTask.execute(); + } else if (validZip()) { + goButton.setEnabled(false); + goButton.setBackgroundResource(R.color.fragment_connect_go_button_disabled); + progressBar.setVisibility(View.VISIBLE); + mTask = new ConnectTask(getActivity(), getInstance()); + mTask.execute(); + } else { + Toast.makeText(getActivity(), "Please enter a valid Zip Code!", Toast.LENGTH_SHORT).show(); } - - public void updateViews(ArrayAdapter a) { - if (getView() == null) { - return; //We switched out of this view. - } - eventList.setAdapter(a); - eventList.setVisibility(View.VISIBLE); - mapFrame.setVisibility(View.VISIBLE); - progressBar.setVisibility(View.GONE); + } + + private boolean validZip() { + String text = zipEdit.getText().toString(); + try { + Integer.parseInt(text); + } catch (NumberFormatException e) { + return false; + } + mZip = text; + return text.length() == 5; + } + + private void setRadius(int m) { + mRadius = m++ < 4 ? m * 25 : ((m - 2) * 50); + radiusButton.setText(String.format("%d miles", mRadius)); + } + + private void setUpMap() { + SupportMapFragment mapFragment = + (SupportMapFragment) this.getChildFragmentManager().findFragmentById(R.id.c_map); + mapFragment.getMapAsync(new OnMapReadyCallback() { + @Override public void onMapReady(GoogleMap googleMap) { + Log.d("Map Ready", "Bam."); + map = googleMap; goButton.setEnabled(true); goButton.setBackgroundResource(R.color.fragment_connect_go_button_background); + progressBar.setVisibility(View.GONE); + } + }); + startTask(); + } + + public void setMarkers() { + map.clear(); + ArrayList events = ConnectTask.getEvents(); + if (events.size() == 0) { + return; //There are no events to draw. } - - public void backPressed() { - if (goButton.getVisibility() == View.VISIBLE) { - getActivity().finish(); - cancelTask(); - } else { - zipEdit.setVisibility(View.VISIBLE); - radiusButton.setVisibility(View.VISIBLE); - eventList.setVisibility(View.VISIBLE); - goButton.setVisibility(View.VISIBLE); - container.setVisibility(View.GONE); + mHashMap = new HashMap<>(events.size()); + LatLngBounds.Builder bld = new LatLngBounds.Builder(); + LatLng pos; + float hue; + int id = 0; + for (Event e : ConnectTask.getEvents()) { + hue = e.isOfficial() ? 1.0f : 214f; + pos = new LatLng(e.getLatitude(), e.getLongitude()); + mHashMap.put(map.addMarker(new MarkerOptions().position(pos) + .title(e.getName()) + .icon(BitmapDescriptorFactory.defaultMarker(hue))), id++); + bld.include(pos); + } + LatLngBounds bounds = bld.build(); + map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0)); + map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { + @Override public boolean onMarkerClick(final Marker marker) { + final int id = Integer.parseInt(marker.getId().substring(1)); + if (container.getVisibility() == View.VISIBLE) { + listItemClicked(mHashMap.get(marker), true); + return false; } + eventList.post(new Runnable() { + @Override public void run() { + eventList.smoothScrollToPositionFromTop(mHashMap.get(marker), 0, 500); + eventList.postDelayed(new Runnable() { + @Override public void run() { + eventList.setSelection(mHashMap.get(marker)); + } + }, 510); + } + }); + return false; + } + }); + } + + public void updateViews(ArrayAdapter a) { + if (getView() == null) { + return; //We switched out of this view. + } + eventList.setAdapter(a); + eventList.setVisibility(View.VISIBLE); + mapFrame.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.GONE); + goButton.setEnabled(true); + goButton.setBackgroundResource(R.color.fragment_connect_go_button_background); + } + + public void backPressed() { + if (goButton.getVisibility() == View.VISIBLE) { + getActivity().finish(); + cancelTask(); + } else { + zipEdit.setVisibility(View.VISIBLE); + radiusButton.setVisibility(View.VISIBLE); + eventList.setVisibility(View.VISIBLE); + goButton.setVisibility(View.VISIBLE); + container.setVisibility(View.GONE); } + } } From 3b89edf9597519657877524b7a65d24fb510984e Mon Sep 17 00:00:00 2001 From: PatrickDattilio Date: Sat, 17 Oct 2015 23:08:13 -0400 Subject: [PATCH 09/24] Square Style --- app/build.gradle | 40 +- .../steve/bernieapp/ApplicationTest.java | 6 +- app/src/main/AndroidManifest.xml | 138 +++--- .../steve/bernieapp/actMainPage.java | 379 +++++++-------- .../bernieapp/fragments/BernRateFragment.java | 116 ++--- .../fragments/BottomNavFragment.java | 38 +- .../bernieapp/fragments/FeedbackFragment.java | 54 +-- .../bernieapp/fragments/IssuesFragment.java | 70 ++- .../fragments/NavigationDrawerFragment.java | 457 +++++++++--------- .../bernieapp/fragments/NewsFragment.java | 68 +-- .../bernieapp/fragments/OrganizeFragment.java | 89 ++-- .../fragments/SingleIssueFragment.java | 92 ++-- .../fragments/SingleNewsFragment.java | 96 ++-- .../steve/bernieapp/misc/ImgTxtAdapter.java | 65 ++- .../spielpark/steve/bernieapp/misc/Util.java | 121 +++-- .../steve/bernieapp/tasks/ConnectTask.java | 401 +++++++-------- .../steve/bernieapp/tasks/IssuesTask.java | 417 ++++++++-------- .../steve/bernieapp/tasks/NewsTask.java | 343 +++++++------ .../steve/bernieapp/wrappers/Event.java | 355 +++++++------- .../steve/bernieapp/wrappers/ImgTxtItem.java | 11 +- .../steve/bernieapp/wrappers/Issue.java | 177 ++++--- .../bernieapp/wrappers/NavDrawerItem.java | 16 +- .../steve/bernieapp/wrappers/NewsArticle.java | 187 ++++--- app/src/main/res/anim/view_fade_in.xml | 17 +- app/src/main/res/anim/view_fade_in_fast.xml | 15 +- app/src/main/res/anim/view_slide_up.xml | 19 +- .../main/res/drawable/news_header_border.xml | 39 +- app/src/main/res/drawable/search_border.xml | 6 +- app/src/main/res/drawable/shadow.xml | 12 +- app/src/main/res/layout/dialogue_checkbox.xml | 23 +- app/src/main/res/layout/frag_bernrate.xml | 25 +- app/src/main/res/layout/frag_bottom_nav.xml | 190 ++++---- app/src/main/res/layout/frag_connect.xml | 366 +++++++------- app/src/main/res/layout/frag_event.xml | 142 +++--- app/src/main/res/layout/frag_feedback.xml | 19 +- app/src/main/res/layout/frag_issues.xml | 41 +- app/src/main/res/layout/frag_nav.xml | 17 +- app/src/main/res/layout/frag_newsarticles.xml | 114 ++--- app/src/main/res/layout/frag_organize.xml | 22 +- app/src/main/res/layout/frag_single_issue.xml | 122 ++--- app/src/main/res/layout/layout_main_page.xml | 65 +-- .../main/res/layout/list_connect_events.xml | 7 +- app/src/main/res/layout/list_drawer_item.xml | 44 +- app/src/main/res/layout/list_news_item.xml | 47 +- app/src/main/res/menu/global.xml | 9 +- app/src/main/res/values-w820dp/dimens.xml | 8 +- app/src/main/res/values/colors.xml | 4 +- app/src/main/res/values/dimens.xml | 12 +- app/src/main/res/values/strings.xml | 44 +- app/src/main/res/values/styles.xml | 12 +- 50 files changed, 2508 insertions(+), 2669 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e5c7135..0a3c089 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,29 +1,29 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 21 - buildToolsVersion "21.1.2" + compileSdkVersion 21 + buildToolsVersion "21.1.2" - defaultConfig { - applicationId "com.spielpark.steve.bernieapp" - minSdkVersion 14 - targetSdkVersion 21 - versionCode 13 - versionName "1.3R" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } + defaultConfig { + applicationId "com.spielpark.steve.bernieapp" + minSdkVersion 14 + targetSdkVersion 21 + versionCode 13 + versionName "1.3R" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + } } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:22.2.0' - compile 'se.emilsjolander:StickyScrollViewItems:1.1.0' - compile 'com.google.android.gms:play-services:7.5.0' - compile 'com.squareup.picasso:picasso:2.5.2' - compile 'com.jakewharton:butterknife:7.0.1' + compile fileTree(include: ['*.jar'], dir: 'libs') + compile 'com.android.support:appcompat-v7:22.2.0' + compile 'se.emilsjolander:StickyScrollViewItems:1.1.0' + compile 'com.google.android.gms:play-services:7.5.0' + compile 'com.squareup.picasso:picasso:2.5.2' + compile 'com.jakewharton:butterknife:7.0.1' } diff --git a/app/src/androidTest/java/com/spielpark/steve/bernieapp/ApplicationTest.java b/app/src/androidTest/java/com/spielpark/steve/bernieapp/ApplicationTest.java index 89b6ba6..ec571aa 100644 --- a/app/src/androidTest/java/com/spielpark/steve/bernieapp/ApplicationTest.java +++ b/app/src/androidTest/java/com/spielpark/steve/bernieapp/ApplicationTest.java @@ -7,7 +7,7 @@ * Testing Fundamentals */ public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } + public ApplicationTest() { + super(Application.class); + } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0160754..fcf57b6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,78 +1,80 @@ - - + - + - + - - - + - - - - + + + + + + + + - + --> diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/actMainPage.java b/app/src/main/java/com/spielpark/steve/bernieapp/actMainPage.java index 8729736..32a1a91 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/actMainPage.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/actMainPage.java @@ -3,231 +3,218 @@ import android.content.SharedPreferences; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; -import android.support.v7.app.ActionBarActivity; -import android.support.v7.app.ActionBar; +import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; -import android.os.Bundle; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; +import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; -import android.support.v4.widget.DrawerLayout; import android.view.View; import android.widget.TextView; - import com.spielpark.steve.bernieapp.fragments.BernRateFragment; import com.spielpark.steve.bernieapp.fragments.ConnectFragment; import com.spielpark.steve.bernieapp.fragments.FeedbackFragment; -import com.spielpark.steve.bernieapp.fragments.SingleNewsFragment; import com.spielpark.steve.bernieapp.fragments.IssuesFragment; import com.spielpark.steve.bernieapp.fragments.NavigationDrawerFragment; import com.spielpark.steve.bernieapp.fragments.NewsFragment; import com.spielpark.steve.bernieapp.fragments.OrganizeFragment; import com.spielpark.steve.bernieapp.fragments.SingleIssueFragment; -import com.spielpark.steve.bernieapp.tasks.IssuesTask; +import com.spielpark.steve.bernieapp.fragments.SingleNewsFragment; import com.spielpark.steve.bernieapp.tasks.NewsTask; import com.spielpark.steve.bernieapp.wrappers.Issue; import com.spielpark.steve.bernieapp.wrappers.NewsArticle; - public class actMainPage extends ActionBarActivity - implements NavigationDrawerFragment.NavigationDrawerCallbacks { - /** - * Fragment managing the behaviors, interactions and presentation of the navigation drawer. - */ - private NavigationDrawerFragment mNavigationDrawerFragment; - private static SharedPreferences preferences; - private static Fragment curFrag; - /** - * Used to store the last screen title. For use in {@link #restoreActionBar()}. - */ - private CharSequence mTitle; - - @Override - protected void onStop() { - super.onStop(); + implements NavigationDrawerFragment.NavigationDrawerCallbacks { + private static SharedPreferences preferences; + private static Fragment curFrag; + /** + * Fragment managing the behaviors, interactions and presentation of the navigation drawer. + */ + private NavigationDrawerFragment mNavigationDrawerFragment; + /** + * Used to store the last screen title. For use in {@link #restoreActionBar()}. + */ + private CharSequence mTitle; + + @Override protected void onStop() { + super.onStop(); + } + + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.layout_main_page); + mNavigationDrawerFragment = + (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById( + R.id.navigation_drawer); + mTitle = getTitle(); + // Set up the drawer. + mNavigationDrawerFragment.setUp(R.id.navigation_drawer, + (DrawerLayout) findViewById(R.id.drawer_layout)); + ActionBar bar = getSupportActionBar(); + bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#147FD7"))); + mTitle = "News"; + preferences = getApplicationContext().getSharedPreferences("bernie_app_prefs", 0); + adjustNavBarText(0); + } + + @Override public void onNavigationDrawerItemSelected(int position) { + if (curFrag instanceof ConnectFragment) { + ConnectFragment.cancelTask(); //cancel loading the map. + Log.d("AMP - ONDIS", "Cancelled loading the map."); } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.layout_main_page); - mNavigationDrawerFragment = (NavigationDrawerFragment) - getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); - mTitle = getTitle(); - // Set up the drawer. - mNavigationDrawerFragment.setUp( - R.id.navigation_drawer, - (DrawerLayout) findViewById(R.id.drawer_layout)); - ActionBar bar = getSupportActionBar(); - bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#147FD7"))); - mTitle = "News"; - preferences = getApplicationContext().getSharedPreferences("bernie_app_prefs", 0); - adjustNavBarText(0); + // update the main content by replacing fragments + FragmentManager fragmentManager = getSupportFragmentManager(); + fragmentManager.popBackStack("base", FragmentManager.POP_BACK_STACK_INCLUSIVE); + Fragment replacement; + switch (position) { + case 0: { + replacement = NewsFragment.getInstance(); + break; + } + case 1: { + replacement = IssuesFragment.getInstance(); + break; + } + case 2: { + replacement = OrganizeFragment.getInstance(); + break; + } + case 3: { + replacement = ConnectFragment.getInstance(); + break; + } + case 4: { + replacement = BernRateFragment.getInstance(); + break; + } + case 5: { + replacement = FeedbackFragment.getInstance(); + break; + } + default: { + replacement = NewsFragment.getInstance(); + } } - - @Override - public void onNavigationDrawerItemSelected(int position) { - if (curFrag instanceof ConnectFragment) { - ConnectFragment.cancelTask(); //cancel loading the map. - Log.d("AMP - ONDIS", "Cancelled loading the map."); - } - // update the main content by replacing fragments - FragmentManager fragmentManager = getSupportFragmentManager(); - fragmentManager.popBackStack("base", FragmentManager.POP_BACK_STACK_INCLUSIVE); - Fragment replacement; - switch(position) { - case 0 : { - replacement = NewsFragment.getInstance(); - break; - } - case 1 : { - replacement = IssuesFragment.getInstance(); - break; - } - case 2 : { - replacement = OrganizeFragment.getInstance(); - break; - } - case 3 : { - replacement = ConnectFragment.getInstance(); - break; - } - case 4 : { - replacement = BernRateFragment.getInstance(); - break; - } - case 5 : { - replacement = FeedbackFragment.getInstance(); - break; - } - default: { - replacement = NewsFragment.getInstance(); - } - } - adjustNavBarText(position); - curFrag = replacement; - onSectionAttached(++position); - fragmentManager.beginTransaction() - .replace(R.id.container, replacement) - .commit(); + adjustNavBarText(position); + curFrag = replacement; + onSectionAttached(++position); + fragmentManager.beginTransaction().replace(R.id.container, replacement).commit(); + } + + public void onSectionAttached(int number) { + switch (number) { + case 1: + mTitle = getString(R.string.title_section1); + break; + case 2: + mTitle = getString(R.string.title_section2); + break; + case 3: + mTitle = getString(R.string.title_section3); + break; + case 4: + mTitle = getString(R.string.title_section4); + break; + case 5: + mTitle = getString(R.string.title_section5); + break; + case 6: + mTitle = getString(R.string.title_section6); + break; } - - public void onSectionAttached(int number) { - switch (number) { - case 1: - mTitle = getString(R.string.title_section1); - break; - case 2: - mTitle = getString(R.string.title_section2); - break; - case 3: - mTitle = getString(R.string.title_section3); - break; - case 4: - mTitle = getString(R.string.title_section4); - break; - case 5: - mTitle = getString(R.string.title_section5); - break; - case 6: - mTitle = getString(R.string.title_section6); - break; - } + } + + public void restoreActionBar() { + ActionBar actionBar = getSupportActionBar(); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setTitle(mTitle); + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { + if (!mNavigationDrawerFragment.isDrawerOpen()) { + restoreActionBar(); + return true; } - - public void restoreActionBar() { - ActionBar actionBar = getSupportActionBar(); - actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); - actionBar.setDisplayShowTitleEnabled(true); - actionBar.setTitle(mTitle); - } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (!mNavigationDrawerFragment.isDrawerOpen()) { - restoreActionBar(); - return true; - } - return super.onCreateOptionsMenu(menu); - } - - @Override - public void onBackPressed() { - if (curFrag instanceof ConnectFragment) { - ((ConnectFragment) curFrag).backPressed(); - return; - } else if (curFrag instanceof OrganizeFragment) { - if (((OrganizeFragment) curFrag).canGoBack()) { - return; - } - } - if (getSupportFragmentManager().getBackStackEntryCount() == 0) { - this.finish(); - } else { - getSupportFragmentManager().popBackStack("base", FragmentManager.POP_BACK_STACK_INCLUSIVE); - } + return super.onCreateOptionsMenu(menu); + } + + @Override public void onBackPressed() { + if (curFrag instanceof ConnectFragment) { + ((ConnectFragment) curFrag).backPressed(); + return; + } else if (curFrag instanceof OrganizeFragment) { + if (((OrganizeFragment) curFrag).canGoBack()) { + return; + } } - - public void loadEvent(NewsArticle e) { - Fragment f = SingleNewsFragment.getInstance(e); - FragmentManager manager = getSupportFragmentManager(); - if (manager.getBackStackEntryCount() > 0) { - manager.popBackStack(); - } - manager.beginTransaction().addToBackStack("base").replace(R.id.container, f).commit(); + if (getSupportFragmentManager().getBackStackEntryCount() == 0) { + this.finish(); + } else { + getSupportFragmentManager().popBackStack("base", FragmentManager.POP_BACK_STACK_INCLUSIVE); } + } - public void loadIssue(Issue i) { - Fragment f = SingleIssueFragment.newInstance(i); - FragmentManager manager = getSupportFragmentManager(); - if (manager.getBackStackEntryCount() > 0) { - manager.popBackStack(); - } - manager.beginTransaction().addToBackStack("base").replace(R.id.container, f).commit(); + public void loadEvent(NewsArticle e) { + Fragment f = SingleNewsFragment.getInstance(e); + FragmentManager manager = getSupportFragmentManager(); + if (manager.getBackStackEntryCount() > 0) { + manager.popBackStack(); } - - public SharedPreferences getPrefs() { - return this.preferences; + manager.beginTransaction().addToBackStack("base").replace(R.id.container, f).commit(); + } + + public void loadIssue(Issue i) { + Fragment f = SingleIssueFragment.newInstance(i); + FragmentManager manager = getSupportFragmentManager(); + if (manager.getBackStackEntryCount() > 0) { + manager.popBackStack(); } - - public void loadHeaderArticle(View view) { - if (NewsTask.getData() != null) { - for (NewsArticle a : NewsTask.getData()) { - if (a.getUrl().contains("press-release")) { - this.loadEvent(a); - break; - } - } + manager.beginTransaction().addToBackStack("base").replace(R.id.container, f).commit(); + } + + public SharedPreferences getPrefs() { + return this.preferences; + } + + public void loadHeaderArticle(View view) { + if (NewsTask.getData() != null) { + for (NewsArticle a : NewsTask.getData()) { + if (a.getUrl().contains("press-release")) { + this.loadEvent(a); + break; } + } } - - public void adjustNavBarText(int selected) { - TextView[] views = new TextView[] { - (TextView) findViewById(R.id.newsTxt), - (TextView) findViewById(R.id.issuesTxt), - (TextView) findViewById(R.id.organizeTxt), - (TextView) findViewById(R.id.connectTxt) - }; - for (int i = 0; i < views.length; i++) { - TextView t = views[i]; - if (t == null) { - return; - } - if (i == selected) { - t.setTextColor(Color.parseColor("#FFC207")); - } else { - t.setTextColor(Color.parseColor("#FFFFFF")); - } - } - } - - public void switchPage(View view) { - int selected = Integer.parseInt((String) view.getTag()); - onNavigationDrawerItemSelected(selected); - onSectionAttached(selected + 1); - restoreActionBar(); - adjustNavBarText(selected); - NavigationDrawerFragment.setSelected(selected); + } + + public void adjustNavBarText(int selected) { + TextView[] views = new TextView[] { + (TextView) findViewById(R.id.newsTxt), (TextView) findViewById(R.id.issuesTxt), + (TextView) findViewById(R.id.organizeTxt), (TextView) findViewById(R.id.connectTxt) + }; + for (int i = 0; i < views.length; i++) { + TextView t = views[i]; + if (t == null) { + return; + } + if (i == selected) { + t.setTextColor(Color.parseColor("#FFC207")); + } else { + t.setTextColor(Color.parseColor("#FFFFFF")); + } } + } + + public void switchPage(View view) { + int selected = Integer.parseInt((String) view.getTag()); + onNavigationDrawerItemSelected(selected); + onSectionAttached(selected + 1); + restoreActionBar(); + adjustNavBarText(selected); + NavigationDrawerFragment.setSelected(selected); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BernRateFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BernRateFragment.java index 233ba26..7a5a6d7 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BernRateFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BernRateFragment.java @@ -1,93 +1,83 @@ package com.spielpark.steve.bernieapp.fragments; - -import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.util.DisplayMetrics; -import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; -import android.widget.ArrayAdapter; import android.widget.LinearLayout; -import android.widget.ListView; import android.widget.RelativeLayout; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.actMainPage; import com.spielpark.steve.bernieapp.misc.Util; - /** * A simple {@link Fragment} subclass. */ public class BernRateFragment extends Fragment { - private static BernRateFragment mInstance; - private static String[] urls = new String[]{ - ""); - } - return gen; + private String[] generateURLs() { + String[] gen = new String[urls.length]; + int[] heightWidth = Util.getScreenWidthHeight(getActivity()); + for (int i = 0; i < gen.length; i++) { + gen[i] = urls[i].concat( + " width=\"" + heightWidth[0] + "px\" height=\"" + heightWidth[1] + "px\">"); } + return gen; + } - private void displayWebViews(String[] urls) { - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - RelativeLayout.LayoutParams.WRAP_CONTENT, - RelativeLayout.LayoutParams.MATCH_PARENT - ); - LinearLayout parent = (LinearLayout) getView().findViewById(R.id.layoutBernRate); - params.setMargins(8, 8, 8, 8); - params.gravity = Gravity.CENTER_HORIZONTAL; - for (String s : urls) { - WebView wv = new WebView(getActivity()); - wv.getSettings().setJavaScriptEnabled(true); - wv.setLayoutParams(params); - wv.loadData(s, "text/Html", "UTF-8"); - parent.addView(wv); - } + private void displayWebViews(String[] urls) { + LinearLayout.LayoutParams params = + new LinearLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, + RelativeLayout.LayoutParams.MATCH_PARENT); + LinearLayout parent = (LinearLayout) getView().findViewById(R.id.layoutBernRate); + params.setMargins(8, 8, 8, 8); + params.gravity = Gravity.CENTER_HORIZONTAL; + for (String s : urls) { + WebView wv = new WebView(getActivity()); + wv.getSettings().setJavaScriptEnabled(true); + wv.setLayoutParams(params); + wv.loadData(s, "text/Html", "UTF-8"); + parent.addView(wv); } + } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.frag_bernrate, container, false); - } - - + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.frag_bernrate, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BottomNavFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BottomNavFragment.java index 410c6dc..d267886 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BottomNavFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/BottomNavFragment.java @@ -1,41 +1,35 @@ package com.spielpark.steve.bernieapp.fragments; -import android.app.Activity; -import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; - import com.spielpark.steve.bernieapp.R; - /** * A simple {@link Fragment} subclass. */ public class BottomNavFragment extends Fragment { - private static BottomNavFragment mInstance; + private static BottomNavFragment mInstance; - public static BottomNavFragment getInstance() { - if (mInstance == null) { - mInstance = new BottomNavFragment(); - return mInstance; - } else { - return mInstance; - } + public static BottomNavFragment getInstance() { + if (mInstance == null) { + mInstance = new BottomNavFragment(); + return mInstance; + } else { + return mInstance; } + } - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.frag_bottom_nav, container, false); - } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.frag_bottom_nav, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/FeedbackFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/FeedbackFragment.java index 826c8b9..ebcd7e1 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/FeedbackFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/FeedbackFragment.java @@ -1,13 +1,11 @@ package com.spielpark.steve.bernieapp.fragments; - import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.misc.Util; @@ -15,33 +13,31 @@ * A simple {@link Fragment} subclass. */ public class FeedbackFragment extends Fragment { - private static FeedbackFragment mInstance; - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - WebView wv = (WebView) view.findViewById(R.id.feedback_webview); - StringBuilder bld = new StringBuilder(); - int[] wh = Util.getScreenWidthHeight(getActivity()); - bld.append(""); - wv.loadData(bld.toString(), "text/Html", "UTF-8"); - } + private static FeedbackFragment mInstance; - public static FeedbackFragment getInstance() { - if (mInstance == null) { - mInstance = new FeedbackFragment(); - } - return mInstance; + public static FeedbackFragment getInstance() { + if (mInstance == null) { + mInstance = new FeedbackFragment(); } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - return inflater.inflate(R.layout.frag_feedback, container, false); - } - - + return mInstance; + } + + @Override public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + WebView wv = (WebView) view.findViewById(R.id.feedback_webview); + StringBuilder bld = new StringBuilder(); + int[] wh = Util.getScreenWidthHeight(getActivity()); + bld.append( + ""); + wv.loadData(bld.toString(), "text/Html", "UTF-8"); + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.frag_feedback, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/IssuesFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/IssuesFragment.java index 6546317..17b13ef 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/IssuesFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/IssuesFragment.java @@ -1,7 +1,5 @@ package com.spielpark.steve.bernieapp.fragments; -import android.app.Activity; -import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; @@ -11,53 +9,45 @@ import android.widget.AdapterView; import android.widget.ListView; import android.widget.ProgressBar; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.actMainPage; import com.spielpark.steve.bernieapp.tasks.IssuesTask; -import com.spielpark.steve.bernieapp.tasks.NewsTask; -import com.spielpark.steve.bernieapp.wrappers.Issue; - /** * A simple {@link Fragment} subclass. */ public class IssuesFragment extends Fragment { - private static IssuesFragment mIntstance; + private static IssuesFragment mIntstance; - public static IssuesFragment getInstance() { - if (mIntstance == null) { - mIntstance = new IssuesFragment(); - return mIntstance; - } else { - return mIntstance; - } + public static IssuesFragment getInstance() { + if (mIntstance == null) { + mIntstance = new IssuesFragment(); + return mIntstance; + } else { + return mIntstance; } - - @Override - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - final ListView newsList = (ListView) view.findViewById(R.id.listIssues); - new IssuesTask(getActivity(), newsList, (ProgressBar) view.findViewById(R.id.progressBar)).execute(); - newsList.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - ((actMainPage)getActivity()).loadIssue(IssuesTask.getIssue(position)); - } - }); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.frag_issues, container, false); - } - + } + + @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + final ListView newsList = (ListView) view.findViewById(R.id.listIssues); + new IssuesTask(getActivity(), newsList, + (ProgressBar) view.findViewById(R.id.progressBar)).execute(); + newsList.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override public void onItemClick(AdapterView parent, View view, int position, long id) { + ((actMainPage) getActivity()).loadIssue(IssuesTask.getIssue(position)); + } + }); + } + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.frag_issues, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NavigationDrawerFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NavigationDrawerFragment.java index 3744e59..137d49e 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NavigationDrawerFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NavigationDrawerFragment.java @@ -1,16 +1,16 @@ package com.spielpark.steve.bernieapp.fragments; -import android.content.Context; import android.app.Activity; -import android.support.v7.app.ActionBar; -import android.support.v4.app.Fragment; -import android.support.v4.app.ActionBarDrawerToggle; -import android.support.v4.view.GravityCompat; -import android.support.v4.widget.DrawerLayout; +import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.v4.app.ActionBarDrawerToggle; +import android.support.v4.app.Fragment; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.MenuItem; @@ -21,7 +21,6 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.wrappers.NavDrawerItem; @@ -31,263 +30,243 @@ * design guidelines for a complete explanation of the behaviors implemented here. */ public class NavigationDrawerFragment extends Fragment { - /** - * Remember the position of the selected item. - */ - private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position"; - - /** - * Per the design guidelines, you should show the drawer on launch until the user manually - * expands it. This shared preference tracks this. - */ - private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; - - /** - * A pointer to the current callbacks instance (the Activity). - */ - private NavigationDrawerCallbacks mCallbacks; - - /** - * Helper component that ties the action bar to the navigation drawer. - */ - private ActionBarDrawerToggle mDrawerToggle; - - private DrawerLayout mDrawerLayout; - private static ListView mDrawerListView; - private View mFragmentContainerView; - - private static int mCurrentSelectedPosition = 0; - private boolean mFromSavedInstanceState; - private boolean mUserLearnedDrawer; - - public static void setSelected(int i) { - mCurrentSelectedPosition = i; - mDrawerListView.setSelection(i); - mDrawerListView.setItemChecked(i, true); - } - - public NavigationDrawerFragment() { + /** + * Remember the position of the selected item. + */ + private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position"; + + /** + * Per the design guidelines, you should show the drawer on launch until the user manually + * expands it. This shared preference tracks this. + */ + private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; + private static ListView mDrawerListView; + private static int mCurrentSelectedPosition = 0; + /** + * A pointer to the current callbacks instance (the Activity). + */ + private NavigationDrawerCallbacks mCallbacks; + /** + * Helper component that ties the action bar to the navigation drawer. + */ + private ActionBarDrawerToggle mDrawerToggle; + private DrawerLayout mDrawerLayout; + private View mFragmentContainerView; + private boolean mFromSavedInstanceState; + private boolean mUserLearnedDrawer; + + public NavigationDrawerFragment() { + } + + public static void setSelected(int i) { + mCurrentSelectedPosition = i; + mDrawerListView.setSelection(i); + mDrawerListView.setItemChecked(i, true); + } + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Read in the flag indicating whether or not the user has demonstrated awareness of the + // drawer. See PREF_USER_LEARNED_DRAWER for details. + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); + mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); + + if (savedInstanceState != null) { + mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION); + mFromSavedInstanceState = true; } - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // Read in the flag indicating whether or not the user has demonstrated awareness of the - // drawer. See PREF_USER_LEARNED_DRAWER for details. - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); - mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); - - if (savedInstanceState != null) { - mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION); - mFromSavedInstanceState = true; + // Select either the default item (0) or the last selected item. + selectItem(mCurrentSelectedPosition); + } + + @Override public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + // Indicate that this fragment would like to influence the set of actions in the action bar. + setHasOptionsMenu(true); + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mDrawerListView = (ListView) inflater.inflate(R.layout.frag_nav, container, false); + mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override public void onItemClick(AdapterView parent, View view, int position, long id) { + selectItem(position); + } + }); + NavDrawerItem[] datas = new NavDrawerItem[] { + new NavDrawerItem(R.drawable.ic_public_white_24dp, getString(R.string.title_section1)), + new NavDrawerItem(R.drawable.ic_event_note_white_24dp, getString(R.string.title_section2)), + new NavDrawerItem(R.drawable.ic_people_white_24dp, getString(R.string.title_section3)), + new NavDrawerItem(R.drawable.ic_map_white_24dp, getString(R.string.title_section4)), + new NavDrawerItem(R.drawable.ic_insert_chart_white_24dp, + getString(R.string.title_section5)), + new NavDrawerItem(R.drawable.ic_feedback_white_24dp, getString(R.string.title_section6)), + }; + mDrawerListView.setAdapter( + new NavDrawerAdapter(getActivity(), R.layout.list_drawer_item, datas)); + mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); + return mDrawerListView; + } + + public boolean isDrawerOpen() { + return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); + } + + /** + * Users of this fragment must call this method to set up the navigation drawer interactions. + * + * @param fragmentId The android:id of this fragment in its activity's layout. + * @param drawerLayout The DrawerLayout containing this fragment's UI. + */ + public void setUp(int fragmentId, DrawerLayout drawerLayout) { + mFragmentContainerView = getActivity().findViewById(fragmentId); + mDrawerLayout = drawerLayout; + + // set a custom shadow that overlays the main content when the drawer opens + mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); + // set up the drawer's list view with items and click listener + + ActionBar actionBar = getActionBar(); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setHomeButtonEnabled(true); + + // ActionBarDrawerToggle ties together the the proper interactions + // between the navigation drawer and the action bar app icon. + mDrawerToggle = new ActionBarDrawerToggle(getActivity(), /* host Activity */ + mDrawerLayout, /* DrawerLayout object */ + R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ + R.string.navigation_drawer_open, /* "open drawer" description for accessibility */ + R.string.navigation_drawer_close /* "close drawer" description for accessibility */) { + @Override public void onDrawerClosed(View drawerView) { + super.onDrawerClosed(drawerView); + if (!isAdded()) { + return; } - // Select either the default item (0) or the last selected item. - selectItem(mCurrentSelectedPosition); - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - // Indicate that this fragment would like to influence the set of actions in the action bar. - setHasOptionsMenu(true); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - mDrawerListView = (ListView) inflater.inflate( - R.layout.frag_nav, container, false); - mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - selectItem(position); - } - }); - NavDrawerItem[] datas = new NavDrawerItem[] { - new NavDrawerItem(R.drawable.ic_public_white_24dp, getString(R.string.title_section1)), - new NavDrawerItem(R.drawable.ic_event_note_white_24dp, getString(R.string.title_section2)), - new NavDrawerItem(R.drawable.ic_people_white_24dp, getString(R.string.title_section3)), - new NavDrawerItem(R.drawable.ic_map_white_24dp, getString(R.string.title_section4)), - new NavDrawerItem(R.drawable.ic_insert_chart_white_24dp, getString(R.string.title_section5)), - new NavDrawerItem(R.drawable.ic_feedback_white_24dp, getString(R.string.title_section6)), - }; - mDrawerListView.setAdapter(new NavDrawerAdapter(getActivity(), R.layout.list_drawer_item, datas)); - mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); - return mDrawerListView; - } - - public boolean isDrawerOpen() { - return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); - } + getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() + } - /** - * Users of this fragment must call this method to set up the navigation drawer interactions. - * - * @param fragmentId The android:id of this fragment in its activity's layout. - * @param drawerLayout The DrawerLayout containing this fragment's UI. - */ - public void setUp(int fragmentId, DrawerLayout drawerLayout) { - mFragmentContainerView = getActivity().findViewById(fragmentId); - mDrawerLayout = drawerLayout; - - // set a custom shadow that overlays the main content when the drawer opens - mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); - // set up the drawer's list view with items and click listener - - ActionBar actionBar = getActionBar(); - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setHomeButtonEnabled(true); - - // ActionBarDrawerToggle ties together the the proper interactions - // between the navigation drawer and the action bar app icon. - mDrawerToggle = new ActionBarDrawerToggle( - getActivity(), /* host Activity */ - mDrawerLayout, /* DrawerLayout object */ - R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ - R.string.navigation_drawer_open, /* "open drawer" description for accessibility */ - R.string.navigation_drawer_close /* "close drawer" description for accessibility */ - ) { - @Override - public void onDrawerClosed(View drawerView) { - super.onDrawerClosed(drawerView); - if (!isAdded()) { - return; - } - - getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() - } - - @Override - public void onDrawerOpened(View drawerView) { - super.onDrawerOpened(drawerView); - if (!isAdded()) { - return; - } - - if (!mUserLearnedDrawer) { - // The user manually opened the drawer; store this flag to prevent auto-showing - // the navigation drawer automatically in the future. - mUserLearnedDrawer = true; - SharedPreferences sp = PreferenceManager - .getDefaultSharedPreferences(getActivity()); - sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply(); - } - getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() - } - }; - - // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer, - // per the navigation drawer design guidelines. - if (!mUserLearnedDrawer && !mFromSavedInstanceState) { - mDrawerLayout.openDrawer(mFragmentContainerView); + @Override public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + if (!isAdded()) { + return; } - // Defer code dependent on restoration of previous instance state. - mDrawerLayout.post(new Runnable() { - @Override - public void run() { - mDrawerToggle.syncState(); - } - }); - - mDrawerLayout.setDrawerListener(mDrawerToggle); - } - - private void selectItem(int position) { - mCurrentSelectedPosition = position; - if (mDrawerListView != null) { - mDrawerListView.setItemChecked(position, true); - } - if (mDrawerLayout != null) { - mDrawerLayout.closeDrawer(mFragmentContainerView); - } - if (mCallbacks != null) { - mCallbacks.onNavigationDrawerItemSelected(position); + if (!mUserLearnedDrawer) { + // The user manually opened the drawer; store this flag to prevent auto-showing + // the navigation drawer automatically in the future. + mUserLearnedDrawer = true; + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); + sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply(); } + getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() + } + }; + + // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer, + // per the navigation drawer design guidelines. + if (!mUserLearnedDrawer && !mFromSavedInstanceState) { + mDrawerLayout.openDrawer(mFragmentContainerView); } - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - try { - mCallbacks = (NavigationDrawerCallbacks) activity; - } catch (ClassCastException e) { - throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); - } - } + // Defer code dependent on restoration of previous instance state. + mDrawerLayout.post(new Runnable() { + @Override public void run() { + mDrawerToggle.syncState(); + } + }); - @Override - public void onDetach() { - super.onDetach(); - mCallbacks = null; - } + mDrawerLayout.setDrawerListener(mDrawerToggle); + } - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition); + private void selectItem(int position) { + mCurrentSelectedPosition = position; + if (mDrawerListView != null) { + mDrawerListView.setItemChecked(position, true); } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - // Forward the new configuration the drawer toggle component. - mDrawerToggle.onConfigurationChanged(newConfig); + if (mDrawerLayout != null) { + mDrawerLayout.closeDrawer(mFragmentContainerView); } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (mDrawerToggle.onOptionsItemSelected(item)) { - return true; - } - return super.onOptionsItemSelected(item); + if (mCallbacks != null) { + mCallbacks.onNavigationDrawerItemSelected(position); } - - private ActionBar getActionBar() { - return ((AppCompatActivity) getActivity()).getSupportActionBar(); + } + + @Override public void onAttach(Activity activity) { + super.onAttach(activity); + try { + mCallbacks = (NavigationDrawerCallbacks) activity; + } catch (ClassCastException e) { + throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); } + } + + @Override public void onDetach() { + super.onDetach(); + mCallbacks = null; + } + + @Override public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition); + } + + @Override public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + // Forward the new configuration the drawer toggle component. + mDrawerToggle.onConfigurationChanged(newConfig); + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { + if (mDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + return super.onOptionsItemSelected(item); + } + + private ActionBar getActionBar() { + return ((AppCompatActivity) getActivity()).getSupportActionBar(); + } + /** + * Callbacks interface that all activities using this fragment must implement. + */ + public interface NavigationDrawerCallbacks { /** - * Callbacks interface that all activities using this fragment must implement. + * Called when an item in the navigation drawer is selected. */ - public interface NavigationDrawerCallbacks { - /** - * Called when an item in the navigation drawer is selected. - */ - void onNavigationDrawerItemSelected(int position); + void onNavigationDrawerItemSelected(int position); + } + + private static class NavDrawerAdapter extends ArrayAdapter { + private final Context context; + private final int layoutResourceId; + private NavDrawerItem data[] = null; + + public NavDrawerAdapter(Context context, int layoutResourceId, NavDrawerItem[] data) { + super(context, layoutResourceId, data); + this.context = context; + this.layoutResourceId = layoutResourceId; + this.data = data; } - private static class NavDrawerAdapter extends ArrayAdapter { - private final Context context; - private final int layoutResourceId; - private NavDrawerItem data[] = null; + @Override public View getView(int position, View convertView, ViewGroup parent) { + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); - public NavDrawerAdapter(Context context, int layoutResourceId, NavDrawerItem [] data) - { - super(context, layoutResourceId, data); - this.context = context; - this.layoutResourceId = layoutResourceId; - this.data = data; - } + View v = inflater.inflate(layoutResourceId, parent, false); - @Override - public View getView(int position, View convertView, ViewGroup parent) { - LayoutInflater inflater = ((Activity) context).getLayoutInflater(); + ImageView imageView = (ImageView) v.findViewById(R.id.navDrawerImageView); + TextView textView = (TextView) v.findViewById(R.id.navDrawerTextView); - View v = inflater.inflate(layoutResourceId, parent, false); + NavDrawerItem choice = data[position]; - ImageView imageView = (ImageView) v.findViewById(R.id.navDrawerImageView); - TextView textView = (TextView) v.findViewById(R.id.navDrawerTextView); + imageView.setImageResource(choice.icon); + textView.setText(choice.name); - NavDrawerItem choice = data[position]; - - imageView.setImageResource(choice.icon); - textView.setText(choice.name); - - return v; - } - } + return v; } + } +} diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NewsFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NewsFragment.java index 0019adc..5ea1891 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NewsFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/NewsFragment.java @@ -7,66 +7,44 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; -import android.text.Html; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; - import com.spielpark.steve.bernieapp.R; -import com.spielpark.steve.bernieapp.actMainPage; -import com.spielpark.steve.bernieapp.misc.ImgTxtAdapter; import com.spielpark.steve.bernieapp.tasks.NewsTask; -import com.spielpark.steve.bernieapp.wrappers.NewsArticle; /** * A placeholder fragment containing a simple view. */ public class NewsFragment extends Fragment { - private static NewsFragment mIntstance; - - public static NewsFragment getInstance() { - if (mIntstance == null) { - mIntstance = new NewsFragment(); - return mIntstance; - } else { - return mIntstance; - } - } - @Override - public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - final ListView newsList = (ListView) view.findViewById(R.id.listNews); - ((TextView) view.findViewById(R.id.txtSubHeader)).setMovementMethod(new ScrollingMovementMethod()); - new NewsTask(getActivity(), newsList, (ProgressBar) view.findViewById(R.id.progressBar), (TextView) view.findViewById(R.id.txtSubHeader), (TextView) view.findViewById(R.id.txtHeader)).execute(); - - /*if (!(NewsTask.hasData())) { - new NewsTask(getActivity(), newsList, (ProgressBar) view.findViewById(R.id.progressBar), (TextView) view.findViewById(R.id.txtSubHeader), (TextView) view.findViewById(R.id.txtHeader)).execute(); - } else { - for (NewsArticle a : NewsTask.getData()) { - if (a.getUrl().contains("press-release")) { - ((TextView) view.findViewById(R.id.txtSubHeader)).setText(Html.fromHtml(a.getDesc())); - String s = a.getTitle(); - s = s.length() > 42 ? s.substring(0, 42) + "..." : s; - ((TextView) view.findViewById(R.id.txtHeader)).setText(s); - break; - }\ - } - newsList.setVisibility(View.VISIBLE); - view.findViewById(R.id.progressBar).setVisibility(View.GONE); - newsList.setAdapter(new ImgTxtAdapter(getActivity(), R.layout.list_news_item, NewsTask.getData())); - }*/ - } + private static NewsFragment mIntstance; - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.frag_newsarticles, container, false); - return rootView; + public static NewsFragment getInstance() { + if (mIntstance == null) { + mIntstance = new NewsFragment(); + return mIntstance; + } else { + return mIntstance; } + } + + @Override public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + final ListView newsList = (ListView) view.findViewById(R.id.listNews); + ((TextView) view.findViewById(R.id.txtSubHeader)).setMovementMethod( + new ScrollingMovementMethod()); + new NewsTask(getActivity(), newsList, (ProgressBar) view.findViewById(R.id.progressBar), + (TextView) view.findViewById(R.id.txtSubHeader), + (TextView) view.findViewById(R.id.txtHeader)).execute(); + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.frag_newsarticles, container, false); + } } \ No newline at end of file diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/OrganizeFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/OrganizeFragment.java index 122cdf7..34b92fa 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/OrganizeFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/OrganizeFragment.java @@ -1,6 +1,5 @@ package com.spielpark.steve.bernieapp.fragments; - import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; @@ -10,7 +9,6 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; - import com.spielpark.steve.bernieapp.R; /** @@ -18,52 +16,53 @@ */ public class OrganizeFragment extends Fragment { - private static OrganizeFragment mInstance; - private static WebView browser; - public static OrganizeFragment getInstance() { - if (mInstance == null) { - mInstance = new OrganizeFragment(); - return mInstance; - } else { - return mInstance; - } - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - browser = (WebView) getView().findViewById(R.id.o_webView); - browser.getSettings().setJavaScriptEnabled(true); - browser.getSettings().setAppCachePath(getActivity().getCacheDir().getPath()); - browser.getSettings().setAppCacheEnabled(true); - browser.setWebViewClient(new WebViewClient() { - @Override - public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { - super.onReceivedHttpAuthRequest(view, handler, host, realm); - Toast.makeText(getActivity(), "Logging in..", Toast.LENGTH_SHORT); - } + private static OrganizeFragment mInstance; + private static WebView browser; - @Override - public void onReceivedLoginRequest(WebView view, String realm, String account, String args) { - super.onReceivedLoginRequest(view, realm, account, args); - Toast.makeText(getActivity(), "Logging in -HTTP..", Toast.LENGTH_SHORT); - } - }); - browser.loadUrl("https://berniecrowd.org/?utm_source=bernie-app&utm_medium=android&utm_campaign=bernie-app"); + public static OrganizeFragment getInstance() { + if (mInstance == null) { + mInstance = new OrganizeFragment(); + return mInstance; + } else { + return mInstance; } + } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - return inflater.inflate(R.layout.frag_organize, container, false); + public static boolean canGoBack() { + if (browser.canGoBack()) { + browser.goBack(); + return true; + } else { + return false; } + } - public static boolean canGoBack() { - if (browser.canGoBack()) { - browser.goBack(); - return true; - } else { - return false; - } - } + @Override public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + browser = (WebView) getView().findViewById(R.id.o_webView); + browser.getSettings().setJavaScriptEnabled(true); + browser.getSettings().setAppCachePath(getActivity().getCacheDir().getPath()); + browser.getSettings().setAppCacheEnabled(true); + browser.setWebViewClient(new WebViewClient() { + @Override + public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, + String realm) { + super.onReceivedHttpAuthRequest(view, handler, host, realm); + Toast.makeText(getActivity(), "Logging in..", Toast.LENGTH_SHORT); + } + + @Override + public void onReceivedLoginRequest(WebView view, String realm, String account, String args) { + super.onReceivedLoginRequest(view, realm, account, args); + Toast.makeText(getActivity(), "Logging in -HTTP..", Toast.LENGTH_SHORT); + } + }); + browser.loadUrl( + "https://berniecrowd.org/?utm_source=bernie-app&utm_medium=android&utm_campaign=bernie-app"); + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.frag_organize, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleIssueFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleIssueFragment.java index c27dc0c..57194d3 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleIssueFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleIssueFragment.java @@ -1,78 +1,60 @@ package com.spielpark.steve.bernieapp.fragments; - -import android.content.Intent; import android.graphics.Color; -import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.text.Html; import android.text.method.LinkMovementMethod; -import android.text.method.ScrollingMovementMethod; -import android.util.Log; import android.view.LayoutInflater; -import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; -import android.widget.RelativeLayout; import android.widget.TextView; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.wrappers.Issue; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; - /** * A simple {@link Fragment} subclass. */ public class SingleIssueFragment extends Fragment { - private static Issue mIssue; - - public static SingleIssueFragment newInstance(Issue i) { - mIssue = i; - return new SingleIssueFragment(); - } - - @Override - public void onPause() { - super.onPause(); - ((WebView) getView().findViewById(R.id.i_video)).onPause(); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + private static Issue mIssue; + + public static SingleIssueFragment newInstance(Issue i) { + mIssue = i; + return new SingleIssueFragment(); + } + + @Override public void onPause() { + super.onPause(); + ((WebView) getView().findViewById(R.id.i_video)).onPause(); + } + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + if (mIssue == null) { + //User exited the app and returned to it, but android cleared some stuff from memory... + getActivity().getSupportFragmentManager() + .popBackStack("base", FragmentManager.POP_BACK_STACK_INCLUSIVE); } - - @Override - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - if (mIssue == null) { - //User exited the app and returned to it, but android cleared some stuff from memory... - getActivity().getSupportFragmentManager().popBackStack("base", FragmentManager.POP_BACK_STACK_INCLUSIVE); - } - final View root = getView(); - ((TextView) root.findViewById(R.id.i_txtTitle)).setText(mIssue.getTitle()); - ((TextView) root.findViewById(R.id.i_txtTitle)).setShadowLayer(13, 0, 0, Color.BLACK); - ((TextView) root.findViewById(R.id.i_txtDate)).setText("Published " + mIssue.getPubDate()); - ((TextView) root.findViewById(R.id.i_txtDesc)).setText(Html.fromHtml(mIssue.getDesc())); - ((TextView) root.findViewById(R.id.i_txtDesc)).setMovementMethod(new LinkMovementMethod()); - ((WebView) root.findViewById(R.id.i_video)).getSettings().setJavaScriptEnabled(true); - ((WebView) root.findViewById(R.id.i_video)).loadData(mIssue.getEmbedURL(getActivity()), "text/Html", "UTF-8"); - } - - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - return inflater.inflate(R.layout.frag_single_issue, container, false); - } - - + final View root = getView(); + ((TextView) root.findViewById(R.id.i_txtTitle)).setText(mIssue.getTitle()); + ((TextView) root.findViewById(R.id.i_txtTitle)).setShadowLayer(13, 0, 0, Color.BLACK); + ((TextView) root.findViewById(R.id.i_txtDate)).setText("Published " + mIssue.getPubDate()); + ((TextView) root.findViewById(R.id.i_txtDesc)).setText(Html.fromHtml(mIssue.getDesc())); + ((TextView) root.findViewById(R.id.i_txtDesc)).setMovementMethod(new LinkMovementMethod()); + ((WebView) root.findViewById(R.id.i_video)).getSettings().setJavaScriptEnabled(true); + ((WebView) root.findViewById(R.id.i_video)).loadData(mIssue.getEmbedURL(getActivity()), + "text/Html", "UTF-8"); + } + + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.frag_single_issue, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleNewsFragment.java b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleNewsFragment.java index a52b7fa..992c000 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleNewsFragment.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/fragments/SingleNewsFragment.java @@ -1,11 +1,8 @@ package com.spielpark.steve.bernieapp.fragments; -import android.content.Context; import android.content.Intent; -import android.graphics.Bitmap; import android.graphics.Color; import android.net.Uri; -import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.text.Html; @@ -15,66 +12,63 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.misc.Util; import com.spielpark.steve.bernieapp.wrappers.NewsArticle; - import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SingleNewsFragment extends Fragment { - private static NewsArticle mEvent; - private static SingleNewsFragment mInstance; + private static NewsArticle mEvent; + private static SingleNewsFragment mInstance; - public static SingleNewsFragment getInstance(NewsArticle e) { - mEvent = e; - if (mInstance == null) { - mInstance = new SingleNewsFragment(); - return mInstance; - } else { - return mInstance; - } + public static SingleNewsFragment getInstance(NewsArticle e) { + mEvent = e; + if (mInstance == null) { + mInstance = new SingleNewsFragment(); + return mInstance; + } else { + return mInstance; } + } - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - String time = mEvent.getPubDate(); - try { - final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); - final Date dateObj = sdf.parse(time); - time = new SimpleDateFormat("h:mm a, z").format(dateObj); - } catch (final ParseException e) { - e.printStackTrace(); - } - View root = getView(); - ((TextView) root.findViewById(R.id.e_txtTitle)).setText(mEvent.getTitle()); - ((TextView) root.findViewById(R.id.e_txtTitle)).setShadowLayer(13, 0, 0, Color.BLACK); - ((TextView) root.findViewById(R.id.e_txtDate)).setText(mEvent.getPubDate() + " at " + time); - ((TextView) root.findViewById(R.id.e_txtDesc)).setText(Html.fromHtml(mEvent.getDesc())); - ((TextView) root.findViewById(R.id.e_txtDesc)).setMovementMethod(new LinkMovementMethod()); - Util.getPicasso(getActivity()).load(mEvent.getImgSrc()).placeholder(R.drawable.logo).into((ImageView)root.findViewById(R.id.e_imgLogo)); - root.findViewById(R.id.e_btnWebsite).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse(mEvent.getUrl())); - startActivity(i); - } - }); + @Override public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + String time = mEvent.getPubDate(); + try { + final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + final Date dateObj = sdf.parse(time); + time = new SimpleDateFormat("h:mm a, z").format(dateObj); + } catch (final ParseException e) { + e.printStackTrace(); } + View root = getView(); + ((TextView) root.findViewById(R.id.e_txtTitle)).setText(mEvent.getTitle()); + ((TextView) root.findViewById(R.id.e_txtTitle)).setShadowLayer(13, 0, 0, Color.BLACK); + ((TextView) root.findViewById(R.id.e_txtDate)).setText(mEvent.getPubDate() + " at " + time); + ((TextView) root.findViewById(R.id.e_txtDesc)).setText(Html.fromHtml(mEvent.getDesc())); + ((TextView) root.findViewById(R.id.e_txtDesc)).setMovementMethod(new LinkMovementMethod()); + Util.getPicasso(getActivity()) + .load(mEvent.getImgSrc()) + .placeholder(R.drawable.logo) + .into((ImageView) root.findViewById(R.id.e_imgLogo)); + root.findViewById(R.id.e_btnWebsite).setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(mEvent.getUrl())); + startActivity(i); + } + }); + } - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.frag_event, container, false); - } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.frag_event, container, false); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/misc/ImgTxtAdapter.java b/app/src/main/java/com/spielpark/steve/bernieapp/misc/ImgTxtAdapter.java index 89a734f..e46857c 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/misc/ImgTxtAdapter.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/misc/ImgTxtAdapter.java @@ -4,57 +4,52 @@ import android.content.Context; import android.graphics.Typeface; import android.text.Html; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.wrappers.ImgTxtItem; -import com.spielpark.steve.bernieapp.wrappers.NewsArticle; - import java.util.List; /** * Created by Steve on 8/14/2015. */ public class ImgTxtAdapter extends ArrayAdapter { - private Context ctx; - private List list; - private int layout; + private Context ctx; + private List list; + private int layout; - public ImgTxtAdapter(Context context, int resource, List objects) { - super(context, resource, objects); - this.ctx = context; - this.layout = resource; - this.list = objects; - } + public ImgTxtAdapter(Context context, int resource, List objects) { + super(context, resource, objects); + this.ctx = context; + this.layout = resource; + this.list = objects; + } - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ImgTxtItem item = (ImgTxtItem) list.get(position); - ViewHolder v; - if (convertView == null) { - LayoutInflater inflater = ((Activity) ctx).getLayoutInflater(); - convertView = inflater.inflate(layout, parent, false); - v = new ViewHolder(); - v.img = (ImageView) convertView.findViewById(R.id.picThumb); - v.txt = (TextView) convertView.findViewById(R.id.txtItem); - convertView.setTag(v); - } else { - v = (ViewHolder) convertView.getTag(); - } - Util.getPicasso(ctx).load(item.getImgSrc()).into(v.img); - v.txt.setTypeface(Typeface.createFromAsset(ctx.getAssets(), "Jubilat.otf")); - v.txt.setText(Html.fromHtml(item.getTxt())); - return convertView; + @Override public View getView(int position, View convertView, ViewGroup parent) { + ImgTxtItem item = (ImgTxtItem) list.get(position); + ViewHolder v; + if (convertView == null) { + LayoutInflater inflater = ((Activity) ctx).getLayoutInflater(); + convertView = inflater.inflate(layout, parent, false); + v = new ViewHolder(); + v.img = (ImageView) convertView.findViewById(R.id.picThumb); + v.txt = (TextView) convertView.findViewById(R.id.txtItem); + convertView.setTag(v); + } else { + v = (ViewHolder) convertView.getTag(); } + Util.getPicasso(ctx).load(item.getImgSrc()).into(v.img); + v.txt.setTypeface(Typeface.createFromAsset(ctx.getAssets(), "Jubilat.otf")); + v.txt.setText(Html.fromHtml(item.getTxt())); + return convertView; + } - private static class ViewHolder { - TextView txt; - ImageView img; - } + private static class ViewHolder { + TextView txt; + ImageView img; + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/misc/Util.java b/app/src/main/java/com/spielpark/steve/bernieapp/misc/Util.java index cb27d40..35b5acf 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/misc/Util.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/misc/Util.java @@ -4,92 +4,79 @@ import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; import android.support.v7.app.AlertDialog; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; - import com.spielpark.steve.bernieapp.R; import com.squareup.picasso.Picasso; -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; - /** * Created by Steve on 8/14/2015. */ public class Util { - private static Picasso p; - public enum Preferences { - BERNRATE_DIALOGUE("BernRate_ShowDialogue", 1); + private static Picasso p; - Preferences(String s, int i) { - this.value = i; - this.name = s; - } - public int value; - public String name; - } + public static int[] getScreenWidthHeight(Activity ctx) { + DisplayMetrics metrics = new DisplayMetrics(); + ctx.getWindowManager().getDefaultDisplay().getMetrics(metrics); + int width = Math.round(metrics.widthPixels / metrics.density) - 24; + int height = Math.round(metrics.heightPixels / metrics.density) / 3; + return new int[] { width, height }; + } - public static int[] getScreenWidthHeight(Activity ctx) { - DisplayMetrics metrics = new DisplayMetrics(); - ctx.getWindowManager().getDefaultDisplay().getMetrics(metrics); - int width = Math.round(metrics.widthPixels / metrics.density) - 24; - int height = Math.round(metrics.heightPixels / metrics.density) / 3; - return new int[] {width, height}; + public static Picasso getPicasso(Context ctx) { + if (p == null) { + p = new Picasso.Builder(ctx).build(); } + return p; + } - public static Picasso getPicasso(Context ctx) { - if (p == null) { - p = new Picasso.Builder(ctx).build(); - } - return p; - } + public static int getFullScreenHeight(Activity ctx) { + DisplayMetrics metrics = new DisplayMetrics(); + ctx.getWindowManager().getDefaultDisplay().getMetrics(metrics); + int height = Math.round(metrics.heightPixels / metrics.density); + return height; + } - public static int getFullScreenHeight(Activity ctx) { - DisplayMetrics metrics = new DisplayMetrics(); - ctx.getWindowManager().getDefaultDisplay().getMetrics(metrics); - int height = Math.round(metrics.heightPixels / metrics.density); - return height; - } + public static AlertDialog getShowAgainDialogue(Context ctx, final SharedPreferences prefs, + final Preferences p, String message) { + LayoutInflater inflator = LayoutInflater.from(ctx); + final View view = inflator.inflate(R.layout.dialogue_checkbox, null); + AlertDialog.Builder bld = new AlertDialog.Builder(ctx, 4); + bld.setMessage(message) + .setTitle("Welcome!") + .setPositiveButton("Ok", new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }) + .setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override public void onDismiss(DialogInterface dialogInterface) { + Log.d("Dialog", "Was dismissed."); + boolean checked = ((CheckBox) view.findViewById(R.id.dia_checkbox)).isChecked(); + if (checked) { + Log.d("Dialog Gen", "Box was checked, putting in things."); + prefs.edit().putInt(p.name, 0).commit(); + } + } + }) + .setView(view); + return bld.create(); + } + + public enum Preferences { + BERNRATE_DIALOGUE("BernRate_ShowDialogue", 1); + + public int value; + public String name; - public static AlertDialog getShowAgainDialogue(Context ctx, final SharedPreferences prefs, final Preferences p, String message) { - LayoutInflater inflator = LayoutInflater.from(ctx); - final View view = inflator.inflate(R.layout.dialogue_checkbox, null); - AlertDialog.Builder bld = new AlertDialog.Builder(ctx, 4); - bld.setMessage(message) - .setTitle("Welcome!") - .setPositiveButton("Ok", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - dialogInterface.dismiss(); - } - }) - .setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialogInterface) { - Log.d("Dialog", "Was dismissed."); - boolean checked = ((CheckBox) view.findViewById(R.id.dia_checkbox)).isChecked(); - if (checked) { - Log.d("Dialog Gen", "Box was checked, putting in things."); - prefs.edit().putInt(p.name, 0).commit(); - } - } - }) - .setView(view); - return bld.create(); + Preferences(String s, int i) { + this.value = i; + this.name = s; } + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/tasks/ConnectTask.java b/app/src/main/java/com/spielpark/steve/bernieapp/tasks/ConnectTask.java index edd5e00..322c747 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/tasks/ConnectTask.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/tasks/ConnectTask.java @@ -7,11 +7,9 @@ import android.util.JsonToken; import android.util.Log; import android.widget.ArrayAdapter; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.fragments.ConnectFragment; import com.spielpark.steve.bernieapp.wrappers.Event; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -26,216 +24,223 @@ * Created by Steve on 7/8/2015. */ public class ConnectTask extends AsyncTask { - private static ArrayList events; - private static Context ctx; - private static ConnectFragment frag; + private static ArrayList events; + private static Context ctx; + private static ConnectFragment frag; - public ConnectTask(Context ctx, ConnectFragment frag) { - this.frag = frag; - this.ctx = ctx; - } + public ConnectTask(Context ctx, ConnectFragment frag) { + this.frag = frag; + this.ctx = ctx; + } - public static ArrayList getEvents() { - return events; - } + public static ArrayList getEvents() { + return events; + } - @Override - protected Object doInBackground(Object[] params) { - events = new ArrayList<>(); - BufferedReader in = null; - try { - URL url = frag.fetchCountry ? - new URL("https://go.berniesanders.com/page/event/search_results?orderby=date&format=json") : - new URL("https://go.berniesanders.com/page/event/search_results?orderby=date&format=json&zip_radius=" + frag.mRadius + "&zip=" + frag.mZip); - Log.d("URL", url.toString()); - in = new BufferedReader(new InputStreamReader(url.openStream())); - } catch (IOException e) { - e.printStackTrace(); - } - if (in == null) { - Log.d("reader null", "no events, null reader,"); - Event e = new Event(); - e.setName("Unable to Load News"); - e.setDescription("Check your internet connection?"); - events.add(e); - return null; - } - JsonReader reader = new JsonReader(in); - try { - readObjects(reader); - } catch (IOException e) { - e.printStackTrace(); - } - return null; + @Override protected Object doInBackground(Object[] params) { + events = new ArrayList<>(); + BufferedReader in = null; + try { + URL url = frag.fetchCountry ? new URL( + "https://go.berniesanders.com/page/event/search_results?orderby=date&format=json") + : new URL( + "https://go.berniesanders.com/page/event/search_results?orderby=date&format=json&zip_radius=" + + frag.mRadius + + "&zip=" + + frag.mZip); + Log.d("URL", url.toString()); + in = new BufferedReader(new InputStreamReader(url.openStream())); + } catch (IOException e) { + e.printStackTrace(); } - - @Override - protected void onPostExecute(Object o) { - super.onPostExecute(o); - Log.d("OPE", "There are " + events.size() + " events."); - Collections.sort(events); - String[] titles = new String[events.size()]; - for (int i = 0; i < events.size(); i++) { - titles[i] = getHTMLForTitle(events.get(i)); - } - NewsAdapter adapter = new NewsAdapter(ctx, R.layout.list_news_item, R.id.txtItem, titles); - frag.setMarkers(); - frag.updateViews(adapter); - frag = null; + if (in == null) { + Log.d("reader null", "no events, null reader,"); + Event e = new Event(); + e.setName("Unable to Load News"); + e.setDescription("Check your internet connection?"); + events.add(e); + return null; } - - private void formatDate(Event e) { - SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); - try { - Date date = ft.parse(e.getDate()); - e.setDate(new SimpleDateFormat("MMMM d, yyyy").format(date)); - } catch (ParseException e1) { - e1.printStackTrace(); - } + JsonReader reader = new JsonReader(in); + try { + readObjects(reader); + } catch (IOException e) { + e.printStackTrace(); } + return null; + } - private String getHTMLForTitle(Event e) { - StringBuilder bld = new StringBuilder(); - bld.append("").append(e.getName()).append("
"); - if (e.getVenue_city() != null) { - bld.append(" ").append(e.getVenue_city()).append(", ").append(e.getState()).append(" - ").append(e.getZip()).append("
"); - bld.append(" # of RSVP: ").append(e.isOfficial() ? "N/A" : Integer.toString(e.getAttendee_count())); - } - return bld.toString(); + @Override protected void onPostExecute(Object o) { + super.onPostExecute(o); + Log.d("OPE", "There are " + events.size() + " events."); + Collections.sort(events); + String[] titles = new String[events.size()]; + for (int i = 0; i < events.size(); i++) { + titles[i] = getHTMLForTitle(events.get(i)); } + NewsAdapter adapter = new NewsAdapter(ctx, R.layout.list_news_item, R.id.txtItem, titles); + frag.setMarkers(); + frag.updateViews(adapter); + frag = null; + } - private void readObjects(JsonReader reader) throws IOException { - Log.d("JsonReader", "Beginning parsing"); - Event e = new Event(); - while (reader.hasNext()) { - if (isCancelled()) { - return; - } - if (reader.peek() == JsonToken.END_OBJECT) { - Log.d("Adding..", "Adding event: " + e.getName()); - formatDate(e); - events.add(e); - e = new Event(); - reader.endObject(); - } - if (reader.peek() == JsonToken.BEGIN_OBJECT) { - reader.beginObject(); - } - String next = reader.nextName(); - switch(next.toLowerCase().trim()) { - case "results" : { - reader.beginArray(); - if (reader.peek() == JsonToken.END_ARRAY) { - //There's no events~! - e.setName("No events in your area!"); - e.setDescription("Perhaps you want to create one? Visit www.berniesanders.com!"); - events.add(e); - return; - } - reader.beginObject(); - break; - } - case "name" : { - e.setName(reader.nextString()); - break; - } - case "start_day" : { - e.setDate(reader.nextString()); - break; - } - case "start_time" : { - e.setTime(reader.nextString()); - break; - } - case "url" : { - e.setUrl(reader.nextString().replaceAll("\\\\", "")); - break; - } - case "timezone" : { - e.setTimezone(reader.nextString()); - break; - } - case "description" : { - e.setDescription(reader.nextString()); - break; - } - case "event_type_name" : { - e.setEventType(reader.nextString()); - break; - } - case "venue_name" : { - e.setVenue(reader.nextString()); - break; - } - case "venue_state_cd" : { - e.setState(reader.nextString()); - break; - } - case "venue_addr1" : { - e.setVenue_addr(reader.nextString()); - break; - } - case "venue_city" : { - e.setVenue_city(reader.nextString()); - break; - } - case "venue_zip" : { - String zipped = reader.nextString().substring(0, 5); - e.setZip(Integer.parseInt(zipped)); - break; - } - case "capacity" : { - e.setCapacity(reader.nextInt()); - break; - } - case "latitude" : { - e.setLatitude(reader.nextDouble()); - break; - } - case "longitude" : { - e.setLongitude(reader.nextDouble()); - break; - } - case "is_official" : { - e.setOfficial(reader.nextInt() == 1); - break; - } - case "closed_msg" : { - reader.skipValue(); //consume and throw away - if (reader.peek() == JsonToken.END_OBJECT) { - formatDate(e); - events.add(e); - e = new Event(); - reader.endObject(); - } - break; - } - case "attendee_count" : { - e.setAttendee_count(reader.nextInt()); - formatDate(e); - events.add(e); - e = new Event(); - reader.endObject(); - break; - } - default: { - reader.skipValue(); - } - } - } - reader.close(); + private void formatDate(Event e) { + SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); + try { + Date date = ft.parse(e.getDate()); + e.setDate(new SimpleDateFormat("MMMM d, yyyy").format(date)); + } catch (ParseException e1) { + e1.printStackTrace(); } + } - private class NewsAdapter extends ArrayAdapter { + private String getHTMLForTitle(Event e) { + StringBuilder bld = new StringBuilder(); + bld.append("").append(e.getName()).append("
"); + if (e.getVenue_city() != null) { + bld.append(" ") + .append(e.getVenue_city()) + .append(", ") + .append(e.getState()) + .append(" - ") + .append(e.getZip()) + .append("
"); + bld.append(" # of RSVP: ") + .append(e.isOfficial() ? "N/A" : Integer.toString(e.getAttendee_count())); + } + return bld.toString(); + } - private NewsAdapter(Context context, int resource, int textViewResourceId, Object[] objects) { - super(context, resource, textViewResourceId, objects); + private void readObjects(JsonReader reader) throws IOException { + Log.d("JsonReader", "Beginning parsing"); + Event e = new Event(); + while (reader.hasNext()) { + if (isCancelled()) { + return; + } + if (reader.peek() == JsonToken.END_OBJECT) { + Log.d("Adding..", "Adding event: " + e.getName()); + formatDate(e); + events.add(e); + e = new Event(); + reader.endObject(); + } + if (reader.peek() == JsonToken.BEGIN_OBJECT) { + reader.beginObject(); + } + String next = reader.nextName(); + switch (next.toLowerCase().trim()) { + case "results": { + reader.beginArray(); + if (reader.peek() == JsonToken.END_ARRAY) { + //There's no events~! + e.setName("No events in your area!"); + e.setDescription("Perhaps you want to create one? Visit www.berniesanders.com!"); + events.add(e); + return; + } + reader.beginObject(); + break; } - - @Override - public Object getItem(int position) { - return Html.fromHtml( (String) super.getItem(position)); + case "name": { + e.setName(reader.nextString()); + break; + } + case "start_day": { + e.setDate(reader.nextString()); + break; + } + case "start_time": { + e.setTime(reader.nextString()); + break; + } + case "url": { + e.setUrl(reader.nextString().replaceAll("\\\\", "")); + break; + } + case "timezone": { + e.setTimezone(reader.nextString()); + break; + } + case "description": { + e.setDescription(reader.nextString()); + break; } + case "event_type_name": { + e.setEventType(reader.nextString()); + break; + } + case "venue_name": { + e.setVenue(reader.nextString()); + break; + } + case "venue_state_cd": { + e.setState(reader.nextString()); + break; + } + case "venue_addr1": { + e.setVenue_addr(reader.nextString()); + break; + } + case "venue_city": { + e.setVenue_city(reader.nextString()); + break; + } + case "venue_zip": { + String zipped = reader.nextString().substring(0, 5); + e.setZip(Integer.parseInt(zipped)); + break; + } + case "capacity": { + e.setCapacity(reader.nextInt()); + break; + } + case "latitude": { + e.setLatitude(reader.nextDouble()); + break; + } + case "longitude": { + e.setLongitude(reader.nextDouble()); + break; + } + case "is_official": { + e.setOfficial(reader.nextInt() == 1); + break; + } + case "closed_msg": { + reader.skipValue(); //consume and throw away + if (reader.peek() == JsonToken.END_OBJECT) { + formatDate(e); + events.add(e); + e = new Event(); + reader.endObject(); + } + break; + } + case "attendee_count": { + e.setAttendee_count(reader.nextInt()); + formatDate(e); + events.add(e); + e = new Event(); + reader.endObject(); + break; + } + default: { + reader.skipValue(); + } + } + } + reader.close(); + } + + private class NewsAdapter extends ArrayAdapter { + + private NewsAdapter(Context context, int resource, int textViewResourceId, Object[] objects) { + super(context, resource, textViewResourceId, objects); + } + @Override public Object getItem(int position) { + return Html.fromHtml((String) super.getItem(position)); } + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/tasks/IssuesTask.java b/app/src/main/java/com/spielpark/steve/bernieapp/tasks/IssuesTask.java index c493a64..08f2613 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/tasks/IssuesTask.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/tasks/IssuesTask.java @@ -2,27 +2,15 @@ import android.content.Context; import android.os.AsyncTask; -import android.text.Html; import android.util.JsonReader; import android.util.JsonToken; import android.util.Log; -import android.util.Xml; import android.view.View; -import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.ProgressBar; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.misc.ImgTxtAdapter; -import com.spielpark.steve.bernieapp.misc.Util; -import com.spielpark.steve.bernieapp.wrappers.Event; -import com.spielpark.steve.bernieapp.wrappers.ImgTxtItem; import com.spielpark.steve.bernieapp.wrappers.Issue; -import com.spielpark.steve.bernieapp.wrappers.NewsArticle; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -30,236 +18,233 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Locale; -import java.util.Map; /** * Created by Steve on 7/9/2015. */ public class IssuesTask extends AsyncTask { - private static ArrayList issues; - private static ListView list; - private static ProgressBar progressBar; - private static Context ctx; - private static HashMap vidLinks; - public IssuesTask(Context ctx, ListView listView, ProgressBar progressBar) { - this.list = listView; - this.ctx = ctx; - this.progressBar = progressBar; - } + private static ArrayList issues; + private static ListView list; + private static ProgressBar progressBar; + private static Context ctx; + private static HashMap vidLinks; - public static Issue getIssue(int position) { - return issues.get(position); - } + public IssuesTask(Context ctx, ListView listView, ProgressBar progressBar) { + this.list = listView; + this.ctx = ctx; + this.progressBar = progressBar; + } - private String getHTMLForTitle(Issue i) { - StringBuilder bld = new StringBuilder(); - String title = i.getTitle(); - if (title.length() > 40) { - title = title.substring(0, 40); - title = title.substring(0, Math.min(title.length(), title.lastIndexOf(' '))).concat("..."); - } - bld.append("").append(title).append("
"); - bld.append("").append(i.getPubDate()); - return bld.toString(); - } + public static Issue getIssue(int position) { + return issues.get(position); + } - @Override - protected void onPostExecute(Object o) { - super.onPostExecute(o); - for (Issue i : issues) { - i.setVideo(vidLinks.get(i.getTitle().toLowerCase())); - i.setImgSrc("https://img.youtube.com/vi/" + i.getVideo() + "/default.jpg"); - } - ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); - list.setVisibility(View.VISIBLE); - progressBar.setVisibility(View.GONE); + private String getHTMLForTitle(Issue i) { + StringBuilder bld = new StringBuilder(); + String title = i.getTitle(); + if (title.length() > 40) { + title = title.substring(0, 40); + title = title.substring(0, Math.min(title.length(), title.lastIndexOf(' '))).concat("..."); } + bld.append("").append(title).append("
"); + bld.append("").append(i.getPubDate()); + return bld.toString(); + } - @Override - protected void onPreExecute() { - super.onPreExecute(); - issues = new ArrayList<>(); - ImgTxtAdapter adapter = new ImgTxtAdapter(ctx, R.layout.list_news_item, issues); - list.setAdapter(adapter); + @Override protected void onPostExecute(Object o) { + super.onPostExecute(o); + for (Issue i : issues) { + i.setVideo(vidLinks.get(i.getTitle().toLowerCase())); + i.setImgSrc("https://img.youtube.com/vi/" + i.getVideo() + "/default.jpg"); } + ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); + list.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.GONE); + } + + @Override protected void onPreExecute() { + super.onPreExecute(); + issues = new ArrayList<>(); + ImgTxtAdapter adapter = new ImgTxtAdapter(ctx, R.layout.list_news_item, issues); + list.setAdapter(adapter); + } + + @Override protected void onProgressUpdate(Object[] values) { + super.onProgressUpdate(values); + ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); + } - @Override - protected void onProgressUpdate(Object[] values) { - super.onProgressUpdate(values); - ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); + @Override protected Object doInBackground(Object[] params) { + retrieveLinks(); + BufferedReader in = null; + try { + URL url = new URL( + "https://search.berniesanders.tech/articles_en/berniesanders_com/_search?q=article_type%3A%28Issues%29&sort=created_at:desc&size=20"); + in = new BufferedReader(new InputStreamReader(url.openStream())); + } catch (IOException e) { + e.printStackTrace(); } + if (in == null) { + Log.d("reader null", "no events, null reader,"); + Issue i = new Issue(); + i.setHtmlTitle("Unable to Load News"); + i.setDesc("Check your internet connection?"); + issues.add(i); + return null; + } + JsonReader reader = new JsonReader(in); + try { + readObjects(reader); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } - @Override - protected Object doInBackground(Object[] params) { - retrieveLinks(); - BufferedReader in = null; - try { - URL url = new URL("https://search.berniesanders.tech/articles_en/berniesanders_com/_search?q=article_type%3A%28Issues%29&sort=created_at:desc&size=20"); - in = new BufferedReader(new InputStreamReader(url.openStream())); - } catch (IOException e) { - e.printStackTrace(); - } - if (in == null) { - Log.d("reader null", "no events, null reader,"); - Issue i = new Issue(); - i.setHtmlTitle("Unable to Load News"); - i.setDesc("Check your internet connection?"); - issues.add(i); - return null; - } - JsonReader reader = new JsonReader(in); - try { - readObjects(reader); - } catch (IOException e) { - e.printStackTrace(); - } - return null; + private void readObjects(JsonReader reader) throws IOException { + Issue i = new Issue(); + while (reader.hasNext()) { + if (isCancelled()) { + return; + } + if (reader.peek() == JsonToken.BEGIN_OBJECT) { + reader.beginObject(); + } + if (reader.peek() == JsonToken.BEGIN_ARRAY) { + reader.beginArray(); + } + if (reader.peek() == JsonToken.END_ARRAY) { + reader.endArray(); + } + String next = reader.nextName(); + switch (next.toLowerCase().trim()) { + case "hits": { + if (reader.peek() == JsonToken.BEGIN_ARRAY) { + reader.beginArray(); + } else { + reader.beginObject(); + } + break; } - - private void readObjects(JsonReader reader) throws IOException { - Issue i = new Issue(); - while (reader.hasNext()) { - if (isCancelled()) { - return; - } - if (reader.peek() == JsonToken.BEGIN_OBJECT) { - reader.beginObject(); - } - if (reader.peek() == JsonToken.BEGIN_ARRAY) { - reader.beginArray(); - } - if (reader.peek() == JsonToken.END_ARRAY) { - reader.endArray(); - } - String next = reader.nextName(); - switch(next.toLowerCase().trim()) { - case "hits" : { - if (reader.peek() == JsonToken.BEGIN_ARRAY) { - reader.beginArray(); - } else { - reader.beginObject(); - } - break; - } - case "_source" : { - reader.beginObject(); - break; - } - case "title" : { - i.setTitle(reader.nextString()); - break; - } - case "url" : { - i.setUrl(reader.nextString()); - break; - } - case "inserted_at" : { - i.setPubDate(reader.nextString()); - break; - } - case "body" : { - i.setDesc(reader.nextString()); - break; - } - case "_id" : { - reader.skipValue(); - if (reader.peek() == JsonToken.END_OBJECT) { - reader.endObject(); - } - break; - } - default: { - if (reader.peek() != JsonToken.END_OBJECT) { - reader.skipValue(); - } - if (reader.peek() == JsonToken.END_OBJECT) { - if (i.getTitle() != null) { - formatDate(i); - i.setTxt(getHTMLForTitle(i)); - issues.add(i); - i = new Issue(); - publishProgress(); - } - reader.endObject(); - } - } + case "_source": { + reader.beginObject(); + break; + } + case "title": { + i.setTitle(reader.nextString()); + break; + } + case "url": { + i.setUrl(reader.nextString()); + break; + } + case "inserted_at": { + i.setPubDate(reader.nextString()); + break; + } + case "body": { + i.setDesc(reader.nextString()); + break; + } + case "_id": { + reader.skipValue(); + if (reader.peek() == JsonToken.END_OBJECT) { + reader.endObject(); + } + break; + } + default: { + if (reader.peek() != JsonToken.END_OBJECT) { + reader.skipValue(); + } + if (reader.peek() == JsonToken.END_OBJECT) { + if (i.getTitle() != null) { + formatDate(i); + i.setTxt(getHTMLForTitle(i)); + issues.add(i); + i = new Issue(); + publishProgress(); } + reader.endObject(); + } } - reader.close(); + } } + reader.close(); + } - private void formatDate(Issue i) { - SimpleDateFormat ft; - ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS", Locale.US); - try { - Date date = ft.parse(i.getPubDate()); - i.setPubDate(new SimpleDateFormat("MMMM d, yyyy").format(date)); - } catch (ParseException e1) { - e1.printStackTrace(); - } + private void formatDate(Issue i) { + SimpleDateFormat ft; + ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS", Locale.US); + try { + Date date = ft.parse(i.getPubDate()); + i.setPubDate(new SimpleDateFormat("MMMM d, yyyy").format(date)); + } catch (ParseException e1) { + e1.printStackTrace(); + } + } + + private void retrieveLinks() { + BufferedReader in = null; + vidLinks = new HashMap<>(); + try { + URL url = new URL("https://www.reddit.com/r/bernienews.json"); + in = new BufferedReader(new InputStreamReader(url.openStream())); + } catch (IOException e) { + e.printStackTrace(); } - private void retrieveLinks() { - BufferedReader in = null; - vidLinks = new HashMap<>(); - try { - URL url = new URL("https://www.reddit.com/r/bernienews.json"); - in = new BufferedReader(new InputStreamReader(url.openStream())); - } catch (IOException e) { - e.printStackTrace(); + if (in == null) { + Log.d("rss reader null", "null reader. Is Reddit down?!?!"); + } + JsonReader reader = new JsonReader(in); + try { + readReddit(reader); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void readReddit(JsonReader reader) throws IOException { + String title = ""; + String link = ""; + while (reader.hasNext()) { + if (reader.peek() == JsonToken.BEGIN_OBJECT) { + reader.beginObject(); + } + String next = reader.nextName(); + switch (next.toLowerCase().trim()) { + case "children": { + reader.beginArray(); + reader.beginObject(); + break; } - if (in == null) { - Log.d("rss reader null", "null reader. Is Reddit down?!?!"); + case "data": { + reader.beginObject(); + break; } - JsonReader reader = new JsonReader(in); - try { - readReddit(reader); - } catch (IOException e) { - e.printStackTrace(); + case "title": { + title = reader.nextString().replaceAll("&", "&"); + break; } - } - - private void readReddit(JsonReader reader) throws IOException { - String title = ""; - String link = ""; - while (reader.hasNext()) { - if (reader.peek() == JsonToken.BEGIN_OBJECT) { - reader.beginObject(); - } - String next = reader.nextName(); - switch(next.toLowerCase().trim()) { - case "children" : { - reader.beginArray(); - reader.beginObject(); - break; - } - case "data" : { - reader.beginObject(); - break; - } - case "title" : { - title = reader.nextString().replaceAll("&", "&"); - break; - } - case "url" : { - link = reader.nextString(); - break; - } - case "ups": { - reader.skipValue(); - reader.endObject(); - reader.endObject(); - vidLinks.put(title.toLowerCase(), link.substring(link.lastIndexOf('=') + 1)); - break; - } - default: { - reader.skipValue(); - } - } + case "url": { + link = reader.nextString(); + break; + } + case "ups": { + reader.skipValue(); + reader.endObject(); + reader.endObject(); + vidLinks.put(title.toLowerCase(), link.substring(link.lastIndexOf('=') + 1)); + break; + } + default: { + reader.skipValue(); } - reader.close(); + } } + reader.close(); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/tasks/NewsTask.java b/app/src/main/java/com/spielpark/steve/bernieapp/tasks/NewsTask.java index 21245cc..d73a378 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/tasks/NewsTask.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/tasks/NewsTask.java @@ -11,12 +11,10 @@ import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; - import com.spielpark.steve.bernieapp.R; import com.spielpark.steve.bernieapp.actMainPage; import com.spielpark.steve.bernieapp.misc.ImgTxtAdapter; import com.spielpark.steve.bernieapp.wrappers.NewsArticle; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -32,194 +30,193 @@ * Created by Steve on 7/8/2015. */ public class NewsTask extends AsyncTask { - private static ArrayList articles; - private static ListView list; - private static ProgressBar progressBar; - private static Context ctx; - private static TextView subHeader; - private static TextView header; + private static ArrayList articles; + private static ListView list; + private static ProgressBar progressBar; + private static Context ctx; + private static TextView subHeader; + private static TextView header; - public NewsTask(Context ctx, ListView listView, ProgressBar progressBar, TextView subHeader, TextView header) { - this.list = listView; - this.ctx = ctx; - this.progressBar = progressBar; - this.subHeader = subHeader; - this.header = header; - } + public NewsTask(Context ctx, ListView listView, ProgressBar progressBar, TextView subHeader, + TextView header) { + this.list = listView; + this.ctx = ctx; + this.progressBar = progressBar; + this.subHeader = subHeader; + this.header = header; + } - public static NewsArticle getArticle(int pos) { - return articles.get(pos); - } + public static NewsArticle getArticle(int pos) { + return articles.get(pos); + } - public static ArrayList getData() { return articles; } + public static ArrayList getData() { + return articles; + } - @Override - protected Object doInBackground(Object[] params) { - BufferedReader in = null; - try { - URL url = new URL("https://search.berniesanders.tech/articles_en/berniesanders_com/_search?q=!article_type%3A%28ExternalLink%20OR%20Issues%29&sort=created_at:desc&size=20"); - in = new BufferedReader(new InputStreamReader(url.openStream())); - } catch (IOException e) { - e.printStackTrace(); + @Override protected Object doInBackground(Object[] params) { + BufferedReader in = null; + try { + URL url = new URL( + "https://search.berniesanders.tech/articles_en/berniesanders_com/_search?q=!article_type%3A%28ExternalLink%20OR%20Issues%29&sort=created_at:desc&size=20"); + in = new BufferedReader(new InputStreamReader(url.openStream())); + } catch (IOException e) { + e.printStackTrace(); + } + if (in == null) { + Log.d("reader null", "no events, null reader,"); + NewsArticle a = new NewsArticle(); + a.setHtmlTitle("Unable to Load News"); + a.setDesc("Check your internet connection?"); + articles.add(a); + return null; + } + JsonReader reader = new JsonReader(in); + try { + readObjects(reader); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + private void readObjects(JsonReader reader) throws IOException { + NewsArticle a = new NewsArticle(); + while (reader.hasNext()) { + if (isCancelled()) { + return; + } + if (reader.peek() == JsonToken.BEGIN_OBJECT) { + reader.beginObject(); + } + if (reader.peek() == JsonToken.BEGIN_ARRAY) { + reader.beginArray(); + } + if (reader.peek() == JsonToken.END_ARRAY) { + reader.endArray(); + } + String next = reader.nextName(); + switch (next.toLowerCase().trim()) { + case "hits": { + if (reader.peek() == JsonToken.BEGIN_ARRAY) { + reader.beginArray(); + } else { + reader.beginObject(); + } + break; } - if (in == null) { - Log.d("reader null", "no events, null reader,"); - NewsArticle a = new NewsArticle(); - a.setHtmlTitle("Unable to Load News"); - a.setDesc("Check your internet connection?"); - articles.add(a); - return null; + case "_source": { + reader.beginObject(); + break; } - JsonReader reader = new JsonReader(in); - try { - readObjects(reader); - } catch (IOException e) { - e.printStackTrace(); + case "title": { + a.setTitle(reader.nextString()); + break; } - return null; - } - - private void readObjects(JsonReader reader) throws IOException { - NewsArticle a = new NewsArticle(); - while (reader.hasNext()) { - if (isCancelled()) { - return; - } - if (reader.peek() == JsonToken.BEGIN_OBJECT) { - reader.beginObject(); - } - if (reader.peek() == JsonToken.BEGIN_ARRAY) { - reader.beginArray(); - } - if (reader.peek() == JsonToken.END_ARRAY) { - reader.endArray(); - } - String next = reader.nextName(); - switch(next.toLowerCase().trim()) { - case "hits" : { - if (reader.peek() == JsonToken.BEGIN_ARRAY) { - reader.beginArray(); - } else { - reader.beginObject(); - } - break; - } - case "_source" : { - reader.beginObject(); - break; - } - case "title" : { - a.setTitle(reader.nextString()); - break; - } - case "url" : { - a.setUrl(reader.nextString()); - break; - } - case "inserted_at" : { - a.setPubDate(reader.nextString()); - break; - } - case "body_html" : { - a.setDesc(reader.nextString()); - break; - } - case "_id" : { - reader.skipValue(); - if (reader.peek() == JsonToken.END_OBJECT) { - reader.endObject(); - } - break; - } - case "image_url" : { - a.setImgSrc(reader.nextString()); - break; - } - default: { - if (reader.peek() != JsonToken.END_OBJECT) { - reader.skipValue(); - } - if (reader.peek() == JsonToken.END_OBJECT) { - if (a.getTitle() != null) { - formatDate(a); - a.setTxt(getHTMLForTitle(a)); - articles.add(a); - a = new NewsArticle(); - publishProgress(); - } - reader.endObject(); - } - } + case "url": { + a.setUrl(reader.nextString()); + break; + } + case "inserted_at": { + a.setPubDate(reader.nextString()); + break; + } + case "body_html": { + a.setDesc(reader.nextString()); + break; + } + case "_id": { + reader.skipValue(); + if (reader.peek() == JsonToken.END_OBJECT) { + reader.endObject(); + } + break; + } + case "image_url": { + a.setImgSrc(reader.nextString()); + break; + } + default: { + if (reader.peek() != JsonToken.END_OBJECT) { + reader.skipValue(); + } + if (reader.peek() == JsonToken.END_OBJECT) { + if (a.getTitle() != null) { + formatDate(a); + a.setTxt(getHTMLForTitle(a)); + articles.add(a); + a = new NewsArticle(); + publishProgress(); } + reader.endObject(); + } } - reader.close(); + } } + reader.close(); + } - @Override - protected void onPreExecute() { - super.onPreExecute(); - articles = new ArrayList<>(); - ImgTxtAdapter adapter = new ImgTxtAdapter(ctx, R.layout.list_news_item, articles); - list.setAdapter(adapter); - } + @Override protected void onPreExecute() { + super.onPreExecute(); + articles = new ArrayList<>(); + ImgTxtAdapter adapter = new ImgTxtAdapter(ctx, R.layout.list_news_item, articles); + list.setAdapter(adapter); + } - @Override - protected void onPostExecute(Object o) { - super.onPostExecute(o); - Collections.sort(articles); - NewsArticle a; - boolean setSubheader = false; - for (int i = 0; i < articles.size(); i++) { - a = articles.get(i); - if (!(setSubheader)) { - if (a.getUrl() != null) { - if (a.getUrl().contains("press-release")) { - subHeader.setText(Html.fromHtml(a.getDesc())); - String s = a.getTitle(); - s = s.length() > 40 ? s.substring(0, 40) + "..." : s; - header.setText(s); - setSubheader = true; - } - } - } + @Override protected void onPostExecute(Object o) { + super.onPostExecute(o); + Collections.sort(articles); + NewsArticle a; + boolean setSubheader = false; + for (int i = 0; i < articles.size(); i++) { + a = articles.get(i); + if (!(setSubheader)) { + if (a.getUrl() != null) { + if (a.getUrl().contains("press-release")) { + subHeader.setText(Html.fromHtml(a.getDesc())); + String s = a.getTitle(); + s = s.length() > 40 ? s.substring(0, 40) + "..." : s; + header.setText(s); + setSubheader = true; + } } - ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); - list.setVisibility(View.VISIBLE); - progressBar.setVisibility(View.GONE); - list.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - ((actMainPage) ctx).loadEvent(NewsTask.getArticle(position)); - } - }); + } } + ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); + list.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.GONE); + list.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override public void onItemClick(AdapterView parent, View view, int position, long id) { + ((actMainPage) ctx).loadEvent(NewsTask.getArticle(position)); + } + }); + } - @Override - protected void onProgressUpdate(Object[] values) { - super.onProgressUpdate(values); - ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); - } + @Override protected void onProgressUpdate(Object[] values) { + super.onProgressUpdate(values); + ((ImgTxtAdapter) list.getAdapter()).notifyDataSetChanged(); + } - private void formatDate(NewsArticle e) { - SimpleDateFormat ft; - ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS", Locale.US); - try { - Date date = ft.parse(e.getPubDate()); - e.setPubDate(new SimpleDateFormat("MMMM d, yyyy").format(date)); - } catch (ParseException e1) { - e1.printStackTrace(); - } + private void formatDate(NewsArticle e) { + SimpleDateFormat ft; + ft = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS", Locale.US); + try { + Date date = ft.parse(e.getPubDate()); + e.setPubDate(new SimpleDateFormat("MMMM d, yyyy").format(date)); + } catch (ParseException e1) { + e1.printStackTrace(); } + } - private String getHTMLForTitle(NewsArticle e) { - StringBuilder bld = new StringBuilder(); - String title = e.getTitle(); - if (title.length() > 40) { - title = title.substring(0, 40); - title = title.substring(0, Math.min(title.length(), title.lastIndexOf(' '))).concat("..."); - } - bld.append("").append(title).append("
"); - bld.append("").append(e.getPubDate()); - return bld.toString(); + private String getHTMLForTitle(NewsArticle e) { + StringBuilder bld = new StringBuilder(); + String title = e.getTitle(); + if (title.length() > 40) { + title = title.substring(0, 40); + title = title.substring(0, Math.min(title.length(), title.lastIndexOf(' '))).concat("..."); } + bld.append("").append(title).append("
"); + bld.append("").append(e.getPubDate()); + return bld.toString(); + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Event.java b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Event.java index fd499d4..24591b7 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Event.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Event.java @@ -2,7 +2,6 @@ import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Comparator; import java.util.Date; /** @@ -10,180 +9,182 @@ */ public class Event implements Comparable> { - private String name; - private String url; - private String date; - private String description; - private String timezone; - private String eventType; - private String venue; - private String venue_addr; - private String venue_city; - private String state; - private String time; - private int zip; - private int capacity; - private int attendee_count; - private double latitude; - private double longitude; - private boolean isOfficial; - public boolean isrss = false; - public void setTime(String s) { - this.time = s; - } - public String getTime() { - return this.time; - } - public String getState() { - return state; - } - - public void setState(String state) { - this.state = state; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - public boolean isOfficial() { - return isOfficial; - } - - public void setOfficial(boolean isOfficial) { - this.isOfficial = isOfficial; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getTimezone() { - return timezone; - } - - public void setTimezone(String timezone) { - this.timezone = timezone; - } - - public String getEventType() { - return eventType; - } - - public void setEventType(String eventType) { - this.eventType = eventType; - } - - public String getVenue() { - return venue; - } - - public void setVenue(String venue) { - this.venue = venue; - } - - public String getVenue_addr() { - return venue_addr; - } - - public void setVenue_addr(String venue_addr) { - this.venue_addr = venue_addr; - } - - public String getVenue_city() { - return venue_city; - } - - public void setVenue_city(String venue_city) { - this.venue_city = venue_city; - } - - public int getZip() { - return zip; - } - - public void setZip(int zip) { - this.zip = zip; - } - - public int getCapacity() { - return capacity; - } - - public void setCapacity(int capacity) { - this.capacity = capacity; - } - - public int getAttendee_count() { - return attendee_count; - } - - public void setAttendee_count(int attendee_count) { - this.attendee_count = attendee_count; - } - - public double getLatitude() { - return latitude; - } - - public void setLatitude(double latitude) { - this.latitude = latitude; - } - - public double getLongitude() { - return longitude; - } - - public void setLongitude(double longitude) { - this.longitude = longitude; - } - - @Override - public String toString() { - return this.getName() + " : " + this.getDate(); - } - - public Event() { - - } - - @Override - public int compareTo(Event another) { - int ret; - SimpleDateFormat ft = new SimpleDateFormat("MMMM d, yyyy"); - Date l; - Date r; - try { - l = ft.parse(this.getDate()); - r = ft.parse(another.getDate()); - ret = r.compareTo(l); - } catch (ParseException e) { - e.printStackTrace(); - ret = -1; - } - return ret; - } + public boolean isrss = false; + private String name; + private String url; + private String date; + private String description; + private String timezone; + private String eventType; + private String venue; + private String venue_addr; + private String venue_city; + private String state; + private String time; + private int zip; + private int capacity; + private int attendee_count; + private double latitude; + private double longitude; + private boolean isOfficial; + + public Event() { + + } + + public String getTime() { + return this.time; + } + + public void setTime(String s) { + this.time = s; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public boolean isOfficial() { + return isOfficial; + } + + public void setOfficial(boolean isOfficial) { + this.isOfficial = isOfficial; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getTimezone() { + return timezone; + } + + public void setTimezone(String timezone) { + this.timezone = timezone; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public String getVenue() { + return venue; + } + + public void setVenue(String venue) { + this.venue = venue; + } + + public String getVenue_addr() { + return venue_addr; + } + + public void setVenue_addr(String venue_addr) { + this.venue_addr = venue_addr; + } + + public String getVenue_city() { + return venue_city; + } + + public void setVenue_city(String venue_city) { + this.venue_city = venue_city; + } + + public int getZip() { + return zip; + } + + public void setZip(int zip) { + this.zip = zip; + } + + public int getCapacity() { + return capacity; + } + + public void setCapacity(int capacity) { + this.capacity = capacity; + } + + public int getAttendee_count() { + return attendee_count; + } + + public void setAttendee_count(int attendee_count) { + this.attendee_count = attendee_count; + } + + public double getLatitude() { + return latitude; + } + + public void setLatitude(double latitude) { + this.latitude = latitude; + } + + public double getLongitude() { + return longitude; + } + + public void setLongitude(double longitude) { + this.longitude = longitude; + } + + @Override public String toString() { + return this.getName() + " : " + this.getDate(); + } + + @Override public int compareTo(Event another) { + int ret; + SimpleDateFormat ft = new SimpleDateFormat("MMMM d, yyyy"); + Date l; + Date r; + try { + l = ft.parse(this.getDate()); + r = ft.parse(another.getDate()); + ret = r.compareTo(l); + } catch (ParseException e) { + e.printStackTrace(); + ret = -1; + } + return ret; + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/ImgTxtItem.java b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/ImgTxtItem.java index a66d943..6265004 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/ImgTxtItem.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/ImgTxtItem.java @@ -1,17 +1,14 @@ package com.spielpark.steve.bernieapp.wrappers; -import android.graphics.Bitmap; - /** * Created by Steve on 8/17/2015. */ public interface ImgTxtItem { - public String getTxt(); - - public void setTxt(String txt); + public String getTxt(); - public String getImgSrc(); + public void setTxt(String txt); - public void setImgSrc(String img); + public String getImgSrc(); + public void setImgSrc(String img); } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Issue.java b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Issue.java index 7e55f15..0b015dd 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Issue.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/Issue.java @@ -1,9 +1,7 @@ package com.spielpark.steve.bernieapp.wrappers; import android.app.Activity; -import android.graphics.Bitmap; import android.util.Log; - import com.spielpark.steve.bernieapp.misc.Util; /** @@ -11,94 +9,89 @@ */ public class Issue implements ImgTxtItem { - public String getHtmlTitle() { - return htmlTitle; - } - - public void setHtmlTitle(String title) { - this.htmlTitle = title; - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public String getVideo() { - return video; - } - - public void setVideo(String videos) { - this.video = videos; - } - - public String getEmbedURL(Activity ctx) { - StringBuilder bld = new StringBuilder(); - int[] wh = Util.getScreenWidthHeight(ctx); - bld.append(" "); - Log.d("Issue URL", bld.toString()); - return bld.toString(); - } - - private String pubDate; - private String htmlTitle; - private String desc; - private String Url; - private String title; - private String video; - private String imgSrc; - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public String getTitle() { - return this.title; - } - - public void setTitle(String t) { - this.title = t; - } - - public String getUrl() { - return Url; - } - - public void setUrl(String url) { - Url = url; - } - - @Override - public String getTxt() { - return getHtmlTitle(); - } - - @Override - public void setTxt(String txt) { - this.setHtmlTitle(txt); - } - - @Override - public String getImgSrc() { - return imgSrc; - } - - @Override - public void setImgSrc(String img) { - imgSrc = img; - } - + private String pubDate; + private String htmlTitle; + private String desc; + private String Url; + private String title; + private String video; + private String imgSrc; + + public String getHtmlTitle() { + return htmlTitle; + } + + public void setHtmlTitle(String title) { + this.htmlTitle = title; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getVideo() { + return video; + } + + public void setVideo(String videos) { + this.video = videos; + } + + public String getEmbedURL(Activity ctx) { + StringBuilder bld = new StringBuilder(); + int[] wh = Util.getScreenWidthHeight(ctx); + bld.append(" "); + Log.d("Issue URL", bld.toString()); + return bld.toString(); + } + + public String getPubDate() { + return pubDate; + } + + public void setPubDate(String pubDate) { + this.pubDate = pubDate; + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String t) { + this.title = t; + } + + public String getUrl() { + return Url; + } + + public void setUrl(String url) { + Url = url; + } + + @Override public String getTxt() { + return getHtmlTitle(); + } + + @Override public void setTxt(String txt) { + this.setHtmlTitle(txt); + } + + @Override public String getImgSrc() { + return imgSrc; + } + + @Override public void setImgSrc(String img) { + imgSrc = img; + } } diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NavDrawerItem.java b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NavDrawerItem.java index bfe24e9..f2ad608 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NavDrawerItem.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NavDrawerItem.java @@ -3,14 +3,12 @@ /** * Created by Steve on 8/16/2015. */ -public class NavDrawerItem -{ - public int icon; - public String name; +public class NavDrawerItem { + public int icon; + public String name; - public NavDrawerItem(int icon, String name) - { - this.icon = icon; - this.name = name; - } + public NavDrawerItem(int icon, String name) { + this.icon = icon; + this.name = name; + } } \ No newline at end of file diff --git a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NewsArticle.java b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NewsArticle.java index c92814d..bab4047 100644 --- a/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NewsArticle.java +++ b/app/src/main/java/com/spielpark/steve/bernieapp/wrappers/NewsArticle.java @@ -8,100 +8,95 @@ * Created by Steve on 8/14/2015. */ public class NewsArticle implements Comparable>, ImgTxtItem { - private String title; - private String desc; - private String url; - private String pubdate; - private String time; - private String htmlTitle; - private String imgSrc; - - public String getHtmlTitle() { - return htmlTitle; - } - - public void setHtmlTitle(String htmlTitle) { - this.htmlTitle = htmlTitle; - } - - public String getTime() { - return time; - } - - public void setTime(String time) { - this.time = time; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getPubDate() { - return pubdate; - } - - public void setPubDate(String pubdate) { - this.pubdate = pubdate; - } - - @Override - public String getTxt() { - return getHtmlTitle(); - } - - @Override - public void setTxt(String txt) { - this.setHtmlTitle(txt); - } - - @Override - public String getImgSrc() { - return imgSrc; - } - - @Override - public void setImgSrc(String img) { - this.imgSrc = img; - } - - public NewsArticle() { - - } - - @Override - public int compareTo(NewsArticle tNewsArticle) { - int ret; - SimpleDateFormat ft = new SimpleDateFormat("MMMM d, yyyy"); - Date l; - Date r; - try { - r = ft.parse(this.getPubDate()); - l = ft.parse(tNewsArticle.getPubDate()); - ret = l.compareTo(r); - } catch (ParseException e) { - e.printStackTrace(); - ret = -1; - } - return ret; - } + private String title; + private String desc; + private String url; + private String pubdate; + private String time; + private String htmlTitle; + private String imgSrc; + + public NewsArticle() { + + } + + public String getHtmlTitle() { + return htmlTitle; + } + + public void setHtmlTitle(String htmlTitle) { + this.htmlTitle = htmlTitle; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getPubDate() { + return pubdate; + } + + public void setPubDate(String pubdate) { + this.pubdate = pubdate; + } + + @Override public String getTxt() { + return getHtmlTitle(); + } + + @Override public void setTxt(String txt) { + this.setHtmlTitle(txt); + } + + @Override public String getImgSrc() { + return imgSrc; + } + + @Override public void setImgSrc(String img) { + this.imgSrc = img; + } + + @Override public int compareTo(NewsArticle tNewsArticle) { + int ret; + SimpleDateFormat ft = new SimpleDateFormat("MMMM d, yyyy"); + Date l; + Date r; + try { + r = ft.parse(this.getPubDate()); + l = ft.parse(tNewsArticle.getPubDate()); + ret = l.compareTo(r); + } catch (ParseException e) { + e.printStackTrace(); + ret = -1; + } + return ret; + } } diff --git a/app/src/main/res/anim/view_fade_in.xml b/app/src/main/res/anim/view_fade_in.xml index aa2a57e..bd27db7 100644 --- a/app/src/main/res/anim/view_fade_in.xml +++ b/app/src/main/res/anim/view_fade_in.xml @@ -1,13 +1,12 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/anim/view_fade_in_fast.xml b/app/src/main/res/anim/view_fade_in_fast.xml index 1bce863..dd6935a 100644 --- a/app/src/main/res/anim/view_fade_in_fast.xml +++ b/app/src/main/res/anim/view_fade_in_fast.xml @@ -1,12 +1,11 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/anim/view_slide_up.xml b/app/src/main/res/anim/view_slide_up.xml index db8955a..c6de245 100644 --- a/app/src/main/res/anim/view_slide_up.xml +++ b/app/src/main/res/anim/view_slide_up.xml @@ -1,13 +1,12 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/news_header_border.xml b/app/src/main/res/drawable/news_header_border.xml index 5e03897..b58a97a 100644 --- a/app/src/main/res/drawable/news_header_border.xml +++ b/app/src/main/res/drawable/news_header_border.xml @@ -1,22 +1,23 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_border.xml b/app/src/main/res/drawable/search_border.xml index 61e1dd6..bf79282 100644 --- a/app/src/main/res/drawable/search_border.xml +++ b/app/src/main/res/drawable/search_border.xml @@ -1,5 +1,7 @@ - + android:shape="rectangle"> + \ No newline at end of file diff --git a/app/src/main/res/drawable/shadow.xml b/app/src/main/res/drawable/shadow.xml index 848bd76..052e955 100644 --- a/app/src/main/res/drawable/shadow.xml +++ b/app/src/main/res/drawable/shadow.xml @@ -1,10 +1,10 @@ - - + > \ No newline at end of file diff --git a/app/src/main/res/layout/dialogue_checkbox.xml b/app/src/main/res/layout/dialogue_checkbox.xml index 1106234..d0ec913 100644 --- a/app/src/main/res/layout/dialogue_checkbox.xml +++ b/app/src/main/res/layout/dialogue_checkbox.xml @@ -1,15 +1,14 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/layout/frag_bernrate.xml b/app/src/main/res/layout/frag_bernrate.xml index e3df5ba..3c61bf3 100644 --- a/app/src/main/res/layout/frag_bernrate.xml +++ b/app/src/main/res/layout/frag_bernrate.xml @@ -1,18 +1,17 @@ - + - + - + diff --git a/app/src/main/res/layout/frag_bottom_nav.xml b/app/src/main/res/layout/frag_bottom_nav.xml index ac3e5e3..331cbef 100644 --- a/app/src/main/res/layout/frag_bottom_nav.xml +++ b/app/src/main/res/layout/frag_bottom_nav.xml @@ -1,107 +1,107 @@ - + - + - + - - + - + - + - + - + - + - + - - + + + + diff --git a/app/src/main/res/layout/frag_connect.xml b/app/src/main/res/layout/frag_connect.xml index 01692c4..1cec021 100644 --- a/app/src/main/res/layout/frag_connect.xml +++ b/app/src/main/res/layout/frag_connect.xml @@ -1,191 +1,189 @@ - - + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginBottom="60dp"> + + + +