[ https://issues.apache.org/jira/browse/CB-6289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14386876#comment-14386876 ]
ASF GitHub Bot commented on CB-6289: ------------------------------------ Github user kant2002 commented on a diff in the pull request: https://github.com/apache/cordova-plugins/pull/15#discussion_r27401690 --- 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 -- Could you give me a bit of insight between the differences between `setKeepCallback(true)` and `setKeepCallback(false)`. Are there any benefit from having keeping callback? I don't closely follow design decisions in the Cordova lately, so cant make rational decision. > 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: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org