Back to project page gameup-android-sdk.
The source code is released under:
Apache License
If you think the Android project gameup-android-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright 2014-2015 GameUp//from w w w. j a v a2 s .c o m * * 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 io.gameup.android.entity; import com.google.gson.annotations.SerializedName; import lombok.AllArgsConstructor; import lombok.Data; /** * Represents an achievement's data, also contains gamer progress if applicable. */ @Data @AllArgsConstructor(suppressConstructorProperties = true) public class Achievement { /** Game-unique public identifier for this achievement. */ private final String publicId; /** Achievement name. */ private final String name; /** Achievement description or instructions. */ private final String description; /** The type of the achievement, referring to gamer interaction model. */ private final Type type; /** * Number of points that will be awarded for completing this achievement, * or have already been awarded if it is already complete. */ private final int points; /** The state of this achievement, referring to display logic. */ private final State state; /** * Required number of actions to complete this achievement, subject to game * logic. For "normal"-type achievements this will always be 1. */ private final int requiredCount; /** * Current gamer progress towards the required count of this achievement, * subject to the same game logic as the requiredCount field. */ private final int count; /** * UTC timestamp in milliseconds when the gamer last made any progress * towards this achievement, or 0 if no progress ever. */ private final long progressAt; /** * UTC timestamp in milliseconds when the gamer completed this achievement, * or 0 if it has not yet been completed. */ private final long completedAt; /** * @return true if the gamer has completed this achievement, * false otherwise. */ public boolean isCompleted() { return completedAt > 0l; } /** * Achievement Type, referring to how gamer interaction must occur. */ public static enum Type { /** Standard earned/unearned achievement. */ @SerializedName("normal") NORMAL, /** * Incremental achievement, requiring some number of actions before it * is awarded, subject to game logic. */ @SerializedName("incremental") INCREMENTAL } /** * Achievement State, referring to how display should be handled. */ public static enum State { /** The achievement and all its details are available to the gamer. */ @SerializedName("visible") VISIBLE, /** * The name and description are replaced with "???", unless the gamer * has completed the achievement. */ @SerializedName("secret") SECRET, /** * The achievement does not appear at all, unless the gamer has * completed the achievement. */ @SerializedName("hidden") HIDDEN } }