1 /******************************************************************************* 2 * Copyright 2011 See AUTHORS file. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 ******************************************************************************/ 16 17 package com.badlogic.gdx.backends.android; 18 19 import java.lang.reflect.Constructor; 20 21 import android.content.Context; 22 23 import com.badlogic.gdx.Application; 24 25 /** Class that instantiates AndroidInput or AndroidInputThreePlus depending on the SDK level, via reflection. 26 * @author mzechner */ 27 public class AndroidInputFactory { newAndroidInput(Application activity, Context context, Object view, AndroidApplicationConfiguration config)28 public static AndroidInput newAndroidInput (Application activity, Context context, Object view, 29 AndroidApplicationConfiguration config) { 30 try { 31 Class<?> clazz = null; 32 AndroidInput input = null; 33 34 int sdkVersion = android.os.Build.VERSION.SDK_INT; 35 if (sdkVersion >= 12) { 36 clazz = Class.forName("com.badlogic.gdx.backends.android.AndroidInputThreePlus"); 37 } else { 38 clazz = Class.forName("com.badlogic.gdx.backends.android.AndroidInput"); 39 } 40 Constructor<?> constructor = clazz.getConstructor(Application.class, Context.class, Object.class, 41 AndroidApplicationConfiguration.class); 42 input = (AndroidInput)constructor.newInstance(activity, context, view, config); 43 return input; 44 } catch (Exception e) { 45 throw new RuntimeException("Couldn't construct AndroidInput, this should never happen", e); 46 } 47 } 48 } 49