android_animation_PropertyValuesHolder.cpp revision 6e0ecb4eed5cd2e1f15766d7028467129974a12d
16e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase/* 26e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * Copyright (C) 2010 The Android Open Source Project 36e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * 46e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 56e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * you may not use this file except in compliance with the License. 66e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * You may obtain a copy of the License at 76e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * 86e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * http://www.apache.org/licenses/LICENSE-2.0 96e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * 106e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * Unless required by applicable law or agreed to in writing, software 116e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * distributed under the License is distributed on an "AS IS" BASIS, 126e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * See the License for the specific language governing permissions and 146e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase * limitations under the License. 156e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase */ 166e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 176e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase#include <stdio.h> 186e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase#include <assert.h> 196e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 206e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase#include "jni.h" 216e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase#include <android_runtime/AndroidRuntime.h> 226e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase#include <utils/misc.h> 236e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 246e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase// ---------------------------------------------------------------------------- 256e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 266e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haasenamespace android { 276e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 286e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase// ---------------------------------------------------------------------------- 296e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 306e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haaseconst char* const kClassPathName = "android/animation/PropertyValuesHolder"; 316e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 326e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haasestatic jmethodID android_animation_PropertyValuesHolder_getIntMethod( 336e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase JNIEnv* env, jclass pvhClass, jclass targetClass, jstring methodName) 346e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase{ 356e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase const char *nativeString = env->GetStringUTFChars(methodName, 0); 366e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase jmethodID mid = env->GetMethodID(targetClass, nativeString, "(I)V"); 376e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase env->ReleaseStringUTFChars(methodName, nativeString); 386e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase return mid; 396e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase} 406e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 416e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haasestatic jmethodID android_animation_PropertyValuesHolder_getFloatMethod( 426e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase JNIEnv* env, jclass pvhClass, jclass targetClass, jstring methodName) 436e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase{ 446e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase const char *nativeString = env->GetStringUTFChars(methodName, 0); 456e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase jmethodID mid = env->GetMethodID(targetClass, nativeString, "(F)V"); 466e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase env->ReleaseStringUTFChars(methodName, nativeString); 476e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase return mid; 486e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase} 496e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 506e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haasestatic void android_animation_PropertyValuesHolder_callIntMethod( 516e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase JNIEnv* env, jclass pvhObject, jobject target, jmethodID methodID, int arg) 526e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase{ 536e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase env->CallVoidMethod(target, methodID, arg); 546e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase} 556e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 566e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haasestatic void android_animation_PropertyValuesHolder_callFloatMethod( 576e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase JNIEnv* env, jclass pvhObject, jobject target, jmethodID methodID, float arg) 586e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase{ 596e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase env->CallVoidMethod(target, methodID, arg); 606e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase} 616e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 626e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haasestatic JNINativeMethod gMethods[] = { 636e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase { "nGetIntMethod", "(Ljava/lang/Class;Ljava/lang/String;)I", 646e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase (void*)android_animation_PropertyValuesHolder_getIntMethod }, 656e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase { "nGetFloatMethod", "(Ljava/lang/Class;Ljava/lang/String;)I", 666e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase (void*)android_animation_PropertyValuesHolder_getFloatMethod }, 676e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase { "nCallIntMethod", "(Ljava/lang/Object;II)V", 686e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase (void*)android_animation_PropertyValuesHolder_callIntMethod }, 696e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase { "nCallFloatMethod", "(Ljava/lang/Object;IF)V", 706e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase (void*)android_animation_PropertyValuesHolder_callFloatMethod } 716e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase}; 726e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 736e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haaseint register_android_animation_PropertyValuesHolder(JNIEnv* env) 746e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase{ 756e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase return AndroidRuntime::registerNativeMethods(env, 766e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase kClassPathName, gMethods, NELEM(gMethods)); 776e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase} 786e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase 796e0ecb4eed5cd2e1f15766d7028467129974a12dChet Haase}; 80