/* Copyright (c) 2012 Google Inc. * * 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.github.jberkel.pay.me; import android.content.res.Resources; /** * Represents the result of an in-app billing operation. * A result is composed of a response code (an integer) and possibly a * message (String). You can get those by calling * {@link #getResponse} and {@link #getMessage()}, respectively. You * can also inquire whether a result is a success or a failure by * calling {@link #isSuccess()} and {@link #isFailure()}. */ public class IabResult { private final Response mResponse; private final String mMessage; public IabResult(int code, String message) { this(Response.fromCode(code), message); } public IabResult(Response response) { this(response, null); } public IabResult(Response response, String message) { mResponse = response; if (message == null || message.trim().length() == 0) { mMessage = response.description; } else { mMessage = message + " (response: " + response.description + ")"; } } public Response getResponse() { return mResponse; } /** * @param resources android resources * @return a localized description of the result */ public String getLocalizedMessage(Resources resources) { return resources.getString(mResponse.stringId); } public String getMessage() { return mMessage; } public boolean isSuccess() { return mResponse == Response.OK; } public boolean isFailure() { return !isSuccess(); } public String toString() { return "IabResult: " + getMessage(); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; IabResult iabResult = (IabResult) o; return mResponse == iabResult.mResponse; } @Override public int hashCode() { return mResponse.hashCode(); } }