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 @@ + + + + + + + + + +