OSDN Git Service

original
[gb-231r1-is01/GB_2.3_IS01.git] / cts / tools / device-setup / TestDeviceSetup / src / android / tests / getinfo / DeviceInfoActivity.java
diff --git a/cts/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoActivity.java b/cts/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoActivity.java
new file mode 100644 (file)
index 0000000..e6c0e14
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.tests.getinfo;
+
+import android.app.Activity;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import java.util.Locale;
+
+
+/**
+ * Collect device information on target device.
+ */
+public class DeviceInfoActivity extends Activity {
+    private boolean isActivityFinished = false;
+    private Object sync = new Object();
+
+    /**
+     * Other classes can call this function to wait for this activity
+     * to finish. */
+    public void waitForAcitityToFinish() {
+        synchronized (sync) {
+            while (!isActivityFinished) {
+                try {
+                    sync.wait();
+                } catch (InterruptedException e) {
+                }
+            }
+        }
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        TextView view = new TextView(this);
+        view.setText("hello");
+        setContentView(view);
+        Configuration con = getResources().getConfiguration();
+        String touchScreen = null;
+        if (con.touchscreen == Configuration.TOUCHSCREEN_UNDEFINED) {
+            touchScreen = "undefined";
+        } else if (con.touchscreen == Configuration.TOUCHSCREEN_NOTOUCH) {
+            touchScreen = "notouch";
+        } else if (con.touchscreen == Configuration.TOUCHSCREEN_STYLUS) {
+            touchScreen = "stylus";
+        } else if (con.touchscreen == Configuration.TOUCHSCREEN_FINGER) {
+            touchScreen = "finger";
+        }
+        if (touchScreen != null) {
+            DeviceInfoInstrument.addResult(DeviceInfoInstrument.TOUCH_SCREEN,
+                    touchScreen);
+        }
+
+        String navigation = null;
+        if (con.navigation == Configuration.NAVIGATION_UNDEFINED) {
+            navigation = "undefined";
+        } else if (con.navigation == Configuration.NAVIGATION_NONAV) {
+            navigation = "nonav";
+        } else if (con.navigation == Configuration.NAVIGATION_DPAD) {
+            navigation = "drap";
+        } else if (con.navigation == Configuration.NAVIGATION_TRACKBALL) {
+            navigation = "trackball";
+        } else if (con.navigation == Configuration.NAVIGATION_WHEEL) {
+            navigation = "wheel";
+        }
+
+        if (navigation != null) {
+            DeviceInfoInstrument.addResult(DeviceInfoInstrument.NAVIGATION,
+                    navigation);
+        }
+
+        String keypad = null;
+        if (con.keyboard == Configuration.KEYBOARD_UNDEFINED) {
+            keypad = "undefined";
+        } else if (con.keyboard == Configuration.KEYBOARD_NOKEYS) {
+            keypad = "nokeys";
+        } else if (con.keyboard == Configuration.KEYBOARD_QWERTY) {
+            keypad = "qwerty";
+        } else if (con.keyboard == Configuration.KEYBOARD_12KEY) {
+            keypad = "12key";
+        }
+        if (keypad != null) {
+            DeviceInfoInstrument.addResult(DeviceInfoInstrument.KEYPAD, keypad);
+        }
+
+        String[] locales = getAssets().getLocales();
+        StringBuilder localeList = new StringBuilder();
+        for (String s : locales) {
+            if (s.length() == 0) { // default locale
+                localeList.append(new Locale("en", "US").toString());
+            } else {
+                localeList.append(s);
+            }
+            localeList.append(";");
+        }
+        DeviceInfoInstrument.addResult(DeviceInfoInstrument.LOCALES,
+                localeList.toString());
+
+        synchronized (sync) {
+            sync.notify();
+            isActivityFinished = true;
+        }
+    }
+}