diff options
| author | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-23 22:06:30 +0000 | 
|---|---|---|
| committer | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-23 22:06:30 +0000 | 
| commit | 248c476635bd2b07f12f5ee705d0468b77e7c7db (patch) | |
| tree | 4ae2c2b23183ef5c8b6aa38e01a2b390c6ec7464 | |
| parent | 34674fd597065fdd1ab1e43993aa0c9a4a69a4cb (diff) | |
| download | chromium_src-248c476635bd2b07f12f5ee705d0468b77e7c7db.zip chromium_src-248c476635bd2b07f12f5ee705d0468b77e7c7db.tar.gz chromium_src-248c476635bd2b07f12f5ee705d0468b77e7c7db.tar.bz2 | |
Refactor GYP targets for Android Chromoting client
This creates a separate target, remoting_java, that builds the Java
code and resources. The remoting_apk target depends on this target and
builds the final APK.
Several changes were needed, since the build/java.gypi file has some
features and checks not present in build/java_apk.gypi:
* switch/case statements changed to if/else chains, since the generated
R.java uses 'int' instead of 'const int' for resource IDs.
* XML style fixes necessitated by the lint-style checking, and v14
resource generation.
* A new Java class added: RemotingApplication. This is needed right now
because the APK build step requires at least one Java source file. In
future, this class will override onCreate(), and a different override
will be used for official builds, to dependency-inject Java code that
requires closed-source dependencies (such as the Help+Feedback
implementation).
TEST=Builds and runs. Touching various files triggers rebuild.
Review URL: https://codereview.chromium.org/245893004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265750 0039d316-1c4b-4281-b951-d872f2087c98
| -rw-r--r-- | remoting/android/apk/src/org/chromium/chromoting/RemotingApplication.java | 11 | ||||
| -rw-r--r-- | remoting/android/java/res/layout/desktop.xml | 2 | ||||
| -rw-r--r-- | remoting/android/java/res/layout/host.xml | 4 | ||||
| -rw-r--r-- | remoting/android/java/res/values-v17/styles.xml (renamed from remoting/android/java/res/values/styles.xml) | 0 | ||||
| -rw-r--r-- | remoting/android/java/src/org/chromium/chromoting/Chromoting.java | 20 | ||||
| -rw-r--r-- | remoting/android/java/src/org/chromium/chromoting/Desktop.java | 66 | ||||
| -rw-r--r-- | remoting/android/java/src/org/chromium/chromoting/HelpActivity.java | 20 | ||||
| -rw-r--r-- | remoting/remoting_android.gypi | 46 | 
8 files changed, 88 insertions, 81 deletions
| diff --git a/remoting/android/apk/src/org/chromium/chromoting/RemotingApplication.java b/remoting/android/apk/src/org/chromium/chromoting/RemotingApplication.java new file mode 100644 index 0000000..b39afd2 --- /dev/null +++ b/remoting/android/apk/src/org/chromium/chromoting/RemotingApplication.java @@ -0,0 +1,11 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chromoting; + +import android.app.Application; + +/** Main context for the application. */ +public class RemotingApplication extends Application { +} diff --git a/remoting/android/java/res/layout/desktop.xml b/remoting/android/java/res/layout/desktop.xml index d4ac3e5..897f9f8 100644 --- a/remoting/android/java/res/layout/desktop.xml +++ b/remoting/android/java/res/layout/desktop.xml @@ -14,7 +14,7 @@              android:layout_width="match_parent"/>      <ImageButton android:id="@+id/desktop_overlay_button"              android:background="@android:color/transparent" -            android:layout_gravity="top|right" +            android:layout_gravity="top|end"              android:layout_height="wrap_content"              android:layout_width="wrap_content"              android:onClick="onOverlayButtonPressed" diff --git a/remoting/android/java/res/layout/host.xml b/remoting/android/java/res/layout/host.xml index 1a37741..2226a8b 100644 --- a/remoting/android/java/res/layout/host.xml +++ b/remoting/android/java/res/layout/host.xml @@ -13,7 +13,7 @@          android:layout_height="wrap_content"          android:layout_width="match_parent"          android:paddingBottom="20sp" -        android:paddingLeft="16sp" -        android:paddingRight="16sp" +        android:paddingStart="16sp" +        android:paddingEnd="16sp"          android:paddingTop="20sp"          style="@android:style/TextAppearance.Holo.Medium"/> diff --git a/remoting/android/java/res/values/styles.xml b/remoting/android/java/res/values-v17/styles.xml index 881d2bb..881d2bb 100644 --- a/remoting/android/java/res/values/styles.xml +++ b/remoting/android/java/res/values-v17/styles.xml diff --git a/remoting/android/java/src/org/chromium/chromoting/Chromoting.java b/remoting/android/java/src/org/chromium/chromoting/Chromoting.java index 1e8b489..f8a9849 100644 --- a/remoting/android/java/src/org/chromium/chromoting/Chromoting.java +++ b/remoting/android/java/src/org/chromium/chromoting/Chromoting.java @@ -241,18 +241,16 @@ public class Chromoting extends Activity implements JniInterface.ConnectionListe      /** Called whenever an action bar button is pressed. */      @Override      public boolean onOptionsItemSelected(MenuItem item) { -        switch (item.getItemId()) { -            case R.id.actionbar_directoryrefresh: -                refreshHostList(); -                return true; - -            case R.id.actionbar_help: -                HelpActivity.launch(this, HELP_URL); -                return true; - -            default: -                return super.onOptionsItemSelected(item); +        int id = item.getItemId(); +        if (id == R.id.actionbar_directoryrefresh) { +            refreshHostList(); +            return true; +        } +        if (id == R.id.actionbar_help) { +            HelpActivity.launch(this, HELP_URL); +            return true;          } +        return super.onOptionsItemSelected(item);      }      /** Called when the user touches hyperlinked text. */ diff --git a/remoting/android/java/src/org/chromium/chromoting/Desktop.java b/remoting/android/java/src/org/chromium/chromoting/Desktop.java index 425837b..e4a8d0c 100644 --- a/remoting/android/java/src/org/chromium/chromoting/Desktop.java +++ b/remoting/android/java/src/org/chromium/chromoting/Desktop.java @@ -131,42 +131,38 @@ public class Desktop extends Activity implements View.OnSystemUiVisibilityChange      /** Called whenever an action bar button is pressed. */      @Override      public boolean onOptionsItemSelected(MenuItem item) { -        switch (item.getItemId()) { -            case R.id.actionbar_keyboard: -                ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0, 0); -                return true; - -            case R.id.actionbar_hide: -                hideActionBar(); -                return true; - -            case R.id.actionbar_disconnect: -                JniInterface.disconnectFromHost(); -                return true; - -            case R.id.actionbar_send_ctrl_alt_del: -                { -                    int[] keys = { -                        KeyEvent.KEYCODE_CTRL_LEFT, -                        KeyEvent.KEYCODE_ALT_LEFT, -                        KeyEvent.KEYCODE_FORWARD_DEL, -                    }; -                    for (int key : keys) { -                        JniInterface.sendKeyEvent(key, true); -                    } -                    for (int key : keys) { -                        JniInterface.sendKeyEvent(key, false); -                    } -                } -                return true; - -            case R.id.actionbar_help: -                HelpActivity.launch(this, HELP_URL); -                return true; - -            default: -                return super.onOptionsItemSelected(item); +        int id = item.getItemId(); +        if (id == R.id.actionbar_keyboard) { +            ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0, 0); +            return true; +        } +        if (id == R.id.actionbar_hide) { +            hideActionBar(); +            return true; +        } +        if (id == R.id.actionbar_disconnect) { +            JniInterface.disconnectFromHost(); +            return true; +        } +        if (id == R.id.actionbar_send_ctrl_alt_del) { +            int[] keys = { +                KeyEvent.KEYCODE_CTRL_LEFT, +                KeyEvent.KEYCODE_ALT_LEFT, +                KeyEvent.KEYCODE_FORWARD_DEL, +            }; +            for (int key : keys) { +                JniInterface.sendKeyEvent(key, true); +            } +            for (int key : keys) { +                JniInterface.sendKeyEvent(key, false); +            } +            return true; +        } +        if (id == R.id.actionbar_help) { +            HelpActivity.launch(this, HELP_URL); +            return true;          } +        return super.onOptionsItemSelected(item);      }      /** diff --git a/remoting/android/java/src/org/chromium/chromoting/HelpActivity.java b/remoting/android/java/src/org/chromium/chromoting/HelpActivity.java index efe1f21..24fbd34 100644 --- a/remoting/android/java/src/org/chromium/chromoting/HelpActivity.java +++ b/remoting/android/java/src/org/chromium/chromoting/HelpActivity.java @@ -132,17 +132,15 @@ public class HelpActivity extends Activity {      @Override      public boolean onOptionsItemSelected(MenuItem item) { -        switch (item.getItemId()) { -            case R.id.actionbar_feedback: -                sendFeedback(); -                return true; - -            case R.id.actionbar_play_store: -                openUrl(PLAY_STORE_URL + getPackageName()); -                return true; - -            default: -                return super.onOptionsItemSelected(item); +        int id = item.getItemId(); +        if (id == R.id.actionbar_feedback) { +            sendFeedback(); +            return true; +        } +        if (id == R.id.actionbar_play_store) { +            openUrl(PLAY_STORE_URL + getPackageName()); +            return true;          } +        return super.onOptionsItemSelected(item);      }  } diff --git a/remoting/remoting_android.gypi b/remoting/remoting_android.gypi index 7a8c6ed..d0865d6 100644 --- a/remoting/remoting_android.gypi +++ b/remoting/remoting_android.gypi @@ -79,47 +79,51 @@            }],          },  # end of target 'remoting_apk_manifest'          { -          'target_name': 'remoting_apk', +          'target_name': 'remoting_android_client_java',            'type': 'none', +          'variables': { +            'java_in_dir': 'android/java', +            'has_java_resources': 1, +            'R_package': 'org.chromium.chromoting', +            'R_package_relpath': 'org/chromium/chromoting', +            'res_extra_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res' ], +            'res_extra_files': [ +              '<!@pymod_do_main(grit_info <@(grit_defines) --outputs "<(SHARED_INTERMEDIATE_DIR)" resources/remoting_strings.grd)', +              '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable/chromoting128.png', +              '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable/icon_host.png', +            ], +          },            'dependencies': [ +            '../base/base.gyp:base_java', +            '../ui/android/ui_android.gyp:ui_java',              'remoting_android_resources', +          ], +          'includes': [ '../build/java.gypi' ], +        }, +        { +          'target_name': 'remoting_apk', +          'type': 'none', +          'dependencies': [              'remoting_apk_manifest',              'remoting_client_jni', +            'remoting_android_client_java',            ],            'variables': {              'apk_name': '<!(python <(version_py_path) -f <(branding_path) -t "@APK_FILE_NAME@")',              'android_app_version_name': '<(version_full)',              'android_app_version_code': '<!(python tools/android_version.py <(android_app_version_name))',              'android_manifest_path': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/AndroidManifest.xml', +            'java_in_dir': 'android/apk',              'native_lib_target': 'libremoting_client_jni', -            'java_in_dir': 'android/java', -            'R_package': 'org.chromium.chromoting', -            'package_name': '<(_target_name)', -            'resource_dir': 'android/java/res', -            'additional_res_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res' ], -            'additional_input_paths': [ -              '<(PRODUCT_DIR)/obj/remoting/remoting_android_resources.actions_rules_copies.stamp', -              '<(PRODUCT_DIR)/obj/remoting/remoting_resources.actions_rules_copies.stamp', -            ],            },            'includes': [ '../build/java_apk.gypi' ],          },  # end of target 'remoting_apk'          { -          # remoting_apk creates a .jar file as a side effect. Any Java targets -          # that need that .jar in their classpath should depend on this target. -          'target_name': 'remoting_apk_java', -          'type': 'none', -          'dependencies': [ -            'remoting_apk', -          ], -          'includes': [ '../build/apk_fake_jar.gypi' ], -        },  # end of target 'remoting_apk_java' -        {            'target_name': 'remoting_test_apk',            'type': 'none',            'dependencies': [              '../base/base.gyp:base_java_test_support', -            'remoting_apk_java', +            'remoting_android_client_java',            ],            'variables': {              'apk_name': 'ChromotingTest', | 
