//
// Copyright (C) 2014 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.
//
namespace GooglePlayGames.OurUtils
{
using System;
using UnityEngine;
public static class Misc
{
public static bool BuffersAreIdentical(byte[] a, byte[] b)
{
if (a == b)
{
// not only identical but the very same!
return true;
}
if (a == null || b == null)
{
// one of them is null, the other one isn't
return false;
}
if (a.Length != b.Length)
{
return false;
}
for (int i = 0; i < a.Length; i++)
{
if (a[i] != b[i])
{
return false;
}
}
return true;
}
public static byte[] GetSubsetBytes(byte[] array, int offset, int length)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
if (offset < 0 || offset >= array.Length)
{
throw new ArgumentOutOfRangeException("offset");
}
if (length < 0 || (array.Length - offset) < length)
{
throw new ArgumentOutOfRangeException("length");
}
if (offset == 0 && length == array.Length)
{
return array;
}
byte[] piece = new byte[length];
Array.Copy(array, offset, piece, 0, length);
return piece;
}
public static T CheckNotNull(T value)
{
if (value == null)
{
throw new ArgumentNullException();
}
return value;
}
public static T CheckNotNull(T value, string paramName)
{
if (value == null)
{
throw new ArgumentNullException(paramName);
}
return value;
}
public static bool IsApiException(AndroidJavaObject exception) {
var exceptionClassName = exception.Call("getClass")
.Call("getName");
return exceptionClassName == "com.google.android.gms.common.api.ApiException";
}
}
}