| Index: remoting/android/java/src/org/chromium/chromoting/Desktop.java
|
| diff --git a/remoting/android/java/src/org/chromium/chromoting/Desktop.java b/remoting/android/java/src/org/chromium/chromoting/Desktop.java
|
| index 32f5ab7b3bc11b16b5d1b8772f07bb8a03747ffe..ab4058a07f7026a862ebaee6e5584f6892b5d033 100644
|
| --- a/remoting/android/java/src/org/chromium/chromoting/Desktop.java
|
| +++ b/remoting/android/java/src/org/chromium/chromoting/Desktop.java
|
| @@ -31,6 +31,7 @@ import android.view.inputmethod.InputMethodManager;
|
| import org.chromium.chromoting.cardboard.DesktopActivity;
|
| import org.chromium.chromoting.help.HelpContext;
|
| import org.chromium.chromoting.help.HelpSingleton;
|
| +import org.chromium.chromoting.jni.Client;
|
| import org.chromium.chromoting.jni.JniInterface;
|
|
|
| import java.util.List;
|
| @@ -69,6 +70,8 @@ public class Desktop
|
| /** The surface that displays the remote host's desktop feed. */
|
| private DesktopView mRemoteHostDesktop;
|
|
|
| + private Client mClient;
|
| +
|
| /** Set of pressed keys for which we've sent TextEvent. */
|
| private Set<Integer> mPressedTextKeys = new TreeSet<Integer>();
|
|
|
| @@ -99,11 +102,14 @@ public class Desktop
|
| super.onCreate(savedInstanceState);
|
| setContentView(R.layout.desktop);
|
|
|
| + mClient = JniInterface.getClient();
|
| +
|
| mToolbar = (Toolbar) findViewById(R.id.toolbar);
|
| setSupportActionBar(mToolbar);
|
|
|
| mRemoteHostDesktop = (DesktopView) findViewById(R.id.desktop_view);
|
| mRemoteHostDesktop.setDesktop(this);
|
| + mRemoteHostDesktop.setClient(mClient);
|
| mSwitchToCardboardDesktopActivity = false;
|
|
|
| getSupportActionBar().setDisplayShowTitleEnabled(false);
|
| @@ -121,7 +127,7 @@ public class Desktop
|
| View decorView = getWindow().getDecorView();
|
| decorView.setOnSystemUiVisibilityChangeListener(this);
|
|
|
| - mActivityLifecycleListener = CapabilityManager.getInstance().onActivityAcceptingListener(
|
| + mActivityLifecycleListener = mClient.getCapabilityManager().onActivityAcceptingListener(
|
| this, Capabilities.CAST_CAPABILITY);
|
| mActivityLifecycleListener.onActivityCreated(this, savedInstanceState);
|
|
|
| @@ -160,9 +166,9 @@ public class Desktop
|
| protected void onStart() {
|
| super.onStart();
|
| mActivityLifecycleListener.onActivityStarted(this);
|
| - JniInterface.enableVideoChannel(true);
|
| + mClient.enableVideoChannel(true);
|
| mRemoteHostDesktop.attachRedrawCallback();
|
| - CapabilityManager.getInstance().addListener(this);
|
| + mClient.getCapabilityManager().addListener(this);
|
| }
|
|
|
| @Override
|
| @@ -170,7 +176,7 @@ public class Desktop
|
| if (isFinishing()) mActivityLifecycleListener.onActivityPaused(this);
|
| super.onPause();
|
| if (!mSwitchToCardboardDesktopActivity) {
|
| - JniInterface.enableVideoChannel(false);
|
| + mClient.enableVideoChannel(false);
|
| }
|
| stopActionBarAutoHideTimer();
|
| }
|
| @@ -179,19 +185,19 @@ public class Desktop
|
| public void onResume() {
|
| super.onResume();
|
| mActivityLifecycleListener.onActivityResumed(this);
|
| - JniInterface.enableVideoChannel(true);
|
| + mClient.enableVideoChannel(true);
|
| startActionBarAutoHideTimer();
|
| }
|
|
|
| @Override
|
| protected void onStop() {
|
| - CapabilityManager.getInstance().removeListener(this);
|
| + mClient.getCapabilityManager().removeListener(this);
|
| mActivityLifecycleListener.onActivityStopped(this);
|
| super.onStop();
|
| if (mSwitchToCardboardDesktopActivity) {
|
| mSwitchToCardboardDesktopActivity = false;
|
| } else {
|
| - JniInterface.enableVideoChannel(false);
|
| + mClient.enableVideoChannel(false);
|
| }
|
| }
|
|
|
| @@ -487,7 +493,7 @@ public class Desktop
|
| return true;
|
| }
|
| if (id == R.id.actionbar_disconnect || id == android.R.id.home) {
|
| - JniInterface.disconnectFromHost();
|
| + JniInterface.destroyClient();
|
| return true;
|
| }
|
| if (id == R.id.actionbar_send_ctrl_alt_del) {
|
| @@ -497,10 +503,10 @@ public class Desktop
|
| KeyEvent.KEYCODE_FORWARD_DEL,
|
| };
|
| for (int key : keys) {
|
| - JniInterface.sendKeyEvent(0, key, true);
|
| + mClient.sendKeyEvent(0, key, true);
|
| }
|
| for (int key : keys) {
|
| - JniInterface.sendKeyEvent(0, key, false);
|
| + mClient.sendKeyEvent(0, key, false);
|
| }
|
| return true;
|
| }
|
| @@ -593,7 +599,7 @@ public class Desktop
|
|
|
| // Dispatch the back button to the system to handle navigation
|
| if (keyCode == KeyEvent.KEYCODE_BACK) {
|
| - JniInterface.disconnectFromHost();
|
| + JniInterface.destroyClient();
|
| return super.dispatchKeyEvent(event);
|
| }
|
|
|
| @@ -605,7 +611,7 @@ public class Desktop
|
| // the keyboard layout selected on the client doesn't affect the key
|
| // codes sent to the host.
|
| if (event.getDeviceId() != KeyCharacterMap.VIRTUAL_KEYBOARD) {
|
| - return JniInterface.sendKeyEvent(event.getScanCode(), 0, pressed);
|
| + return mClient.sendKeyEvent(event.getScanCode(), 0, pressed);
|
| }
|
|
|
| // Events received from software keyboards generate TextEvent in two
|
| @@ -616,7 +622,7 @@ public class Desktop
|
| // correspond to what user sees on the screen, while physical keyboard
|
| // acts as if it is connected to the remote host.
|
| if (event.getAction() == KeyEvent.ACTION_MULTIPLE) {
|
| - JniInterface.sendTextEvent(event.getCharacters());
|
| + mClient.sendTextEvent(event.getCharacters());
|
| return true;
|
| }
|
|
|
| @@ -630,7 +636,7 @@ public class Desktop
|
| if (pressed && unicode != 0 && no_modifiers) {
|
| mPressedTextKeys.add(keyCode);
|
| int[] codePoints = { unicode };
|
| - JniInterface.sendTextEvent(new String(codePoints, 0, 1));
|
| + mClient.sendTextEvent(new String(codePoints, 0, 1));
|
| return true;
|
| }
|
|
|
| @@ -645,28 +651,28 @@ public class Desktop
|
| // third-party keyboards that may still generate these events. See
|
| // https://source.android.com/devices/input/keyboard-devices.html#legacy-unsupported-keys
|
| case KeyEvent.KEYCODE_AT:
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_2, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_2, pressed);
|
| return true;
|
|
|
| case KeyEvent.KEYCODE_POUND:
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_3, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_3, pressed);
|
| return true;
|
|
|
| case KeyEvent.KEYCODE_STAR:
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_8, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_8, pressed);
|
| return true;
|
|
|
| case KeyEvent.KEYCODE_PLUS:
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| - JniInterface.sendKeyEvent(0, KeyEvent.KEYCODE_EQUALS, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_SHIFT_LEFT, pressed);
|
| + mClient.sendKeyEvent(0, KeyEvent.KEYCODE_EQUALS, pressed);
|
| return true;
|
|
|
| default:
|
| // We try to send all other key codes to the host directly.
|
| - return JniInterface.sendKeyEvent(0, keyCode, pressed);
|
| + return mClient.sendKeyEvent(0, keyCode, pressed);
|
| }
|
| }
|
| }
|
|
|