Download File
Download Project
Settings
Line Wrap
Themes
default
ambiance
bespin
dracula
eclipse
material
mbo
mdn-like
neat
solarized dark
ttcn
zenburn
Gallery.java
/* * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.samples.apps.ourstreets.model; import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.NonNull; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLngBounds; import java.util.ArrayList; import java.util.List; public class Gallery implements Parcelable { private final String mTitle; private final String mDescription; private final String mGalleryId; private final List
mDetails; private final LatLng mLatLng; private LatLngBounds mLatLngBounds; public Gallery(String title, String description, String galleryId, LatLng latLng) { mTitle = title; mDescription = description; mGalleryId = galleryId; mLatLng = latLng; mDetails = new ArrayList<>(); } public void replaceDetails(List
details) { mDetails.clear(); if (details != null) { mDetails.addAll(details); } } public boolean hasDetails() { return mDetails.size() > 0; } public String getTitle() { return mTitle; } @NonNull public String getDescription() { return mDescription; } public String getGalleryId() { return mGalleryId; } public List
getDetails() { return mDetails; } public LatLng getPosition() { return mLatLng; } @NonNull public LatLngBounds getBounds() { if (null == mLatLngBounds) { mLatLngBounds = calculateBounds(); } return mLatLngBounds; } @NonNull private LatLngBounds calculateBounds() { LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder(); for (Detail location : mDetails) { boundsBuilder.include(location.getPosition()); } return boundsBuilder.build(); } protected Gallery(Parcel in) { mTitle = in.readString(); mDescription = in.readString(); mGalleryId = in.readString(); mLatLng = in.readParcelable(LatLng.class.getClassLoader()); mDetails = new ArrayList<>(); in.readTypedList(mDetails, Detail.CREATOR); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Gallery)) { return false; } Gallery gallery = (Gallery) o; if (!mTitle.equals(gallery.mTitle)) { return false; } if (!mDescription.equals(gallery.mDescription)) { return false; } if (!mGalleryId.equals(gallery.mGalleryId)) { return false; } if (mLatLngBounds != null ? !mLatLngBounds.equals(gallery.mLatLngBounds) : gallery.mLatLngBounds != null) { return false; } if (mDetails != null ? !mDetails.equals(gallery.mDetails) : gallery.mDetails != null) { return false; } return !(mLatLng != null ? !mLatLng.equals(gallery.mLatLng) : gallery.mLatLng != null); } @Override public int hashCode() { int result = mTitle.hashCode(); result = 31 * result + mDescription.hashCode(); result = 31 * result + mGalleryId.hashCode(); result = 31 * result + (mLatLngBounds != null ? mLatLngBounds.hashCode() : 0); result = 31 * result + (mDetails != null ? mDetails.hashCode() : 0); result = 31 * result + (mLatLng != null ? mLatLng.hashCode() : 0); return result; } @Override public String toString() { return mGalleryId; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString(mTitle); dest.writeString(mDescription); dest.writeString(mGalleryId); dest.writeParcelable(mLatLng, flags); dest.writeTypedList(mDetails); } public static final Creator
CREATOR = new Creator
() { @Override public Gallery createFromParcel(Parcel in) { return new Gallery(in); } @Override public Gallery[] newArray(int size) { return new Gallery[size]; } }; }