[
https://issues.apache.org/jira/browse/CB-6289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14386739#comment-14386739
]
ASF GitHub Bot commented on CB-6289:
------------------------------------
Github user agrieve commented on a diff in the pull request:
https://github.com/apache/cordova-plugins/pull/15#discussion_r27393052
--- Diff: keyboard/src/android/Keyboard.java ---
@@ -0,0 +1,124 @@
+/*
+ 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.labs.keyboard;
+
+import org.apache.cordova.CallbackContext;
+import org.apache.cordova.CordovaInterface;
+import org.apache.cordova.CordovaPlugin;
+import org.apache.cordova.CordovaWebView;
+import org.apache.cordova.LOG;
+import org.json.JSONArray;
+import org.json.JSONException;
+
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Rect;
+import android.util.DisplayMetrics;
+import android.view.View;
+import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+import android.view.inputmethod.InputMethodManager;
+
+public class Keyboard extends CordovaPlugin {
+ /**
+ * Delta height of the visible area, to be treated as keyboard opening.
+ */
+ private final static int MinHeghtDelta = 100;
+ private static final String TAG = "Keyboard";
+
+ public void initialize(CordovaInterface cordova, CordovaWebView
webView) {
+ super.initialize(cordova, webView);
+
+ Activity activity = cordova.getActivity();
+ DisplayMetrics metrics = new DisplayMetrics();
+
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ final float density = metrics.density;
+
+ final CordovaWebView appView = webView;
+
+ final View rootView =
activity.getWindow().getDecorView().findViewById(android.R.id.content).getRootView();
+ OnGlobalLayoutListener list = new OnGlobalLayoutListener() {
+ int previousHeightDifference = 0;
+
+ @Override
+ public void onGlobalLayout() {
+ LOG.d(TAG, "Entering global layout notification");
+
+ Rect visibleRect = new Rect();
+ //r will be populated with the coordinates of your view
that area still visible.
+ rootView.getWindowVisibleDisplayFrame(visibleRect);
+
+ int visibleHeight = visibleRect.bottom - visibleRect.top;
+ int viewHeight = rootView.getRootView().getHeight();
+ int heightDifference = (int)((viewHeight - visibleHeight)
/ density);
+ if (heightDifference > MinHeghtDelta
+ && heightDifference != previousHeightDifference) {
+ // If the height of the view is bigger then
+ // visible area by delta, then assume that keyboard
+ // is shown on the screen.
+ appView.sendJavascript("Keyboard.isVisible = true; if
(Keyboard.onshow) Keyboard.onshow();");
--- End diff --
sendJavascript is deprecated. You should use PluginResults here with
`setKeepCallback(true)` (allows you to send native->JS at any time after the
initial call from JS)
> Keyboard for Android
> --------------------
>
> Key: CB-6289
> URL: https://issues.apache.org/jira/browse/CB-6289
> Project: Apache Cordova
> Issue Type: Improvement
> Components: Plugins
> Environment: Android
> Reporter: Andrey Kurdyumov
> Assignee: Andrey Kurdyumov
> Priority: Minor
> Labels: keyboard-plugin
>
> Please extend the Keyboard plugin to support Android platform.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]