Добавление параметра настройки в Android Settings.apk
У меня есть значок сигнала в строке состояния, который я хотел бы сделать опцией в Settings.apk на Cyanogenmod. Параметр есть, и он присваивает правильное значение int для STATUS_BAR_SIGNAL, я просто не могу понять, как выполнить мой новый значок после выбора этой опции.
В настоящее время без моего нового варианта есть 3 варианта; Значок, текст и скрытый. Иконка показывает фондовую иконку, Текст показывает значение сигнала в дБм, а Скрытый скрывает иконку сигнала. Назначения int: Icon = 0, Text = 1, Hidden = 2 в android.provider.Settings.System.
В SystemUI.statusbar есть два файла Java без моего значка; SignalClusterView.java и SignalClusterTextView.java.
Моя новая опция - Всегда, я назначил ей 2 и переместил Скрытую на 3. Однако 2 и 3 не приводят к появлению новой иконки, в результате чего появляется скрытая иконка.
Я создал новый значок в SystemUI.statusbar, SignalClusterAlwaysView.java, но я не уверен, что должно быть в моем Java-файле, чтобы включить его после того, как STATUS_BAR_SIGNAL изменится на 2.
Как заставить мой новый значок работать, если STATUS_BAR_SIGNAL = 2?
1 ответ
Ну, я понял это; не уверен, как это ссылки, но это так.
Мне нужно было создать свой код под
public void setStyle(int style) {
mSignalClusterStyle = style;
updateVisibilityForStyle();
Или что-то похожее в моем коде для моей иконки.
style
извлекает значение, хранящееся в Settings.System.STATUS_BAR_SIGNAL, и использует public int, чтобы определить, что означает каждый из них, поэтому в моем случае мне пришлось добавить;
public static final int STYLE_ALWAYS = 2;
к вершине основного SignalClusterView.java.
Так что я закончил с чем-то вроде:
if (mSignalClusterStyle == STYLE_ALWAYS) {
mMobileType.setVisibility(View.VISIBLE);
}
else if (!mIsAirplaneMode && mMobileGroup != null) {
mMobileGroup.setVisibility(mSignalClusterStyle != STYLE_NORMAL
? View.GONE : View.VISIBLE);
}