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