Skip to content

Commit d20421c

Browse files
author
Itgel G
committed
merged
2 parents 65c151c + f9d08a6 commit d20421c

File tree

18 files changed

+40663
-27
lines changed

18 files changed

+40663
-27
lines changed

.circleci/config.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Java Gradle CircleCI 2.0 configuration file
2+
#
3+
# Check https://circleci.com/docs/2.0/language-java/ for more details
4+
#
5+
version: 2
6+
jobs:
7+
build:
8+
docker:
9+
# specify the version you desire here
10+
- image: circleci/openjdk:8-jdk
11+
12+
# Specify service dependencies here if necessary
13+
# CircleCI maintains a library of pre-built images
14+
# documented at https://circleci.com/docs/2.0/circleci-images/
15+
# - image: circleci/postgres:9.4
16+
17+
working_directory: ~/repo
18+
19+
environment:
20+
# Customize the JVM maximum heap limit
21+
JVM_OPTS: -Xmx3200m
22+
TERM: dumb
23+
24+
steps:
25+
- checkout
26+
27+
# Download and cache dependencies
28+
- restore_cache:
29+
keys:
30+
- v1-dependencies-{{ checksum "build.gradle" }}
31+
# fallback to using the latest cache if no exact match is found
32+
- v1-dependencies-
33+
34+
- run: gradle dependencies
35+
36+
- save_cache:
37+
paths:
38+
- ~/.gradle
39+
key: v1-dependencies-{{ checksum "build.gradle" }}
40+
41+
# run tests!
42+
- run: gradle test

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<uses-permission android:name="android.permission.INTERNET" />
55
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
66
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
7+
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
8+
79
<application
810
android:allowBackup="true"
911
android:icon="@mipmap/ic_launcher"

erxeslibrary/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@
33
xmlns:tools="http://schemas.android.com/tools"
44
package="com.newmedia.erxeslibrary">
55

6+
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
67
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
78
<uses-permission android:name="android.permission.INTERNET" />
89
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
910
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1011
<uses-permission android:name="android.permission.RECORD_AUDIO" />
1112
<uses-permission android:name="android.permission.CAMERA" />
1213
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
14+
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
15+
1316
<uses-feature
1417
android:name="android.hardware.camera"
1518
android:required="true" />

erxeslibrary/src/main/graphql/com.erxes.io/opens/schema.json

Lines changed: 40151 additions & 1 deletion
Large diffs are not rendered by default.

erxeslibrary/src/main/graphql/com.erxes.io/opens/widget.graphql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,26 @@ mutation widgetsInsertMessage($integrationId: String!, $customerId: String!, $me
1717
}
1818
}
1919

20+
mutation widgetBotRequest(
21+
$message: String!
22+
$payload: String!
23+
$type: String!
24+
$conversationId: String
25+
$customerId: String
26+
$visitorId: String
27+
$integrationId: String!
28+
) {
29+
widgetBotRequest(
30+
message: $message
31+
payload: $payload
32+
type: $type
33+
conversationId: $conversationId
34+
customerId: $customerId
35+
visitorId: $visitorId
36+
integrationId: $integrationId
37+
)
38+
}
39+
2040
query widgetsConversations($integrationId: String!,$customerId: String!){
2141
widgetsConversations(integrationId: $integrationId,customerId: $customerId) {
2242
_id

erxeslibrary/src/main/java/com/newmedia/erxeslibrary/configuration/ErxesRequest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.newmedia.erxeslibrary.connection.InsertMessage;
2222
import com.newmedia.erxeslibrary.connection.SendLead;
2323
import com.newmedia.erxeslibrary.connection.SetConnect;
24+
import com.newmedia.erxeslibrary.connection.WidgetBotRequest;
2425
import com.newmedia.erxeslibrary.connection.helper.JsonCustomTypeAdapter;
2526
import com.newmedia.erxeslibrary.connection.helper.Tls12SocketFactory;
2627
import com.newmedia.erxeslibrary.helper.ErxesHelper;
@@ -202,6 +203,13 @@ public void sendLead() {
202203
SendLead sendLead = new SendLead(this, context);
203204
sendLead.run();
204205
}
206+
public void sendWidgetBotRequest(String content,String type,String payload) {
207+
if (!config.isNetworkConnected()) {
208+
return;
209+
}
210+
WidgetBotRequest widgetBotRequest = new WidgetBotRequest(this, context);
211+
widgetBotRequest.run(content,type,payload);
212+
}
205213

206214
public void changeOperator(String conversationid) {
207215
if (!config.isNetworkConnected()) {

erxeslibrary/src/main/java/com/newmedia/erxeslibrary/connection/GetMessage.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ public void onNext(Response<WidgetsMessagesQuery.Data> response) {
4949
List<ConversationMessage> conversationMessages = ConversationMessage.convert(response, conversationid);
5050
List<ConversationMessage> withoutBotList = new ArrayList<>();
5151
for (ConversationMessage message : conversationMessages) {
52-
if (!message.internal && message.botData == null) {
52+
// if (!message.internal && message.botData == null) {
53+
if (!message.internal ) {
5354
withoutBotList.add(message);
5455
}
5556
}

erxeslibrary/src/main/java/com/newmedia/erxeslibrary/connection/InsertMessage.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ public void run(String mContent, List<AttachmentInput> list, String type) {
5454
.observeOn(AndroidSchedulers.mainThread())
5555
.subscribe(new Observer<Response<WidgetsInsertMessageMutation.Data>>() {
5656
@Override
57-
public void onSubscribe(Disposable d) {
58-
59-
}
57+
public void onSubscribe(Disposable d) { }
6058

6159
@Override
6260
public void onNext(Response<WidgetsInsertMessageMutation.Data> response) {
@@ -75,14 +73,10 @@ public void onNext(Response<WidgetsInsertMessageMutation.Data> response) {
7573
public void onError(Throwable e) {
7674
e.printStackTrace();
7775
erxesRequest.notefyAll(ReturntypeUtil.CONNECTIONFAILED, null, e.getMessage(),null);
78-
7976
}
8077

8178
@Override
82-
public void onComplete() {
83-
84-
}
79+
public void onComplete() { }
8580
});
8681
}
87-
8882
}

erxeslibrary/src/main/java/com/newmedia/erxeslibrary/connection/SetConnect.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package com.newmedia.erxeslibrary.connection;
22

3+
import android.annotation.SuppressLint;
34
import android.content.Context;
5+
import android.os.Build;
6+
import android.provider.Settings;
7+
import android.telephony.TelephonyManager;
8+
import android.util.Log;
49

510
import com.apollographql.apollo.api.Response;
611
import com.apollographql.apollo.rx3.Rx3Apollo;
@@ -14,6 +19,7 @@
1419
import com.newmedia.erxeslibrary.utils.DataManager;
1520

1621
import java.util.Map;
22+
import java.util.Random;
1723

1824
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
1925
import io.reactivex.rxjava3.core.Observer;
@@ -34,16 +40,50 @@ public SetConnect(ErxesRequest erxesRequest, Context context) {
3440
dataManager = DataManager.getInstance(context);
3541
}
3642

43+
public String getDeviceIMEI() {
44+
try {
45+
return Settings.Secure.getString(config.context.getContentResolver(), Settings.Secure.ANDROID_ID);
46+
}
47+
catch (Exception e){
48+
return null;
49+
}
50+
}
51+
52+
public String getRandom() {
53+
int leftLimit = 97; // letter 'a'
54+
int rightLimit = 122; // letter 'z'
55+
int targetStringLength = 32;
56+
Random random = new Random();
57+
StringBuilder buffer = new StringBuilder(targetStringLength);
58+
for (int i = 0; i < targetStringLength; i++) {
59+
int randomLimitedInt = leftLimit + (int)
60+
(random.nextFloat() * (rightLimit - leftLimit + 1));
61+
buffer.append((char) randomLimitedInt);
62+
}
63+
String generatedString = buffer.toString();
64+
return generatedString;
65+
}
3766
public void run(boolean isCheckRequired, boolean isUser, boolean hasData, String email, String phone, String data) {
3867
this.customData = data;
3968
Gson gson = new Gson();
4069
Map customDataMap = gson.fromJson(data, Map.class);
70+
String imei = getDeviceIMEI();
71+
72+
if(imei == null){
73+
if(dataManager.getDataS(DataManager.ANDROID_UNIQUE)==null){
74+
imei = getRandom();
75+
dataManager.setData(DataManager.ANDROID_UNIQUE,imei);
76+
} else {
77+
imei = dataManager.getDataS(DataManager.ANDROID_UNIQUE);
78+
}
79+
}
4180

4281
WidgetsMessengerConnectMutation mutate = WidgetsMessengerConnectMutation.builder()
4382
.brandCode(config.brandCode)
4483
.email(email)
4584
.phone(phone)
4685
.isUser(isUser)
86+
// .visitorId(imei)
4787
.data(new Json(customDataMap))
4888
.build();
4989
Rx3Apollo.from(erxesRequest.apolloClient
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package com.newmedia.erxeslibrary.connection;
2+
3+
import android.content.Context;
4+
import android.text.TextUtils;
5+
import android.util.Log;
6+
7+
import com.apollographql.apollo.api.Response;
8+
import com.apollographql.apollo.rx3.Rx3Apollo;
9+
import com.erxes.io.opens.WidgetBotRequestMutation;
10+
import com.erxes.io.opens.WidgetsInsertMessageMutation;
11+
import com.erxes.io.opens.type.AttachmentInput;
12+
import com.newmedia.erxeslibrary.configuration.Config;
13+
import com.newmedia.erxeslibrary.configuration.ErxesRequest;
14+
import com.newmedia.erxeslibrary.model.ConversationMessage;
15+
import com.newmedia.erxeslibrary.utils.ReturntypeUtil;
16+
17+
import java.util.List;
18+
19+
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
20+
import io.reactivex.rxjava3.core.Observer;
21+
import io.reactivex.rxjava3.disposables.Disposable;
22+
import io.reactivex.rxjava3.schedulers.Schedulers;
23+
24+
public class WidgetBotRequest {
25+
final static String TAG = "widgetBotRequest";
26+
private final ErxesRequest erxesRequest;
27+
private final Config config;
28+
private final Context context;
29+
30+
public WidgetBotRequest(ErxesRequest erxesRequest, Context context) {
31+
this.erxesRequest = erxesRequest;
32+
this.context = context;
33+
config = Config.getInstance(context);
34+
}
35+
36+
public void run(String mContent, String type,String payload) {
37+
if (TextUtils.isEmpty(mContent) ) {
38+
mContent = "This message has an attachment";
39+
}
40+
WidgetBotRequestMutation.Builder temp = WidgetBotRequestMutation.builder()
41+
.integrationId(config.integrationId)
42+
.customerId(config.customerId)
43+
.message(mContent)
44+
.conversationId(config.conversationId)
45+
.payload(payload)
46+
.type(type);
47+
48+
String finalMContent = mContent;
49+
Rx3Apollo.from(erxesRequest.apolloClient
50+
.mutate(temp.build()))
51+
.subscribeOn(Schedulers.io())
52+
.observeOn(AndroidSchedulers.mainThread())
53+
.subscribe(new Observer<Response<WidgetBotRequestMutation.Data>>() {
54+
@Override
55+
public void onSubscribe(Disposable d) {
56+
57+
}
58+
59+
@Override
60+
public void onNext(Response<WidgetBotRequestMutation.Data> response) {
61+
if (response.hasErrors()) {
62+
erxesRequest.notefyAll(ReturntypeUtil.SERVERERROR, config.conversationId, response.getErrors().get(0).getMessage(),null);
63+
} else {
64+
if (response.getData() != null) {
65+
Log.d("fuck"," xx "+response.getData().widgetBotRequest().toString());
66+
erxesRequest.notefyAll(ReturntypeUtil.GETBOTINITIALMESSAGE, config.conversationId, null, response.getData().widgetBotRequest());
67+
}
68+
}
69+
}
70+
71+
@Override
72+
public void onError(Throwable e) {
73+
e.printStackTrace();
74+
erxesRequest.notefyAll(ReturntypeUtil.CONNECTIONFAILED, null, e.getMessage(),null);
75+
76+
}
77+
78+
@Override
79+
public void onComplete() {
80+
81+
}
82+
});
83+
}
84+
85+
}

0 commit comments

Comments
 (0)