|
19 | 19 | import android.widget.EditText; |
20 | 20 | import android.widget.ImageView; |
21 | 21 | import android.widget.LinearLayout; |
| 22 | +import android.widget.ListView; |
22 | 23 | import android.widget.TextView; |
23 | 24 | import android.widget.Toast; |
24 | 25 |
|
@@ -82,7 +83,9 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { |
82 | 83 | if (BuildConfig.DEBUG) { |
83 | 84 | L.d("activity", activity, "clz", activityClzName); |
84 | 85 | } |
85 | | - if (activityClzName.contains(".UserSettingActivity")) { |
| 86 | + if (activityClzName.contains(".MySettingActivity")) { |
| 87 | + Task.onMain(100, () -> doSettingsMenuInject_10_1_38(activity)); |
| 88 | + } else if (activityClzName.contains(".UserSettingActivity")) { |
86 | 89 | Task.onMain(100, () -> doSettingsMenuInject(activity)); |
87 | 90 | } else if (activityClzName.contains(".MspContainerActivity") |
88 | 91 | || activityClzName.contains(".FlyBirdWindowActivity")) { |
@@ -314,6 +317,71 @@ public void showFingerPrintDialog(final Activity activity) { |
314 | 317 | } catch (OutOfMemoryError e) { |
315 | 318 | } |
316 | 319 | } |
| 320 | + |
| 321 | + private void doSettingsMenuInject_10_1_38(final Activity activity) { |
| 322 | + int listViewId = activity.getResources().getIdentifier("setting_list", "id", "com.alipay.android.phone.openplatform"); |
| 323 | + |
| 324 | + ListView listView = activity.findViewById(listViewId); |
| 325 | + |
| 326 | + View lineTopView = new View(activity); |
| 327 | + lineTopView.setBackgroundColor(0xFFEEEEEE); |
| 328 | + |
| 329 | + LinearLayout itemHlinearLayout = new LinearLayout(activity); |
| 330 | + itemHlinearLayout.setOrientation(LinearLayout.HORIZONTAL); |
| 331 | + itemHlinearLayout.setWeightSum(1); |
| 332 | + itemHlinearLayout.setBackground(ViewUtil.genBackgroundDefaultDrawable(Color.WHITE, 0xFFD9D9D9)); |
| 333 | + itemHlinearLayout.setGravity(Gravity.CENTER_VERTICAL); |
| 334 | + itemHlinearLayout.setClickable(true); |
| 335 | + itemHlinearLayout.setOnClickListener(view -> new SettingsView(activity).showInDialog()); |
| 336 | + |
| 337 | + int defHPadding = DpUtil.dip2px(activity, 15); |
| 338 | + |
| 339 | + TextView itemNameText = new TextView(activity); |
| 340 | + StyleUtil.apply(itemNameText); |
| 341 | + itemNameText.setText(Lang.getString(R.id.app_settings_name)); |
| 342 | + itemNameText.setGravity(Gravity.CENTER_VERTICAL); |
| 343 | + itemNameText.setPadding(defHPadding, 0, 0, 0); |
| 344 | + itemNameText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, StyleUtil.TEXT_SIZE_BIG); |
| 345 | + |
| 346 | + TextView itemSummerText = new TextView(activity); |
| 347 | + StyleUtil.apply(itemSummerText); |
| 348 | + itemSummerText.setText(BuildConfig.VERSION_NAME); |
| 349 | + itemSummerText.setGravity(Gravity.CENTER_VERTICAL); |
| 350 | + itemSummerText.setPadding(0, 0, defHPadding, 0); |
| 351 | + itemSummerText.setTextColor(0xFF999999); |
| 352 | + |
| 353 | + //try use Alipay style |
| 354 | + try { |
| 355 | + View settingsView = ViewUtil.findViewByName(activity, "com.alipay.mobile.antui", "item_left_text"); |
| 356 | + L.d("settingsView", settingsView); |
| 357 | + if (settingsView instanceof TextView) { |
| 358 | + TextView settingsTextView = (TextView) settingsView; |
| 359 | + float scale = itemNameText.getTextSize() / settingsTextView.getTextSize(); |
| 360 | + itemNameText.setTextSize(TypedValue.COMPLEX_UNIT_PX, settingsTextView.getTextSize()); |
| 361 | + itemSummerText.setTextSize(TypedValue.COMPLEX_UNIT_PX, itemSummerText.getTextSize() / scale); |
| 362 | + itemNameText.setTextColor(settingsTextView.getCurrentTextColor()); |
| 363 | + } |
| 364 | + } catch (Exception e) { |
| 365 | + L.e(e); |
| 366 | + } |
| 367 | + |
| 368 | + itemHlinearLayout.addView(itemNameText, new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1)); |
| 369 | + itemHlinearLayout.addView(itemSummerText, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT)); |
| 370 | + |
| 371 | + View lineBottomView = new View(activity); |
| 372 | + lineBottomView.setBackgroundColor(0xFFEEEEEE); |
| 373 | + |
| 374 | + LinearLayout rootLinearLayout = new LinearLayout(activity); |
| 375 | + rootLinearLayout.setOrientation(LinearLayout.VERTICAL); |
| 376 | + rootLinearLayout.addView(lineTopView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1)); |
| 377 | + rootLinearLayout.addView(itemHlinearLayout, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dip2px(activity, 45))); |
| 378 | + LinearLayout.LayoutParams lineParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1); |
| 379 | + lineParams.bottomMargin = DpUtil.dip2px(activity, 20); |
| 380 | + rootLinearLayout.addView(lineBottomView, lineParams); |
| 381 | + |
| 382 | + listView.addHeaderView(rootLinearLayout); |
| 383 | + } |
| 384 | + |
317 | 385 | private void doSettingsMenuInject(final Activity activity) { |
318 | 386 | int logout_id = activity.getResources().getIdentifier("logout", "id", "com.alipay.android.phone.openplatform"); |
319 | 387 |
|
|
0 commit comments