From 790721193493a91ba5502638f1ba669da0d52455 Mon Sep 17 00:00:00 2001 From: Domagalski Date: Tue, 4 Sep 2018 00:01:35 +0200 Subject: [PATCH] bottom navi with 3 fragments, moved mapbox to map fragment and integraded with bottom navbar --- .../findmytutor/activity/MainActivity.java | 113 ++++++++++-------- .../wmi/findmytutor/activity/MapFragment.java | 98 +++++++++++++++ .../activity/NotificationFragment.java | 31 +++++ .../findmytutor/activity/ProfileFragment.java | 31 +++++ app/src/main/res/color/nav_item_colors.xml | 6 + .../drawable-hdpi/outline_map_white_24dp.png | Bin 0 -> 370 bytes .../outline_notifications_white_24dp.png | Bin 0 -> 349 bytes .../outline_person_white_24dp.png | Bin 0 -> 403 bytes app/src/main/res/layout/activity_main.xml | 74 ++++++++---- app/src/main/res/layout/fragment_map.xml | 21 ++++ .../main/res/layout/fragment_notification.xml | 14 +++ app/src/main/res/layout/fragment_profile.xml | 14 +++ app/src/main/res/menu/nav_items.xml | 17 +++ app/src/main/res/values/colors.xml | 5 + app/src/main/res/values/strings.xml | 5 + 15 files changed, 357 insertions(+), 72 deletions(-) create mode 100644 app/src/main/java/com/uam/wmi/findmytutor/activity/MapFragment.java create mode 100644 app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationFragment.java create mode 100644 app/src/main/java/com/uam/wmi/findmytutor/activity/ProfileFragment.java create mode 100644 app/src/main/res/color/nav_item_colors.xml create mode 100644 app/src/main/res/drawable-hdpi/outline_map_white_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/outline_notifications_white_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/outline_person_white_24dp.png create mode 100644 app/src/main/res/layout/fragment_map.xml create mode 100644 app/src/main/res/layout/fragment_notification.xml create mode 100644 app/src/main/res/layout/fragment_profile.xml create mode 100644 app/src/main/res/menu/nav_items.xml 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 0000000000000000000000000000000000000000..579a6e79b96d79a58bc94fc373313724d48510c3 GIT binary patch literal 370 zcmV-&0ge8NP)41DG0oZbSTkx?oLy6xYRa}})sUtdbIr~kvfVMRV|?5BbufO{^yArk_lkO2 zWQJ{?dt|dwIo9Lt@y(O`r(bGQ>z=iSCaeco;ksHN>-0?9z0|QvSFJKQ*iUl64^)=9Hw*=AyzZLPtFDMcSJ+aMHEoR!~m1I>eX9mL4;kV|u1rB;E!~+`* z3%2Qj^ly4wO}24WxvVxVUOW;&(CDU0>)wtx}Vdo08|hb-*q znCZ59o;%=zD#>2kWttYj>AZo^cV86oy-47e)%xpeiL**%duE48`2t@ZFh2M@*h*Ja zCZ67IX0LRBTGuVtFJUvx8h6!d^EB;rz+<27GbYD!lue#`Vw)MgdRP?I0hA<@f@Zd| QUH||907*qoM6N<$f=foI)&Kwi literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17da39ca5b8bcb213627004ea4373f50c67af1ba GIT binary patch literal 349 zcmV-j0iyniP)VrBWl!G`Vf z@7_yve*lj2X+fz(g&t$Z^r)x^oMCXTBJc*-L`7hM@-7n(e<%p*-@$1&fm zGUG(qFd!XV==V5c?u9PfG-$9xmsjR?6=iHN#bz8()dH#R>`GBQV{N6NjXf!f5w@iiY+@rt@rl)y zf;u);6h>h8#{y-b43q(qXn-Vs9}7Sdy^l)@yALGDsQAGD#SpWh^2QxzKU+wB3&cR} v40vl)kQRX?`G3>@w?Me*zvNJg+))4k1O-*KiT5jU00000NkvXXu0mjfq)?6- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..54eef90a5ef8209c203fc56961ee68c918a10f43 GIT binary patch literal 403 zcmV;E0c`$>P)eXhQ&$832V23Q@#{NCOQ3uu&jEVWZ4U z$*_IH&*)_Cw*P_L2k_wW@Wi`7AV8854SMuwP$DUQB20}DN{y%y7Jo2D3+2>ePW*t) zB(|6%%@EZlkA+2^Hfl&(Oi@O4iHRtpbWvq7MH98{NViZeF~v73?nvXPFEK?Qm2jj9 zRNude3XZhk-$WHum*}s7x~PhnVwoYTLyia*IXb8zDKWRfQdIw3JbhCS*Gm}I~``($JmWNF}4gRD%0 zd9In(6$|1GD}3Peg3TsNqJ#t+*gWI(&Z@Y>qRrTVJ9bIP1jN|kmH}gJEOEmLV>c{{ x2Sm7J>{Q(FhB}lfaDaLhHy8>EW+(^*0zZGCZ9%o{C}IEr002ovPDHLkV1krCqbmRa literal 0 HcmV?d00001 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