diff --git a/.gitignore b/.gitignore index 39fb081..642b296 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /build /captures .externalNativeBuild +/.idea/misc.xml \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index d4f4821..5d19981 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,46 +27,6 @@ - - - - - - - - - Class structureJava - - - Code maturity issuesJava - - - Java - - - Java language level migration aidsJava - - - Javadoc issuesJava - - - Performance issuesJava - - - TestNGJava - - - Threading issuesJava - - - - - Android - - - - - diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/com/cognitioco/drunkster/controller/UserController.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/com/cognitioco/drunkster/controller/UserController.java index 4053780..a03818a 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/com/cognitioco/drunkster/controller/UserController.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/com/cognitioco/drunkster/controller/UserController.java @@ -46,4 +46,7 @@ public User retrieveUserByName(User user) { public List retirveAll() { return dao.retrieveUsers(); } + + /*@Override + public void setNewPrefferedTaxiService(String newservice) {dao.setNewPrefferedTaxiService(newservice);}*/ } diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/User.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/User.java index 6468839..ce9eabe 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/User.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/User.java @@ -15,12 +15,13 @@ public class User extends SugarRecord private Sex sex; private int sexDB; private String prefferedTaxiService; + private int prefferedTaxiServicePosition; private String emergencyNumber; public User() { } - public User(long id, String name, int age, double weight, Sex sex, String prefferedTaxiService, String emergencyNumber) { + public User(long id, String name, int age, double weight, Sex sex, String prefferedTaxiService, int prefferedTaxiServicePosition, String emergencyNumber) { setId(id); this.name = name; this.age = age; @@ -29,6 +30,7 @@ public User(long id, String name, int age, double weight, Sex sex, String preffe else if (sex == Sex.MALE) sexDB = 0; this.sex = sex; this.prefferedTaxiService = prefferedTaxiService; + this.prefferedTaxiServicePosition = 0; this.emergencyNumber = emergencyNumber; } @@ -94,6 +96,12 @@ public void setPrefferedTaxiService(String prefferedTaxiService) { this.prefferedTaxiService = prefferedTaxiService; } + public int getPrefferedTaxiServicePosition() { return prefferedTaxiServicePosition;} + + public void setPrefferedTaxiServicePosition(int _position) { + this.prefferedTaxiServicePosition = _position; + } + public String getEmergencyNumber() { return emergencyNumber; } @@ -142,6 +150,7 @@ public int hashCode() { result = 31 * result + (int) (temp ^ (temp >>> 32)); result = 31 * result + sex.hashCode(); result = 31 * result + (prefferedTaxiService != null ? prefferedTaxiService.hashCode() : 0); + result = 31 * result + prefferedTaxiServicePosition; result = 31 * result + (emergencyNumber != null ? emergencyNumber.hashCode() : 0); return result; } @@ -155,6 +164,7 @@ public String toString() { ", weight=" + weight + ", sex=" + sex + ", prefferedTaxiService='" + prefferedTaxiService + '\'' + + ", prefferedTaxiServicePosition='" + prefferedTaxiServicePosition + '\'' + ", emergencyNumber='" + emergencyNumber + '\'' + '}'; } diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAO.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAO.java index 4f49e46..c3faaa5 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAO.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAO.java @@ -33,4 +33,7 @@ public User retrieveUserByName(User user) { public List retrieveUsers() { return User.listAll(User.class); } + + /*@Override + public void setNewPrefferedTaxiService(String newservice) {}*/ } diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAOInterface.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAOInterface.java index caa9a82..e9fc733 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAOInterface.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/model/UserDAOInterface.java @@ -11,4 +11,5 @@ public interface UserDAOInterface { void deleteUser(User user); User retrieveUserById(User user); User retrieveUserByName(User user); + //void setNewPrefferedTaxiService(String newservice); } diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/BaseClass.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/BaseClass.java index 1baca84..ed75b83 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/BaseClass.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/BaseClass.java @@ -189,7 +189,7 @@ else if (id == R.id.btn_contactsOpen) else { getSupportFragmentManager().beginTransaction().replace(R.id.fragmentFrame, contactSettingsFragment, "ContactSettingsFragment").addToBackStack(null).commit(); } - drawerLayout.closeDrawer(GravityCompat.START); + //drawerLayout.closeDrawer(GravityCompat.START); } return false; } diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/ProgressBarFragment.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/ProgressBarFragment.java index d8190a8..f7638f6 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/ProgressBarFragment.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/ProgressBarFragment.java @@ -7,15 +7,27 @@ import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; +import android.support.v7.widget.CardView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; +import android.content.pm.PackageManager; +import android.content.pm.ApplicationInfo; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.graphics.drawable.RippleDrawable; +import android.os.Build; +import android.os.Handler; import com.cognitioco.drunkster.R; import com.cognitioco.drunkster.com.cognitioco.drunkster.com.cognitioco.drunkster.controller.RegistryController; +import com.cognitioco.drunkster.com.cognitioco.drunkster.com.cognitioco.drunkster.controller.UserController; import com.cognitioco.drunkster.com.cognitioco.drunkster.model.Registry; +import com.cognitioco.drunkster.com.cognitioco.drunkster.model.User; import java.util.List; import java.util.Locale; @@ -34,6 +46,41 @@ public void onClick(View v) { onAddDrinkPressed(); } }; + private View.OnClickListener uberListener = new View.OnClickListener() + { + @Override + public void onClick(View v) + { + Intent intent = getContext().getPackageManager().getLaunchIntentForPackage("com.ubercab"); + if (intent == null) + return; + List list = getContext().getPackageManager().queryIntentActivities(intent, + PackageManager.MATCH_DEFAULT_ONLY); + if(list.size() > 0) + { + Intent LaunchApp = getContext().getPackageManager().getLaunchIntentForPackage("com.ubercab"); + startActivity( LaunchApp ); + } + + } + }; + private View.OnClickListener lyftListener = new View.OnClickListener() + { + @Override + public void onClick(View v) + { + Intent intent = getContext().getPackageManager().getLaunchIntentForPackage("me.lyft.android"); + if (intent == null) + return; + List list = getContext().getPackageManager().queryIntentActivities(intent, + PackageManager.MATCH_DEFAULT_ONLY); + if(list.size() > 0) + { + Intent LaunchApp = getContext().getPackageManager().getLaunchIntentForPackage("me.lyft.android"); + startActivity( LaunchApp ); + } + } + }; private FragmentManager.OnBackStackChangedListener backStackListener = new FragmentManager.OnBackStackChangedListener() { @Override public void onBackStackChanged() { @@ -78,6 +125,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, FloatingActionButton addDrinkFAB = (FloatingActionButton) v.findViewById(R.id.addDrinkButton); addDrinkFAB.setOnClickListener(clickReact); + + ProgressBar pb = (ProgressBar) v.findViewById(R.id.circle_progress_bar); List list = regcontroller.retrieveAllRegistries(); @@ -98,6 +147,41 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, th.start(); + //Check User for selected taxi service and set to visible + UserController userc = new UserController(); + User user = userc.retirveAll().get(0); + + FloatingActionButton uberFAB = (FloatingActionButton) v.findViewById(R.id.btn_openUber); + uberFAB.setOnClickListener(uberListener); + FloatingActionButton lyftFAB = (FloatingActionButton) v.findViewById(R.id.btn_openLyft); + lyftFAB.setOnClickListener(lyftListener); + + if (user.getPrefferedTaxiServicePosition() == 1 && bac > 0.04) + { + //make uber button visible + uberFAB.show(); + lyftFAB.hide(); + + forceRippleAnimation(uberFAB); + } + else if (user.getPrefferedTaxiServicePosition() == 2 && bac > 0.04) + { + //make lyft button visible + uberFAB.hide(); + lyftFAB.show(); + + forceRippleAnimation(lyftFAB); + + //RippleDrawable rippledraw = new RippleDrawable(); + //RippleDrawable.setState(new int[] { android.R.attr.state_pressed, android.R.attr.state_enabled }); + } + else + { + //make all taxi buttons invisible + uberFAB.hide(); + lyftFAB.hide(); + } + return v; } @@ -107,6 +191,13 @@ public void onAddDrinkPressed() { mListener.onAddDrinkPressed(); } } + /*public void onUberPressed() + { + if (mListener != null) + { + mListener.onUberPressed(); + } + }*/ @@ -195,4 +286,26 @@ private int getPercentage(double number) { return (int) percentage; } } + protected void forceRippleAnimation(View view) + { + Drawable background = view.getBackground(); + + if(Build.VERSION.SDK_INT >= 21 && background instanceof RippleDrawable) + { + final RippleDrawable rippleDrawable = (RippleDrawable) background; + + rippleDrawable.setState(new int[]{android.R.attr.state_pressed, android.R.attr.state_enabled}); + + Handler handler = new Handler(); + + handler.postDelayed(new Runnable() + { + @Override public void run() + { + rippleDrawable.setState(new int[]{}); + } + }, 900000000); + } + } + } diff --git a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/UserSettings.java b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/UserSettings.java index 8601ed1..36ef2f8 100644 --- a/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/UserSettings.java +++ b/app/src/main/java/com/cognitioco/drunkster/com/cognitioco/drunkster/view/UserSettings.java @@ -14,6 +14,8 @@ import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; +import android.widget.Spinner; +import android.widget.ArrayAdapter; import com.cognitioco.drunkster.R; import com.cognitioco.drunkster.com.cognitioco.drunkster.com.cognitioco.drunkster.controller.UserController; @@ -101,7 +103,7 @@ public void onClick(View v) { // TODO: Correct fragment_contacts_display loading. Crashes on each attempt. /*ContactsDisplaySettings CDS = new ContactsDisplaySettings() ; - getFragmentManager().beginTransaction().add(R.id.fragmentContactsDisplay, CDS).addToBackStack(null).commit();*/ + getFragmentManager().beginTransaction().add(R.id.fragmentContactsDisplay, CDS, null).addToBackStack(null).commit();*/ /*ContactsDisplaySettings CDS= new ContactsDisplaySettings(); getActivity().getFragmentManager().beginTransaction() @@ -170,6 +172,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, RadioButton maleButton = (RadioButton) v.findViewById(R.id.radio_male); RadioButton femaleButton = (RadioButton) v.findViewById(R.id.radio_female); + //fill spinner values + Spinner taxi = (Spinner) v.findViewById((R.id.spin_taxiservice)); + ArrayAdapter taxiadapter = ArrayAdapter.createFromResource(getContext(), + R.array.taxi_spinner_list, android.R.layout.simple_spinner_item); + taxiadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + taxi.setAdapter(taxiadapter); + if (user.getSexDB() == 1) { femaleButton.setSelected(true); } else { @@ -181,6 +190,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, age.setProgress(user.getAge()); weight.setOnSeekBarChangeListener(seekbarWeightListener); age.setOnSeekBarChangeListener(seekbarAgeListener); + //set spinner place to previously entered value + taxi.setSelection(user.getPrefferedTaxiServicePosition()); return v; } @@ -247,6 +258,16 @@ private boolean saveUserSettings() newSettings.setSex(User.Sex.FEMALE); } + + //save spinner position and text + Spinner spinner = (Spinner)getView().findViewById(R.id.spin_taxiservice); + String selectedItemAsText = spinner.getSelectedItem().toString(); + int selectedItemAsInt = spinner.getSelectedItemPosition(); + + newSettings.setPrefferedTaxiService(selectedItemAsText); + //newSettings.setPrefferedTaxiServicePosition(spinner.getSelectedItemPosition()); + newSettings.setPrefferedTaxiServicePosition(selectedItemAsInt); + usercontroller.updateUser(newSettings); return true; diff --git a/app/src/main/res/drawable/specialripple.xml b/app/src/main/res/drawable/specialripple.xml new file mode 100644 index 0000000..f34dc05 --- /dev/null +++ b/app/src/main/res/drawable/specialripple.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_contacts_display.xml b/app/src/main/res/layout/fragment_contacts_display.xml index e68d145..3de1b3a 100644 --- a/app/src/main/res/layout/fragment_contacts_display.xml +++ b/app/src/main/res/layout/fragment_contacts_display.xml @@ -1,8 +1,10 @@ diff --git a/app/src/main/res/layout/fragment_progress_bar.xml b/app/src/main/res/layout/fragment_progress_bar.xml index e639229..06659e2 100644 --- a/app/src/main/res/layout/fragment_progress_bar.xml +++ b/app/src/main/res/layout/fragment_progress_bar.xml @@ -93,6 +93,20 @@ android:layout_marginEnd="10dp" android:onClick="onAddDrinkPressed"/> + + + + + + + diff --git a/app/src/main/res/layout/fragment_user_settings.xml b/app/src/main/res/layout/fragment_user_settings.xml index 3954e88..6498188 100644 --- a/app/src/main/res/layout/fragment_user_settings.xml +++ b/app/src/main/res/layout/fragment_user_settings.xml @@ -7,7 +7,6 @@ tools:context=".com.cognitioco.drunkster.view.UserSettings"> - + android:layout_marginTop="67dp" + + + android:spinnerMode="dropdown" /> + + + No Service + Uber + Lyft + + + +