Skip to content

Commit 483a672

Browse files
committed
refactor: move static methods from XmPushActionOperator to XMPushUtils
1 parent 1c9ee03 commit 483a672

13 files changed

Lines changed: 50 additions & 51 deletions

File tree

push/src/main/java/com/android/settings/widget/RegistrationHelper.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55

66
import androidx.annotation.NonNull;
77

8+
import com.nihility.XMPushUtils;
89
import com.topjohnwu.superuser.Shell;
910
import com.xiaomi.push.sdk.MyPushMessageHandler;
1011
import com.xiaomi.push.service.PushConstants;
11-
import com.xiaomi.push.service.XmPushActionOperator;
1212
import com.xiaomi.xmpush.thrift.NotificationType;
1313
import com.xiaomi.xmpush.thrift.PushMetaInfo;
1414
import com.xiaomi.xmpush.thrift.XmPushActionContainer;
1515
import com.xiaomi.xmpush.thrift.XmPushActionNotification;
16-
import com.xiaomi.xmpush.thrift.XmPushThriftSerializeUtils;
1716

1817
import top.trumeet.common.utils.Utils;
1918

@@ -27,7 +26,7 @@ public RegistrationHelper(Context context, String packageName) {
2726
}
2827

2928
public static void tryForceRegister(String packageName) {
30-
byte[] msgBytes = XmPushActionOperator.packToBytes(
29+
byte[] msgBytes = XMPushUtils.packToBytes(
3130
createForceRegisterMessage(packageName));
3231
Intent intent = new Intent(PushConstants.MIPUSH_ACTION_NEW_MESSAGE);
3332
intent.setPackage(packageName);
@@ -45,7 +44,7 @@ public static XmPushActionContainer createForceRegisterMessage(String packageNam
4544
regIdExpiredNotification.setId(id);
4645
PushMetaInfo metaInfo = new PushMetaInfo();
4746
metaInfo.setId(id);
48-
XmPushActionContainer regIdExpiredContainer = XmPushActionOperator.packToContainer(regIdExpiredNotification, packageName);
47+
XmPushActionContainer regIdExpiredContainer = XMPushUtils.packToContainer(regIdExpiredNotification, packageName);
4948
regIdExpiredContainer.setMetaInfo(metaInfo);
5049
return regIdExpiredContainer;
5150
}

push/src/main/java/com/nihility/XMPushUtils.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,19 @@
22

33
import androidx.annotation.NonNull;
44

5+
import com.xiaomi.channel.commonutils.reflect.JavaCalls;
6+
import com.xiaomi.mipush.sdk.PushContainerHelper;
7+
import com.xiaomi.push.service.MIPushEventProcessor;
8+
import com.xiaomi.xmpush.thrift.ActionType;
59
import com.xiaomi.xmpush.thrift.PushMetaInfo;
610
import com.xiaomi.xmpush.thrift.XmPushActionContainer;
11+
import com.xiaomi.xmpush.thrift.XmPushActionNotification;
12+
import com.xiaomi.xmpush.thrift.XmPushThriftSerializeUtils;
13+
14+
import org.apache.thrift.TBase;
715

816
import top.trumeet.common.utils.CustomConfiguration;
17+
import top.trumeet.common.utils.Utils;
918

1019
public class XMPushUtils {
1120
public static @NonNull CustomConfiguration getConfiguration(XmPushActionContainer container) {
@@ -21,4 +30,19 @@ public class XMPushUtils {
2130
}
2231
return new CustomConfiguration(metaInfo.getExtra());
2332
}
33+
34+
public static XmPushActionContainer packToContainer(byte[] payload) {
35+
return MIPushEventProcessor.buildContainer(payload);
36+
}
37+
38+
public static @NonNull XmPushActionContainer packToContainer(XmPushActionNotification action, String packageName) {
39+
return JavaCalls.callStaticMethod(
40+
PushContainerHelper.class.getName(), "generateRequestContainer",
41+
Utils.getApplication(), action, ActionType.Notification,
42+
false, packageName, action.appId);
43+
}
44+
45+
public static <T extends TBase<T, ?>> byte[] packToBytes(T container) {
46+
return XmPushThriftSerializeUtils.convertThriftObjectToBytes(container);
47+
}
2448
}

push/src/main/java/com/xiaomi/push/sdk/MyPushMessageHandler.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,12 @@
2323
import com.xiaomi.push.service.MIPushNotificationHelper;
2424
import com.xiaomi.push.service.MyMIPushNotificationHelper;
2525
import com.xiaomi.push.service.PushConstants;
26-
import com.xiaomi.push.service.XmPushActionOperator;
2726
import com.xiaomi.xmpush.thrift.PushMetaInfo;
2827
import com.xiaomi.xmpush.thrift.XmPushActionContainer;
2928
import com.xiaomi.xmsf.push.notification.NotificationController;
3029
import com.xiaomi.xmsf.push.utils.Configurations;
3130
import com.xiaomi.xmsf.utils.ConfigCenter;
3231

33-
import java.util.HashMap;
3432
import java.util.function.Consumer;
3533

3634
import top.trumeet.common.Constants;
@@ -65,7 +63,7 @@ protected void onHandleIntent(final Intent intent) {
6563
return;
6664
}
6765

68-
final XmPushActionContainer container = XmPushActionOperator.packToContainer(payload);
66+
final XmPushActionContainer container = XMPushUtils.packToContainer(payload);
6967
if (container == null) {
7068
return;
7169
}
@@ -87,7 +85,7 @@ public static void cancelNotification(Context context, Bundle bundle) {
8785
return;
8886
}
8987

90-
final XmPushActionContainer container = XmPushActionOperator.packToContainer(payload);
88+
final XmPushActionContainer container = XMPushUtils.packToContainer(payload);
9189
if (container == null) {
9290
return;
9391
}
@@ -131,7 +129,7 @@ public static ComponentName startService(Context context, XmPushActionContainer
131129
}
132130

133131
public static ComponentName forwardToTargetApplication(Context context, byte[] payload) {
134-
XmPushActionContainer container = XmPushActionOperator.packToContainer(payload);
132+
XmPushActionContainer container = XMPushUtils.packToContainer(payload);
135133
PushMetaInfo metaInfo = container.getMetaInfo();
136134
String targetPackage = container.getPackageName();
137135

push/src/main/java/com/xiaomi/push/service/MIPushEventProcessorAspect.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.com.xiaomi.channel.commonutils.android.AppInfoUtilsAspect;
1010
import com.elvishew.xlog.Logger;
1111
import com.elvishew.xlog.XLog;
12+
import com.nihility.XMPushUtils;
1213
import com.nihility.service.RegistrationRecorder;
1314
import com.xiaomi.channel.commonutils.reflect.JavaCalls;
1415
import com.xiaomi.push.service.clientReport.ReportConstants;
@@ -55,7 +56,7 @@ public static void mockProcessMIPushMessage(XMPushService pushService, XmPushAct
5556
}
5657

5758
private static void invokeProcessMiPushMessage(XMPushService pushService, XmPushActionContainer container) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, ClassNotFoundException {
58-
byte[] mockDecryptedContent = XmPushActionOperator.packToBytes(container);
59+
byte[] mockDecryptedContent = XMPushUtils.packToBytes(container);
5960
invokeProcessMiPushMessage(pushService, mockDecryptedContent);
6061
}
6162

@@ -142,7 +143,7 @@ public void processMIPushMessage(final JoinPoint joinPoint,
142143
XMPushService pushService, byte[] decryptedContent, long packetBytesLen) {
143144
logger.d(joinPoint.getSignature());
144145

145-
XmPushActionContainer buildContainer = XmPushActionOperator.packToContainer(decryptedContent);
146+
XmPushActionContainer buildContainer = XMPushUtils.packToContainer(decryptedContent);
146147
if (MiPushMessageDuplicateAspect.isMockMessage(buildContainer)) {
147148
return;
148149
}

push/src/main/java/com/xiaomi/push/service/MyMIPushNotificationHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public class MyMIPushNotificationHelper {
115115
* @see `MIPushNotificationHelper`#notifyPushMessage
116116
*/
117117
public static void notifyPushMessage(Context context, byte[] decryptedContent) {
118-
XmPushActionContainer container = XmPushActionOperator.packToContainer(decryptedContent);
118+
XmPushActionContainer container = XMPushUtils.packToContainer(decryptedContent);
119119
AppInfoUtils.AppNotificationOp notificationOp = AppInfoUtils.getAppNotificationOp(context, getTargetPackage(container), true);
120120
if (notificationOp == AppInfoUtils.AppNotificationOp.NOT_ALLOWED) {
121121
logger.w("Do not notify because user block " + getTargetPackage(container) + "'s notification");

push/src/main/java/com/xiaomi/push/service/PullAllApplicationDataFromServerJob.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import androidx.annotation.NonNull;
77

8+
import com.nihility.XMPushUtils;
89
import com.xiaomi.xmpush.thrift.XmPushActionNotification;
910

1011
import java.util.Map;
@@ -35,7 +36,7 @@ public void process() {
3536
}
3637

3738
xmPushActionOperator.sendMessage(
38-
XmPushActionOperator.packToContainer(getPullAction(appId), packageName),
39+
XMPushUtils.packToContainer(getPullAction(appId), packageName),
3940
packageName);
4041
}
4142
}
Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,7 @@
11
package com.xiaomi.push.service;
22

3-
import androidx.annotation.NonNull;
4-
5-
import com.xiaomi.channel.commonutils.reflect.JavaCalls;
6-
import com.xiaomi.mipush.sdk.PushContainerHelper;
7-
import com.xiaomi.xmpush.thrift.ActionType;
3+
import com.nihility.XMPushUtils;
84
import com.xiaomi.xmpush.thrift.XmPushActionContainer;
9-
import com.xiaomi.xmpush.thrift.XmPushActionNotification;
10-
import com.xiaomi.xmpush.thrift.XmPushThriftSerializeUtils;
11-
12-
import org.apache.thrift.TBase;
13-
14-
import top.trumeet.common.utils.Utils;
155

166
public class XmPushActionOperator {
177
private final XMPushService xmPushService;
@@ -21,22 +11,8 @@ public XmPushActionOperator(XMPushService xmPushService) {
2111
}
2212

2313
public void sendMessage(XmPushActionContainer sendMsgContainer, String packageName) {
24-
byte[] msgBytes = XmPushActionOperator.packToBytes(sendMsgContainer);
14+
byte[] msgBytes = XMPushUtils.packToBytes(sendMsgContainer);
2515
xmPushService.sendMessage(packageName, msgBytes, false);
2616
}
2717

28-
public static XmPushActionContainer packToContainer(byte[] payload) {
29-
return MIPushEventProcessor.buildContainer(payload);
30-
}
31-
32-
public static @NonNull XmPushActionContainer packToContainer(XmPushActionNotification action, String packageName) {
33-
return JavaCalls.callStaticMethod(
34-
PushContainerHelper.class.getName(), "generateRequestContainer",
35-
Utils.getApplication(), action, ActionType.Notification,
36-
false, packageName, action.appId);
37-
}
38-
39-
public static <T extends TBase<T, ?>> byte[] packToBytes(T container) {
40-
return XmPushThriftSerializeUtils.convertThriftObjectToBytes(container);
41-
}
4218
}

push/src/main/java/com/xiaomi/xmsf/push/utils/RegSecUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import android.text.TextUtils;
44

5-
import com.xiaomi.push.service.XmPushActionOperator;
5+
import com.nihility.XMPushUtils;
66
import com.xiaomi.xmpush.thrift.XmPushActionContainer;
77

88
import top.trumeet.mipush.provider.entities.Event;
@@ -27,7 +27,7 @@ public static XmPushActionContainer getContainerWithRegSec(final Event event) {
2727
if (event == null || event.getPayload() == null) {
2828
return null;
2929
}
30-
XmPushActionContainer container = XmPushActionOperator.packToContainer(event.getPayload());
30+
XmPushActionContainer container = XMPushUtils.packToContainer(event.getPayload());
3131
if (container == null) {
3232
return null;
3333
}

push/src/main/java/com/xiaomi/xmsf/utils/ConvertUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
import com.google.gson.JsonElement;
1212
import com.google.gson.JsonNull;
1313
import com.google.gson.JsonObject;
14+
import com.nihility.XMPushUtils;
1415
import com.xiaomi.channel.commonutils.android.DataCryptUtils;
1516
import com.xiaomi.channel.commonutils.string.Base64Coder;
1617
import com.xiaomi.mipush.sdk.DecryptException;
1718
import com.xiaomi.mipush.sdk.PushContainerHelper;
1819
import com.xiaomi.push.service.PushConstants;
19-
import com.xiaomi.push.service.XmPushActionOperator;
2020
import com.xiaomi.xmpush.thrift.*;
2121
import com.xiaomi.xmsf.push.utils.RegSecUtils;
2222

@@ -92,7 +92,7 @@ public static JsonElement toJson(Intent intent) {
9292
byte[] payload = intent.getByteArrayExtra(PushConstants.MIPUSH_EXTRA_PAYLOAD);
9393
if (payload != null) {
9494
extras.add(PushConstants.MIPUSH_EXTRA_PAYLOAD, toJson(
95-
XmPushActionOperator.packToContainer(payload)));
95+
XMPushUtils.packToContainer(payload)));
9696
}
9797
json.add("extras", extras);
9898
}

push/src/main/java/top/trumeet/mipush/provider/db/EventDb.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import androidx.annotation.NonNull;
99
import androidx.annotation.Nullable;
1010

11-
import com.xiaomi.push.service.XmPushActionOperator;
11+
import com.nihility.XMPushUtils;
1212
import com.xiaomi.xmpush.thrift.XmPushActionContainer;
1313
import com.xiaomi.xmpush.thrift.XmPushActionRegistrationResult;
1414
import com.xiaomi.xmsf.push.utils.RegSecUtils;
@@ -137,7 +137,7 @@ public static RegistrationInfo queryRegistered() {
137137

138138
RegistrationInfo info = new RegistrationInfo();
139139
for (Event event : events) {
140-
XmPushActionContainer container = XmPushActionOperator.packToContainer(event.getPayload());
140+
XmPushActionContainer container = XMPushUtils.packToContainer(event.getPayload());
141141
XmPushActionRegistrationResult data = null;
142142
try {
143143
data = (XmPushActionRegistrationResult)

0 commit comments

Comments
 (0)