Package io.rong.imkit.conversation.extension

## Class RongExtension

- All Implemented Interfaces:

      public class RongExtension

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `public enum` | `RongExtension.ContainerType` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RongExtension(Context context)` | RongExtension 构造方法.
    `RongExtension(Context context, AttributeSet attrs)` | RongExtension 构造方法.

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `bindToConversation(Fragment fragment, ConversationIdentifier conversationIdentifier, boolean disableSystemEmoji)` |
    `void` | `onResume()` | ConversationFragment onResume() 时的生命周期回调。
    `void` | `onPause()` |
    `void` | `setAttachedInfo(View view)` |
    `RelativeLayout` | `getContainer(RongExtension.ContainerType type)` | 获取 extension 各组成部分的容器
    `InputPanel` | `getInputPanel()` |
    `PluginBoard` | `getPluginBoard()` |
    `EmoticonBoard` | `getEmoticonBoard()` |
    `void` | `resetToDefaultView()` |
    `void` | `resetToDefaultView(String conversationType)` |
    `void` | `resetToDefaultView(String conversationType, InputMode mode, boolean forceShowKeyBoard)` |
    `void` | `updateInputMode(InputMode inputMode)` |
    `void` | `updateInputMode(InputMode inputMode, boolean forceShowKeyBoard)` |
    `void` | `collapseExtension()` | 收起面板。 兼容旧版本，保留此方法。 推荐使用 ViewModel 对应方法。
    `void` | `addPluginPager(View v)` | 在 plugin 界面添加自定义 view，添加后，+ 号区域全部填充为自定义的 view。 当自定义 view 可见时点击 ”+“ 会触发自定义 view 和默认 plugin 界面间进行切换。
    `EditText` | `getInputEditText()` |
    `ConversationType` | `getConversationType()` | 获取当前 Extension 所在会话的会话类型。
    `String` | `getTargetId()` | 获取当前所在会话的 targetId。
    `ConversationIdentifier` | `getConversationIdentifier()` |
    `void` | `requestPermissionForPluginResult(Array<String> permissions, int requestCode, IPluginModule pluginModule)` |
    `boolean` | `onRequestPermissionResult(int requestCode, Array<String> permissions, Array<int> grantResults)` |
    `void` | `startActivityForPluginResult(Intent intent, int requestCode, IPluginModule pluginModule)` |
    `void` | `onActivityPluginResult(int requestCode, int resultCode, Intent data)` | activity 结束返回结果。
    `void` | `onDestroy()` |
    `boolean` | `useKeyboardHeightProvider()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RongExtension

          RongExtension(Context context)

      RongExtension 构造方法.
      Parameters:
        `context` - 上下文

    - #### RongExtension

          RongExtension(Context context, AttributeSet attrs)

      RongExtension 构造方法.
      Parameters:
        `context` - 上下文
        `attrs` - View 的属性集合

  - ### Method Detail

    - #### bindToConversation

           void bindToConversation(Fragment fragment, ConversationIdentifier conversationIdentifier, boolean disableSystemEmoji)

    - #### onResume

           void onResume()

      ConversationFragment onResume() 时的生命周期回调。

    - #### onPause

           void onPause()

    - #### setAttachedInfo

           void setAttachedInfo(View view)

    - #### getContainer

           RelativeLayout getContainer(RongExtension.ContainerType type)

      获取 extension 各组成部分的容器

      Parameters:
        `type` - 容器类型
      Returns:

        容器

    - #### getInputPanel

           InputPanel getInputPanel()

    - #### getPluginBoard

           PluginBoard getPluginBoard()

    - #### getEmoticonBoard

           EmoticonBoard getEmoticonBoard()

    - #### resetToDefaultView

           void resetToDefaultView()

    - #### resetToDefaultView

           void resetToDefaultView(String conversationType)

    - #### resetToDefaultView

           void resetToDefaultView(String conversationType, InputMode mode, boolean forceShowKeyBoard)

    - #### updateInputMode

           void updateInputMode(InputMode inputMode)

    - #### updateInputMode

           void updateInputMode(InputMode inputMode, boolean forceShowKeyBoard)

    - #### collapseExtension

           void collapseExtension()

      收起面板。 兼容旧版本，保留此方法。 推荐使用 ViewModel 对应方法。

    - #### addPluginPager

           void addPluginPager(View v)

      在 plugin 界面添加自定义 view，添加后，+ 号区域全部填充为自定义的 view。 当自定义 view 可见时点击 ”+“ 会触发自定义 view 和默认 plugin 界面间进行切换。

      Parameters:
        `v` - 自定义 view

    - #### getInputEditText

           EditText getInputEditText()

    - #### getConversationType

           ConversationType getConversationType()

      获取当前 Extension 所在会话的会话类型。

      Returns:

        会话类型。

    - #### getTargetId

           String getTargetId()

      获取当前所在会话的 targetId。

      Returns:

        目标 id。

    - #### getConversationIdentifier

           ConversationIdentifier getConversationIdentifier()

    - #### requestPermissionForPluginResult

           void requestPermissionForPluginResult(Array<String> permissions, int requestCode, IPluginModule pluginModule)

    - #### onRequestPermissionResult

           boolean onRequestPermissionResult(int requestCode, Array<String> permissions, Array<int> grantResults)

    - #### startActivityForPluginResult

           void startActivityForPluginResult(Intent intent, int requestCode, IPluginModule pluginModule)

      Parameters:
        `intent` - The intent to start.
        `requestCode` - `If >= 0, this code will be returned in onActivityResult() when the activity exits.`

    - #### onActivityPluginResult

           void onActivityPluginResult(int requestCode, int resultCode, Intent data)

      activity 结束返回结果。

    - #### onDestroy

           void onDestroy()

    - #### useKeyboardHeightProvider

           boolean useKeyboardHeightProvider()