diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..5b11a39d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+#built application files
+*.apk
+*.ap_
+
+# files for the dex VM
+*.dex
+
+# Java class files
+*.class
+
+# generated files
+bin/
+gen/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Windows thumbnail db
+Thumbs.db
+
+# OSX files
+.DS_Store
+
+# Eclipse project files
+.classpath
+.project
+
+# Android Studio
+*.iml
+.idea
+#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
+.gradle
+build/
diff --git a/homework/jaellysbales/Horoscope/.gitignore b/homework/jaellysbales/Horoscope/.gitignore
new file mode 100644
index 00000000..35ed4154
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/.gitignore
@@ -0,0 +1,5 @@
+.gradle
+/local.properties
+.idea/
+.DS_Store
+/build
diff --git a/homework/jaellysbales/Horoscope/Horoscope.iml b/homework/jaellysbales/Horoscope/Horoscope.iml
new file mode 100644
index 00000000..0bb6048a
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/Horoscope.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/Horoscope/app/.gitignore b/homework/jaellysbales/Horoscope/app/.gitignore
new file mode 100644
index 00000000..796b96d1
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/homework/jaellysbales/Horoscope/app/app.iml b/homework/jaellysbales/Horoscope/app/app.iml
new file mode 100644
index 00000000..c3161288
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/app.iml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/Horoscope/app/build.gradle b/homework/jaellysbales/Horoscope/app/build.gradle
new file mode 100644
index 00000000..a33f9116
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 22
+ buildToolsVersion "22.0.1"
+
+ defaultConfig {
+ applicationId "com.jaellysbales.horoscope"
+ 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:appcompat-v7:22.1.1'
+ compile 'com.android.support:recyclerview-v7:21.0.+'
+}
diff --git a/homework/jaellysbales/Horoscope/app/proguard-rules.pro b/homework/jaellysbales/Horoscope/app/proguard-rules.pro
new file mode 100644
index 00000000..d3010442
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/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/jaellysbales/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/homework/jaellysbales/Horoscope/app/src/main/AndroidManifest.xml b/homework/jaellysbales/Horoscope/app/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..51bb051e
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/AndroidManifest.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/FragmentDrawer.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/FragmentDrawer.java
new file mode 100644
index 00000000..258a0210
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/FragmentDrawer.java
@@ -0,0 +1,170 @@
+package com.jaellysbales.horoscope.drawer;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
+import android.view.GestureDetector;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class FragmentDrawer extends Fragment {
+
+ private static String TAG = FragmentDrawer.class.getSimpleName();
+
+ private RecyclerView recyclerView;
+ private ActionBarDrawerToggle mDrawerToggle;
+ private DrawerLayout mDrawerLayout;
+ private NavigationDrawerAdapter adapter;
+ private View containerView;
+ private static String[] titles = null;
+ private FragmentDrawerListener drawerListener;
+
+ public FragmentDrawer() {
+
+ }
+
+ public void setDrawerListener(FragmentDrawerListener listener) {
+ this.drawerListener = listener;
+ }
+
+ public static List getData() {
+ List data = new ArrayList<>();
+
+
+ // preparing navigation drawer items
+ for (int i = 0; i < titles.length; i++) {
+ NavDrawerItem navItem = new NavDrawerItem();
+ navItem.setTitle(titles[i]);
+ data.add(navItem);
+ }
+ return data;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // drawer labels
+ titles = getActivity().getResources().getStringArray(R.array.nav_drawer_labels);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflating view layout
+ View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
+ recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);
+
+ adapter = new NavigationDrawerAdapter(getActivity(), getData());
+ recyclerView.setAdapter(adapter);
+ recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+ recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() {
+ @Override
+ public void onClick(View view, int position) {
+ drawerListener.onDrawerItemSelected(view, position);
+ mDrawerLayout.closeDrawer(containerView);
+ }
+
+ @Override
+ public void onLongClick(View view, int position) {
+
+ }
+ }));
+
+ return layout;
+ }
+
+
+ public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
+ containerView = getActivity().findViewById(fragmentId);
+ mDrawerLayout = drawerLayout;
+ mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
+ @Override
+ public void onDrawerOpened(View drawerView) {
+ super.onDrawerOpened(drawerView);
+ getActivity().invalidateOptionsMenu();
+ }
+
+ @Override
+ public void onDrawerClosed(View drawerView) {
+ super.onDrawerClosed(drawerView);
+ getActivity().invalidateOptionsMenu();
+ }
+
+ @Override
+ public void onDrawerSlide(View drawerView, float slideOffset) {
+ super.onDrawerSlide(drawerView, slideOffset);
+ toolbar.setAlpha(1 - slideOffset / 2);
+ }
+ };
+
+ mDrawerLayout.setDrawerListener(mDrawerToggle);
+ mDrawerLayout.post(new Runnable() {
+ @Override
+ public void run() {
+ mDrawerToggle.syncState();
+ }
+ });
+
+ }
+
+ public static interface ClickListener {
+ public void onClick(View view, int position);
+
+ public void onLongClick(View view, int position);
+ }
+
+ static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {
+
+ private GestureDetector gestureDetector;
+ private ClickListener clickListener;
+
+ public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
+ this.clickListener = clickListener;
+ gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
+ @Override
+ public boolean onSingleTapUp(MotionEvent e) {
+ return true;
+ }
+
+ @Override
+ public void onLongPress(MotionEvent e) {
+ View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
+ if (child != null && clickListener != null) {
+ clickListener.onLongClick(child, recyclerView.getChildPosition(child));
+ }
+ }
+ });
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
+
+ View child = rv.findChildViewUnder(e.getX(), e.getY());
+ if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
+ clickListener.onClick(child, rv.getChildPosition(child));
+ }
+ return false;
+ }
+
+ @Override
+ public void onTouchEvent(RecyclerView rv, MotionEvent e) {
+ }
+ }
+
+ public interface FragmentDrawerListener {
+ public void onDrawerItemSelected(View view, int position);
+ }
+}
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/NavDrawerItem.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/NavDrawerItem.java
new file mode 100644
index 00000000..e153340e
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/NavDrawerItem.java
@@ -0,0 +1,35 @@
+package com.jaellysbales.horoscope.drawer;
+
+/**
+ * Created by jaellysbales on 5/8/15.
+ */
+public class NavDrawerItem {
+ private boolean showNotify;
+ private String title;
+
+
+ public NavDrawerItem() {
+
+ }
+
+ public NavDrawerItem(boolean showNotify, String title) {
+ this.showNotify = showNotify;
+ this.title = title;
+ }
+
+ public boolean isShowNotify() {
+ return showNotify;
+ }
+
+ public void setShowNotify(boolean showNotify) {
+ this.showNotify = showNotify;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+}
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/NavigationDrawerAdapter.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/NavigationDrawerAdapter.java
new file mode 100644
index 00000000..58dce005
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/drawer/NavigationDrawerAdapter.java
@@ -0,0 +1,60 @@
+package com.jaellysbales.horoscope.drawer;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Created by jaellysbales on 5/8/15.
+ */
+public class NavigationDrawerAdapter extends RecyclerView.Adapter {
+ List data = Collections.emptyList();
+ private LayoutInflater inflater;
+ private Context context;
+
+ public NavigationDrawerAdapter(Context context, List data) {
+ this.context = context;
+ inflater = LayoutInflater.from(context);
+ this.data = data;
+ }
+
+ public void delete(int position) {
+ data.remove(position);
+ notifyItemRemoved(position);
+ }
+
+ @Override
+ public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = inflater.inflate(R.layout.nav_drawer_row, parent, false);
+ MyViewHolder holder = new MyViewHolder(view);
+ return holder;
+ }
+
+ @Override
+ public void onBindViewHolder(MyViewHolder holder, int position) {
+ NavDrawerItem current = data.get(position);
+ holder.title.setText(current.getTitle());
+ }
+
+ @Override
+ public int getItemCount() {
+ return data.size();
+ }
+
+ class MyViewHolder extends RecyclerView.ViewHolder {
+ TextView title;
+
+ public MyViewHolder(View itemView) {
+ super(itemView);
+ title = (TextView) itemView.findViewById(R.id.title);
+ }
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/AboutFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/AboutFragment.java
new file mode 100644
index 00000000..bfb726b0
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/AboutFragment.java
@@ -0,0 +1,31 @@
+package com.jaellysbales.horoscope.ui;
+
+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 com.jaellysbales.horoscope.R;
+
+/**
+ * Created by jaellysbales on 5/11/15.
+ */
+public class AboutFragment extends Fragment {
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_about, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+
+ View.OnClickListener clickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ }
+ };
+ }
+}
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/CompatibilityFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/CompatibilityFragment.java
new file mode 100644
index 00000000..fef9a6d0
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/CompatibilityFragment.java
@@ -0,0 +1,100 @@
+package com.jaellysbales.horoscope.ui;
+
+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.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.Spinner;
+import android.widget.Toast;
+
+import com.jaellysbales.horoscope.R;
+
+public class CompatibilityFragment extends Fragment implements AdapterView.OnItemSelectedListener {
+ private Spinner spinner_sign1, spinner_sign2;
+ private Button btnSubmit;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_compatibility, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+
+ spinner_sign1 = (Spinner) view.findViewById(R.id.spinner_sign1);
+ spinner_sign2 = (Spinner) view.findViewById(R.id.spinner_sign2);
+
+ btnSubmit = (Button) view.findViewById(R.id.button_submit);
+ btnSubmit.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ // Handle submission of spinner selections
+ // TODO: display symbol on selection
+ if (spinner_sign1.getSelectedItem().equals("Sign") || (spinner_sign2.getSelectedItem().equals("Sign"))) {
+ Toast.makeText(CompatibilityFragment.this.getActivity(),
+ "Please select a sign.",
+ Toast.LENGTH_SHORT).show();
+ }
+ else {
+ // TextView appearing beneath spinners in view?
+ getCompatibility(String.valueOf(spinner_sign1.getSelectedItem()), String.valueOf(spinner_sign2.getSelectedItem()));
+ }
+ }
+ });
+ }
+
+ public void getCompatibility(String sign1, String sign2) {
+ String pair = sign1 + " + " + sign2;
+ String compatibility;
+
+ // Just randomize this Jae, what were you thinking...?
+ if (pair.contains("Aries") && pair.contains("Gemini")
+ || pair.contains("Taurus") && pair.contains("Virgo")
+ || pair.contains("Leo") && pair.contains("Scorpio")
+ || pair.contains("Virgo") && pair.contains("Capricorn")
+ || pair.contains("Libra") && pair.contains("Aquarius")
+ || pair.contains("Scorpio") && pair.contains("Pisces")
+ || pair.contains("Sagittarius") && pair.contains("Leo")
+ || pair.contains("Capricorn") && pair.contains("Pisces")
+ || pair.contains("Aquarius") && pair.contains("Aries")
+ || pair.contains("Pisces") && pair.contains("Cancer"))
+ {
+ compatibility = "Great";
+ }
+ else if (pair.contains("Aries") && pair.contains("Capricorn")
+ || pair.contains("Taurus") && pair.contains("Leo")
+ || pair.contains("Gemini") && pair.contains("Scorpio")
+ || pair.contains("Cancer") && pair.contains("Aries")
+ || pair.contains("Sagittarius") && pair.contains("Pisces")
+ || pair.contains("Scorpio") && pair.contains("Aquarius")
+ || pair.contains("Libra") && pair.contains("Cancer")
+ || pair.contains("Capricorn") && pair.contains("Libra")
+ || pair.contains("Aquarius") && pair.contains("Taurus")
+ || pair.contains("Pisces") && pair.contains("Libra")
+ || pair.contains("Virgo") && pair.contains("Sagittarius")
+ || pair.contains("Pisces") && pair.contains("Libra"))
+ {
+ compatibility = "Bad";
+ }
+ else {
+ compatibility = "Okay";
+ }
+
+ Toast.makeText(CompatibilityFragment.this.getActivity(),
+ compatibility + " match!",
+ Toast.LENGTH_SHORT).show();
+ }
+
+ public void onItemSelected(AdapterView> parent, View view,
+ int pos, long id) {
+ }
+
+ public void onNothingSelected(AdapterView> parent) {
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/DatePickerFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/DatePickerFragment.java
new file mode 100644
index 00000000..c71fe5c8
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/DatePickerFragment.java
@@ -0,0 +1,255 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.app.DatePickerDialog;
+import android.app.Dialog;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
+import android.widget.DatePicker;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.Calendar;
+
+/**
+ * Created by jaellysbales on 5/10/15.
+ */
+public class DatePickerFragment extends DialogFragment
+ implements DatePickerDialog.OnDateSetListener {
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ // Use the current date as the default date in the picker
+ final Calendar c = Calendar.getInstance();
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH);
+ int day = c.get(Calendar.DAY_OF_MONTH);
+
+ // Create a new instance of DatePickerDialog and return it
+ return new DatePickerDialog(getActivity(), this, year, month, day);
+
+ // TODO: Figure out if year option can be removed.
+ }
+
+ public void onDateSet(DatePicker view, int year, int month, int day) {
+ // Do something with the date chosen by the user
+ String sign = null;
+ String description = null;
+ String startDate = null;
+ String endDate = null;
+ String profile = null;
+
+ if (month == 0) {
+ if (day <= 20) {
+ sign = getString(R.string.sign_capricorn);
+ description = getString(R.string.desc_capricorn);
+ startDate = getString(R.string.start_date_capricorn);
+ endDate = getString(R.string.end_date_capricorn);
+ profile = getString(R.string.profile_capricorn);
+ }
+ else {
+ sign = getString(R.string.sign_aquarius);
+ description = getString(R.string.desc_aquarius);
+ startDate = getString(R.string.start_date_aquarius);
+ endDate = getString(R.string.end_date_aquarius);
+ profile = getString(R.string.profile_aquarius);
+ }
+ }
+ else if (month == 1) {
+ if (day <= 21) {
+ // There has to be a more concise way of setting this. It's 2x the code now.
+ sign = getString(R.string.sign_aquarius);
+ description = getString(R.string.desc_aquarius);
+ startDate = getString(R.string.start_date_aquarius);
+ endDate = getString(R.string.end_date_aquarius);
+ profile = getString(R.string.profile_aquarius);
+ }
+ else {
+ sign = getString(R.string.sign_pisces);
+ description = getString(R.string.desc_pisces);
+ startDate = getString(R.string.start_date_pisces);
+ endDate = getString(R.string.end_date_pisces);
+ profile = getString(R.string.profile_pisces);
+ }
+ }
+ else if (month == 2) {
+ if (day <= 20) {
+ sign = getString(R.string.sign_pisces);
+ description = getString(R.string.desc_pisces);
+ startDate = getString(R.string.start_date_pisces);
+ endDate = getString(R.string.end_date_pisces);
+ profile = getString(R.string.profile_pisces);
+ }
+ else {
+ sign = getString(R.string.sign_aries);
+ description = getString(R.string.desc_aries);
+ startDate = getString(R.string.start_date_aries);
+ endDate = getString(R.string.end_date_aries);
+ profile = getString(R.string.profile_aries);
+ }
+ }
+ else if (month == 3) {
+ if (day <= 19) {
+ sign = getString(R.string.sign_aries);
+ description = getString(R.string.desc_aries);
+ startDate = getString(R.string.start_date_aries);
+ endDate = getString(R.string.end_date_aries);
+ profile = getString(R.string.profile_aries);
+ }
+ else {
+ sign = getString(R.string.sign_taurus);
+ description = getString(R.string.desc_taurus);
+ startDate = getString(R.string.start_date_taurus);
+ endDate = getString(R.string.end_date_taurus);
+ profile = getString(R.string.profile_taurus);
+ }
+ }
+ else if (month == 4) {
+ if (day <= 20) {
+ sign = getString(R.string.sign_taurus);
+ description = getString(R.string.desc_taurus);
+ startDate = getString(R.string.start_date_taurus);
+ endDate = getString(R.string.end_date_taurus);
+ profile = getString(R.string.profile_taurus);
+ }
+ else {
+ sign = getString(R.string.sign_gemini);
+ description = getString(R.string.desc_gemini);
+ startDate = getString(R.string.start_date_gemini);
+ endDate = getString(R.string.end_date_gemini);
+ profile = getString(R.string.profile_gemini);
+ }
+ }
+ else if (month == 5) {
+ if (day <= 21) {
+ sign = getString(R.string.sign_gemini);
+ description = getString(R.string.desc_gemini);
+ startDate = getString(R.string.start_date_gemini);
+ endDate = getString(R.string.end_date_gemini);
+ profile = getString(R.string.profile_gemini);
+ }
+ else {
+ sign = getString(R.string.sign_cancer);
+ description = getString(R.string.desc_cancer);
+ startDate = getString(R.string.start_date_cancer);
+ endDate = getString(R.string.end_date_cancer);
+ profile = getString(R.string.profile_cancer);
+ }
+ }
+ else if (month == 6) {
+ if (day <= 22) {
+ sign = getString(R.string.sign_cancer);
+ description = getString(R.string.desc_cancer);
+ startDate = getString(R.string.start_date_cancer);
+ endDate = getString(R.string.end_date_cancer);
+ profile = getString(R.string.profile_cancer);
+ }
+ else {
+ sign = getString(R.string.sign_leo);
+ description = getString(R.string.desc_leo);
+ startDate = getString(R.string.start_date_leo);
+ endDate = getString(R.string.end_date_leo);
+ profile = getString(R.string.profile_leo);
+ }
+ }
+ else if (month == 7) {
+ if (day <= 22) {
+ sign = getString(R.string.sign_leo);
+ description = getString(R.string.desc_leo);
+ startDate = getString(R.string.start_date_leo);
+ endDate = getString(R.string.end_date_leo);
+ profile = getString(R.string.profile_leo);
+ }
+ else {
+ sign = getString(R.string.sign_virgo);
+ description = getString(R.string.desc_virgo);
+ startDate = getString(R.string.start_date_virgo);
+ endDate = getString(R.string.end_date_virgo);
+ profile = getString(R.string.profile_virgo);
+ }
+ }
+ else if (month == 8) {
+ if (day <= 22) {
+ sign = getString(R.string.sign_virgo);
+ description = getString(R.string.desc_virgo);
+ startDate = getString(R.string.start_date_virgo);
+ endDate = getString(R.string.end_date_virgo);
+ profile = getString(R.string.profile_virgo);
+ }
+ else {
+ sign = getString(R.string.sign_libra);
+ description = getString(R.string.desc_libra);
+ startDate = getString(R.string.start_date_libra);
+ endDate = getString(R.string.end_date_libra);
+ profile = getString(R.string.profile_libra);
+ }
+ }
+ else if (month == 9) {
+ if (day <= 23) {
+ sign = getString(R.string.sign_libra);
+ description = getString(R.string.desc_libra);
+ startDate = getString(R.string.start_date_libra);
+ endDate = getString(R.string.end_date_libra);
+ profile = getString(R.string.profile_libra);
+ }
+ else {
+ sign = getString(R.string.sign_scorpio);
+ description = getString(R.string.desc_scorpio);
+ startDate = getString(R.string.start_date_scorpio);
+ endDate = getString(R.string.end_date_scorpio);
+ profile = getString(R.string.profile_scorpio);
+ }
+ }
+ else if (month == 10) {
+ if (day <= 20) {
+ sign = getString(R.string.sign_scorpio);
+ description = getString(R.string.desc_scorpio);
+ startDate = getString(R.string.start_date_scorpio);
+ endDate = getString(R.string.end_date_scorpio);
+ profile = getString(R.string.profile_scorpio);
+ }
+ else {
+ sign = getString(R.string.sign_sagittarius);
+ description = getString(R.string.desc_sagittarius);
+ startDate = getString(R.string.start_date_sagittarius);
+ endDate = getString(R.string.end_date_sagittarius);
+ profile = getString(R.string.profile_sagittarius);
+ }
+ }
+ else if (month == 11) {
+ if (day <= 22) {
+ sign = getString(R.string.sign_sagittarius);
+ description = getString(R.string.desc_sagittarius);
+ startDate = getString(R.string.start_date_sagittarius);
+ endDate = getString(R.string.end_date_sagittarius);
+ profile = getString(R.string.profile_sagittarius);
+ }
+ else {
+ sign = getString(R.string.sign_capricorn);
+ description = getString(R.string.desc_capricorn);
+ startDate = getString(R.string.start_date_capricorn);
+ endDate = getString(R.string.end_date_capricorn);
+ profile = getString(R.string.profile_capricorn);
+ }
+ }
+
+ FragmentActivity hostActivity = DatePickerFragment.this.getActivity();
+ FragmentManager fragmentManager = hostActivity.getSupportFragmentManager();
+
+ Fragment fragment = new ProfileSignFragment();
+ Bundle args = new Bundle();
+ args.putString("SIGN", sign);
+ args.putString("DESCRIPTION", description);
+ args.putString("STARTDATE", startDate);
+ args.putString("ENDDATE", endDate);
+ args.putString("PROFILE", profile);
+ fragment.setArguments(args);
+
+ fragmentManager.
+ beginTransaction().
+ replace(R.id.container_body, fragment).
+ commit();
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/GuessSignFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/GuessSignFragment.java
new file mode 100644
index 00000000..cd3b8a99
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/GuessSignFragment.java
@@ -0,0 +1,274 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.os.Bundle;
+import android.os.CountDownTimer;
+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.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.Random;
+
+public class GuessSignFragment extends Fragment implements AdapterView.OnItemSelectedListener {
+ private CountDownTimer gameTimer;
+ private int guesses = 3;
+ private Spinner spinner_guess;
+ private String answer = "";
+ private TextView guessesLeft;
+ private TextView mCounter;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_guess_sign, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ // Set up spinners.
+ spinners(view);
+
+ // Calling getGameData() to generate date and sign for game.
+ // Tried to get this to continuously generate until player says stop, but not enough time.
+ String[] gameData = getGameData();
+ int month = Integer.parseInt(gameData[0]);
+ int day = Integer.parseInt(gameData[1]);
+ answer = gameData[2];
+ String monthName = getMonthName(month); // Int to String (Ex: 1 -> "January")
+
+ // Setting up text views and timer
+ TextView date = (TextView) view.findViewById(R.id.date);
+ date.setText(monthName + " " + day);
+
+ guessesLeft = (TextView) view.findViewById(R.id.guesses_left);
+ guessesLeft.setText("Guesses remaining: " + guesses);
+
+ mCounter = (TextView) view.findViewById(R.id.counter);
+
+ setGameTimer();
+ }
+
+ public String[] getGameData() {
+ Random rand = new Random();
+ int month = rand.nextInt(12) + 1;
+ int day;
+ String answer = "";
+
+ // Generating day int based on month
+ if (month == 1 || month == 3 || month == 5 || month == 7
+ || month == 8 || month == 10 || month == 12) {
+ day = rand.nextInt(31) + 1;
+ }
+ else if (month == 2) {
+ day = rand.nextInt(28) + 1;
+ }
+ else {
+ day = rand.nextInt(30) + 1;
+ }
+
+ // Assign answer (sign) based on generated date
+ if (month == 1) {
+ if (day <= 20) {
+ answer = "Capricorn";
+ }
+ else {
+ answer = "Aquarius";
+ }
+ }
+ else if (month == 2) {
+ if (day <= 21) {
+ answer = "Aquarius";
+ }
+ else {
+ answer = "Pisces";
+ }
+ }
+ else if (month == 3) {
+ if (day <= 20) {
+ answer = "Pisces";
+ }
+ else {
+ answer = "Aries";
+ }
+ }
+ else if (month == 4) {
+ if (day <= 19) {
+ answer = "Aries";
+ }
+ else {
+ answer = "Taurus";
+ }
+ }
+ else if (month == 5) {
+ if (day <= 20) {
+ answer = "Taurus";
+ }
+ else {
+ answer = "Gemini";
+ }
+ }
+ else if (month == 6) {
+ if (day <= 21) {
+ answer = "Gemini";
+ }
+ else {
+ answer = "Cancer";
+ }
+ }
+ else if (month == 7) {
+ if (day <= 22) {
+ answer = "Cancer";
+ }
+ else {
+ answer = "Leo";
+ }
+ }
+ else if (month == 8) {
+ if (day <= 22) {
+ answer = "Leo";
+ }
+ else {
+ answer = "Virgo";
+ }
+ }
+ else if (month == 9) {
+ if (day <= 22) {
+ answer = "Virgo";
+ }
+ else {
+ answer = "Libra";
+ }
+ }
+ else if (month == 10) {
+ if (day <= 23) {
+ answer = "Libra";
+ }
+ else {
+ answer = "Scorpio";
+ }
+ }
+ else if (month == 11) {
+ if (day <= 20) {
+ answer = "Scorpio";
+ }
+ else {
+ answer = "Sagittarius";
+ }
+ }
+ else if (month == 12) {
+ if (day <= 22) {
+ answer = "Sagittarius";
+ }
+ else {
+ answer = "Capricorn";
+ }
+ }
+
+ String[] randomDate = {String.valueOf(month), String.valueOf(day), answer};
+ return randomDate;
+ }
+
+ public String getMonthName(int month) {
+ String monthName = "";
+ String[] monthNames = {"January", "February", "March", "April", "May", "June", "July",
+ "August", "September", "October", "November", "December"};
+ monthName = monthNames[month - 1];
+
+ return monthName;
+ }
+
+ // TODO: Pause timer when app is interrupted?
+ public void setGameTimer() {
+ // Initialize timer and begin countdown
+ gameTimer = new CountDownTimer(11000, 1000) {
+ public void onTick(long millisUntilFinished) { //
+ String seconds = String.valueOf(millisUntilFinished / 1000);
+ mCounter.setText(seconds);
+ }
+
+ public void onFinish() {
+
+ // TODO: make this display the symbol, too!
+ mCounter.setText(answer);
+ spinner_guess.setEnabled(false);
+ }
+ }.start();
+ }
+
+ public void spinners(View view) {
+ spinner_guess = (Spinner) view.findViewById(R.id.spinner_guess);
+ ArrayAdapter adapter = ArrayAdapter.createFromResource(GuessSignFragment.this.getActivity(),
+ R.array.sign_array, android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner_guess.setAdapter(adapter);
+
+ spinner_guess = (Spinner) view.findViewById(R.id.spinner_guess);
+ spinner_guess.setOnItemSelectedListener(GuessSignFragment.this);
+ }
+
+ public void onItemSelected(AdapterView> parent, View view,
+ int pos, long id) {
+ processChoice(pos);
+ }
+
+ public void onNothingSelected(AdapterView> parent) {
+ // Another interface callback
+ }
+
+ public void processChoice(int pos) {
+ // Validate selection
+ if (pos == 0) {
+ } // Prevent toast from appearing on view
+ else if (spinner_guess.getSelectedItem().equals("Sign")) {
+ Toast.makeText(GuessSignFragment.this.getActivity(),
+ "Please select a sign.",
+ Toast.LENGTH_SHORT).show();
+ }
+
+ // Correct guess
+ else if (spinner_guess.getSelectedItem().equals(answer)) {
+ Toast.makeText(GuessSignFragment.this.getActivity(),
+ "That's right!",
+ Toast.LENGTH_SHORT).show();
+
+ // Disable spinner and stop timer
+ spinner_guess.setEnabled(false);
+
+ if (gameTimer != null) {
+ gameTimer.cancel();
+ gameTimer = null;
+ }
+ }
+
+ // Incorrect guess
+ else {
+ guesses--;
+ guessesLeft.setText("Guesses remaining: " + guesses);
+ if (guesses == 2) {
+ Toast.makeText(GuessSignFragment.this.getActivity(),
+ "Try again!",
+ Toast.LENGTH_SHORT).show();
+ }
+ else if (guesses == 1) {
+ Toast.makeText(GuessSignFragment.this.getActivity(),
+ "sign-related hint here",
+ Toast.LENGTH_SHORT).show();
+ }
+ else {
+ if (gameTimer != null) {
+ gameTimer.cancel();
+ gameTimer = null;
+ }
+ mCounter.setText(answer);
+ spinner_guess.setEnabled(false);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HomeFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HomeFragment.java
new file mode 100644
index 00000000..38e9b529
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HomeFragment.java
@@ -0,0 +1,30 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.ActionBarActivity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jaellysbales.horoscope.R;
+
+public class HomeFragment extends Fragment {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_home, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+
+ View.OnClickListener clickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ }
+ };
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HoroscopeFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HoroscopeFragment.java
new file mode 100644
index 00000000..3a7f0328
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HoroscopeFragment.java
@@ -0,0 +1,189 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.support.v4.app.Fragment;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.GridView;
+import android.widget.ImageButton;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.HashMap;
+
+/**
+ * Created by jaellysbales on 5/11/15.
+ */
+public class HoroscopeFragment extends Fragment {
+ private ImageButton aquariusButton;
+ private ImageButton ariesButton;
+ private ImageButton cancerButton;
+ private ImageButton capricornButton;
+ private ImageButton geminiButton;
+ private ImageButton leoButton;
+ private ImageButton libraButton;
+ private ImageButton piscesButton;
+ private ImageButton sagittariusButton;
+ private ImageButton scorpioButton;
+ private ImageButton taurusButton;
+ private ImageButton virgoButton;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+
+ return inflater.inflate(R.layout.fragment_horoscope, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ aquariusButton = (ImageButton) view.findViewById(R.id.icon_aquarius);
+ ariesButton = (ImageButton) view.findViewById(R.id.icon_aries);
+ cancerButton = (ImageButton) view.findViewById(R.id.icon_cancer);
+ capricornButton = (ImageButton) view.findViewById(R.id.icon_capricorn);
+ geminiButton = (ImageButton) view.findViewById(R.id.icon_gemini);
+ leoButton = (ImageButton) view.findViewById(R.id.icon_leo);
+ libraButton = (ImageButton) view.findViewById(R.id.icon_libra);
+ piscesButton = (ImageButton) view.findViewById(R.id.icon_pisces);
+ sagittariusButton = (ImageButton) view.findViewById(R.id.icon_sagittarius);
+ scorpioButton = (ImageButton) view.findViewById(R.id.icon_scorpio);
+ taurusButton = (ImageButton) view.findViewById(R.id.icon_taurus);
+ virgoButton = (ImageButton) view.findViewById(R.id.icon_virgo);
+
+ View.OnClickListener clickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ //Toast.makeText(HoroscopeFragment.this.getActivity(), "Test!", Toast.LENGTH_SHORT).show();
+ int buttonId = view.getId();
+ String sign = null;
+ String description = null;
+ String startDate = null;
+ String endDate = null;
+ String horoscope = null;
+
+ switch (buttonId) {
+ case R.id.icon_aquarius:
+ sign = getString(R.string.sign_aquarius);
+ description = getString(R.string.desc_aquarius);
+ startDate = getString(R.string.start_date_aquarius);
+ endDate = getString(R.string.end_date_aquarius);
+ horoscope = getString(R.string.horoscope_aquarius);
+ break;
+ case R.id.icon_aries:
+ sign = getString(R.string.sign_aries);
+ description = getString(R.string.desc_aries);
+ startDate = getString(R.string.start_date_aries);
+ endDate = getString(R.string.end_date_aries);
+ horoscope = getString(R.string.horoscope_aries);
+ break;
+ case R.id.icon_cancer:
+ sign = getString(R.string.sign_cancer);
+ description = getString(R.string.desc_cancer);
+ startDate = getString(R.string.start_date_cancer);
+ endDate = getString(R.string.end_date_cancer);
+ horoscope = getString(R.string.horoscope_cancer);
+ break;
+ case R.id.icon_capricorn:
+ sign = getString(R.string.sign_capricorn);
+ description = getString(R.string.desc_capricorn);
+ startDate = getString(R.string.start_date_capricorn);
+ endDate = getString(R.string.end_date_capricorn);
+ horoscope = getString(R.string.horoscope_capricorn);
+ break;
+ case R.id.icon_gemini:
+ sign = getString(R.string.sign_gemini);
+ description = getString(R.string.desc_gemini);
+ startDate = getString(R.string.start_date_gemini);
+ endDate = getString(R.string.end_date_gemini);
+ horoscope = getString(R.string.horoscope_gemini);
+ break;
+ case R.id.icon_leo:
+ sign = getString(R.string.sign_leo);
+ description = getString(R.string.desc_leo);
+ startDate = getString(R.string.start_date_leo);
+ endDate = getString(R.string.end_date_leo);
+ horoscope = getString(R.string.horoscope_leo);
+ break;
+ case R.id.icon_libra:
+ sign = getString(R.string.sign_libra);
+ description = getString(R.string.desc_libra);
+ startDate = getString(R.string.start_date_libra);
+ endDate = getString(R.string.end_date_libra);
+ horoscope = getString(R.string.horoscope_libra);
+ break;
+ case R.id.icon_pisces:
+ sign = getString(R.string.sign_pisces);
+ description = getString(R.string.desc_pisces);
+ startDate = getString(R.string.start_date_pisces);
+ endDate = getString(R.string.end_date_pisces);
+ horoscope = getString(R.string.horoscope_pisces);
+ break;
+ case R.id.icon_sagittarius:
+ sign = getString(R.string.sign_sagittarius);
+ description = getString(R.string.desc_sagittarius);
+ startDate = getString(R.string.start_date_sagittarius);
+ endDate = getString(R.string.end_date_sagittarius);
+ horoscope = getString(R.string.horoscope_sagittarius);
+ break;
+ case R.id.icon_scorpio:
+ sign = getString(R.string.sign_scorpio);
+ description = getString(R.string.desc_scorpio);
+ startDate = getString(R.string.start_date_scorpio);
+ endDate = getString(R.string.end_date_scorpio);
+ horoscope = getString(R.string.horoscope_scorpio);
+ break;
+ case R.id.icon_taurus:
+ sign = getString(R.string.sign_taurus);
+ description = getString(R.string.desc_taurus);
+ startDate = getString(R.string.start_date_taurus);
+ endDate = getString(R.string.end_date_taurus);
+ horoscope = getString(R.string.horoscope_taurus);
+ break;
+ case R.id.icon_virgo:
+ sign = getString(R.string.sign_virgo);
+ description = getString(R.string.desc_virgo);
+ startDate = getString(R.string.start_date_virgo);
+ endDate = getString(R.string.end_date_virgo);
+ horoscope = getString(R.string.horoscope_virgo);
+ break;
+ default:
+ throw new UnsupportedOperationException("should never happen");
+ }
+
+ FragmentActivity hostActivity = HoroscopeFragment.this.getActivity();
+ FragmentManager fragmentManager = hostActivity.getSupportFragmentManager();
+
+ Fragment fragment = new HoroscopeSignFragment();
+ Bundle args = new Bundle();
+ args.putString("SIGN", sign);
+ args.putString("DESCRIPTION", description);
+ args.putString("STARTDATE", startDate);
+ args.putString("ENDDATE", endDate);
+ args.putString("HOROSCOPE", horoscope);
+ fragment.setArguments(args);
+
+ fragmentManager.
+ beginTransaction().
+ replace(R.id.container_body, fragment).
+ commit();
+ }
+ };
+
+ aquariusButton.setOnClickListener(clickListener);
+ ariesButton.setOnClickListener(clickListener);
+ cancerButton.setOnClickListener(clickListener);
+ capricornButton.setOnClickListener(clickListener);
+ geminiButton.setOnClickListener(clickListener);
+ leoButton.setOnClickListener(clickListener);
+ libraButton.setOnClickListener(clickListener);
+ piscesButton.setOnClickListener(clickListener);
+ sagittariusButton.setOnClickListener(clickListener);
+ scorpioButton.setOnClickListener(clickListener);
+ taurusButton.setOnClickListener(clickListener);
+ virgoButton.setOnClickListener(clickListener);
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HoroscopeSignFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HoroscopeSignFragment.java
new file mode 100644
index 00000000..c8bbf03d
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/HoroscopeSignFragment.java
@@ -0,0 +1,80 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.support.v4.content.res.ResourcesCompat;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.HashMap;
+
+/**
+ * Created by jaellysbales on 5/8/15.
+ */
+public class HoroscopeSignFragment extends Fragment {
+ private String sign;
+ private String description;
+ private String startDate;
+ private String endDate;
+ private String horoscope;
+ private HashMap icons;
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ icons = new HashMap();
+ icons.put("Aquarius", R.drawable.zodiac_icon_aquarius);
+ icons.put("Aries", R.drawable.zodiac_icon_aries);
+ icons.put("Cancer", R.drawable.zodiac_icon_cancer);
+ icons.put("Capricorn", R.drawable.zodiac_icon_capricorn);
+ icons.put("Gemini", R.drawable.zodiac_icon_gemini);
+ icons.put("Leo", R.drawable.zodiac_icon_leo);
+ icons.put("Libra", R.drawable.zodiac_icon_libra);
+ icons.put("Pisces", R.drawable.zodiac_icon_pisces);
+ icons.put("Sagittarius", R.drawable.zodiac_icon_sagittarius);
+ icons.put("Scorpio", R.drawable.zodiac_icon_scorpio);
+ icons.put("Taurus", R.drawable.zodiac_icon_taurus);
+ icons.put("Virgo", R.drawable.zodiac_icon_virgo);
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ Bundle args = getArguments();
+ sign = args.getString("SIGN");
+
+ return inflater.inflate(R.layout.fragment_horoscope_sign, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ //Toast.makeText(HoroscopeSignFragment.this.getActivity(), "Sign TEST!", Toast.LENGTH_SHORT).show();
+
+ Bundle args = getArguments();
+ startDate = args.getString("STARTDATE");
+// description = args.getString("DESCRIPTION");
+ endDate = args.getString("ENDDATE");
+ horoscope = args.getString("HOROSCOPE");
+
+ TextView myTitle = (TextView) view.findViewById(R.id.sign_title);
+// TextView myDescription = (TextView) view.findViewById(R.id.sign_description);
+ ImageView myIcon = (ImageView) view.findViewById(R.id.sign_icon);
+ TextView myDateRange = (TextView) view.findViewById(R.id.sign_range);
+ TextView myHoroscope = (TextView) view.findViewById(R.id.sign_horoscope);
+
+ myTitle.setText(sign);
+// myDescription.setText(description);
+ myIcon.setImageResource(icons.get(sign)); // TODO: Fix me, I don't show the right icon! Hashmaps grr.
+ myDateRange.setText(startDate + " - " + endDate);
+ myHoroscope.setText(horoscope);
+
+
+ }
+}
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/MainActivity.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/MainActivity.java
new file mode 100644
index 00000000..a0f9be2b
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/MainActivity.java
@@ -0,0 +1,119 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Toast;
+
+import com.jaellysbales.horoscope.R;
+import com.jaellysbales.horoscope.drawer.FragmentDrawer;
+
+public class MainActivity extends ActionBarActivity implements FragmentDrawer.FragmentDrawerListener {
+
+ private static String TAG = MainActivity.class.getSimpleName();
+
+ private Toolbar mToolbar;
+ private FragmentDrawer drawerFragment;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ mToolbar = (Toolbar) findViewById(R.id.toolbar);
+
+ setSupportActionBar(mToolbar);
+ getSupportActionBar().setDisplayShowHomeEnabled(true);
+
+ drawerFragment = (FragmentDrawer)
+ getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
+ drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar);
+ drawerFragment.setDrawerListener(this);
+
+ // display the first navigation drawer view on app launch
+ displayView(0);
+ }
+
+
+ @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_main, 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;
+ }
+
+ if(id == R.id.action_search){
+ Toast.makeText(getApplicationContext(), "Search action is selected!", Toast.LENGTH_SHORT).show();
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onDrawerItemSelected(View view, int position) {
+ displayView(position);
+ }
+
+ private void displayView(int position) {
+ Fragment fragment = null;
+ String title = getString(R.string.app_name);
+ switch (position) {
+ case 0:
+ fragment = new HomeFragment();
+ title = getString(R.string.title_home);
+ break;
+ case 1:
+ fragment = new HoroscopeFragment();
+ title = getString(R.string.title_horoscopes);
+ break;
+ case 2:
+ fragment = new ProfileFragment();
+ title = getString(R.string.title_sign_profiles);
+ break;
+ case 3:
+ fragment = new CompatibilityFragment();
+ title = getString(R.string.title_compatibility);
+ break;
+ case 4:
+ fragment = new GuessSignFragment();
+ title = getString(R.string.title_guess_sign);
+ break;
+ case 5:
+ fragment = new AboutFragment();
+ title = getString(R.string.title_about);
+ break;
+ default:
+ break;
+ }
+
+ if (fragment != null) {
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ fragmentTransaction.replace(R.id.container_body, fragment);
+ fragmentTransaction.commit();
+
+ // set the toolbar title
+ getSupportActionBar().setTitle(title);
+ }
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/ProfileFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/ProfileFragment.java
new file mode 100644
index 00000000..5d661dae
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/ProfileFragment.java
@@ -0,0 +1,61 @@
+package com.jaellysbales.horoscope.ui;
+
+import android.app.DatePickerDialog;
+import android.app.Dialog;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.DialogFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.DatePicker;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.Calendar;
+
+/**
+ * Created by jaellysbales on 5/10/15.
+ */
+public class ProfileFragment extends DialogFragment
+ implements DatePickerDialog.OnDateSetListener {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_profile, container, false);
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ // Use the current date as the default date in the picker
+ final Calendar c = Calendar.getInstance();
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH);
+ int day = c.get(Calendar.DAY_OF_MONTH);
+
+ // Create a new instance of DatePickerDialog and return it
+ return new DatePickerDialog(getActivity(), this, year, month, day);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ final Button setDate = (Button) view.findViewById(R.id.set_date);
+
+ View.OnClickListener clickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ showDatePickerDialog(setDate);
+ }
+ };
+ setDate.setOnClickListener(clickListener);
+ }
+
+ public void showDatePickerDialog(View v) {
+ DialogFragment picker = new DatePickerFragment();
+ picker.show(getFragmentManager(), "datePicker");
+ }
+
+ public void onDateSet(DatePicker view, int year, int month, int day) {
+ }
+}
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/ProfileSignFragment.java b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/ProfileSignFragment.java
new file mode 100644
index 00000000..4aba1aec
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/java/com/jaellysbales/horoscope/ui/ProfileSignFragment.java
@@ -0,0 +1,77 @@
+package com.jaellysbales.horoscope.ui;
+
+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.widget.ImageView;
+import android.widget.TextView;
+
+import com.jaellysbales.horoscope.R;
+
+import java.util.HashMap;
+
+/**
+ * Created by jaellysbales on 5/10/15.
+ */
+public class ProfileSignFragment extends Fragment {
+ private String sign;
+ private String description;
+ private String startDate;
+ private String endDate;
+ private String profile;
+ private HashMap icons;
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ icons = new HashMap();
+ icons.put("Aquarius", R.drawable.zodiac_icon_aquarius);
+ icons.put("Aries", R.drawable.zodiac_icon_aries);
+ icons.put("Cancer", R.drawable.zodiac_icon_cancer);
+ icons.put("Capricorn", R.drawable.zodiac_icon_capricorn);
+ icons.put("Gemini", R.drawable.zodiac_icon_gemini);
+ icons.put("Leo", R.drawable.zodiac_icon_leo);
+ icons.put("Libra", R.drawable.zodiac_icon_libra);
+ icons.put("Pisces", R.drawable.zodiac_icon_pisces);
+ icons.put("Sagittarius", R.drawable.zodiac_icon_sagittarius);
+ icons.put("Scorpio", R.drawable.zodiac_icon_scorpio);
+ icons.put("Taurus", R.drawable.zodiac_icon_taurus);
+ icons.put("Virgo", R.drawable.zodiac_icon_virgo);
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ Bundle args = getArguments();
+ sign = args.getString("SIGN");
+
+ return inflater.inflate(R.layout.fragment_profile_sign, container, false);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ Bundle args = getArguments();
+// description = args.getString("DESCRIPTION");
+ startDate = args.getString("STARTDATE");
+ endDate = args.getString("ENDDATE");
+ profile = args.getString("PROFILE");
+
+ TextView myTitle = (TextView) view.findViewById(R.id.sign_title);
+// TextView myDescription = (TextView) view.findViewById(R.id.sign_description);
+ ImageView myIcon = (ImageView) view.findViewById(R.id.sign_icon);
+ TextView myDateRange = (TextView) view.findViewById(R.id.sign_range);
+ TextView myProfile = (TextView) view.findViewById(R.id.sign_profile);
+
+ myTitle.setText(sign);
+// myDescription.setText(description);
+ myIcon.setImageResource(icons.get(sign));
+ myDateRange.setText(startDate + " - " + endDate);
+ myProfile.setText(profile);
+
+ // TODO: Would really like to implement ViewPager if time allows.
+ }
+}
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable-hdpi/ic_action_search.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-hdpi/ic_action_search.png
new file mode 100644
index 00000000..61cb6fe7
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-hdpi/ic_action_search.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable-mdpi/ic_action_search.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-mdpi/ic_action_search.png
new file mode 100644
index 00000000..a7c5261d
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-mdpi/ic_action_search.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable-nodpi/bkgr.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-nodpi/bkgr.png
new file mode 100644
index 00000000..e1feb5b0
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-nodpi/bkgr.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable-xhdpi/ic_action_search.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-xhdpi/ic_action_search.png
new file mode 100644
index 00000000..ffc1d72d
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-xhdpi/ic_action_search.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable-xxhdpi/ic_action_search.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-xxhdpi/ic_action_search.png
new file mode 100644
index 00000000..59122628
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable-xxhdpi/ic_action_search.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/ic_action_search.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/ic_action_search.png
new file mode 100644
index 00000000..a1086388
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/ic_action_search.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/ic_profile.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/ic_profile.png
new file mode 100644
index 00000000..4957c4a1
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/ic_profile.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_aquarius.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_aquarius.png
new file mode 100755
index 00000000..ee45a480
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_aquarius.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_aries.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_aries.png
new file mode 100755
index 00000000..36e70466
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_aries.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_cancer.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_cancer.png
new file mode 100755
index 00000000..05fa0752
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_cancer.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_capricorn.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_capricorn.png
new file mode 100755
index 00000000..b5ed229d
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_capricorn.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_gemini.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_gemini.png
new file mode 100755
index 00000000..fa5bf2ad
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_gemini.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_leo.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_leo.png
new file mode 100755
index 00000000..86e223e5
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_leo.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_libra.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_libra.png
new file mode 100755
index 00000000..d916e985
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_libra.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_pisces.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_pisces.png
new file mode 100755
index 00000000..b6ec249c
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_pisces.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_sagitarius.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_sagitarius.png
new file mode 100755
index 00000000..1b3fe07d
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_sagitarius.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_sagittarius.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_sagittarius.png
new file mode 100755
index 00000000..fa83846f
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_sagittarius.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_scorpio.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_scorpio.png
new file mode 100755
index 00000000..d2c0fc5d
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_scorpio.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_taurus.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_taurus.png
new file mode 100755
index 00000000..72288cbc
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_taurus.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_virgo.png b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_virgo.png
new file mode 100755
index 00000000..08f40199
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/drawable/zodiac_icon_virgo.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/activity_main.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 00000000..5df1e6f1
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_about.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_about.xml
new file mode 100644
index 00000000..7de60d9f
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_about.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_compatibility.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_compatibility.xml
new file mode 100644
index 00000000..891631f5
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_compatibility.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_date_picker.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_date_picker.xml
new file mode 100644
index 00000000..7a7a267d
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_date_picker.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_guess_sign.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_guess_sign.xml
new file mode 100644
index 00000000..f2851c4c
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_guess_sign.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_home.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 00000000..b9c15a93
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_horoscope.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_horoscope.xml
new file mode 100644
index 00000000..ec9151d2
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_horoscope.xml
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_horoscope_sign.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_horoscope_sign.xml
new file mode 100644
index 00000000..4e4907f2
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_horoscope_sign.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_navigation_drawer.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_navigation_drawer.xml
new file mode 100644
index 00000000..0f7877a2
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_navigation_drawer.xml
@@ -0,0 +1,25 @@
+
+
+
+a
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_profile.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_profile.xml
new file mode 100644
index 00000000..25990f21
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_profile.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_profile_sign.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_profile_sign.xml
new file mode 100644
index 00000000..0cbbe8e7
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_profile_sign.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_sign_profiles.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_sign_profiles.xml
new file mode 100644
index 00000000..88c508cc
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/fragment_sign_profiles.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/nav_drawer_row.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/nav_drawer_row.xml
new file mode 100644
index 00000000..9992ce40
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/nav_drawer_row.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/layout/toolbar.xml b/homework/jaellysbales/Horoscope/app/src/main/res/layout/toolbar.xml
new file mode 100644
index 00000000..b6dc0a2e
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/layout/toolbar.xml
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/menu/menu_main.xml b/homework/jaellysbales/Horoscope/app/src/main/res/menu/menu_main.xml
new file mode 100644
index 00000000..207b8a70
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/menu/menu_main.xml
@@ -0,0 +1,18 @@
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-hdpi/ic_launcher.png b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 00000000..cde69bcc
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-mdpi/ic_launcher.png b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 00000000..c133a0cb
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 00000000..bfa42f0e
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 00000000..324e72cd
Binary files /dev/null and b/homework/jaellysbales/Horoscope/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values-v21/styles.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values-v21/styles.xml
new file mode 100644
index 00000000..db8617d5
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values-v21/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values-w820dp/dimens.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 00000000..63fc8164
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,6 @@
+
+
+ 64dp
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values/colors.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values/colors.xml
new file mode 100644
index 00000000..140d8da8
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values/colors.xml
@@ -0,0 +1,9 @@
+
+
+ #ff193857
+ #ff0d1b2a
+ #ff696969
+ #ffffffff
+ #ff0d1b2a
+ #ffd0b658
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values/dimens.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values/dimens.xml
new file mode 100644
index 00000000..f02773aa
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+ 16dp
+ 16dp
+ 260dp
+ 5dp
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values/ids.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values/ids.xml
new file mode 100644
index 00000000..ebb077bd
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values/ids.xml
@@ -0,0 +1,4 @@
+
+
+ 10
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values/strings.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values/strings.xml
new file mode 100644
index 00000000..dce50b1e
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values/strings.xml
@@ -0,0 +1,333 @@
+
+ Oracle
+
+ Settings
+ Search
+ Open
+ Close
+
+ Home
+ Horoscopes
+ Sign Profiles
+ Compatibility
+ Guess the Sign
+
+
+
+ @string/nav_item_home
+ @string/nav_item_horoscopes
+ @string/nav_item_sign_profiles
+ @string/nav_item_compatibility
+ @string/nav_item_guess_sign
+ @string/title_about
+
+
+
+ Home
+ Horoscopes
+ Sign Profiles
+ Compatibility
+ Guess the Sign
+ About
+
+
+ Aquarius
+ Aries
+ Cancer
+ Capricorn
+ Gemini
+ Leo
+ Libra
+ Pisces
+ Sagittarius
+ Scorpio
+ Taurus
+ Virgo
+
+
+ The Water Bearer
+ The Ram
+ The Crab
+ The Sea Goat
+ The Twins
+ The Lion
+ The Scales
+ The Fish
+ The Archer
+ The Scorpion
+ The Bull
+ The Virgin
+
+
+ January 21
+ March 21
+ June 22
+ December 23
+ May 21
+ July 23
+ September 23
+ February 22
+ November 21
+ October 24
+ April 20
+ August 23
+
+
+ February 21
+ April 19
+ July 22
+ January 20
+ June 21
+ August 22
+ October 23
+ March 20
+ December 22
+ November 20
+ May 20
+ September 22
+
+
+
+ There has rarely been a better time than now to refine the art of being your own mommy or
+ daddy. You\'re finally ready to take over from the parental voices in your head and assume
+ full responsibility for raising yourself the rest of the way. What do you want to be when
+ you grow up? You may feel a giddy sense of freedom as it becomes clear that the only
+ authority who has the right to answer that question is you.
+
+
+ Benedictine monks observe the Latin motto Laborare est Orare. The 19th-century abbot Maurus
+ Wolter interpreted these words to mean "work is worship" or "work is prayer." He was trying
+ to impress upon his fellow monks that the work they did was not a grudging distraction from
+ their service to God, but rather at the heart of their devotion. To do their tasks with love
+ was a way to express gratitude for having been blessed with the gift of life. I propose that
+ you experiment with this approach in the coming weeks, even if your version is more secular.
+ What would it be like to feel contentment with and appreciation for the duties you have been
+ allotted?
+
+
+ Here\'s a confession: I have taken a vow to foster beauty, truth, love, justice, equality,
+ tolerance, creativity, playfulness, and hope. To do this work is one of my life goals. I
+ approach it with the devotion of a monk and the rigor of a warrior. Does that mean I ignore
+ difficulty and suffering and cruelty? Of course not. I\'m trying to diminish the power of
+ those problems, so I sure as hell better know a lot about them. On the other hand, my main
+ focus is on redemption and exaltation. I prefer not to describe in detail the world\'s
+ poisons, but rather to provide an antidote for them. Even if you don\'t normally share my
+ approach, Cancerian, I invite you to try it for the next two weeks. The astrological time
+ is right.
+
+
+ In 1934, Capricorn baseball player Dizzy Dean was named the Most Valuable Player after
+ winning 30 games. It was a feat that no National League pitcher has repeated ever since.
+ After Dean retired, he was inducted into the Hall of Fame. Never shy about acknowledging
+ his own prowess, he declared that "if you can do it, it ain\'t bragging." It is in this
+ spirit that I invite you to freely expound on your talents and accomplishments in the
+ coming week. You won\'t be boasting. You will simply be providing information. And that
+ will ultimately result in you being offered an interesting new opportunity or two.
+
+
+ In the children\'s book The Little Engine That Could, a little blue engine volunteers to
+ pull a long chain of train cars up a steep hill, even though it\'s not confident it has
+ the power to do so. As it strains to haul the heavy weight, it recites a mantra to give
+ itself hope: "I think I can, I think I can, I think I can." The story ends happily. The
+ little blue engine reaches the top of the hill with its many cars in tow, and is able to
+ glide down the rest of the way. As you deal with your own challenge, Gemini, I recommend
+ that you use an even more forceful incantation. Chant this: "I know I can, I know I can,
+ I know I can."
+
+
+ The hill where I take my late afternoon hikes is teeming with the six-petaled purple
+ wildflower known as the elegant cluster-lily. Every one of them — and there are hundreds —
+ lean hard in the direction of the sun in the west. Should I deride them as conformists that
+ follow the law of the pack? Should I ridicule them for their blind devotion? Or should I more
+ sensibly regard them as having a healthy instinct to gravitate toward the life-giving light?
+ I\'ll go with the latter theory. In that spirit, Leo, I urge you to ignore the opinions of
+ others as you turn strongly toward the sources that provide you with essential nourishment.
+
+
+ According to the three science fiction films collectively known as The Matrix, we humans
+ suffer from a fundamental delusion. What we think is real life is actually a sophisticated
+ computer simulation. Intelligent machines have created this dream world to keep us in
+ suspended animation while they harvest our energy to fuel their civilization. Now as far as
+ I can tell, this scenario isn\'t literally true. But it is an apt metaphor for how many of us
+ seem to be half-asleep or under a spell, lost in our addiction to the simulated world created
+ by technology. I bring this to your attention, Libra, because now is a favorable time to
+ diminish the hold that the metaphorical Matrix has on you. What can you do to at least
+ partially escape your bondage? (Hint: A little more contact with nature could do the trick.)
+
+
+ The universe has always played tricks on you. Some have been so perplexing that you\'ve
+ barely understood the joke. Others have been amusing but not particularly educational.
+ Now I sense a new trend in the works, however. I suspect that the universe\'s pranks are
+ becoming more comprehensible. They may have already begun to contain hints of kindness.
+ What\'s the meaning of this lovely turn of events? Maybe you have finally discharged a very
+ old karmic debt. It\'s also conceivable that your sense of humor has matured so much that
+ you\'re able to laugh at some of the crazier plot twists. Here\'s another possibility: You are
+ cashing in on the wisdom you were compelled to develop over the years as you dealt with the
+ universe\'s tricks.
+
+
+ Physicist Frank Wilczek won a Nobel Prize for his research into quarks, the tiny particles
+ that compose protons and neutrons. The guy is breathtakingly smart. Here\'s one of his
+ operating principles: "If you don\'t make mistakes, you\'re not working on hard enough
+ problems. And that\'s a big mistake." Let\'s enshrine his advice as your meditation,
+ Sagittarius. I think you\'re strong enough and brave enough to go hunting for some new
+ super-rich dilemmas. Yes, they may lead you to commit some booboos. But they will also
+ stretch your intelligence beyond its previous limits, giving you a more vigorous
+ understanding of the way the world works.
+
+
+ In the coming weeks, you may be as alluring and intriguing and tempting as you have been in
+ a long time. I suggest you capitalize on this advantage. Proceed as if you do indeed have
+ the power to attract more of the emotional riches you desire. Assume that you are primed to
+ learn new secrets about the arts of intimacy, and that these secrets will make you even
+ smarter and more soulful than you already are. Cultivate your ability to be the kind of
+ trusted ally and imaginative lover who creates successful relationships.
+
+
+ Here\'s one of the best things you can do for your mental and physical health: Withdraw your
+ attention from the life that lies behind you, and be excited about the life that stretches
+ ahead of you. Forget about the past, and get wildly inventive as you imagine the interesting
+ future you will create for yourself. Forgive everyone who has offended you, and fantasize
+ about the fun adventures you\'ll go on, the inspiring plans you\'ll carry out, and the
+ invigorating lessons you hope to learn.
+
+
+ Am I reading the astrological omens correctly? I hope so. From what I can tell, you have
+ been flying under the radar and over the rainbow. You have been exploiting the loopholes in
+ the big bad system and enjoying some rather daring experiments with liberation. At this
+ point in the adventure, you may be worried that your lucky streak can\'t continue much
+ longer. I\'m here to tell you that it can. It will. It must. I predict that your
+ detail-loving intelligence will paradoxically guide you to expand your possibilities even further.
+
+
+
+
+ Aquarians present themselves in one of two ways. One on hand, you’ll see someone who is shy,
+ and quiet. On the other, an Aquarian can be boisterous, eccentric, and energetic. Both are
+ deep thinkers with a love of helping others. Highly intellectual, this is a sign of fierce
+ independence that prizes intuition tempered with logic. Both personality types have an
+ uncanny ability to see both sides of an argument without prejudice, making them excellent
+ problem-solvers. While very much attuned to the energies around them, Aquarians have a deep
+ need to take time out alone and away to rejuvenate themselves. The keyword for this sign is
+ imagination. The Aquarian can see a world of possibilities even when there appears to be none.
+
+
+ As the first sign of the zodiac, the presence of an Aries almost always indicates the
+ beginning of something energetic and boisterous. Not much holds this sign back. They\'re
+ eager, dynamic, quick, and competitive. When it comes to getting the ball rolling,
+ an Aries is the best. Pioneering everything from work-related projects to parties with
+ friends, these folks go for the gusto.
+
+
+ Deeply intuitive and sentimental, Cancer can be one of the most challenging Zodiac signs to
+ get to know. Emotion runs strong for this sign, and when it comes to family and home,
+ nothing is more important. Sympathetic and empathetic, Cancerians are greatly attuned to
+ those around them. Devotion is the keyword for this sign, making them wonderfully sensitive
+ people to be around.
+
+
+ When it comes to professionalism and traditional values, Capricorn wins hands-down.
+ This practical sign loves to tackle life in the most conventional of ways, leaving no stone
+ unturned. Considered the most serious-minded of the signs, the Capricorn possesses an
+ independence that allows for considerable progress both personally and on the job.
+
+
+ Versatility is a great keyword for this dual sign. Expressive and quick-witted, the Gemini
+ presents two distinctive sides to his or her personality, and you can never be sure with
+ which one you\'re going to come face-to-face. On one hand, the Gemini can be outgoing,
+ flirtatious, communicative, and ready for fun, fun, fun. Yet when the other twin is present,
+ you can find this air sign contemplative, serious, restless, and even indecisive. Both twins
+ are able to adapt to life\'s circumstances well, making them wonderful people to know. Things
+ are never boring when a Gemini is on the scene.
+
+
+ When the mighty Lion enters center stage, everyone notices. This dramatic, creative, and
+ outgoing sign has the keyword magnetism for good reason. Fiery and self-assured, a Leo\'s
+ charm can be almost impossible to resist. Whether it\'s time spent with family and friends or
+ efforts on the job scene, a Leo is going to bring a lot to the table.
+
+
+ "I balance" is the key phrase for this sign, and when it comes to keeping everything on an
+ even keel, a Libran will lead the pack. Peace loving and judicial, this sign abhors being
+ alone. Partnerships are very important for the Libran, especially those on a personal level.
+ With their winning personalities and cooperative style, they aren\'t apt to be alone for long!
+
+
+ "Understanding" is a most appropriate keyword for this gentle, affectionate sign. Easygoing
+ and generally accepting of others around them, Pisceans are often found in the company of a
+ variety of different personalities. Their willingness to give of themselves emotionally
+ lends to an aura of quiet empathy. A Pisces is comforting to be around. While not likely to
+ be the leader, this sign\'s presence is strong and vibrant in any cause they put their hearts into.
+
+
+ Inquisitive and energetic, the Sagittarius is the traveler of the Zodiac. Their
+ philosophical, broad-minded approach to life motivates them to wander far and wide in the
+ search for the meaning of life. Extroverted, optimistic, and enthusiastic, it can be almost
+ impossible to keep the Sagittarius down. They love change. In fact, change is essential for
+ this sign to feel their best.
+
+
+ Beneath a controlled, cool exterior beats the heart of the deeply intense Scorpio.
+ Passionate, penetrating, and determined, this sign will probe until they reach the truth.
+ The Scorpio may not speak volumes or show emotions readily, yet rest assured there\'s an
+ enormous amount of activity happening beneath the surface. Excellent leaders, Scorpions are
+ always aware. When it comes to resourcefulness, this sign comes out ahead.
+
+
+ Strong, dependable Taurus leads the way when it comes to reaping the rewards of hard work.
+ Lovers of everything that is fine and beautiful, Taureans surround themselves with material
+ gains. This is a sensual, tactile sign. Touch is very important in everything from work to
+ romance. Stable and conservative, Taureans are among the most reliable of the zodiac. While
+ sometimes viewed as stubborn, this sign will plod along on a task until the very end,
+ ensuring that everything is up to standard. They\'re highly creative and thoroughly enjoy
+ making things with their own hands.
+
+
+ With an acute attention to detail, the Virgo is the sign in the zodiac most dedicated to
+ serving. Their deep sense of the humane leads them to caregiving like no other, while their
+ methodical approach to life ensures that nothing is missed. The Virgo is often gentle and
+ delicate, preferring to step back and analyze before moving ahead.
+
+
+
+
+ Sign
+ Aries
+ Taurus
+ Gemini
+ Cancer
+ Leo
+ Virgo
+ Libra
+ Scorpio
+ Sagittarius
+ Capricorn
+ Aquarius
+ Pisces
+
+
+
+ Sign
+ Description
+ End Date
+ Start Date
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam
+ vel vestibulum nulla. Aliquam ac enim dignissim, vulputate nulla sed, sollicitudin dolor.
+ Duis quis ultricies neque, ac ultrices tortor. Nunc lobortis lorem ac lorem fermentum
+ convallis. Phasellus ipsum tortor, molestie id turpis vel, mattis imperdiet enim.
+
+
+
+ Set Birthdate
+ Please set your birthdate.
+ Submit
+
+ Icons:\niconsmind.com via The Noun Project\nhttps://thenounproject.com/imicons/collection/zodiac/
+
+
+ Made with (highly caffeinated) love by:\n@jaellysbales\nAccess Code 2.1 @ C4Q
+
+ Your fate, foretold...
+ New Sign
+
+
diff --git a/homework/jaellysbales/Horoscope/app/src/main/res/values/styles.xml b/homework/jaellysbales/Horoscope/app/src/main/res/values/styles.xml
new file mode 100644
index 00000000..305340fb
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/app/src/main/res/values/styles.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/build.gradle b/homework/jaellysbales/Horoscope/build.gradle
new file mode 100644
index 00000000..d3ff69d6
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/build.gradle
@@ -0,0 +1,19 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:1.1.0'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
diff --git a/homework/jaellysbales/Horoscope/gradle.properties b/homework/jaellysbales/Horoscope/gradle.properties
new file mode 100644
index 00000000..1d3591c8
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/homework/jaellysbales/Horoscope/gradle/wrapper/gradle-wrapper.jar b/homework/jaellysbales/Horoscope/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..8c0fb64a
Binary files /dev/null and b/homework/jaellysbales/Horoscope/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/homework/jaellysbales/Horoscope/gradle/wrapper/gradle-wrapper.properties b/homework/jaellysbales/Horoscope/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..0c71e760
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Apr 10 15:27:10 PDT 2013
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
diff --git a/homework/jaellysbales/Horoscope/gradlew b/homework/jaellysbales/Horoscope/gradlew
new file mode 100755
index 00000000..91a7e269
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/homework/jaellysbales/Horoscope/gradlew.bat b/homework/jaellysbales/Horoscope/gradlew.bat
new file mode 100644
index 00000000..aec99730
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/homework/jaellysbales/Horoscope/settings.gradle b/homework/jaellysbales/Horoscope/settings.gradle
new file mode 100644
index 00000000..e7b4def4
--- /dev/null
+++ b/homework/jaellysbales/Horoscope/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/homework/jaellysbales/MyApplication/.gitignore b/homework/jaellysbales/MyApplication/.gitignore
new file mode 100644
index 00000000..afbdab33
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.gitignore
@@ -0,0 +1,6 @@
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
diff --git a/homework/jaellysbales/MyApplication/.idea/.name b/homework/jaellysbales/MyApplication/.idea/.name
new file mode 100644
index 00000000..b3405b3b
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/.name
@@ -0,0 +1 @@
+My Application
\ No newline at end of file
diff --git a/homework/jaellysbales/MyApplication/.idea/compiler.xml b/homework/jaellysbales/MyApplication/.idea/compiler.xml
new file mode 100644
index 00000000..217af471
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/compiler.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/MyApplication/.idea/copyright/profiles_settings.xml b/homework/jaellysbales/MyApplication/.idea/copyright/profiles_settings.xml
new file mode 100644
index 00000000..e7bedf33
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/MyApplication/.idea/encodings.xml b/homework/jaellysbales/MyApplication/.idea/encodings.xml
new file mode 100644
index 00000000..e206d70d
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/encodings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/homework/jaellysbales/MyApplication/.idea/gradle.xml b/homework/jaellysbales/MyApplication/.idea/gradle.xml
new file mode 100644
index 00000000..fe865d33
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/MyApplication/.idea/misc.xml b/homework/jaellysbales/MyApplication/.idea/misc.xml
new file mode 100644
index 00000000..59436c98
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/MyApplication/.idea/modules.xml b/homework/jaellysbales/MyApplication/.idea/modules.xml
new file mode 100644
index 00000000..2e1012ce
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/MyApplication/.idea/scopes/scope_settings.xml b/homework/jaellysbales/MyApplication/.idea/scopes/scope_settings.xml
new file mode 100644
index 00000000..922003b8
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/homework/jaellysbales/MyApplication/.idea/vcs.xml b/homework/jaellysbales/MyApplication/.idea/vcs.xml
new file mode 100644
index 00000000..def6a6a1
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/homework/jaellysbales/MyApplication/MyApplication.iml b/homework/jaellysbales/MyApplication/MyApplication.iml
new file mode 100644
index 00000000..0bb6048a
--- /dev/null
+++ b/homework/jaellysbales/MyApplication/MyApplication.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+