Skip to content

Commit f22e486

Browse files
committed
try to fix: clipboard list crash
1 parent 5ad1a1b commit f22e486

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

app/src/main/java/com/sevtinge/hyperceiler/module/hook/various/clipboard/NewClipboardList.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class NewClipboardList extends BaseHC implements LoadInputMethodDex.OnInp
5353
private Gson mGson;
5454
private static String mDataPath;
5555
private boolean isNewMode = false;
56+
private String content = null;
5657

5758
private boolean isHooked;
5859

@@ -127,7 +128,7 @@ private void newMethod(ClassLoader classLoader) {
127128
@Override
128129
public void before() {
129130
Object clipboardContentModel = getArgs(2);
130-
String content = ContentModel.getContent(clipboardContentModel);
131+
content = ContentModel.getContent(clipboardContentModel);
131132
int type = ContentModel.getType(clipboardContentModel);
132133
// long time = ContentModel.getTime(clipboardContentModel);
133134
addClipboard(content, type, (Context) getArgs(0));
@@ -197,18 +198,23 @@ public void before() {
197198
XposedHelpers.findAndHookMethod("com.miui.inputmethod.MiuiClipboardManager", classLoader, "buildClipboardModelDataType", "com.miui.inputmethod.ClipboardContentModel", new XC_MethodHook() {
198199
@Override
199200
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
200-
final boolean[] isSkip = {false};
201+
String json = (String) XposedHelpers.callMethod(param.args[0], "getContent");
202+
if (TextUtils.isEmpty(json) || json == null) {
203+
param.setResult(null);
204+
XposedLogUtils.logW(TAG, lpparam.packageName, "Got null string, skip run. String = " + json);
205+
}
201206
XposedHelpers.findAndHookConstructor(JSONArray.class, String.class, new XC_MethodHook() {
202207
@Override
203208
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
204209
String json = (String) param.args[0];
205210
if (TextUtils.isEmpty(json) || json == null) {
206-
isSkip[0] = true;
207-
XposedLogUtils.logW(TAG, lpparam.packageName, "Got null string, skip run. String = " + param.args[0]);
211+
if (!TextUtils.isEmpty(content) && content != null) {
212+
param.args[0] = content;
213+
XposedLogUtils.logW(TAG, lpparam.packageName, "Got null string, overwrite param. String = " + param.args[0]);
214+
}
208215
}
209216
}
210217
});
211-
if (isSkip[0]) param.setResult(null);
212218
}
213219
});
214220

0 commit comments

Comments
 (0)