• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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