diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java index e2c9158..a443ed2 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java @@ -1,12 +1,18 @@ package com.uam.wmi.findmytutor.activity; +import android.app.Fragment; +import android.app.FragmentTransaction; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.BottomNavigationView; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; +import android.view.MenuItem; import android.view.View; +import android.widget.FrameLayout; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.maps.MapView; @@ -19,6 +25,16 @@ import java.util.List; public class MainActivity extends AppCompatActivity { + + private BottomNavigationView mMainNav; + private FrameLayout mMainFrame; + + private MapFragment mapFragment; + private NotificationFragment notificationFragment; + private ProfileFragment profileFragment; + + + private MapView mapView; public List getCoordinates() { @@ -36,11 +52,49 @@ public class MainActivity extends AppCompatActivity { super.onCreate(savedInstanceState); Mapbox.getInstance(this, getString(R.string.access_token)); setContentView(R.layout.activity_main); + + + mMainFrame = (FrameLayout) findViewById(R.id.main_frame); + mMainNav = (BottomNavigationView) findViewById(R.id.main_nav); + + mapFragment = new MapFragment(); + notificationFragment = new NotificationFragment(); + profileFragment = new ProfileFragment(); + + // Default frag here + setFragment(mapFragment); + mMainNav.setSelectedItemId(R.id.nav_map); + + mMainNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_map: + mMainNav.setItemBackgroundResource(R.color.colorPrimary); + setFragment(mapFragment); + return true; + case R.id.nav_notif: + mMainNav.setItemBackgroundResource(R.color.colorAccent); + setFragment(notificationFragment); + return true; + case R.id.nav_profile: + mMainNav.setItemBackgroundResource(R.color.colorPrimaryDark); + setFragment(profileFragment); + return true; + default: + return false; + } + } + }); + + + // Logout button final FloatingActionButton button = findViewById(R.id.logoutButton); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { - SharedPreferences preferences =getSharedPreferences("fmtPrefs",Context.MODE_PRIVATE); + SharedPreferences preferences = getSharedPreferences("fmtPrefs",Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.clear().commit(); @@ -52,59 +106,16 @@ public class MainActivity extends AppCompatActivity { } }); - mapView = (MapView) findViewById(R.id.mapView); - mapView.onCreate(savedInstanceState); - - CoordinateService service = ApiClient.getClient(getApplicationContext()) - .create(CoordinateService.class); +// CoordinateService service = ApiClient.getClient(getApplicationContext()) +// .create(CoordinateService.class); } - - @Override - public void onStart() { - super.onStart(); - mapView.onStart(); + private void setFragment(Fragment fragment) { + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.main_frame, fragment); + fragmentTransaction.commit(); + } } - @Override - public void onResume() { - super.onResume(); - mapView.onResume(); - - } - - @Override - public void onPause() { - super.onPause(); - mapView.onPause(); - } - - @Override - public void onStop() { - super.onStop(); - mapView.onStop(); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapView.onDestroy(); - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - mapView.onSaveInstanceState(outState); - } - - -} - diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapFragment.java new file mode 100644 index 0000000..d8c1e36 --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapFragment.java @@ -0,0 +1,98 @@ +package com.uam.wmi.findmytutor.activity; + + +import android.os.Bundle; +import android.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.mapbox.mapboxsdk.maps.MapView; +import com.uam.wmi.findmytutor.R; +import com.uam.wmi.findmytutor.network.ApiClient; +import com.uam.wmi.findmytutor.service.CoordinateService; + +import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext; + +/** + * A simple {@link Fragment} subclass. + */ +public class MapFragment extends Fragment { + private MapView mapView; + + + public MapFragment() { + // Required empty public constructor + } + + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_map, container, false); + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + mapView = (MapView) view.findViewById(R.id.mapView); + mapView.onCreate(savedInstanceState); + CoordinateService service = ApiClient.getClient(getApplicationContext()) + .create(CoordinateService.class); + } + + @Override + public void onStart() { + super.onStart(); + mapView.onStart(); + } + + @Override + public void onResume() { + super.onResume(); + mapView.onResume(); + + } + + @Override + public void onPause() { + super.onPause(); + mapView.onPause(); + } + + @Override + public void onStop() { + super.onStop(); + mapView.onStop(); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapView.onLowMemory(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + mapView.onDestroy(); + } + +// @Override +// public void onDestroy() { +// super.onDestroy(); +// mapView.onDestroy(); +// } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mapView.onSaveInstanceState(outState); + } + + + +} diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationFragment.java new file mode 100644 index 0000000..431777b --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationFragment.java @@ -0,0 +1,31 @@ +package com.uam.wmi.findmytutor.activity; + + +import android.os.Bundle; +import android.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.uam.wmi.findmytutor.R; + +/** + * A simple {@link Fragment} subclass. + */ +public class NotificationFragment extends Fragment { + + + public NotificationFragment() { + // Required empty public constructor + } + + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_notification, container, false); + } + +} diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/ProfileFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/ProfileFragment.java new file mode 100644 index 0000000..d994bfd --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/ProfileFragment.java @@ -0,0 +1,31 @@ +package com.uam.wmi.findmytutor.activity; + + +import android.os.Bundle; +import android.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.uam.wmi.findmytutor.R; + +/** + * A simple {@link Fragment} subclass. + */ +public class ProfileFragment extends Fragment { + + + public ProfileFragment() { + // Required empty public constructor + } + + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_profile, container, false); + } + +} diff --git a/app/src/main/res/color/nav_item_colors.xml b/app/src/main/res/color/nav_item_colors.xml new file mode 100644 index 0000000..721a035 --- /dev/null +++ b/app/src/main/res/color/nav_item_colors.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/outline_map_white_24dp.png b/app/src/main/res/drawable-hdpi/outline_map_white_24dp.png new file mode 100644 index 0000000..579a6e7 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/outline_map_white_24dp.png differ diff --git a/app/src/main/res/drawable-hdpi/outline_notifications_white_24dp.png b/app/src/main/res/drawable-hdpi/outline_notifications_white_24dp.png new file mode 100644 index 0000000..17da39c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/outline_notifications_white_24dp.png differ diff --git a/app/src/main/res/drawable-hdpi/outline_person_white_24dp.png b/app/src/main/res/drawable-hdpi/outline_person_white_24dp.png new file mode 100644 index 0000000..54eef90 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/outline_person_white_24dp.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2c0768b..b1e333b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,31 +7,63 @@ android:layout_height="match_parent" tools:context=".activity.MainActivity"> - + android:layout_height="wrap_content"> - + + + + + + + + - + - + + + + + + + + + + + + + + + - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml new file mode 100644 index 0000000..88bfe2e --- /dev/null +++ b/app/src/main/res/layout/fragment_map.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_notification.xml b/app/src/main/res/layout/fragment_notification.xml new file mode 100644 index 0000000..2cd9409 --- /dev/null +++ b/app/src/main/res/layout/fragment_notification.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml new file mode 100644 index 0000000..f98dfe6 --- /dev/null +++ b/app/src/main/res/layout/fragment_profile.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/nav_items.xml b/app/src/main/res/menu/nav_items.xml new file mode 100644 index 0000000..8b00a9f --- /dev/null +++ b/app/src/main/res/menu/nav_items.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 4e15c2e..2361e98 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,9 @@ #89c3c3c3 #858585 #232323 + + + #ffffff + #80ffffff + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52d1d21..6464e50 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,6 +3,11 @@ Sign in StartUp Activity + + Map + Notification + Profile + Settings Notes