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); |
} |
} |
} |