├── .gitignore
├── .idea
├── codeStyles
│ └── Project.xml
├── libraries
│ ├── Dart_SDK.xml
│ ├── Flutter_Plugins.xml
│ └── Flutter_for_Android.xml
├── misc.xml
├── modules.xml
├── runConfigurations
│ └── example_lib_main_dart.xml
├── vcs.xml
└── workspace.xml
├── .metadata
├── CHANGELOG.md
├── LICENSE
├── README.md
├── android
├── .classpath
├── .gitignore
├── .project
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── build.gradle
├── gradle.properties
├── libs
│ └── Rong_IMLib.jar
├── settings.gradle
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── ninefrost
│ │ └── flutterrongcloudim
│ │ ├── ConstantFunc.java
│ │ ├── FlutterRongcloudImPlugin.java
│ │ ├── RongIMLib.java
│ │ └── common
│ │ ├── ErrorCode.java
│ │ ├── RongCustomServiceResult.java
│ │ ├── RongErrorResult.java
│ │ ├── RongException.java
│ │ ├── RongListenResult.java
│ │ ├── RongResult.java
│ │ └── translation
│ │ ├── ITranslatedMessage.java
│ │ ├── TranslatedCSGroupItem.java
│ │ ├── TranslatedCSGroupList.java
│ │ ├── TranslatedCommandMessage.java
│ │ ├── TranslatedCommandNotificationMessage.java
│ │ ├── TranslatedContactNtfMessage.java
│ │ ├── TranslatedConversation.java
│ │ ├── TranslatedConversationNtfyStatus.java
│ │ ├── TranslatedCustomServiceDialogID.java
│ │ ├── TranslatedCustomServiceErrorMsg.java
│ │ ├── TranslatedCustomServiceMode.java
│ │ ├── TranslatedCustomServiceQuitMsg.java
│ │ ├── TranslatedDiscussion.java
│ │ ├── TranslatedDiscussionNtfMessage.java
│ │ ├── TranslatedGrpNtfMessage.java
│ │ ├── TranslatedImageMessage.java
│ │ ├── TranslatedInformationNtfMessage.java
│ │ ├── TranslatedLocationMessage.java
│ │ ├── TranslatedMessage.java
│ │ ├── TranslatedMessageContent.java
│ │ ├── TranslatedProfileNtfMessage.java
│ │ ├── TranslatedQuietHour.java
│ │ ├── TranslatedRichContentMessage.java
│ │ ├── TranslatedTextMessage.java
│ │ └── TranslatedVoiceMessage.java
│ └── jniLibs
│ └── armeabi-v7a
│ ├── libRongIMLib.so
│ └── libsqlite.so
├── arts
├── ali.jpeg
└── wx.png
├── example
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.buildship.core.prefs
│ ├── app
│ │ ├── .classpath
│ │ ├── .project
│ │ ├── .settings
│ │ │ └── org.eclipse.buildship.core.prefs
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── ninefrost
│ │ │ │ └── flutterrongcloudimexample
│ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ └── values
│ │ │ └── styles.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Podfile
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── main.m
├── lib
│ └── main.dart
├── pubspec.yaml
└── test
│ └── widget_test.dart
├── flutter_rongcloud_im.iml
├── ios
├── .gitignore
├── Assets
│ └── .gitkeep
├── Classes
│ ├── FlutterRongcloudImPlugin.h
│ ├── FlutterRongcloudImPlugin.m
│ ├── RCDCustomerServiceViewController.h
│ ├── RCDCustomerServiceViewController.m
│ ├── RongCloudApplicationHandler.h
│ ├── RongCloudApplicationHandler.m
│ ├── RongCloudConstant.h
│ ├── RongCloudHandler.h
│ ├── RongCloudHandler.m
│ ├── RongCloudHybridAdapter.h
│ ├── RongCloudHybridAdapter.m
│ ├── RongCloudModel.h
│ └── RongCloudModel.m
├── Libs
│ ├── RongIMLib.framework
│ │ ├── Headers
│ │ │ ├── RCAMRDataConverter.h
│ │ │ ├── RCBurnMessageService.h
│ │ │ ├── RCCSLeaveMessage.h
│ │ │ ├── RCCSLeaveMessageItem.h
│ │ │ ├── RCCSPullLeaveMessage.h
│ │ │ ├── RCChatRoomInfo.h
│ │ │ ├── RCChatRoomMemberInfo.h
│ │ │ ├── RCCommandMessage.h
│ │ │ ├── RCCommandNotificationMessage.h
│ │ │ ├── RCContactNotificationMessage.h
│ │ │ ├── RCConversation.h
│ │ │ ├── RCCustomerServiceConfig.h
│ │ │ ├── RCCustomerServiceGroupItem.h
│ │ │ ├── RCCustomerServiceInfo.h
│ │ │ ├── RCDiscussion.h
│ │ │ ├── RCDiscussionNotificationMessage.h
│ │ │ ├── RCDownloadItem.h
│ │ │ ├── RCEvaluateItem.h
│ │ │ ├── RCFileMessage.h
│ │ │ ├── RCFileUtility.h
│ │ │ ├── RCFwLog.h
│ │ │ ├── RCGroup.h
│ │ │ ├── RCGroupNotificationMessage.h
│ │ │ ├── RCIMClient.h
│ │ │ ├── RCImageMessage.h
│ │ │ ├── RCInformationNotificationMessage.h
│ │ │ ├── RCLocationMessage.h
│ │ │ ├── RCMediaMessageContent.h
│ │ │ ├── RCMentionedInfo.h
│ │ │ ├── RCMessage.h
│ │ │ ├── RCMessageContent.h
│ │ │ ├── RCProfileNotificationMessage.h
│ │ │ ├── RCPublicServiceCommandMessage.h
│ │ │ ├── RCPublicServiceMenu.h
│ │ │ ├── RCPublicServiceMenuItem.h
│ │ │ ├── RCPublicServiceMultiRichContentMessage.h
│ │ │ ├── RCPublicServiceProfile.h
│ │ │ ├── RCPublicServiceRichContentMessage.h
│ │ │ ├── RCPushProfile.h
│ │ │ ├── RCReadReceiptInfo.h
│ │ │ ├── RCRealTimeLocationCommonDefine.h
│ │ │ ├── RCRealTimeLocationEndMessage.h
│ │ │ ├── RCRealTimeLocationManager.h
│ │ │ ├── RCRealTimeLocationStartMessage.h
│ │ │ ├── RCRecallNotificationMessage.h
│ │ │ ├── RCResumeableDownloader.h
│ │ │ ├── RCRichContentItem.h
│ │ │ ├── RCRichContentMessage.h
│ │ │ ├── RCSearchConversationResult.h
│ │ │ ├── RCSightMessage.h
│ │ │ ├── RCStatusDefine.h
│ │ │ ├── RCStatusMessage.h
│ │ │ ├── RCTSMutableDictionary.h
│ │ │ ├── RCTextMessage.h
│ │ │ ├── RCUnknownMessage.h
│ │ │ ├── RCUploadImageStatusListener.h
│ │ │ ├── RCUploadMediaStatusListener.h
│ │ │ ├── RCUserInfo.h
│ │ │ ├── RCUserOnlineStatusInfo.h
│ │ │ ├── RCUserTypingStatus.h
│ │ │ ├── RCUtilities.h
│ │ │ ├── RCVoiceMessage.h
│ │ │ ├── RCWatchKitStatusDelegate.h
│ │ │ ├── RongIMLib.h
│ │ │ ├── interf_dec.h
│ │ │ └── interf_enc.h
│ │ ├── Info.plist
│ │ ├── Modules
│ │ │ └── module.modulemap
│ │ └── RongIMLib
│ └── libopencore-amrnb.a
└── flutter_rongcloud_im.podspec
├── lib
├── flutter_rongcloud_im.dart
└── generated
│ └── i18n.dart
├── pubspec.yaml
└── res
└── values
└── strings_en.arb
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .dart_tool/
3 |
4 | .packages
5 | .pub/
6 | pubspec.lock
7 |
8 | build/
9 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/.idea/libraries/Dart_SDK.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/libraries/Flutter_Plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Flutter_for_Android.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/example_lib_main_dart.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 5391447fae6209bb21a89e6a5a6583cac1af9b4b
8 | channel: stable
9 |
10 | project_type: plugin
11 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1
2 |
3 | * TODO: Describe initial release.
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # flutter_rongcloud_im
2 |
3 | flutter封装的融云imlib库,项目比较忙,文档抽空写;
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter
8 | [plug-in package](https://flutter.io/developing-packages/),
9 | a specialized package that includes platform-specific implementation code for
10 | Android and/or iOS.
11 |
12 | For help getting started with Flutter, view our
13 | [online documentation](https://flutter.io/docs), which offers tutorials,
14 | samples, guidance on mobile development, and a full API reference.
15 |
16 |
17 | ### 请使用官网插件
18 |
--------------------------------------------------------------------------------
/android/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 |
--------------------------------------------------------------------------------
/android/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | flutter_rongcloud_im
4 | Project flutter_rongcloud_im created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/android/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=../example/android
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | group 'com.ninefrost.flutterrongcloudim'
2 | version '1.0-SNAPSHOT'
3 |
4 | buildscript {
5 | repositories {
6 | google()
7 | jcenter()
8 | }
9 |
10 | dependencies {
11 | classpath 'com.android.tools.build:gradle:3.2.1'
12 | }
13 | }
14 |
15 | rootProject.allprojects {
16 | repositories {
17 | google()
18 | jcenter()
19 | }
20 | }
21 |
22 | apply plugin: 'com.android.library'
23 |
24 | android {
25 | compileSdkVersion 28
26 |
27 | defaultConfig {
28 | minSdkVersion 16
29 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
30 | }
31 | lintOptions {
32 | disable 'InvalidPackage'
33 | }
34 | }
35 |
36 | dependencies {
37 | implementation fileTree(dir:'libs', include: ['*.jar'])
38 | }
39 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 |
--------------------------------------------------------------------------------
/android/libs/Rong_IMLib.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TaleAi/flutter_rongcloud_im/5b298204a5dde362c3db78bba772123e70e066b5/android/libs/Rong_IMLib.jar
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'flutter_rongcloud_im'
2 |
--------------------------------------------------------------------------------
/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
8 |
9 |
12 |
13 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/RongCustomServiceResult.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | public class RongCustomServiceResult {
7 | Object result;
8 | int code;
9 |
10 | public Object getResult() {
11 | return result;
12 | }
13 |
14 | public void setResult(Object result) {
15 | this.result = result;
16 | }
17 |
18 | public int getStatus() {
19 | return code;
20 | }
21 |
22 | public Map toMap(){
23 | Map map = new HashMap();
24 | map.put("code", this.code);
25 | map.put("result", this.result);
26 | return map;
27 | }
28 |
29 | public void setStatus(int code) {
30 | this.code = code;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/RongErrorResult.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | /**
7 | * Created by weiqinxiao on 15/10/16.
8 | */
9 | public class RongErrorResult {
10 | Object result;
11 | int code;
12 |
13 | public Object getResult() {
14 | return result;
15 | }
16 |
17 | public void setResult(Object result) {
18 | this.result = result;
19 | }
20 |
21 | public int getStatus() {
22 | return code;
23 | }
24 |
25 | public void setStatus(int code) {
26 | this.code = code;
27 | }
28 |
29 | public Map toMap(){
30 | Map map = new HashMap();
31 | map.put("code", this.code);
32 | map.put("result", this.result);
33 | return map;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/RongException.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | public class RongException {
7 |
8 | private int code;
9 |
10 | public RongException(ErrorCode errorCode) {
11 | this.code = errorCode.getValue();
12 | }
13 |
14 | public RongException(int code) {
15 | ErrorCode errorCode = ErrorCode.setValue(code);
16 | this.code = errorCode.getValue();
17 | }
18 |
19 | public RongException(Throwable throwable) {
20 | ErrorCode errorCode = ErrorCode.UNKNOWN;
21 | this.code = errorCode.getValue();
22 | }
23 |
24 | public int getCode() {
25 | return code;
26 | }
27 |
28 | public void setCode(int code) {
29 | this.code = code;
30 | }
31 |
32 | public Map toMap(){
33 | Map map = new HashMap();
34 | map.put("code", this.code);
35 | return map;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/RongListenResult.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | public class RongListenResult {
7 | public static String PREPARE = "perpare";
8 | public static String SUCCESS = "success";
9 | public static String ERROR = "error";
10 | public static String PROGRESS = "progress";
11 |
12 | Object result;
13 | String status;
14 |
15 | public Object getResult() {
16 | return result;
17 | }
18 |
19 | public void setResult(Object result) {
20 | this.result = result;
21 | }
22 |
23 | public String getStatus() {
24 | return status;
25 | }
26 |
27 | public void setStatus(String status) {
28 | this.status = status;
29 | }
30 |
31 | public Map toMap(){
32 | Map map = new HashMap();
33 | map.put("status", this.status);
34 | map.put("result", this.result);
35 | return map;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/RongResult.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | public class RongResult {
7 | Object result;
8 | Status status;
9 |
10 | public Object getResult() {
11 | return result;
12 | }
13 |
14 | public void setResult(Object result) {
15 | this.result = result;
16 | }
17 |
18 | public Status getStatus() {
19 | return status;
20 | }
21 |
22 | public void setStatus(Status status) {
23 | this.status = status;
24 | }
25 |
26 | public Map toMap(){
27 | Map map = new HashMap();
28 | map.put("status", this.status.ordinal());
29 | map.put("result", this.result);
30 | return map;
31 | }
32 |
33 | public static enum Status {
34 | prepare, success, error, progress
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/translation/ITranslatedMessage.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common.translation;
2 |
3 | /**
4 | * Created by * Created by ailei 31/1/2019.
5 | */
6 | public interface ITranslatedMessage {
7 | }
8 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/translation/TranslatedCSGroupItem.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common.translation;
2 | import java.util.HashMap;
3 | import java.util.Map;
4 |
5 | import io.rong.imlib.model.CSGroupItem;
6 |
7 | public class TranslatedCSGroupItem {
8 | String groupId;
9 | String name;
10 | boolean online;
11 | public TranslatedCSGroupItem(CSGroupItem item){
12 | this.groupId = item.getId();
13 | this.name = item.getName();
14 | this.online = item.getOnline();
15 | }
16 |
17 | public Map toMap() {
18 | Map map = new HashMap();
19 | map.put("groupId", this.groupId);
20 | map.put("name", this.name);
21 | map.put("online", this.online);
22 | return map;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/android/src/main/java/com/ninefrost/flutterrongcloudim/common/translation/TranslatedCSGroupList.java:
--------------------------------------------------------------------------------
1 | package com.ninefrost.flutterrongcloudim.common.translation;
2 |
3 | import java.util.ArrayList;
4 | import java.util.HashMap;
5 | import java.util.List;
6 | import java.util.Map;
7 |
8 | import io.rong.imlib.model.CSGroupItem;
9 |
10 | /**
11 | * Created by wangmingqiang on 16/8/26.
12 | */
13 | public class TranslatedCSGroupList {
14 | List groupList = new ArrayList();
15 | public TranslatedCSGroupList(List groups) {
16 | for (CSGroupItem item : groups)
17 | groupList.add(new TranslatedCSGroupItem(item));
18 | }
19 |
20 | public Map toMap() {
21 | Map map = new HashMap();
22 | List