<?xml version="1.0" encoding="utf-8"?>
<!--
 Copyright 2010-2015, Google Inc.
 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 Google Inc. 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 BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE 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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="@ANDROID_APPLICATION_ID@"
          android:versionCode="@ANDROID_VERSION_CODE@"
          android:versionName="@MAJOR@.@MINOR@.@BUILD@.@REVISION@-@ANDROID_ARCH@">
  <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />

  <!-- Google Japanese Input (the main code) requires the following permissions. -->
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


  <application android:icon="@drawable/application_icon"
               android:label="@string/app_full_name"
               android:allowBackup="false"
               android:theme="@style/AppThemeSelector" >
    <service android:name="@ANDROID_SERVICE_NAME@"
             android:permission="android.permission.BIND_INPUT_METHOD"
             android:label="@string/app_full_name">
      <intent-filter>
        <action android:name="android.view.InputMethod" />
      </intent-filter>
      <meta-data android:name="android.view.im" android:resource="@xml/method" />
    </service>

    <!-- Launcher Icon -->
    <activity android:name="org.mozc.android.inputmethod.japanese.LauncherActivity"
              android:enabled="@bool/show_launcher_icon"
              android:label="@string/app_full_name">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <receiver android:name="org.mozc.android.inputmethod.japanese.LauncherIconVisibilityInitializer">
      <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
        <action android:name="android.intent.action.USER_INITIALIZE" />
      </intent-filter>
    </receiver>

    <!-- Preference -->
    <activity android:name="org.mozc.android.inputmethod.japanese.preference.MozcProxyPreferenceActivity" />
    <activity android:name="org.mozc.android.inputmethod.japanese.preference.MozcFragmentPreferenceActivity"
              android:launchMode="singleTask"
              android:theme="@style/AppThemeSelectorSettings"/>
    <activity android:name="org.mozc.android.inputmethod.japanese.preference.MozcFragmentSoftwareKeyboardAdvancedSettingsPreferenceActivity"
              android:launchMode="singleTop"
              android:theme="@style/AppThemeSelectorSettings"/>

    <activity android:name="org.mozc.android.inputmethod.japanese.FirstTimeLaunchActivity" />
    <activity android:name="org.mozc.android.inputmethod.japanese.preference.MiniBrowserActivity"
              android:launchMode="singleTop" />

    <!-- User dictionary tool -->
    <activity android:name="org.mozc.android.inputmethod.japanese.userdictionary.UserDictionaryToolActivity"
              android:label="@string/user_dictionary_tool_app_name"
              android:uiOptions="splitActionBarWhenNarrow"
              android:configChanges="orientation|screenSize"
              android:theme="@style/AppThemeSelectorSettings">

      <!-- Intent filters to receive a file-sending intent for importing user dictionary data.
           UserDictionaryToolActivity accepts only file scheme.
      -->
      <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
        <data android:mimeType="application/zip" />
        <data android:scheme="file" />
      </intent-filter>
    </activity>

    <!-- TODO(matsuzakit): Use @string/user_dictionary_tool_export_provider_name for name and authorities.
         Currently resource reference is not used as it is not supported on API Level 7 (Eclair). -->
    <provider android:name="org.mozc.android.inputmethod.japanese.userdictionary.UserDictionaryExportProvider"
              android:authorities="org.mozc.android.inputmethod.japanese.userdictionary.UserDictionaryExportProvider"
              android:exported="false"
              android:grantUriPermissions="true"/>

    <!-- For mushroom.
         Note about the attributes:
         - launchMode: this activity is singleTask, in order to be the root
           activity launched from the menu dialog.
         - taskAffinity: set taskAffinity so that the task is split from
           other activities, such as preference activity.
         - windowSoftInputMode: because this activity looks dialog with a
           ListView. So, in theory it is not necessary to connect with IME.
           Without this option, some unexpected connection happens, and
           it causes an issue that mushroom result is not committed.
         - excludeFromRecents: this pseudo dialog shouldn't be shown on history
           list.
    -->
    <activity android:name="org.mozc.android.inputmethod.japanese.mushroom.MushroomSelectionActivity"
              android:launchMode="singleTask"
              android:taskAffinity=".mushroom"
              android:theme="@android:style/Theme.DeviceDefault.Light.Dialog"
              android:windowSoftInputMode="stateAlwaysHidden"
              android:excludeFromRecents="true" />


    <!-- Input device manager -->
    <receiver android:name="org.mozc.android.inputmethod.japanese.InputDeviceReceiver">
      <intent-filter>
        <action android:name="android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS" />
      </intent-filter>
      <meta-data android:name="android.hardware.input.metadata.KEYBOARD_LAYOUTS"
                 android:resource="@xml/keyboard_layouts" />
    </receiver>

    <!-- Following entry is for unit tests. Do not remove. -->
    <!-- The activity is used for testing views. -->
    <activity android:name="android.app.Activity" />
    <activity android:name="org.mozc.android.inputmethod.japanese.preference.MozcPreferenceDummy" />
  </application>
</manifest>
