Add support for channels in SWE browser

  - Add beta, dev and system channels. Add BRANDING
    files for the same.

  - Add support to templatize BrowserConfig.java

Change-Id: I2e987be7edc4afa87ea138c9b602c3208fa88523
diff --git a/swe_android_browser.gypi b/swe_android_browser.gypi
index 3966115..cb19eb7 100644
--- a/swe_android_browser.gypi
+++ b/swe_android_browser.gypi
@@ -1,27 +1,21 @@
 {
   'variables' : {
-    'manifest_package_name%' : 'org.codeaurora.swe.browser.beta',
-    'manifest_test_package_name%' : 'org.codeaurora.swe.browser.beta.tests',
+    'browser_config_path': '<(DEPTH)/swe/browser/channels/<(swe_channel)/branding/BRANDING',
   },
   'targets' : [
     {
       'target_name': 'swe_android_browser_apk',
       'type': 'none',
       'dependencies': [
-        'swe_chrome_engine_java',
-        '<@(libnetxt_dependencies)',
-        '<@(libsta_dependencies)',
-        '<@(libsweadrenoext_dependencies)',
-        '<@(web_refiner_dependencies)',
-        'fast_webview_java',
-        #'android-support-v13',
+        'swe_android_browser_apk_config',
+        '<@(swe_dependencies)',
+        #add new dependencies in swe_common.gypi
       ],
       'variables': {
         'apk_name': 'SWE_AndroidBrowser',
         'native_lib_version_name': '<(version_full)',
         'java_in_dir': '.',
         'resource_dir': '../browser/res',
-        'assets_dir': '../../swe/browser/assets',
         'conditions': [
           ['icu_use_data_file_flag==1', {
             'additional_input_paths': [
@@ -30,72 +24,66 @@
           }],
         ],
         'native_lib_target': 'libswe',
-        'app_manifest_version_code': '<!(python <(DEPTH)/swe/tools/swe_version.py \
-                                     -i <(DEPTH)/chrome/VERSION \
-                                     -o <(DEPTH)/swe/VERSION --version-code-only)',
-        'app_manifest_version_name': '<!(python <(DEPTH)/swe/tools/swe_version.py \
-                                     -i <(DEPTH)/chrome/VERSION \
-                                     -o <(DEPTH)/swe/VERSION --version-string-only)',
-        'generate_about_string': '<!(python <(DEPTH)/swe/tools/swe_version.py \
-                                     -i <(DEPTH)/chrome/VERSION \
-                                     -o <(DEPTH)/swe/VERSION \
-                                     -about <(DEPTH)/swe/browser/res/values/about.xml)',
+        'app_manifest_version_code': '<(swe_app_manifest_version_code)',
+        'app_manifest_version_name': '<(swe_app_manifest_version_name)',
+
         'additional_native_libs': [
-          '<@(libnetxt_native_libs)',
-          '<@(libsta_native_libs)',
-          '<@(libsweadrenoext_native_libs)',
-          '<@(web_refiner_native_libs)',
+          '<@(swe_additional_native_libs)',
         ],
         'additional_input_paths': [
           '<@(chrome_android_pak_output_resources)',
         ],
-        'override_package_name': '<(manifest_package_name)',
+        'override_package_name': '<!(python <(swe_py_config) \
+                                     -i <(browser_config_path) \
+                                     -c PACKAGE_NAME)',
         'android_manifest_path': '<(SHARED_INTERMEDIATE_DIR)/swe_android_browser_apk/AndroidManifest.xml',
-        'additional_src_dirs': ['<(DEPTH)/swe/browser/src_standalone/com/android/browser'],
       },
 
       'copies': [
         {
           'destination': '<(PRODUCT_DIR)/swe_android_browser_apk/assets/',
           'files': [
-            '<@(chrome_android_pak_input_resources)',
-            '<@(libnetxt_input_resources)',
-            '<@(libsta_input_resources)',
+            '<@(swe_assets)',
           ],
         },
         {
           'destination': '<(PRODUCT_DIR)/swe_android_browser_apk/assets/wml',
           'files': [
-            '<(assets_dir)/wml/swe_wml.xsl',
-            '<(assets_dir)/wml/swe_wml.js',
-            '<(assets_dir)/wml/swe_wml.css',
+            '<@(swe_assets_wml)',
           ],
         },
         {
           'destination': '<(PRODUCT_DIR)/swe_android_browser_apk/assets/web_refiner',
           'files': [
-            '<(assets_dir)/web_refiner/web_refiner.conf',
+            '<@(swe_assets_webrefiner)',
           ],
         },
       ],
       'includes': [ '../../build/java_apk.gypi' ],
     },
+    #generate AndroidManifest.xml
     {
       'target_name': 'swe_android_browser_apk_manifest',
       'type': 'none',
       'variables': {
-        'jinja_inputs': ['<(DEPTH)/swe/browser/AndroidManifest.xml',
-                        ],
-        'jinja_output': '<(SHARED_INTERMEDIATE_DIR)/swe_android_browser_apk/AndroidManifest.xml',
-        'standalone_manifest_package_name' : 'org.codeaurora.swe.browser.beta',
-        'jinja_variables': ['package_name=<(standalone_manifest_package_name)',
-                            'apk_label=@string/application_name_swe',
-                            'apk_icon=@mipmap/ic_launcher_browser_swe_beta',
-                            'apk_task_affinity=<(standalone_manifest_package_name)',
-                            'apk_authorities=swe.browser.beta',],
+        'manifest_input_path': '<(DEPTH)/swe/browser/AndroidManifest.xml.jinja2',
+        'manifest_output_path': '<(SHARED_INTERMEDIATE_DIR)/swe_android_browser_apk/AndroidManifest.xml',
+        'manifest_config_file_path': '<(browser_config_path)',
       },
-      'includes': [ '../../build/android/jinja_template.gypi' ],
+      'includes': [ '../swe_generate_manifest.gypi' ],
     },
+
+    {
+      'target_name': 'swe_android_browser_apk_config',
+      'type': 'none',
+      'variables': {
+        'template_input_path': '<(DEPTH)/swe/browser/template/com/android/browser/BrowserConfig.java.template',
+        'template_output_path': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)/com/android/browser/BrowserConfig.java',
+        'template_config_file_path': '<(browser_config_path)',
+      },
+      'includes': [ '../swe_browser_config.gypi' ],
+    },
+
     {
       'target_name': 'swe_android_browser_fake_apk',
       'type': 'none',
@@ -116,7 +104,10 @@
         ],
         'variables': {
           'apk_name': 'SWEBrowserTests',
-          'override_package_name': '<(manifest_test_package_name)',
+          'standalone_manifest_package_name': '<!(python <(swe_py_config) \
+                                     -i <(browser_config_path) \
+                                     -c PACKAGE_NAME)',
+          'override_package_name': '<(standalone_manifest_package_name).tests',
           'android_manifest_path': './tests/AndroidManifest.xml',
           'java_in_dir': './tests/startup',
           'is_test_apk': 1,