Return-Path: X-Original-To: apmail-cordova-commits-archive@www.apache.org Delivered-To: apmail-cordova-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4367BF7EE for ; Tue, 30 Apr 2013 21:35:21 +0000 (UTC) Received: (qmail 26166 invoked by uid 500); 30 Apr 2013 21:35:19 -0000 Delivered-To: apmail-cordova-commits-archive@cordova.apache.org Received: (qmail 26077 invoked by uid 500); 30 Apr 2013 21:35:19 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: callback-dev@cordova.apache.org Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 25353 invoked by uid 99); 30 Apr 2013 21:35:18 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Apr 2013 21:35:18 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 88244884999; Tue, 30 Apr 2013 21:35:18 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: steven@apache.org To: commits@cordova.apache.org Date: Tue, 30 Apr 2013 21:35:39 -0000 Message-Id: <275049de1294456d8c93b2034a22a846@git.apache.org> In-Reply-To: <0ac98d5cd85a4468b21219edb0ba5f71@git.apache.org> References: <0ac98d5cd85a4468b21219edb0ba5f71@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [23/53] android commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cordova-android into gutting Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cordova-android into gutting Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/4f248cba Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/4f248cba Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/4f248cba Branch: refs/heads/3.0.0 Commit: 4f248cba5e8cb80acb570d8ae94da71ec5518622 Parents: 4cbe4b8 b42c918 Author: Joe Bowser Authored: Tue Apr 2 10:59:11 2013 -0700 Committer: Joe Bowser Committed: Tue Apr 2 10:59:11 2013 -0700 ---------------------------------------------------------------------- VERSION | 2 +- bin/templates/project/assets/www/index.html | 4 ++-- framework/assets/js/cordova.android.js | 4 ++-- framework/assets/www/index.html | 2 +- framework/src/org/apache/cordova/core/Device.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-android/blob/4f248cba/framework/src/org/apache/cordova/core/Device.java ---------------------------------------------------------------------- diff --cc framework/src/org/apache/cordova/core/Device.java index 3778b22,0000000..70a4f57 mode 100644,000000..100644 --- a/framework/src/org/apache/cordova/core/Device.java +++ b/framework/src/org/apache/cordova/core/Device.java @@@ -1,201 -1,0 +1,201 @@@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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 org.apache.cordova.core; + +import java.util.TimeZone; + +import org.apache.cordova.CordovaWebView; +import org.apache.cordova.api.CallbackContext; +import org.apache.cordova.api.CordovaPlugin; +import org.apache.cordova.api.LOG; +import org.apache.cordova.api.CordovaInterface; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.provider.Settings; +import android.telephony.TelephonyManager; + +public class Device extends CordovaPlugin { + public static final String TAG = "Device"; + - public static String cordovaVersion = "2.6.0rc1"; // Cordova version ++ public static String cordovaVersion = "2.6.0"; // Cordova version + public static String platform = "Android"; // Device OS + public static String uuid; // Device UUID + + BroadcastReceiver telephonyReceiver = null; + + /** + * Constructor. + */ + public Device() { + } + + /** + * Sets the context of the Command. This can then be used to do things like + * get file paths associated with the Activity. + * + * @param cordova The context of the main Activity. + * @param webView The CordovaWebView Cordova is running in. + */ + public void initialize(CordovaInterface cordova, CordovaWebView webView) { + super.initialize(cordova, webView); + Device.uuid = getUuid(); + this.initTelephonyReceiver(); + } + + /** + * Executes the request and returns PluginResult. + * + * @param action The action to execute. + * @param args JSONArry of arguments for the plugin. + * @param callbackContext The callback id used when calling back into JavaScript. + * @return True if the action was valid, false if not. + */ + public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { + if (action.equals("getDeviceInfo")) { + JSONObject r = new JSONObject(); + r.put("uuid", Device.uuid); + r.put("version", this.getOSVersion()); + r.put("platform", Device.platform); + r.put("name", this.getProductName()); + r.put("cordova", Device.cordovaVersion); + r.put("model", this.getModel()); + callbackContext.success(r); + } + else { + return false; + } + return true; + } + + /** + * Unregister receiver. + */ + public void onDestroy() { + this.cordova.getActivity().unregisterReceiver(this.telephonyReceiver); + } + + //-------------------------------------------------------------------------- + // LOCAL METHODS + //-------------------------------------------------------------------------- + + /** + * Listen for telephony events: RINGING, OFFHOOK and IDLE + * Send these events to all plugins using + * DroidGap.onMessage("telephone", "ringing" | "offhook" | "idle") + */ + private void initTelephonyReceiver() { + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED); + //final CordovaInterface mycordova = this.cordova; + this.telephonyReceiver = new BroadcastReceiver() { + + @Override + public void onReceive(Context context, Intent intent) { + + // If state has changed + if ((intent != null) && intent.getAction().equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED)) { + if (intent.hasExtra(TelephonyManager.EXTRA_STATE)) { + String extraData = intent.getStringExtra(TelephonyManager.EXTRA_STATE); + if (extraData.equals(TelephonyManager.EXTRA_STATE_RINGING)) { + LOG.i(TAG, "Telephone RINGING"); + webView.postMessage("telephone", "ringing"); + } + else if (extraData.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) { + LOG.i(TAG, "Telephone OFFHOOK"); + webView.postMessage("telephone", "offhook"); + } + else if (extraData.equals(TelephonyManager.EXTRA_STATE_IDLE)) { + LOG.i(TAG, "Telephone IDLE"); + webView.postMessage("telephone", "idle"); + } + } + } + } + }; + + // Register the receiver + this.cordova.getActivity().registerReceiver(this.telephonyReceiver, intentFilter); + } + + /** + * Get the OS name. + * + * @return + */ + public String getPlatform() { + return Device.platform; + } + + /** + * Get the device's Universally Unique Identifier (UUID). + * + * @return + */ + public String getUuid() { + String uuid = Settings.Secure.getString(this.cordova.getActivity().getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); + return uuid; + } + + /** + * Get the Cordova version. + * + * @return + */ + public String getCordovaVersion() { + return Device.cordovaVersion; + } + + public String getModel() { + String model = android.os.Build.MODEL; + return model; + } + + public String getProductName() { + String productname = android.os.Build.PRODUCT; + return productname; + } + + /** + * Get the OS version. + * + * @return + */ + public String getOSVersion() { + String osversion = android.os.Build.VERSION.RELEASE; + return osversion; + } + + public String getSDKVersion() { + @SuppressWarnings("deprecation") + String sdkversion = android.os.Build.VERSION.SDK; + return sdkversion; + } + + public String getTimeZoneID() { + TimeZone tz = TimeZone.getDefault(); + return (tz.getID()); + } + +}