diff --git a/.gitignore b/.gitignore
index ccf2efe..01afe3d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,12 @@
+<<<<<<< HEAD
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+=======
# Built application files
*.apk
*.ap_
@@ -25,3 +34,4 @@ proguard/
# Log Files
*.log
+>>>>>>> ac8e0a393d1ea8a8d5f7401afa3b0f8ca0829d02
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..d388799
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+robinhood_hackathon
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..9a8b7e5
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..1bbc21d
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..5689cf8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.7
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..eabd445
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..6564d52
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Fe_NYC.iml b/Fe_NYC.iml
new file mode 100644
index 0000000..754edab
--- /dev/null
+++ b/Fe_NYC.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/app/app.iml b/app/app.iml
new file mode 100644
index 0000000..dd304bc
--- /dev/null
+++ b/app/app.iml
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..4fa965d
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,36 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 22
+ buildToolsVersion "22.0.1"
+
+ defaultConfig {
+ applicationId "abassawo.c4q.nyc.fe_nyc"
+ minSdkVersion 15
+ targetSdkVersion 22
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ compile 'com.android.support:recyclerview-v7:22.2.0'
+ compile 'com.android.support:appcompat-v7:22.2.1'
+ compile 'com.android.support:design:22.2.0'
+ compile 'com.jakewharton:butterknife:7.0.1'
+ compile 'com.android.support:support-v4:22.2.1'
+ compile 'com.google.android.gms:play-services:7.5.0'
+ compile 'com.bignerdranch.android:expandablerecyclerview:1.0.3'
+ compile 'org.achartengine:achartengine:1.2.0'
+ compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
+ compile 'com.squareup.okhttp:okhttp:2.0.0'
+ compile files('libs/json-simple-1.1.1 (1).jar')
+
+}
diff --git a/app/libs/json-simple-1.1.1 (1).jar b/app/libs/json-simple-1.1.1 (1).jar
new file mode 100644
index 0000000..66347a6
Binary files /dev/null and b/app/libs/json-simple-1.1.1 (1).jar differ
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..dcb04d2
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Users/c4q-Abass/Library/Android/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/app/src/androidTest/java/abassawo/c4q/nyc/fe_nyc/ApplicationTest.java b/app/src/androidTest/java/abassawo/c4q/nyc/fe_nyc/ApplicationTest.java
new file mode 100644
index 0000000..7b0c3e1
--- /dev/null
+++ b/app/src/androidTest/java/abassawo/c4q/nyc/fe_nyc/ApplicationTest.java
@@ -0,0 +1,13 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.app.Application;
+import android.test.ApplicationTestCase;
+
+/**
+ * Testing Fundamentals
+ */
+public class ApplicationTest extends ApplicationTestCase {
+ 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
new file mode 100644
index 0000000..64d764a
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,55 @@
+
+
+ android:theme="@style/Theme.DesignDemo" >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/assets/chart.html b/app/src/main/assets/chart.html
new file mode 100644
index 0000000..0fe4a60
--- /dev/null
+++ b/app/src/main/assets/chart.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/Account.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/Account.java
new file mode 100644
index 0000000..5403f6c
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/Account.java
@@ -0,0 +1,35 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+/**
+ * Created by c4q-Abass on 8/1/15.
+ */
+public class Account {
+
+ public static double getSpendable() {
+ return spendable;
+ }
+
+ private static double savingGoal;
+ private static double spendable;
+ private static double currentSavings;
+ private static double income;
+ private static double expenses;
+ private static double foodPct, rentPct, miscPct, transPct;
+ private String name;
+
+ public static void main(String[] args) {
+ //fixme
+ savingGoal = .20 * income;
+ rentPct = .3 * income;
+ foodPct = .09 * income;
+ miscPct = .10 * income;
+ transPct = .20 * income;
+ expenses = rentPct + foodPct + miscPct + transPct;
+ spendable = income - (expenses + savingGoal); //full. for daily divide this by 30.
+ }
+
+ public Account(double income){
+ this.income = income;
+
+ }
+}
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/AlertDialogFragment.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/AlertDialogFragment.java
new file mode 100644
index 0000000..12f82ce
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/AlertDialogFragment.java
@@ -0,0 +1,28 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.Context;
+import android.os.Bundle;
+
+/**
+ * Created by c4q-tashasmith on 8/2/15.
+ */
+public class AlertDialogFragment extends DialogFragment {
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ Context context = getActivity();
+ AlertDialog.Builder builder = new AlertDialog.Builder(context)
+ .setTitle(context.getString(R.string.error_title))
+ .setMessage(context.getString(R.string.error_message))
+ .setPositiveButton(context.getString(R.string.error_ok_button_text), null); //close dialog after click
+
+ AlertDialog dialog = builder.create();
+ return dialog;
+ }
+
+ }
+
+
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/BudgetViewFragment.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/BudgetViewFragment.java
new file mode 100644
index 0000000..a7c52bb
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/BudgetViewFragment.java
@@ -0,0 +1,76 @@
+
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.graphics.Color;
+import android.graphics.drawable.AnimationDrawable;
+import android.net.Uri;
+import android.os.Bundle;
+
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AccelerateDecelerateInterpolator;
+import android.webkit.JavascriptInterface;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+
+import org.achartengine.ChartFactory;
+import org.achartengine.GraphicalView;
+import org.achartengine.model.CategorySeries;
+import org.achartengine.model.SeriesSelection;
+import org.achartengine.renderer.DefaultRenderer;
+import org.achartengine.renderer.SimpleSeriesRenderer;
+
+public class BudgetViewFragment extends Fragment {
+ public WebView webView;
+ public ImageView goalImage;
+
+
+ @SuppressLint("SetJavaScriptEnabled")
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ final View myInflatedView = inflater.inflate(R.layout.fragment_budget_view, container, false);
+
+ goalImage = (ImageView)myInflatedView.findViewById(R.id.goal);
+ goalImage.setBackgroundResource(R.drawable.goal_animation);
+ AnimationDrawable frameAnimation = (AnimationDrawable) goalImage.getBackground();
+ frameAnimation.start();
+
+ webView = (WebView) myInflatedView.findViewById(R.id.web);
+ webView.addJavascriptInterface(new WebAppInterface(), "Android");
+
+ webView.getSettings().setJavaScriptEnabled(true);
+ webView.loadUrl("file:///android_asset/chart.html");
+
+ return myInflatedView;
+ }
+
+
+ public class WebAppInterface {
+
+ @JavascriptInterface
+ public int getNum1() {
+ return 320;
+ }
+
+ @JavascriptInterface
+ public int getNum2() {
+ return 1285;
+ }
+
+ @JavascriptInterface
+ public int getNum3() {
+ return 115;
+ }
+
+ }
+}
+
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/ExpenseFragment.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/ExpenseFragment.java
new file mode 100644
index 0000000..2c99dc8
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/ExpenseFragment.java
@@ -0,0 +1,80 @@
+
+package abassawo.c4q.nyc.fe_nyc;
+
+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;
+
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Activities that contain this fragment must implement the
+ * {@link ExpenseFragment.OnFragmentInteractionListener} interface
+ * to handle interaction events.
+ * Use the {@link ExpenseFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class ExpenseFragment extends Fragment {
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment ExpenseFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static ExpenseFragment newInstance(String param1, String param2) {
+ ExpenseFragment fragment = new ExpenseFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+
+ public ExpenseFragment() {
+ // Required empty public constructor
+ }
+
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ final View myInflatedView = inflater.inflate(R.layout.fragment_expense, container, false);
+
+ return myInflatedView;
+ }
+
+
+
+
+
+
+}
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LandingPageActivity.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LandingPageActivity.java
new file mode 100644
index 0000000..ea568f5
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LandingPageActivity.java
@@ -0,0 +1,22 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v4.app.FragmentManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * Created by c4q-Abass on 8/1/15.
+ */
+public class LandingPageActivity extends Activity {
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_landing_page);
+ }
+}
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LanguageFragment.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LanguageFragment.java
new file mode 100644
index 0000000..e68c29e
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LanguageFragment.java
@@ -0,0 +1,82 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+
+import android.support.v4.app.Fragment;
+
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.annotation.TargetApi;
+
+
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.ContentResolver;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.AsyncTask;
+
+import android.os.Bundle;
+
+import android.support.v4.app.FragmentManager;
+import android.text.TextUtils;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+
+import android.support.annotation.Nullable;
+
+import android.support.v4.app.Fragment;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.google.android.gms.common.SignInButton;
+
+import java.util.List;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+
+
+/**
+ * A login screen that offers login via email/password and via Google+ sign in.
+ *
+ * ************ IMPORTANT SETUP NOTES: ************
+ * In order for Google+ sign in to work with your app, you must first go to:
+ * https://developers.google.com/+/mobile/android/getting-started#step_1_enable_the_google_api
+ * and follow the steps in "Step 1" to create an OAuth 2.0 client for your package.
+ */
+
+
+public class LanguageFragment extends Fragment {
+
+
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+
+ final View myInflatedView = inflater.inflate(R.layout.fragment_language, container, false);
+ ButterKnife.bind(this, myInflatedView);
+
+
+
+ return myInflatedView;
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LoginFragment.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LoginFragment.java
new file mode 100644
index 0000000..cccb51c
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/LoginFragment.java
@@ -0,0 +1,139 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.support.v4.app.Fragment;
+
+
+import android.os.AsyncTask;
+
+import android.os.Bundle;
+
+import android.support.v4.app.FragmentManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import android.widget.Button;
+
+import java.util.List;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+
+
+/**
+ * A login screen that offers login via email/password and via Google+ sign in.
+ *
+ * ************ IMPORTANT SETUP NOTES: ************
+ * In order for Google+ sign in to work with your app, you must first go to:
+ * https://developers.google.com/+/mobile/android/getting-started#step_1_enable_the_google_api
+ * and follow the steps in "Step 1" to create an OAuth 2.0 client for your package.
+ */
+
+
+public class LoginFragment extends Fragment {
+
+ @Bind(R.id.email_sign_in_button)
+ Button signInBtn;
+ /**
+ * A dummy authentication store containing known user names and passwords.
+ * TODO: remove after connecting to a real authentication system.
+ */
+
+ public LoginFragment(){
+
+ }
+
+ private static final String[] DUMMY_CREDENTIALS = new String[]{
+ "foo@example.com:hello", "bar@example.com:world"
+ };
+ /**
+ * Keep track of the login task to ensure we can cancel it if requested.
+ */
+ private UserLoginTask mAuthTask = null;
+
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.fragment_homescreen, container, false);
+ ButterKnife.bind(this, view);
+ signInBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
+ fragmentManager.beginTransaction()
+ .replace(R.id.main_container, new ExpenseFragment())
+ .addToBackStack(null) //allows user to press back button and return to previous fragment
+ .commit();
+
+ }
+ });
+ return view;
+ }
+
+
+
+ private boolean isEmailValid(String email) {
+ //TODO: Replace this with your own logic
+ return email.contains("@");
+ }
+
+ private boolean isPasswordValid(String password) {
+ //TODO: Replace this with your own logic
+ return password.length() > 4;
+ }
+
+ /**
+ * Shows the progress UI and hides the login form.
+ */
+
+
+
+ private void addEmailsToAutoComplete(List emailAddressCollection) {
+ //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list.
+ // ArrayAdapter adapter =
+// new ArrayAdapter(LoginActivity.this,
+// android.R.layout.simple_dropdown_item_1line, emailAddressCollection);
+
+ // mEmailView.setAdapter(adapter);
+ }
+
+ /**
+ * Represents an asynchronous login/registration task used to authenticate
+ * the user.
+ */
+ public class UserLoginTask extends AsyncTask {
+
+ private final String mEmail;
+ private final String mPassword;
+
+ UserLoginTask(String email, String password) {
+ mEmail = email;
+ mPassword = password;
+ }
+
+ @Override
+ protected Boolean doInBackground(Void... params) {
+ // TODO: attempt authentication against a network service.
+
+ try {
+ // Simulate network access.
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ return false;
+ }
+
+ for (String credential : DUMMY_CREDENTIALS) {
+ String[] pieces = credential.split(":");
+ if (pieces[0].equals(mEmail)) {
+ // Account exists, return true if the password matches.
+ return pieces[1].equals(mPassword);
+ }
+ }
+
+ // TODO: register the new account here.
+ return true;
+ }
+
+ }
+}
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/MainActivity.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/MainActivity.java
new file mode 100644
index 0000000..c8bf26a
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/MainActivity.java
@@ -0,0 +1,156 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.content.Intent;
+import android.support.design.widget.NavigationView;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBar;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.app.Activity;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+
+
+
+public class MainActivity extends AppCompatActivity {
+ @Bind(R.id.drawer_layout) DrawerLayout mDrawerLayout;
+ private CharSequence mTitle;
+ NavigationView navigationView;
+ private ActionBarDrawerToggle mDrawerToggle;
+
+
+ private FragmentManager fragmentManager;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ ButterKnife.bind(this);
+ mTitle = getTitle();
+ mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.app_name, R.string.app_name) {
+ @Override
+ public void onDrawerOpened(View drawerView) {
+ super.onDrawerOpened(drawerView);
+
+ invalidateOptionsMenu();
+ }
+ };
+
+
+ navigationView = (NavigationView) findViewById(R.id.nav_view);
+ if (navigationView != null) {
+ setupDrawerContent(navigationView);
+ }
+
+ final ActionBar actionBar = getSupportActionBar();
+ actionBar.isHideOnContentScrollEnabled();
+ actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
+ actionBar.setTitle(getString(R.string.app_name));
+ actionBar.setLogo(R.drawable.fe_nyc_logo);
+ actionBar.setIcon(R.drawable.fe_nyc_logo);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+
+
+
+ fragmentManager = getSupportFragmentManager();
+
+//
+ FragmentManager fragmentManager = getSupportFragmentManager();
+
+ fragmentManager.beginTransaction()
+ .add(R.id.main_container, new LanguageFragment())
+ .addToBackStack(null) //allows user to press back button and return to previous fragment
+ .commit();
+
+ }
+
+
+
+
+ public void submitClick(View v){
+ fragmentManager.beginTransaction()
+ .add(R.id.main_container, new BudgetViewFragment())
+ .addToBackStack(null) //allows user to press back button and return to previous fragment
+ .commit();
+
+ }
+
+
+ private void setupDrawerContent(NavigationView navigationView) {
+ fragmentManager = getSupportFragmentManager();
+ navigationView.setNavigationItemSelectedListener(
+ new NavigationView.OnNavigationItemSelectedListener() {
+ @Override
+ public boolean onNavigationItemSelected(MenuItem menuItem) {
+ menuItem.setChecked(true);
+ if (menuItem.getItemId() == R.id.nav_expense) {
+ fragmentManager.beginTransaction()
+ .replace(R.id.main_container, new BudgetViewFragment())//allows user to press back button and return to previous fragment
+ .commit();
+ } else if (menuItem.getItemId() == R.id.nav_wallet) {
+ fragmentManager.beginTransaction()
+ .replace(R.id.main_container, new WalletFragment())
+ //allows user to press back button and return to previous fragment
+ .commit();
+ } else if (menuItem.getItemId() == R.id.nav_resources) {
+ Intent resourceIntent = new Intent(getApplicationContext(), ResourceActivity.class);
+ //resourceIntent.putExtra("zip", zip);
+ startActivity(resourceIntent);
+ } else if ((menuItem.getItemId() == R.id.nav_settings)) {
+ Intent intent = new Intent(getApplicationContext(), SettingsActivity.class);
+ startActivity(intent);
+ } else if (menuItem.getItemId() == R.id.nav_connect) {
+ Intent intent = new Intent(MainActivity.this, VenmoWebViewActivity.class);
+ startActivityForResult(intent, 1);
+ }
+ mDrawerLayout.closeDrawers();
+ return true;
+ }
+ });
+ }
+
+
+
+ public void missionIntent(View v){
+ Intent mission = new Intent(MainActivity.this, MissionActivity.class);
+ startActivity(mission);
+ }
+
+
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.menu_main, menu);
+ return super.onCreateOptionsMenu(menu);
+
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+
+ if (mDrawerToggle.onOptionsItemSelected(item)) {
+ return true;
+ }
+ if (id == R.id.action_log_out) {
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+}
+
+
+
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/MissionActivity.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/MissionActivity.java
new file mode 100644
index 0000000..427834b
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/MissionActivity.java
@@ -0,0 +1,38 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.support.v7.app.ActionBarActivity;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+
+
+public class MissionActivity extends ActionBarActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.fragment_mission);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.menu_mission, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+
+ //noinspection SimplifiableIfStatement
+ if (id == R.id.action_settings) {
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+}
diff --git a/app/src/main/java/abassawo/c4q/nyc/fe_nyc/Program.java b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/Program.java
new file mode 100644
index 0000000..a6275ac
--- /dev/null
+++ b/app/src/main/java/abassawo/c4q/nyc/fe_nyc/Program.java
@@ -0,0 +1,77 @@
+package abassawo.c4q.nyc.fe_nyc;
+
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bignerdranch.expandablerecyclerview.Model.ParentObject;
+import com.bignerdranch.expandablerecyclerview.ViewHolder.ParentViewHolder;
+
+import java.util.List;
+
+/**
+ * Created by c4q-tashasmith on 8/2/15.
+ */
+//parent class
+public class Program implements ParentObject {
+ private List