Контент для андроид самсунг

Какие бывают приложения для Андроид

Типы приложений

Все приложения для Андроид делятся на три категории:

Какие бывают приложения для Андроид

Системные, которые обновляются с прошивкой

Системные, которые обновляются через Плей Маркет

Контакты
Галерея
Сообщения
Интернет
Емайл

Плей Музыка
Хром
Гмайл
Смарт Менеджер
Гугл Карты

Энгри Бёрдс
ВКонтакте
Вайбер
Яндекс Навигатор
Ферма

Установили на заводе и «вшили» в операционную систему

Установили на заводе и «вшили» в операционную систему

Устанавливают самостоятельно из Плей Маркет

Удалить нельзя, некоторые можно отключить

Через настройки смартфона или планшета

При обновлении прошивки

Через Плей Маркет

Через Плей Маркет

Вернуть предыдущую версию нельзя

С помощью операционной системы можно вернуть только заводскую версию, — которая стояла на устройстве при покупке.
Можно установить предыдущую версию, если найти установочный файл в интернете

Можно установить предыдущую и любую другую версию, если найти установочный файл в интернете

Перенести на карту памяти нельзя

Перенести на карту памяти нельзя

Можно перенести на карту памяти, если разработчик приложения предусмотрел такую возможность

Источник

Обзор интерфейса Samsung OneUI 4.0 — все изменения и новые возможности

Традиционно с выходом новой версии Android в Samsung обновляют интерфейс OneUI, который используется в смартфонах, планшетах и умных часах. Буквально на днях в линейке Pixel от Google появился Android 12 в виде финальной версии (помимо Pixel 6/6 Pro, что вышли на нем чуть раньше), и тут же эта версия с интерфейсом OneUI выходит для флагманов от Samsung. Первоначально обновление получают флагманы от Samsung 21-ой серии, затем обновление будет доступно для других моделей. Подход традиционный, вначале обновление прилетает на самые свежие устройства, затем появляется на старых моделях.

Обзор OneUI 4.0 сделан на Galaxy S21 Ultra, который получил обновление прошивки по воздуху (2.6 ГБ).

Для простоты описания отдельных функций остановлюсь на каждом пункте и на том, что он приносит на практике. Изменений достаточно, многие из них сильно меняют восприятие устройства. Давайте посмотрим на то, что изменилось и в какую сторону. Но для начала покажу, как изменились шрифты, они стали ажурнее. Уведомления и шрифты на экране звонка.

Table of Contents

Палитра цветов

Фишка, пришедшая из Android 12, вы можете подобрать цвет иконок, оформления меню под стать тем обоям, что у вас установлены (как свои, так и те, что поставил производитель). Настройка простая, но позволяет в несколько нажатий поменять оформление смартфона.

Конфиденциальность

Меню «Настройки» — «Конфиденциальность». Здесь вы видите, какие приложения используют разрешения на доступ к аппаратным характеристикам, например, к камере или микрофону. Можно включить оповещение о том, что приложения пытаются обратиться к буферу обмена данных (по умолчанию выключено). Интересно, что есть возможность отключить доступ к микрофону и камере для всех без исключения.

При работе микрофона или камеры вы видите зеленую точку в верхней части экрана.

Источник

Как правильно устанавливать приложения на Андроид

Мы знаем, что приложения создают разработчики и добавляют их в специальный каталог — Плей Маркет.

Для установки достаточно найти приложение через поиск или категории, выбрать и нажать кнопку «Установить». Самое сложное здесь — выбор: нужен нам, например, фонарик, а их целая куча. И какой скачать?

Как выбирать приложения

В первую очередь просмотрите несколько приложений и сравните:

● Описание (какие у приложения функции, язык);

● Сколько раз их скачали;

● Какие у них оценки;

● Какие пишут комментарии другие пользователи.

Количество загрузок, оценка и описание приложения

Комментарии к приложению

Чем больше скачиваний и выше оценка, тем меньше шанс, что возникнут неприятности.

Если у приложения есть значки «Выбор редакции» и «Лучший разработчик» , это лишний плюс — название говорит само за себя.

Сразу стоит отмести приложения с небольшим количеством загрузок, плохими оценками и описанием на ломаном русском — скорее всего они некачественные.

Хороший перевод, большое количество загрузок и восторженные комментарии ничего не гарантируют. Это всего лишь критерии первичного отбора. Может быть и так, что всеми расхваливаемое приложение вам не подойдет, а которое никто не скачивает, понравится больше всего.

Сравнили оценки, почитали комментарии, и решили поставить приложение ИКС. Нажимаем «Установить» и появляется список разрешений. Не спешите нажимать кнопку «Принять».

Для чего нужны разрешения

Разрешения — это те действия, которое сможет выполнять приложение после установки.

Что написано

Покупки в приложении

Часть функций этого приложения — платные, лучше не давать детям играть с ним

Приложение сможет определять координаты устройства в любое время, даже когда им не пользуются

Приложение сможет открывать, изменять, добавлять и использовать фотографии и другие файлы на вашем устройстве в любое время, даже когда им не пользуются

Приложение сможет делать фотографии и снимать видео в любое время, даже когда им не пользуются

Приложение сможет записывать окружающие звуки в любое время, даже когда им не пользуются

Данные о Wi-Fi подключении

Приложение сможет проверять, к какой сети подключено устройство, в любое время, даже когда им не пользуются

Приложение сможет читать все смс и отправлять их в неограниченном количестве в любое время, даже когда им не пользуются

Приложение сможет просматривать журнал звонков и звонить на любые номера в любое время, даже когда им не пользуются

Большинство разрешений достаточно серьезны, поэтому просмотрите список внимательно и подумайте — доверяете ли вы авторам и готовы разрешить эти действия? Часто разработчики запрашивают избыточный доступ:

● фонарик должен иметь доступ только к камере, чтобы включать вспышку, а это приложение еще зачем-то хочет знать ваше местоположение, смотреть фотографии, включать микрофон и проверять интернет-подключение;

● простой блокнот не требует никаких специальных разрешений, а вот его аналог, который хочет смотреть контакты, определять местоположение, получить доступ к контактам, файлам и просматривать номера телефона;

● игра «Ферма» предупреждает о платных функциях, хочет просматривать список ваших аккаунтов (игра работает через интернет, поэтому и нужны аккаунты) и использовать фото и другие файлы (скорее всего, это кеш), а вот другой этого мало.

Конечно, ставить приложения только без разрешений, — это нереально. Главное — отнестись внимательно к тому, что приложение хочет получить, и понять, для чего это нужно.

Те же заметки могут просить доступ в интернет, чтобы синхронизироваться с аккаунтом, или у фонарика есть еще и компас, поэтому он запрашивает доступ к датчикам устройства.

Но и может быть так, что с первого взгляда невинный калькулятор, спишет все деньги с сим-карты, потому что ему дали доступ к смс, или украдет личные фотографии, потому что ему дали доступ в интернет и к файлам.

Хороший тон — когда разработчик в описании приложения перечисляет список разрешений и объясняет, зачем они нужны.

Хороший пример хорошего разработчика

Перед установкой внимательно читайте описание, комментарии и разрешения приложения.

Из описания можно узнать о функциях приложения и понять, какие примерно разрешения ему потребуются.

Чем больше разрешений запрашивает приложение, и чем больше приложений вы поставите, тем чаще они будут «дергать» устройство — не давать ему заснуть, чтобы экономить энергию.

Сложно найти подходящее приложение с первого раза. Придется поставить несколько, чтобы выбрать лучшее, а остальные удалить.

Источник

Контент для андроид самсунг

Сообщение отредактировал Wlryss — 03.12.21, 08:42

Добавить по пути efs в файл factory.prop строку
ro.security.vaultkeeper.feature=0
сохранить и перезагрузить

Любая официальная прошивка через odin и
никаких манипуляций с переводом времени,
не нужно ждать 7 дней, сразу можно ставить TWRP,
в режиме разработчика OEM (Заводская разблокировка)
будет включен всегда. Никакого слова Prenormal в режиме Прошивка.

P.S. при переходе с одной версии андроида на новую
ркомендую удалить эту строку и после обновления обратно прописать!
В 11м андроиде менять через проводник TWRP

Сообщение отредактировал Wlryss — 30.09.21, 08:00

Потом помогли и стал так, DPI 560:

А вот если выбрать DPI 500 так:

Модель Samsung Galaxy Note 4, прошивка кастомная(порт от Note 7), андроид 6.0.1

Сообщение отредактировал MAOQ — 20.03.21, 05:00

MAOQ,
В шапке ветки, в примере шаблона упомянуто, что нужно сообщать модель устройства (ну по подписи можно догадаться, что речь идёт о SM-N910C) и версию Андроид установленной на устройстве прошивки.. Кроме этого — если вы выкладываете два файла SystemUI очевидно для сравнения — то необходимо выложить и опорные фреймы для декомпиляции..

Сообщение отредактировал Wlryss — 20.03.21, 04:50

++++# static fields
.field private static mGearContext:Landroid/content/Context;++++

# instance fields
.
.
++++.method public static getContext()Landroid/content/Context;
.locals 1

sget-object v0, Lcom/android/systemui/SystemUIApplication;->mGearContext:Landroid/content/Context;

return-object v0
.end method++++

.method private isConfigChanged(Landroid/content/res/Configuration;)Z
.
.
.method public onCreate()V
.
invoke-virtual , Landroid/app/Application;->setTheme(I)V

++++ sput-object p0, Lcom/android/systemui/SystemUIApplication;->mGearContext:Landroid/content/Context;++++

.method private updateBackgroundColors()V
.locals 5

.line 384
iget-object v0, p0, Landroid/widget/LinearLayout;->mContext:Landroid/content/Context;

const-string v2, «am_ubcsu»

if-eq v2, v4, :cond_0

if-eq v2, v4, :cond_1

if-eq v2, v4, :cond_2

if-eq v2, v4, :cond_3

if-eq v2, v4, :cond_4

if-eq v2, v4, :cond_5

:cond_0
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_on:I

:cond_1
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_on_b:I

:cond_2
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_on_g:I

:cond_3
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_on_o:I

:cond_4
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_on_r:I

:cond_5
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_on_s:I

:goto_0
invoke-virtual , Landroid/content/Context;->getColor(I)I

iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I

.line 385
iget-object v0, p0, Landroid/widget/LinearLayout;->mContext:Landroid/content/Context;

const-string v2, «am_ubcsu»

if-eq v2, v4, :cond_6

if-eq v2, v4, :cond_7

if-eq v2, v4, :cond_8

if-eq v2, v4, :cond_9

if-eq v2, v4, :cond_a

if-eq v2, v4, :cond_b

:cond_6
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_off:I

:cond_7
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_off_b:I

:cond_8
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_off_g:I

:cond_9
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_off_o:I

:cond_a
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_off_r:I

:cond_b
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_off_s:I

:goto_1
invoke-virtual , Landroid/content/Context;->getColor(I)I

iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorDisabled:I

.line 386
iget-object v0, p0, Landroid/widget/LinearLayout;->mContext:Landroid/content/Context;

const-string v2, «am_ubcsu»

if-eq v2, v4, :cond_c

if-eq v2, v4, :cond_d

if-eq v2, v4, :cond_e

if-eq v2, v4, :cond_f

if-eq v2, v4, :cond_10

if-eq v2, v4, :cond_11

:cond_c
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_dim:I

:cond_d
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_b:I

:cond_e
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_g:I

:cond_f
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_o:I

:cond_10
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_r:I

:cond_11
sget v1, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_s:I

:goto_2
invoke-virtual , Landroid/content/Context;->getColor(I)I

iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorInactive:I

.method public updateResources()V
.locals 6

.line 485
iget-object v0, p0, Lcom/android/systemui/settings/ToggleSliderView;->mSlider:Lcom/android/systemui/settings/ToggleSeekBar;

.line 486
iget-object v0, p0, Lcom/android/systemui/settings/ToggleSliderView;->mSlider:Lcom/android/systemui/settings/ToggleSeekBar;

iget-object v1, p0, Lcom/android/systemui/settings/ToggleSliderView;->mContext:Landroid/content/Context;

const-string v3, «am_ubcsu»

if-eq v3, v5, :cond_0

if-eq v3, v5, :cond_1

if-eq v3, v5, :cond_2

if-eq v3, v5, :cond_3

if-eq v3, v5, :cond_4

if-eq v3, v5, :cond_5

:cond_0
sget v2, Lcom/android/systemui/R$color;->tw_progress_color_control_normal:I

:cond_1
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_b:I

:cond_2
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_g:I

:cond_3
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_o:I

:cond_4
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_r:I

:cond_5
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_dim_s:I

:goto_0
invoke-virtual , Landroid/content/res/Resources;->getColor(I)I

.line 487
iget-object v0, p0, Lcom/android/systemui/settings/ToggleSliderView;->mSlider:Lcom/android/systemui/settings/ToggleSeekBar;

iget-object v1, p0, Lcom/android/systemui/settings/ToggleSliderView;->mContext:Landroid/content/Context;

const-string v3, «am_ubcsu»

if-eq v3, v5, :cond_6

if-eq v3, v5, :cond_7

if-eq v3, v5, :cond_8

if-eq v3, v5, :cond_9

if-eq v3, v5, :cond_a

if-eq v3, v5, :cond_b

:cond_6
sget v2, Lcom/android/systemui/R$color;->tw_progress_color_control_activated:I

:cond_7
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_b:I

:cond_8
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_g:I

:cond_9
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_o:I

:cond_a
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_r:I

:cond_b
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_s:I

:goto_1
invoke-virtual , Landroid/content/res/Resources;->getColor(I)I

.line 488
iget-object v0, p0, Lcom/android/systemui/settings/ToggleSliderView;->mSlider:Lcom/android/systemui/settings/ToggleSeekBar;

iget-object v1, p0, Lcom/android/systemui/settings/ToggleSliderView;->mContext:Landroid/content/Context;

const-string v3, «am_ubcsu»

if-eq v3, v5, :cond_c

if-eq v3, v5, :cond_d

if-eq v3, v5, :cond_e

if-eq v3, v5, :cond_f

if-eq v3, v5, :cond_10

if-eq v3, v5, :cond_11

:cond_c
sget v2, Lcom/android/systemui/R$color;->tw_progress_color_control_activated_thumb:I

:cond_d
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_b:I

:cond_e
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_g:I

:cond_f
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_o:I

:cond_10
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_r:I

:cond_11
sget v2, Lcom/android/systemui/R$color;->qs_tile_round_background_on_s:I

:goto_2
invoke-virtual , Landroid/content/res/Resources;->getColor(I)I

.line 490
invoke-direct , Lcom/android/systemui/settings/ToggleSliderView;->setDualSeekBarResources()V

.method public getNotificationNormalBgColor(I)I
.locals 5

if-eqz p1, :cond_1

if-eq p1, v1, :cond_0

.line 105
:cond_0
iget-object p0, p0, Lcom/android/systemui/noticolorpicker/NotificationColorPicker;->mContext:Landroid/content/Context;

sget p1, Lcom/android/systemui/R$color;->notification_material_background_dimmed_color:I

.line 102
:cond_1
iget-object p0, p0, Lcom/android/systemui/noticolorpicker/NotificationColorPicker;->mContext:Landroid/content/Context;

const-string v2, «am_ubcsu»

if-eq v2, v4, :cond_2

if-eq v2, v4, :cond_3

if-eq v2, v4, :cond_4

if-eq v2, v4, :cond_5

if-eq v2, v4, :cond_6

if-eq v2, v4, :cond_7

:cond_2
sget p1, Lcom/android/systemui/R$color;->notification_material_background_color:I

:cond_3
sget p1, Lcom/android/systemui/R$color;->qs_tile_round_background_n_b:I

:cond_4
sget p1, Lcom/android/systemui/R$color;->qs_tile_round_background_n_g:I

:cond_5
sget p1, Lcom/android/systemui/R$color;->qs_tile_round_background_n_o:I

:cond_6
sget p1, Lcom/android/systemui/R$color;->qs_tile_round_background_n_r:I

:cond_7
sget p1, Lcom/android/systemui/R$color;->qs_tile_round_background_n_s:I

:goto_0
invoke-virtual , Landroid/content/res/Resources;->getColor(ILandroid/content/res/Resources$Theme;)I

:goto_1
return p0
.end method

Скачать : GearUtils.zip ( 1.67 КБ )

Сообщение отредактировал Wlryss — 30.09.21, 07:58

Алексей может действительно не смотрел скрин? 🙂
Там разные скрины. DPI 560 в обоих скринах но, на втором полоски есть под значки.)
Если уменьшить DPI до 500, тогда более норм(как на втором скрине). Чуток пробелы есть. :yes:

Сообщение отредактировал MAOQ — 20.03.21, 16:32

MAOQ, это заметил

Добавлено 20.03.2021, 16:31:

alexega, полоски эти надо найти и обнулить либо в лайотах, либо где размер, скорее всего в лайотах ищи по id (если их красит ром контроль, то и путь найдёшь)

Систематизация гайдов ув. zmeeed2020 для Андроид 9 — Андроид 10 и изменения для применения с Андроид 11..

Устройство : Samsung S10+
Версия Андроид : Андроид 11
Прошивка : One UI 3.0-3.1

1. Скачиваем приложенный архив и размещаем файлы из архива в декомпилированном SystemUI. Некоторые смали из архива подкорректированы для использования с Андроид 11.
SystemUI_Guide_FonToggles_20_03.rar ( 849.56 КБ )

2. Добавляем в SystemUI — GearUtils — Инструкции по редактированию системных ресурсов (Пост Wlryss #104889640)
Примечание: рекомендуется добавить GearUtils.smali из приложенного архива, так как эти смали понадобятся в дальнейшем для модификации Количество тоглов в не развернутой шторке в ландшафтном и портретном режимах на лету. Андроид 11

3. В SystemUI/smali/com/android/systemui/qs/tileimpl/QSTileBaseView.smali добавляем в # instance fields:

.field private mGrxManageImageViews:Z

.field private final mGrxPredDim:Landroid/widget/ImageView;

.field private final mGrxPredOff:Landroid/widget/ImageView;

.field private final mGrxPredOn:Landroid/widget/ImageView;

.field private mGrxTintCircle:Z

— в методе .method public constructor (Landroid/content/Context;Lcom/android/systemui/plugins/qs/QSIconView;Z)V добавляем строку:

.method public constructor (Landroid/content/Context;Lcom/android/systemui/plugins/qs/QSIconView;Z)V
.locals 3

invoke-direct , Lcom/android/systemui/plugins/qs/QSTileView;-> (Landroid/content/Context;)V

new-instance p3, Lcom/android/systemui/qs/tileimpl/QSTileBaseView$H;

invoke-direct , Lcom/android/systemui/qs/tileimpl/QSTileBaseView$H;-> (Lcom/android/systemui/qs/tileimpl/QSTileBaseView;)V

iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mHandler:Lcom/android/systemui/qs/tileimpl/QSTileBaseView$H;

new-array p3, p3, [I

iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mLocInScreen:[I

sget v0, Lcom/android/systemui/R$dimen;->qs_quick_tile_padding:I

new-instance p3, Landroid/widget/FrameLayout;

invoke-direct , Landroid/widget/FrameLayout;-> (Landroid/content/Context;)V

iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

const v0, 0x10500b6

iput p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mStrokeWidthActive:F

const v0, 0x10500b7

iput p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mStrokeWidthInactive:F

sget v0, Lcom/android/systemui/R$dimen;->sec_style_qs_tile_icon_size:I

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

new-instance v1, Landroid/widget/LinearLayout$LayoutParams;

invoke-direct , Landroid/widget/LinearLayout$LayoutParams;-> (II)V

new-instance p3, Landroid/widget/ImageView;

invoke-direct , Landroid/widget/ImageView;-> (Landroid/content/Context;)V

iput-object p3, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

new-instance p3, Landroid/graphics/drawable/shapes/OvalShape;

invoke-direct , Landroid/graphics/drawable/shapes/OvalShape;-> ()V

new-instance v0, Landroid/graphics/drawable/ShapeDrawable;

invoke-direct , Landroid/graphics/drawable/ShapeDrawable;-> (Landroid/graphics/drawable/shapes/Shape;)V

sget v1, Lcom/android/systemui/R$dimen;->sec_style_qs_tile_background_size:I

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

new-instance v0, Landroid/widget/FrameLayout$LayoutParams;

const/16 v1, 0x11

invoke-direct , Landroid/widget/FrameLayout$LayoutParams;-> (III)V

iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

iput-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView;

new-instance p1, Landroid/widget/FrameLayout$LayoutParams;

invoke-direct , Landroid/widget/FrameLayout$LayoutParams;-> (III)V

iget-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView;

iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iput-object p1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mTileBackground:Landroid/graphics/drawable/Drawable;

instance-of p2, p1, Landroid/graphics/drawable/RippleDrawable;

if-eqz p2, :cond_0

check-cast p1, Landroid/graphics/drawable/RippleDrawable;

:cond_0
const/4 p1, 0x1

iget-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mTileBackground:Landroid/graphics/drawable/Drawable;

iget-object p2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIcon:Lcom/android/systemui/plugins/qs/QSIconView;

— метод .method protected getCircleColor(I)I меняем на следующий:

.method protected getCircleColor(I)I
.locals 3

packed-switch p1, :pswitch_data_0

const-string v0, «QSTileBaseView»

new-instance v1, Ljava/lang/StringBuilder;

invoke-direct , Ljava/lang/StringBuilder;-> ()V

const-string v2, «Invalid state «

:pswitch_0
sget-boolean v0, Lcom/mods/sac/SacSettings;->sTileColorsEnabled:Z

if-eqz v0, :cond_0

sget v0, Lcom/mods/sac/SacSettings;->sTileCircleColorOn:I

:cond_0
iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I

:pswitch_1
sget-boolean v0, Lcom/mods/sac/SacSettings;->sTileColorsEnabled:Z

if-eqz v0, :cond_1

sget v0, Lcom/mods/sac/SacSettings;->sTileCircleColorOff:I

:cond_1
iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorDisabled:I

:pswitch_2
sget-boolean v0, Lcom/mods/sac/SacSettings;->sTileColorsEnabled:Z

if-eqz v0, :cond_2

sget v0, Lcom/mods/sac/SacSettings;->sTileCircleColorDim:I

:cond_2
iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorInactive:I

:pswitch_data_0
.packed-switch 0x0
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.end method

.method protected handleStateChanged(Lcom/android/systemui/plugins/qs/QSTile$State;)V
.locals 8

+++iget-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxTintCircle:Z

if-eqz v0, :cond_next

iget v0, p1, Lcom/android/systemui/plugins/qs/QSTile$State;->state:I

:cond_next
iget-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z

if-eqz v0, :cond_next1

iget v0, p1, Lcom/android/systemui/plugins/qs/QSTile$State;->state:I

:cond_next1+++
invoke-direct , Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->updateStrokeShapeWidth(Lcom/android/systemui/plugins/qs/QSTile$State;)V

iget v0, p1, Lcom/android/systemui/plugins/qs/QSTile$State;->state:I

iget v2, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mCircleColor:I
.

— в конце смали добавляем методы:

.method public grxGetNewImageView()Landroid/widget/ImageView;
.locals 2

new-instance v0, Landroid/widget/ImageView;

invoke-direct , Landroid/widget/ImageView;-> (Landroid/content/Context;)V

sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType;

return-object v0
.end method

.method public grxGetPredefinedImageView(I)Landroid/widget/ImageView;
.locals 2

new-instance v0, Landroid/widget/ImageView;

invoke-direct , Landroid/widget/ImageView;-> (Landroid/content/Context;)V

if-eq p1, v1, :cond_0

sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType;

:cond_0
return-object v0
.end method

.method public grxSetCircleColor(I)V
.locals 2

iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I

packed-switch p1, :pswitch_data_0

:goto_0
iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

:pswitch_0
iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I

:pswitch_1
iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorDisabled:I

:pswitch_2
iget v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorInactive:I

:pswitch_data_0
.packed-switch 0x0
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.end method

.method public grxSetTileBackground()V
.locals 3

iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxTintCircle:Z

iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z

sget-boolean v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilesColorsEnabled:Z

if-nez v0, :cond_0

:cond_0
sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilesBgType:I

packed-switch v0, :pswitch_data_0

:pswitch_1
sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircleOn:I

iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I

sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircleOff:I

iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorDisabled:I

sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircledDim:I

iput v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorInactive:I

new-instance v0, Landroid/widget/ImageView;

invoke-direct , Landroid/widget/ImageView;-> (Landroid/content/Context;)V

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

sget v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileCircleBgId:I

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

iget v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mColorActive:I

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mBg:Landroid/widget/ImageView;

iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxTintCircle:Z

:pswitch_2
sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilePredefBgDim:I

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilePredefBgOffId:I

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

sget v0, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTilePredefBgId:I

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z

:pswitch_3
invoke-virtual , Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->grxGetNewImageView()Landroid/widget/ImageView;

sget-object v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileBgCustomDimDrawable:Landroid/graphics/drawable/BitmapDrawable;

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

sget-object v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileBgCustomOffDrawable:Landroid/graphics/drawable/BitmapDrawable;

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

sget-object v1, Lcom/mods/grx/GrxNotiPanelModsSettings;->sGrxTileBgCustomDrawable:Landroid/graphics/drawable/BitmapDrawable;

iput-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

iget-object v1, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mIconFrame:Landroid/widget/FrameLayout;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

iput-boolean v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxManageImageViews:Z

:pswitch_data_0
.packed-switch 0x0
:pswitch_0
:pswitch_1
:pswitch_2
:pswitch_3
.end packed-switch
.end method

.method public grxUpdateImageViews(I)V
.locals 2

packed-switch p1, :pswitch_data_0

:pswitch_0
const v1, 0x8

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

:pswitch_1
const v1, 0x8

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

:pswitch_2
const v1, 0x8

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOff:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredOn:Landroid/widget/ImageView;

iget-object v0, p0, Lcom/android/systemui/qs/tileimpl/QSTileBaseView;->mGrxPredDim:Landroid/widget/ImageView;

:pswitch_data_0
.packed-switch 0x0
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.end method

4. В SystemUI/smali\com\android\systemui\qs\tileimpl\QSTileImpl.smali меняем метод .method public static getColorForState(Landroid/content/Context;I)I на следующий:

.method public static getColorForState(Landroid/content/Context;I)I
.locals 5

if-eqz p1, :cond_2

if-eq p1, p0, :cond_1

if-eq p1, p0, :cond_0

new-instance p0, Ljava/lang/StringBuilder;

invoke-direct , Ljava/lang/StringBuilder;-> ()V

const-string v0, «Invalid state «

const-string p1, «QSTile»

:cond_0
const-string/jumbo v3, «text_color_on»

const v4, -0xf0f0f1

:cond_1
const-string/jumbo v3, «text_color_off»

const v4, -0xf0f0f1

:cond_2
const-string/jumbo v3, «text_color_dis»

const v4, -0xf0f0f1

5. В SystemUI/smali_classes2/com/android/systemui/statusbar/phone/StatusBar.smali

[- Добавляем две строки:

.class public Lcom/android/systemui/statusbar/phone/StatusBar;
.super Lcom/android/systemui/SystemUI;
.source «StatusBar.java»

# interfaces
.implements Lcom/android/systemui/DemoMode;
.implements Lcom/android/systemui/plugins/ActivityStarter;
.implements Lcom/android/systemui/statusbar/policy/KeyguardStateController$Callback;
.implements Lcom/android/systemui/statusbar/policy/OnHeadsUpChangedListener;
.implements Lcom/android/systemui/statusbar/CommandQueue$Callbacks;
.implements Lcom/android/internal/colorextraction/ColorExtractor$OnColorsChangedListener;
.implements Lcom/android/systemui/statusbar/policy/ConfigurationController$ConfigurationListener;
.implements Lcom/android/systemui/statusbar/phone/StatusBarObjectProvider;
.implements Lcom/android/systemui/plugins/statusbar/StatusBarStateController$StateListener;
.implements Lcom/android/systemui/statusbar/notification/ActivityLaunchAnimator$Callback;
.implements Lcom/android/systemui/statusbar/notification/row/NotifDoubleTapListener;
.implements Lcom/android/systemui/statusbar/HeadsupDragAndDropHelper$HunDragCallback;
.implements Lcom/android/wubydax/GearContentObserver$OnContentChangedListener;

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = <
Lcom/android/systemui/statusbar/phone/StatusBar$H;,
Lcom/android/systemui/statusbar/phone/StatusBar$StatusBarUiEvent;, . Добавляем запятую.
+++ Lcom/android/systemui/statusbar/phone/StatusBar$GrxNotiPanelModsObserver;,
Lcom/android/systemui/statusbar/phone/StatusBar$SacObserver;+++
>
.end annotation

— В методе .method public start()V добавляем:

.method public start()V
.locals 12

new-instance v0, Lcom/mods/grx/GrxSbStockIconsColors;

iget-object v1, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mContext:Landroid/content/Context;

invoke-direct , Lcom/mods/grx/GrxSbStockIconsColors;-> (Landroid/content/Context;)V

iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mScreenLifecycle:Lcom/android/systemui/keyguard/ScreenLifecycle;

— В конце добавляем метод:

.method public sacSetUpVars()V
.locals 2

new-instance v0, Lcom/android/systemui/statusbar/phone/StatusBar$SacObserver;

new-instance v1, Landroid/os/Handler;

invoke-direct , Landroid/os/Handler;-> ()V

invoke-direct , Lcom/android/systemui/statusbar/phone/StatusBar$SacObserver;-> (Lcom/android/systemui/statusbar/phone/StatusBar;Landroid/os/Handler;)V

iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mContext:Landroid/content/Context;

6. В SystemUI/smali/com/android/systemui/SystemUI.smali — удаляем строку и вместо неё прописываем другую:

.class public abstract Lcom/android/systemui/SystemUI;
.super Ljava/lang/Object;
.source «SystemUI.java»

# instance fields
### .field protected final mContext:Landroid/content/Context; . Удалить строку

.field public mContext:Landroid/content/Context; ### . Добавить строку

.field private mFlipfont:I

# direct methods
.method public constructor (Landroid/content/Context;)V
.locals 1

invoke-direct , Ljava/lang/Object;-> ()V

iput v0, p0, Lcom/android/systemui/SystemUI;->mFlipfont:I

iput-object p1, p0, Lcom/android/systemui/SystemUI;->mContext:Landroid/content/Context;

.method public static overrideNotificationAppName(Landroid/content/Context;Landroid/app/Notification$Builder;Z)V
.locals 1

new-instance v0, Landroid/os/Bundle;

invoke-direct , Landroid/os/Bundle;-> ()V

if-eqz p2, :cond_0

const p2, 0x1040732

:cond_0
const p2, 0x1040731

:goto_0
const-string p2, «android.substName»

# virtual methods
.method public dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
.locals 0

.method protected onBootCompleted()V
.locals 0

.method protected onConfigurationChanged(Landroid/content/res/Configuration;)V
.locals 2

if-eqz p1, :cond_0

iget v0, p1, Landroid/content/res/Configuration;->FlipFont:I

if-lez v0, :cond_0

iget v1, p0, Lcom/android/systemui/SystemUI;->mFlipfont:I

if-eq v1, v0, :cond_0

iget p1, p1, Landroid/content/res/Configuration;->FlipFont:I

iput p1, p0, Lcom/android/systemui/SystemUI;->mFlipfont:I

:cond_0
return-void
.end method

.method public onTrimMemory(I)V
.locals 0

.method public abstract start()V
.end method

II. Ром Контрол типа GRX

1. В нужную xml добавляем:

Источник

Читайте также:  Удаленный рабочий стол андроид с андроида
Оцените статью