package com.badlogic.gdx.backends.android; import java.lang.reflect.Constructor; import android.content.Context; import com.badlogic.gdx.Application; /** * Class that instantiates AndroidInput or AndroidInputThreePlus depending on the SDK level, via reflection. * * @author mzechner * */ public class AndroidInputFactory { public static AndroidInput newAndroidInput(Application activity, Context context, Object view, AndroidApplicationConfiguration config) { try { Class<?> clazz = null; AndroidInput input = null; int sdkVersion = Integer.parseInt(android.os.Build.VERSION.SDK); if (sdkVersion >= 12) { clazz = Class.forName("com.badlogic.gdx.backends.android.AndroidInputThreePlus"); } else { clazz = Class.forName("com.badlogic.gdx.backends.android.AndroidInput"); } Constructor<?> constructor = clazz.getConstructor(Application.class, Context.class, Object.class, AndroidApplicationConfiguration.class); input = (AndroidInput) constructor.newInstance(activity, context, view, config); return input; } catch (Exception e) { throw new RuntimeException("Couldn't construct AndroidInput, this should never happen", e); } } }