| 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 93e54b184db3e9adeedeb54683acf37288a5896a..f9f3c73ad06f0d98672d803ce6fa741ffdf4b419 100644
|
| --- a/remoting/android/java/src/org/chromium/chromoting/Desktop.java
|
| +++ b/remoting/android/java/src/org/chromium/chromoting/Desktop.java
|
| @@ -31,7 +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.JniInterface;
|
| +import org.chromium.chromoting.jni.Client;
|
|
|
| import java.util.List;
|
| import java.util.Set;
|
| @@ -69,6 +69,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>();
|
|
|
| @@ -102,11 +104,14 @@ public class Desktop
|
| super.onCreate(savedInstanceState);
|
| setContentView(R.layout.desktop);
|
|
|
| + mClient = Client.getInstance();
|
| +
|
| 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);
|
| @@ -124,7 +129,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);
|
|
|
| @@ -163,9 +168,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
|
| @@ -173,7 +178,7 @@ public class Desktop
|
| if (isFinishing()) mActivityLifecycleListener.onActivityPaused(this);
|
| super.onPause();
|
| if (!mSwitchToCardboardDesktopActivity) {
|
| - JniInterface.enableVideoChannel(false);
|
| + mClient.enableVideoChannel(false);
|
| }
|
| stopActionBarAutoHideTimer();
|
| }
|
| @@ -182,19 +187,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);
|
| }
|
| }
|
|
|
| @@ -489,7 +494,7 @@ public class Desktop
|
| return true;
|
| }
|
| if (id == R.id.actionbar_disconnect || id == android.R.id.home) {
|
| - JniInterface.disconnectFromHost();
|
| + mClient.destroy();
|
| return true;
|
| }
|
| if (id == R.id.actionbar_send_ctrl_alt_del) {
|
| @@ -499,10 +504,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;
|
| }
|
| @@ -609,7 +614,7 @@ public class Desktop
|
|
|
| // Dispatch the back button to the system to handle navigation
|
| if (keyCode == KeyEvent.KEYCODE_BACK) {
|
| - JniInterface.disconnectFromHost();
|
| + mClient.destroy();
|
| return super.dispatchKeyEvent(event);
|
| }
|
|
|
| @@ -621,7 +626,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
|
| @@ -632,7 +637,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;
|
| }
|
|
|
| @@ -646,7 +651,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;
|
| }
|
|
|
| @@ -661,28 +666,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);
|
| }
|
| }
|
| }
|
|
|