если вы пользуетесь моими наработками мне бы было очень приятно , если бы вы указывали при публикации , что это я придумал
Все значения , связаные с растоянием и размерами на экране задаются в условных единицах dip , чтобы перевести их в пикселы , значение надо умножить на 1.5
1.Убираем черный квадрат , закрывающий пол фотографии при входящем звонке
Здесь все просто : Phone.apk/res/layout/incall_touch_ui.xml , пятая строка
Код
<com.android.phone.multiwaveview.MultiWaveView android:id="@id/incomingCallWidget" android:background="@*android:color/black" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="-46.0dip" android:layout_alignParentBottom="true" prvandroid:targetDescriptions="@array/incoming_call_widget_3way_target_descriptions" prvandroid:directionDescriptions="@array/incoming_call_widget_3way_direction_descriptions" prvandroid:targetDrawables="@array/incoming_call_widget_3way_targets" prvandroid:handleDrawable="@drawable/ic_in_call_touch_handle" prvandroid:leftChevronDrawable="@*android:drawable/ic_lockscreen_camera_normal" prvandroid:rightChevronDrawable="@*android:drawable/ic_lockscreen_chevron_down" prvandroid:waveDrawable="@*android:drawable/ic_lockscreen_lock_normal" prvandroid:outerRadius="@*android:dimen/multiwaveview_target_placement_radius" prvandroid:hitRadius="@*android:dimen/multiwaveview_hit_radius" prvandroid:vibrationDuration="20" prvandroid:snapMargin="@*android:dimen/multiwaveview_snap_margin" prvandroid:feedbackCount="3" prvandroid:verticalOffset="20.0dip" prvandroid:horizontalOffset="0.0dip" />
меняем черный бэкграунд: android:background="@*android:color/black" , на прозрачный : android:background="@*android:color/transparent"
2.Уменьшаем "шапку"
тут тоже без особых изысков : Phone.apk/res/values/dimens.xml
Код
<dimen name="call_banner_height">80.0dip</dimen>
<dimen name="call_banner_top_bottom_padding">16.0dip</dimen>
первая переменная задает общюю высоту шапки ( 80dip ) , вторая отступы снизу и сверху между строками ( 16dip ) , меняем на :
Код
<dimen name="call_banner_height">14.0dip</dimen>
<dimen name="call_banner_top_bottom_padding">0.0dip</dimen>
так же : Phone.apk/res/layout/call_card.xml , 18-ая строка:
Код
<TextView android:textAppearance="?android:textAppearanceSmall" android:textColor="@color/incall_call_banner_text_color" android:gravity="right" android:id="@id/callStateLabel" android:background="@color/incall_call_state_label_background" android:paddingTop="8.0dip" android:paddingRight="@dimen/call_banner_side_padding" android:paddingBottom="8.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/call_banner_1" android:textAllCaps="true" />
отступы в строке состояния (набор номера , вызов завершен и тд ) 8dip
Код
android:paddingTop="8.0dip"
android:paddingBottom="8.0dip"
меняем на :
Код
android:paddingTop="0.0dip"
android:paddingBottom="0.0dip"
с этим тоже все.
3.Делаем подложку "шапки" более прозрачной
Phone.apk/res/values/colors.xml 5-ая и 6-ая строка:
Код
<color name="incall_call_banner_background">#a0000000</color>
<color name="incall_call_state_label_background">#8033b5e5</color>
цвет и прозрачность подложки основной шапки и строки состояния соответсвенно , менем на :
Код
<color name="incall_call_banner_background">#40000000</color>
<color name="incall_call_state_label_background">#20000000</color>
здесь надо сказать , что прозрачность задается в первом байте цвета в шестнадцатиричном формате( было a0 и 80 , стало 40 и 20 - соответственно ) , чем меньше значение , тем прозрачнее , следующие три байта задают цвет (000000 - черный , 33b5e5 - голубой ) , тоже в шестнадцатиричном формате по шаблону RGB
4.Убираем внешнее кольцо при входящем вызове
framework-res.apk/res/drawable/ic_lockscreen_outerring.xml , шестая строка
Код
<stroke android:width="2.0dip" android:color="#ffffffff" />
меняем на :
Код
<stroke android:width="2.0dip" android:color="#00ffffff" />
то есть делаем это кольцо прозрачным
В общем вроде все ..
Теперь немного о сборке . Так как приложение системное и подписано ключем разработчика , то просто закинув на устройство наш скомпилированный и исправленный Phone.apk мы получим вместо ожидаемой красоты - фигу , так как ключ разработчика нам никто не дал , приложение просто не запускается .. что делаем .
Открываем наш ОРИГИНАЛЬНЫЙ не перекомпилированый и не модифицированный Phone.apk в архиваторе , затем копируем из папки Build (которую создает apktool после успешной компиляции ) те файлы , в которые мы вносили изменения и подменяем ими файлы в архиве оригинального Phone.apk /
Некоторых папок и файлов в Build нет ( например /values ) . тогда нужно копировать в архив файл resources.arsc , важно , что вставлять его в архив надо без сжатия . Так же без сжатия вставляются графические элементы ( картинки ) . Так же этот файл закидывается , если добавлялись новые картинки или менялись их имена.
Если изменения вносились в smali , то "подкидывать" нужно файл classes.dex