diff --git a/.idea/misc.xml b/.idea/misc.xml
index cca2cda..7158618 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 99c178a..8874d64 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,8 +15,9 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
- android:theme="@style/AppTheme">
-
+ android:theme="@style/AppTheme.NoActionBar">
+
@@ -35,9 +36,6 @@
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
-
\ No newline at end of file
diff --git a/app/src/main/java/com/pulkit4tech/privy/MainActivity.java b/app/src/main/java/com/pulkit4tech/privy/MainActivity.java
index ac9cfad..123a879 100644
--- a/app/src/main/java/com/pulkit4tech/privy/MainActivity.java
+++ b/app/src/main/java/com/pulkit4tech/privy/MainActivity.java
@@ -1,26 +1,159 @@
package com.pulkit4tech.privy;
-import android.content.Intent;
-import android.support.v7.app.AppCompatActivity;
+import android.content.pm.PackageManager;
+import android.support.annotation.NonNull;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.NavigationView;
+import android.support.design.widget.Snackbar;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.app.Fragment;
import android.os.Bundle;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Toast;
+
+import com.pulkit4tech.privy.fragments.PrivyMapsFragment;
+import com.pulkit4tech.privy.utilities.NoLocationPermission;
-public class MainActivity extends AppCompatActivity {
+import static com.pulkit4tech.privy.constants.Constants.DEBUG;
+import static com.pulkit4tech.privy.constants.Constants.MY_PERMISSIONS_REQUEST_FINE_LOCATIONS;
+
+public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- if(savedInstanceState == null){
- // calling PrivyMapsActivity
- Intent intent = new Intent(this,PrivyMapsActivity.class);
- startActivity(intent);
+ if (savedInstanceState == null) {
+ setUpInfo();
}
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ }
+
+ private void setUpInfo() {
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
+ .setAction("Action", null).show();
+ }
+ });
+
+ DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+ ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
+ this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+ drawer.setDrawerListener(toggle);
+ toggle.syncState();
+
+ NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
+ navigationView.setNavigationItemSelectedListener(this);
+ navigationView.getMenu().getItem(0).setChecked(true);
+ loadMapFragment();
+ }
+
@Override
protected void onStop() {
super.onStop();
- this.finish();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ switch (requestCode) {
+ case MY_PERMISSIONS_REQUEST_FINE_LOCATIONS:
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ Toast.makeText(this, "Permission granted!!", Toast.LENGTH_SHORT).show();
+ loadFragment(new PrivyMapsFragment());
+ } else {
+ loadFragment(new NoLocationPermission());
+ Toast.makeText(this, "Please give permission for location", Toast.LENGTH_SHORT).show();
+ }
+ break;
+
+ default:
+ Log.d(DEBUG, "Some other request code: " + requestCode);
+ }
+ }
+
+ private void loadFragment(Fragment fragment) {
+ getSupportFragmentManager().beginTransaction().add(R.id.frame_container, fragment).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit();
+ }
+
+ @Override
+ public void onBackPressed() {
+ DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+ if (drawer.isDrawerOpen(GravityCompat.START)) {
+ drawer.closeDrawer(GravityCompat.START);
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.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;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ @SuppressWarnings("StatementWithEmptyBody")
+ @Override
+ public boolean onNavigationItemSelected(MenuItem item) {
+ // Handle navigation view item clicks here.
+ int id = item.getItemId();
+
+ if (id == R.id.nav_nearby_privy) {
+ loadMapFragment();
+ }
+ //TODO : Add other conditions
+
+ DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+ drawer.closeDrawer(GravityCompat.START);
+ return true;
+ }
+
+ private void loadMapFragment() {
+ if (!checkLocationEnabledPermission()) {
+ ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_FINE_LOCATIONS);
+ } else {
+ loadFragment(new PrivyMapsFragment());
+ }
+ }
+
+ private boolean checkLocationEnabledPermission() {
+ return ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
}
}
diff --git a/app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java b/app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java
similarity index 67%
rename from app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java
rename to app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java
index 0cd7cf8..2aff34d 100644
--- a/app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java
+++ b/app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java
@@ -1,13 +1,16 @@
-package com.pulkit4tech.privy;
+package com.pulkit4tech.privy.fragments;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v4.app.Fragment;
import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdate;
@@ -17,6 +20,7 @@
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
+import com.pulkit4tech.privy.R;
import com.pulkit4tech.privy.data.LocationData;
import com.pulkit4tech.privy.data.json.MarkerData;
import com.pulkit4tech.privy.utilities.LocationServices;
@@ -28,31 +32,33 @@
import static com.pulkit4tech.privy.constants.Constants.CAMERA_ANIMATION_DURATION;
import static com.pulkit4tech.privy.constants.Constants.MY_PERMISSIONS_REQUEST_FINE_LOCATIONS;
-public class PrivyMapsActivity extends ActionBarActivity implements OnMapReadyCallback {
+public class PrivyMapsFragment extends Fragment implements OnMapReadyCallback {
private GoogleMap mMap;
private Context mContext;
private CameraPosition MY_LOCATION_CAMERA_POS;
- private HashMap universalMarkers;
+ private HashMap universalMarkers;
// My location
private LocationData myLocationData;
+ @Nullable
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_privy_maps);
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- mContext = this;
+ super.onCreate(savedInstanceState);
+ View mView = inflater.inflate(R.layout.activity_privy_maps, container, false);
+ mContext = getActivity();
universalMarkers = new HashMap<>();
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
- SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
+ SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager()
.findFragmentById(R.id.privyMapActivity);
+ //if (mapFragment!=null)
mapFragment.getMapAsync(this);
+ return mView;
}
-
/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
@@ -71,13 +77,13 @@ public void onMapReady(GoogleMap googleMap) {
private void addMarkers() {
- if(myLocationData == null) {
+ if (myLocationData == null) {
LocationServices locationService = new LocationServices(mContext);
myLocationData = locationService.getCurrentLocation();
}
- if(myLocationData!=null)
- markNearbyPrivys(myLocationData.getLatLng());
+ if (myLocationData != null)
+ markNearbyPrivys(myLocationData.getLatLng());
// Add a test marker in Delhi and move the camera
// LatLng delhi = new LatLng(28.633011, 77.219373);
@@ -91,15 +97,15 @@ private void addMarkers() {
private void setUpMapInfo() {
- if(!checkLocationEnabledPermission()){
- ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},MY_PERMISSIONS_REQUEST_FINE_LOCATIONS);
- }else {
+ if (!checkLocationEnabledPermission()) {
+ ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_FINE_LOCATIONS);
+ } else {
+ mMap.setMyLocationEnabled(true);
setUpMyLocationMarker();
}
}
private void setUpMyLocationMarker() {
- mMap.setMyLocationEnabled(true);
mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
@@ -110,10 +116,10 @@ public boolean onMyLocationButtonClick() {
getMyCurrentLocation();
}
- private void getMyCurrentLocation(){
+ private void getMyCurrentLocation() {
LocationServices locationService = new LocationServices(mContext);
myLocationData = locationService.getCurrentLocation();
- if(myLocationData!=null) {
+ if (myLocationData != null) {
MY_LOCATION_CAMERA_POS = new CameraPosition.Builder()
.target(myLocationData.getLatLng())
@@ -134,45 +140,26 @@ private void moveCameraToMyLocation() {
changeCamera(CameraUpdateFactory.newCameraPosition(MY_LOCATION_CAMERA_POS), new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
- Toast.makeText(mContext,"Animation Finished",Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, "Animation Finished", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
- Toast.makeText(mContext,"Animation Canceled",Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, "Animation Canceled", Toast.LENGTH_SHORT).show();
}
});
}
- private void changeCamera(CameraUpdate update, GoogleMap.CancelableCallback callback){
- mMap.animateCamera(update,CAMERA_ANIMATION_DURATION,callback);
+ private void changeCamera(CameraUpdate update, GoogleMap.CancelableCallback callback) {
+ mMap.animateCamera(update, CAMERA_ANIMATION_DURATION, callback);
}
private boolean checkLocationEnabledPermission() {
- return ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-
- switch (requestCode){
- case MY_PERMISSIONS_REQUEST_FINE_LOCATIONS:
- if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
- setUpMyLocationMarker();
- }
- else {
- Toast.makeText(mContext,"Please give permission for location",Toast.LENGTH_SHORT).show();
- }
- break;
-
- default:
- Log.d(DEBUG,"Some other request code: " + requestCode);
- }
+ return ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
}
- private void markNearbyPrivys(LatLng myLocation){
- new RequestData(mContext,mMap,universalMarkers,myLocation).getMarkerData();
+ private void markNearbyPrivys(LatLng myLocation) {
+ new RequestData(mContext, mMap, universalMarkers, myLocation).getMarkerData();
}
}
diff --git a/app/src/main/java/com/pulkit4tech/privy/utilities/LocationServices.java b/app/src/main/java/com/pulkit4tech/privy/utilities/LocationServices.java
index 314790e..ba1d2f6 100644
--- a/app/src/main/java/com/pulkit4tech/privy/utilities/LocationServices.java
+++ b/app/src/main/java/com/pulkit4tech/privy/utilities/LocationServices.java
@@ -77,6 +77,6 @@ public void onProviderEnabled(String s) {
@Override
public void onProviderDisabled(String s) {
- Toast.makeText(mContext,"Provider Disabled",Toast.LENGTH_SHORT).show();
+ Toast.makeText(mContext, "Provider Disabled", Toast.LENGTH_SHORT).show();
}
}
diff --git a/app/src/main/java/com/pulkit4tech/privy/utilities/NoLocationPermission.java b/app/src/main/java/com/pulkit4tech/privy/utilities/NoLocationPermission.java
new file mode 100644
index 0000000..59dd1c2
--- /dev/null
+++ b/app/src/main/java/com/pulkit4tech/privy/utilities/NoLocationPermission.java
@@ -0,0 +1,19 @@
+package com.pulkit4tech.privy.utilities;
+
+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.pulkit4tech.privy.R;
+
+public class NoLocationPermission extends Fragment {
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.error_msg_layout, container, false);
+ }
+}
diff --git a/app/src/main/res/drawable/ic_menu_camera.xml b/app/src/main/res/drawable/ic_menu_camera.xml
new file mode 100644
index 0000000..0d9ea10
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_camera.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_gallery.xml b/app/src/main/res/drawable/ic_menu_gallery.xml
new file mode 100644
index 0000000..f6872c4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_gallery.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_manage.xml b/app/src/main/res/drawable/ic_menu_manage.xml
new file mode 100644
index 0000000..c1be60b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_manage.xml
@@ -0,0 +1,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_menu_send.xml b/app/src/main/res/drawable/ic_menu_send.xml
new file mode 100644
index 0000000..00c668c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_send.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_share.xml b/app/src/main/res/drawable/ic_menu_share.xml
new file mode 100644
index 0000000..a28fb9e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_share.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_slideshow.xml b/app/src/main/res/drawable/ic_menu_slideshow.xml
new file mode 100644
index 0000000..209aa64
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_slideshow.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml
new file mode 100644
index 0000000..458b4b0
--- /dev/null
+++ b/app/src/main/res/drawable/side_nav_bar.xml
@@ -0,0 +1,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index a6d6284..e5f67f4 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,15 +1,28 @@
-
-
-
+
+
+
-
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_privy_maps.xml b/app/src/main/res/layout/activity_privy_maps.xml
index f2c2859..9564e3e 100644
--- a/app/src/main/res/layout/activity_privy_maps.xml
+++ b/app/src/main/res/layout/activity_privy_maps.xml
@@ -5,4 +5,4 @@
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.pulkit4tech.privy.PrivyMapsActivity" />
+ tools:context="com.pulkit4tech.privy.fragments.PrivyMapsFragment" />
diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml
new file mode 100644
index 0000000..2f533bc
--- /dev/null
+++ b/app/src/main/res/layout/app_bar_main.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
new file mode 100644
index 0000000..5d4297d
--- /dev/null
+++ b/app/src/main/res/layout/content_main.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/error_msg_layout.xml b/app/src/main/res/layout/error_msg_layout.xml
new file mode 100644
index 0000000..03aeaae
--- /dev/null
+++ b/app/src/main/res/layout/error_msg_layout.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml
new file mode 100644
index 0000000..5eea9a6
--- /dev/null
+++ b/app/src/main/res/layout/nav_header_main.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml
new file mode 100644
index 0000000..a896f9d
--- /dev/null
+++ b/app/src/main/res/menu/activity_main_drawer.xml
@@ -0,0 +1,36 @@
+
+
diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml
new file mode 100644
index 0000000..a2411e3
--- /dev/null
+++ b/app/src/main/res/menu/main.xml
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 47c8224..336b8f7 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,5 +1,8 @@
16dp
+ 160dp
16dp
+ 16sp
+ 16sp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e7cd3e0..5f63ac2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,4 +6,7 @@
Some error while retrieving data!!
Sorry No privy\'s found. Please help community and add one
Sorry!! Network Error..
+ Open Navigation Drawer
+ Close Navigation Drawer
+ Settings
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 5885930..545b9c6 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -8,4 +8,13 @@
- @color/colorAccent
+
+
+
+
+
+