// изменение текста на кнопках private void showStationButtons() { Object button; Log.d(TAG, "showStationButtons"); // если находимся в режиме поиска, то кнопки не переименовываем boolean mSearching = XposedHelpers.getBooleanField(radioService, "mSearching"); if (mSearching) return; int mBand = XposedHelpers.getIntField(radioService, "mBand"); int[][] freq = (int[][]) XposedHelpers.getObjectField(radioService, "freq"); // цикл по кнопкам for (int i = 0; i < 6; i++) { // поиск кнопки button = XposedHelpers.callMethod(mUi, "getChannelButton", i); if (button == null) return; // выходим, если это не кнопка, а layout if (!(button instanceof Button)) return; // частота кнопки int buttonFreq = freq[mBand][i]; // форматируем частоту String freqStr = getFrequencyString(buttonFreq); // короткое наименование String text = getShortStationName(freqStr); Log.d(TAG, "freq=" + freqStr + ", text=" + text); if (!text.isEmpty()) // изменим текст на кнопке, если он задан ((Button) button).setText(text); } }
@Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { try { String uuid = Common.byteArrayToHexString((byte[]) XposedHelpers.callMethod(param.args[0], "getUid")); Set<String> authorizedNfcTags = prefs.getStringSet(Common.PREF_NFC_KEYS, new HashSet<String>()); Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); if (mDebugMode) XposedBridge.log(uuid.trim()); if (context != null) { if (authorizedNfcTags != null && authorizedNfcTags.contains(uuid.trim())) { if (mDebugMode) XposedBridge.log("Got matching NFC tag, unlocking device..."); context.sendBroadcast(new Intent(Common.INTENT_UNLOCK_DEVICE)); } if (!prefs.getBoolean(Common.PREF_TAGLOST, true)) return; XposedHelpers.setAdditionalInstanceField(param.args[0], "mContext", context); } } catch (Exception e) { e.printStackTrace(); } }
private void setKitKatBatteryColor(int iconColor) { if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) return; if (mKitKatBatteryView == null) return; boolean debug = mSettingsHelper.isDebugMode(); try { final int[] colors = (int[]) XposedHelpers.getObjectField(mKitKatBatteryView, "mColors"); colors[colors.length - 1] = iconColor; XposedHelpers.setObjectField(mKitKatBatteryView, "mColors", colors); } catch (NoSuchFieldError e) { if (debug) e.printStackTrace(); } try { final Paint framePaint = (Paint) XposedHelpers.getObjectField(mKitKatBatteryView, "mFramePaint"); framePaint.setColor(iconColor); framePaint.setAlpha(100); } catch (NoSuchFieldError e) { if (debug) e.printStackTrace(); } try { final Paint boltPaint = (Paint) XposedHelpers.getObjectField(mKitKatBatteryView, "mBoltPaint"); boltPaint.setColor(Utils.getIconColorForColor(iconColor, Color.BLACK, Color.WHITE, 0.7f)); boltPaint.setAlpha(100); } catch (NoSuchFieldError e) { if (debug) e.printStackTrace(); } try { XposedHelpers.setIntField(mKitKatBatteryView, "mChargeColor", iconColor); } catch (NoSuchFieldError e) { /* Beanstalk, not sure why the ROM changed this */ try { XposedHelpers.setIntField(mKitKatBatteryView, "mBatteryColor", iconColor); } catch (NoSuchFieldError e1) { } if (debug) e.printStackTrace(); } mKitKatBatteryView.invalidate(); }
@SuppressLint("SimpleDateFormat") @SuppressWarnings("deprecation") private static void setupSmartAlarm(MethodHookParam param, int timeout) { if (((Intent) param.args[0]).getBooleanExtra("alarmSet", false)) { Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); String nextAlarm = Settings.System.getString( context.getContentResolver(), android.provider.Settings.System.NEXT_ALARM_FORMATTED); DateFormat sdf = new SimpleDateFormat("EEE hh:mm aa"); Date alarmDate = null; try { alarmDate = sdf.parse(nextAlarm); } catch (ParseException e) { e.printStackTrace(); } int alarmDay = alarmDate.getDay(); Calendar now = Calendar.getInstance(); Date currentDate = now.getTime(); int todayDay = currentDate.getDay(); int daysDiff = 0; if (todayDay > alarmDay) { daysDiff = ((7 + (alarmDay - todayDay)) % 7) + 1; } else { daysDiff = ((7 + (alarmDay - todayDay)) % 7); } now.add(Calendar.DATE, daysDiff); Date alarmFulldate = now.getTime(); alarmFulldate.setHours(alarmDate.getHours()); alarmFulldate.setMinutes(alarmDate.getMinutes()); alarmFulldate.setSeconds(0); long millis = alarmFulldate.getTime() - new Date().getTime(); if (millis > (timeout * 60 * 1000)) { ((Intent) param.args[0]).putExtra("alarmSet", false); } } }