Добавление параметра настройки в 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);
    }
Другие вопросы по тегам