summaryrefslogtreecommitdiff
path: root/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/LangServiceHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/LangServiceHandler.java')
-rw-r--r--src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/LangServiceHandler.java143
1 files changed, 143 insertions, 0 deletions
diff --git a/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/LangServiceHandler.java b/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/LangServiceHandler.java
new file mode 100644
index 0000000..c5b60b1
--- /dev/null
+++ b/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/LangServiceHandler.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2012 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 com.motorola.studio.android.devices.services.lang;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.sequoyah.device.framework.model.IInstance;
+import org.eclipse.sequoyah.device.framework.model.handler.IServiceHandler;
+import org.eclipse.sequoyah.device.framework.model.handler.ServiceHandler;
+import org.eclipse.ui.PlatformUI;
+
+import com.motorola.studio.android.adt.DDMSUtils;
+import com.motorola.studio.android.adt.ISerialNumbered;
+import com.motorola.studio.android.common.log.StudioLogger;
+import com.motorola.studio.android.devices.services.DeviceServicesPlugin;
+import com.motorola.studio.android.devices.services.lang.model.LangWizard;
+
+/**
+ * This class plugs the change language procedure to a TmL service
+ */
+public class LangServiceHandler extends ServiceHandler
+{
+ private String languageID;
+
+ private String countryID;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.sequoyah.device.framework.model.handler.ServiceHandler#
+ * newInstance()
+ */
+ @Override
+ public IServiceHandler newInstance()
+ {
+ return new LangServiceHandler();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.sequoyah.device.framework.model.handler.ServiceHandler#runService
+ * (org.eclipse.sequoyah.device.framework.model.IInstance, java.util.Map,
+ * org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public IStatus runService(IInstance instance, Map<Object, Object> arguments,
+ IProgressMonitor monitor)
+ {
+ IStatus status = Status.OK_STATUS;
+
+ final String serialNumber = ((ISerialNumbered) instance).getSerialNumber();
+
+ DDMSUtils.changeLanguage(serialNumber, languageID, countryID);
+
+ // Collecting usage data for statistical purpose
+ try
+ {
+ StudioLogger.collectUsageData(StudioLogger.WHAT_EMULATOR_LANGUAGE,
+ StudioLogger.KIND_EMULATOR, languageID, DeviceServicesPlugin.PLUGIN_ID,
+ DeviceServicesPlugin.getDefault().getBundle().getVersion().toString());
+ }
+ catch (Throwable e)
+ {
+ //Do nothing, but error on the log should never prevent app from working
+ }
+
+ return status;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.sequoyah.device.framework.model.handler.ServiceHandler#
+ * updatingService(org.eclipse.sequoyah.device.framework.model.IInstance,
+ * org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public IStatus updatingService(IInstance instance, IProgressMonitor monitor)
+ {
+ StudioLogger.info("Updating change language service");
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public IStatus singleInit(final List<IInstance> instances)
+ {
+ PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ LangWizard wizard = new LangWizard();
+ WizardDialog dialog =
+ new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+ .getShell(), wizard);
+ dialog.setPageSize(250, 75);
+
+ int ret = dialog.open();
+
+ if (ret == Dialog.OK)
+ {
+ languageID = wizard.getlanguageId();
+ countryID = wizard.getcountryId();
+ }
+ else
+ {
+ languageID = null;
+ countryID = null;
+ }
+
+ }
+ catch (Exception e)
+ {
+ StudioLogger.error("Change Language TmL Service: could not open UI");
+ }
+ }
+ });
+
+ return super.singleInit(instances);
+ }
+}