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/AndroidManifest.xml b/AndroidManifest.xml.jinja2
similarity index 100%
rename from AndroidManifest.xml
rename to AndroidManifest.xml.jinja2
diff --git a/channels/beta/branding/BRANDING b/channels/beta/branding/BRANDING
new file mode 100644
index 0000000..f4b9d77
--- /dev/null
+++ b/channels/beta/branding/BRANDING
@@ -0,0 +1,11 @@
+COMPANY_FULLNAME=The Linux Foundation
+COMPANY_SHORTNAME=The Linux Foundation
+PRODUCT_FULLNAME=Snapdragon
+PRODUCT_SHORTNAME=Snapdragon
+PRODUCT_INSTALLER_FULLNAME=Snapdragon Installer
+PRODUCT_INSTALLER_SHORTNAME=Snapdragon Installer
+COPYRIGHT=Copyright (c) 2015 The Linux Foundation. All rights reserved.
+PACKAGE_NAME=org.codeaurora.swe.browser.beta
+APK_LABEL=@string/application_name_swe
+APK_ICON=@mipmap/ic_launcher_browser_swe_beta
+APK_AUTHORITIES=swe.browser.beta
\ No newline at end of file
diff --git a/channels/dev/branding/BRANDING b/channels/dev/branding/BRANDING
new file mode 100644
index 0000000..9b0f308
--- /dev/null
+++ b/channels/dev/branding/BRANDING
@@ -0,0 +1,11 @@
+COMPANY_FULLNAME=The Linux Foundation
+COMPANY_SHORTNAME=The Linux Foundation
+PRODUCT_FULLNAME=Snapdragon
+PRODUCT_SHORTNAME=Snapdragon
+PRODUCT_INSTALLER_FULLNAME=Snapdragon Installer
+PRODUCT_INSTALLER_SHORTNAME=Snapdragon Installer
+COPYRIGHT=Copyright (c) 2015 The Linux Foundation. All rights reserved.
+PACKAGE_NAME=org.codeaurora.swe.browser.dev
+APK_LABEL=@string/application_name_swe
+APK_ICON=@mipmap/ic_launcher_browser_swe
+APK_AUTHORITIES=swe.browser.dev
diff --git a/channels/release/branding/BRANDING b/channels/release/branding/BRANDING
new file mode 100644
index 0000000..bf3df6f
--- /dev/null
+++ b/channels/release/branding/BRANDING
@@ -0,0 +1,11 @@
+COMPANY_FULLNAME=The Linux Foundation
+COMPANY_SHORTNAME=The Linux Foundation
+PRODUCT_FULLNAME=Snapdragon
+PRODUCT_SHORTNAME=Snapdragon
+PRODUCT_INSTALLER_FULLNAME=Snapdragon Installer
+PRODUCT_INSTALLER_SHORTNAME=Snapdragon Installer
+COPYRIGHT=Copyright (c) 2015 The Linux Foundation. All rights reserved.
+PACKAGE_NAME=org.codeaurora.swe.browser
+APK_LABEL=@string/application_name_swe
+APK_ICON=@mipmap/ic_launcher_browser_swe
+APK_AUTHORITIES=swe.browser
diff --git a/channels/system/branding/BRANDING b/channels/system/branding/BRANDING
new file mode 100644
index 0000000..c36ecca
--- /dev/null
+++ b/channels/system/branding/BRANDING
@@ -0,0 +1,11 @@
+COMPANY_FULLNAME=The Linux Foundation
+COMPANY_SHORTNAME=The Linux Foundation
+PRODUCT_FULLNAME=Snapdragon
+PRODUCT_SHORTNAME=Snapdragon
+PRODUCT_INSTALLER_FULLNAME=Snapdragon Installer
+PRODUCT_INSTALLER_SHORTNAME=Snapdragon Installer
+COPYRIGHT=Copyright (c) 2015 The Linux Foundation. All rights reserved.
+PACKAGE_NAME=com.android.browser
+APK_LABEL=@string/application_name
+APK_ICON=@mipmap/ic_launcher_browser
+APK_AUTHORITIES=browser
diff --git a/src_system/com/android/browser/BrowserConfig.java b/src_system/com/android/browser/BrowserConfig.java
deleted file mode 100644
index 10e30a9..0000000
--- a/src_system/com/android/browser/BrowserConfig.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-    * Copyright (c) 2014, The Linux Foundation. All rights reserved.
-    *
-    * Redistribution and use in source and binary forms, with or without
-    * modification, are permitted provided that the following conditions are
-    * met:
-    * * Redistributions of source code must retain the above copyright
-    * notice, this list of conditions and the following disclaimer.
-    * * Redistributions in binary form must reproduce the above
-    * copyright notice, this list of conditions and the following
-    * disclaimer in the documentation and/or other materials provided
-    * with the distribution.
-    * * Neither the name of The Linux Foundation nor the names of its
-    * contributors may be used to endorse or promote products derived
-    * from this software without specific prior written permission.
-    *
-    * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-    * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-    * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-    * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-    * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-    * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-    * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-    * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-    *
-    */
-
-package com.android.browser;
-
-import android.content.Context;
-
-public class BrowserConfig extends BrowserConfigBase {
-
-    public final static String AUTHORITY = "com.android.browser";
-
-    private static BrowserConfig sBrowserConfig;
-
-    private BrowserConfig(Context context) {
-        super(context);
-    }
-
-    public static BrowserConfig getInstance(Context context) {
-        if (sBrowserConfig == null) {
-            sBrowserConfig = new BrowserConfig(context);
-        }
-        return sBrowserConfig;
-    }
-
-}
-
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,
diff --git a/src_standalone/com/android/browser/BrowserConfig.java b/template/com/android/browser/BrowserConfig.java.template
similarity index 95%
rename from src_standalone/com/android/browser/BrowserConfig.java
rename to template/com/android/browser/BrowserConfig.java.template
index c417685..36273de 100644
--- a/src_standalone/com/android/browser/BrowserConfig.java
+++ b/template/com/android/browser/BrowserConfig.java.template
@@ -36,7 +36,7 @@
 public class BrowserConfig extends BrowserConfigBase {
 
     //Authority string used by different providers
-    public final static String AUTHORITY = "org.codeaurora.swe.browser.beta";
+    public final static String AUTHORITY = "@PACKAGE_NAME@";
 
     private static BrowserConfig sBrowserConfig;