// изменение текста на кнопках 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); } }
// переход на радиостанцию private void gotoStation(Intent data) { String freq = data.getStringExtra("frequency"); Log.d(TAG, "freq=" + freq); boolean mSearching = XposedHelpers.getBooleanField(radioService, "mSearching"); if (mSearching) return; int freqInt = (int) (Float.valueOf(freq) * 1000000); Log.d(TAG, "(int)freq=" + freqInt); XposedHelpers.callMethod(radioService, "setFreq", freqInt); // XposedHelpers.callMethod(radioService, "setMute", false); XposedHelpers.callMethod(radioService, "showBandChannel"); XposedHelpers.callMethod(radioService, "showFreq"); XposedHelpers.callMethod(radioService, "showRds"); XposedHelpers.callMethod(radioService, "showSt"); XposedHelpers.setIntField(radioService, "mChannel", -1); Log.d(TAG, "frequency set OK"); }