Skip to content

Commit

Permalink
#29 : Showing Details of Privy
Browse files Browse the repository at this point in the history
  • Loading branch information
pulkit4tech committed Jan 14, 2017
1 parent 8d0c1f7 commit 9fcb3e6
Show file tree
Hide file tree
Showing 15 changed files with 473 additions and 27 deletions.
12 changes: 12 additions & 0 deletions .idea/libraries/cardview_v7_25_0_1.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ dependencies {
compile 'com.android.volley:volley:1.0.0'
compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:cardview-v7:25.0.1'
}

apply plugin: 'com.google.gms.google-services'
8 changes: 5 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@
<uses-permission android:name="android.permission.INTERNET" />

<application
android:name="android.support.multidex.MultiDexApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme.NoActionBar"
android:name="android.support.multidex.MultiDexApplication">
<activity android:name=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand All @@ -37,6 +38,7 @@
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />

<activity android:name=".PrivyDetailsActivity"></activity>
</application>

</manifest>
9 changes: 5 additions & 4 deletions app/src/main/java/com/pulkit4tech/privy/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ protected void onCreate(Bundle savedInstanceState) {
if (savedInstanceState == null) {
setUpInfo();
}

loadMapFragment();
}

@Override
Expand All @@ -95,9 +97,6 @@ private void setUpInfo() {
if (checkIfLoggedIn()) {
fab.hide();
}

navigationView.getMenu().getItem(0).setChecked(true);
loadMapFragment();
}

private void setUpNavigationDrawer() {
Expand Down Expand Up @@ -300,7 +299,8 @@ private void closeDrawer() {
@Override
protected void onPostResume() {
super.onPostResume();
loadMapFragment();
// if(checkLocationEnabledPermission())
// loadMapFragment();
}

@Override
Expand Down Expand Up @@ -418,6 +418,7 @@ private void loadAddNewPrivyActivity() {
}

private void loadMapFragment() {
navigationView.getMenu().getItem(0).setChecked(true);
if (!checkLocationEnabledPermission()) {
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_FINE_LOCATIONS);
} else {
Expand Down
138 changes: 138 additions & 0 deletions app/src/main/java/com/pulkit4tech/privy/PrivyDetailsActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
package com.pulkit4tech.privy;

import android.content.Intent;
import android.net.Uri;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.pulkit4tech.privy.data.json.LocationData;
import com.pulkit4tech.privy.data.json.MarkerData;

import static android.content.Intent.ACTION_VIEW;
import static com.pulkit4tech.privy.constants.Constants.DEBUG;

public class PrivyDetailsActivity extends AppCompatActivity {

private MarkerData data;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_privy_details);
setToolBar();
setFab();

data = retrieveData();
Log.d(DEBUG, data.toString());
if (data != null) {
setData();
}

}

private void setFab() {
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getDirection();
}
});
}

private void getDirection() {
try {
Intent intent = new Intent(ACTION_VIEW,
Uri.parse(String.format("http://maps.google.com/maps?daddr=%f,%f", data.getGeometry().getLocation().getLat(), data.getGeometry().getLocation().getLng())));
startActivity(intent);
} catch (Exception e) {
Log.d(DEBUG, e.toString());
snackMsg(getString(R.string.error_processing_request));
}
}

private void setToolBar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Privy Details");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}

private void setData() {
TextView name = (TextView) findViewById(R.id.privy_details_name);
TextView geometry = (TextView) findViewById(R.id.privy_details_geo);
TextView open_now = (TextView) findViewById(R.id.privy_details_opening);
TextView vicinity = (TextView) findViewById(R.id.privy_details_vicinity);
TextView ratings = (TextView) findViewById(R.id.privy_details_ratings);

name.setText(checkNameValue(data.getName()));
geometry.setText(checkGeoValue(data.getGeometry()));
open_now.setText(checkOpening(data.getOpeninghours()));
vicinity.setText(checkVicinityValue(data.getVicinity()));
ratings.setText(checkRatingValue(data.getRating()));
}

private String checkNameValue(String val) {
if (val == null)
return "N/A";
return val;
}

private String checkVicinityValue(String vicinity) {
if (vicinity == null)
return "N/A";

return vicinity;
}

private String checkRatingValue(float rating) {
if (rating == 0)
return "N/A";

return String.format("%.2f", rating);
}

private String checkOpening(MarkerData.OpeningHours openingHours) {
if (openingHours == null)
return "N/A";

return openingHours.isOpennow() ? "YES" : "NO";
}

private String checkGeoValue(LocationData geo) {
if (geo == null)
return "N/A";
return "Lat : " + String.format("%.2f", geo.getLocation().getLat()) + " Lng : " + String.format("%.2f", geo.getLocation().getLng());
}

private MarkerData retrieveData() {
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
return (MarkerData) getIntent().getSerializableExtra(getString(R.string.marker_data));
}
return null;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle arrow click here
if (item.getItemId() == android.R.id.home) {
finish(); // close this activity and return to preview activity (if there is any)
}

return super.onOptionsItemSelected(item);
}

private void snackMsg(String msg) {
Snackbar.make((RelativeLayout) findViewById(R.id.relative_layout_privy_detail), msg, Snackbar.LENGTH_LONG).show();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.pulkit4tech.privy.data.json;

public class Location {
import java.io.Serializable;

public class Location implements Serializable{
private double lat;
private double lng;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.pulkit4tech.privy.data.json;

public class LocationData {
import java.io.Serializable;

public class LocationData implements Serializable {
private Location location;

public void setLocation(Location location) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

import com.google.gson.annotations.SerializedName;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class MarkerData {
public class MarkerData implements Serializable {
private LocationData geometry;

@SerializedName("icon")
Expand All @@ -15,6 +17,24 @@ public class MarkerData {
private String scope;
private List<String> types;
private String vicinity;
private OpeningHours opening_hours;
private float rating;

public float getRating() {
return rating;
}

public void setRating(float rating) {
this.rating = rating;
}

public OpeningHours getOpeninghours() {
return opening_hours;
}

public void setOpeninghours(OpeningHours opening_hours) {
this.opening_hours = opening_hours;
}

public LocationData getGeometry() {
return geometry;
Expand Down Expand Up @@ -91,6 +111,37 @@ public String toString() {
", scope='" + scope + '\'' +
", types=" + types +
", vicinity='" + vicinity + '\'' +
", opening_hours=" + opening_hours +
", rating=" + rating +
'}';
}

public class OpeningHours implements Serializable{
private boolean open_now;
private ArrayList<String> weekday_text;

public boolean isOpennow() {
return open_now;
}

public void setOpennow(boolean open_now) {
this.open_now = open_now;
}

public ArrayList<String> getWeekdaytext() {
return weekday_text;
}

public void setWeekdaytext(ArrayList<String> weekday_text) {
this.weekday_text = weekday_text;
}

@Override
public String toString() {
return "OpeningHours{" +
"open_now=" + open_now +
", weekday_text=" + weekday_text +
'}';
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,10 @@ private boolean checkLocationEnabledPermission() {
}

private void markNearbyPrivys(LatLng myLocation) {
new NetworkRequest(mContext, mMap, universalMarkers, myLocation).getMarkerData();
new NetworkRequest(getActivity(), mMap, universalMarkers, myLocation).getMarkerData();
}

public void snackMsg(String msg) {
private void snackMsg(String msg) {
Snackbar.make((CoordinatorLayout) getActivity().findViewById(R.id.coordinator_layout), msg, Snackbar.LENGTH_LONG).show();
}
}
Loading

0 comments on commit 9fcb3e6

Please sign in to comment.