Anyone know how to change the status bar ticker text color?
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Its the text shown at the top of the screen
Sent from my N860 using xda app-developers app
Geez... no one?
Sent from my N860 using xda app-developers app
jetx2x said:
Geez... no one?
Sent from my N860 using xda app-developers app
Click to expand...
Click to collapse
Did you ever figure it out? I would love to know how to change the default tickertext color
ZKK007 said:
Did you ever figure it out? I would love to know how to change the default tickertext color
Click to expand...
Click to collapse
In framework styles you could do this
Code:
<style name="TextAppearance.StatusBar.Ticker" parent="@style/TextAppearance.StatusBar">
<item name="textColor">#your_text_color_here</item>
</style>
This is an example of where the original style gets its color from
Code:
<style name="TextAppearance.StatusBar.Ticker" parent="@style/TextAppearance.StatusBar" />
No attributes, go to parent
Code:
<style name="TextAppearance.StatusBar" parent="@style/TextAppearance">
<item name="textAppearance">?textAppearanceSmall</item>
</style>
An attribute
?textAppearanceSmall
Click to expand...
Click to collapse
Code:
<style name="Theme">
<item name="colorForeground">@color/bright_foreground_dark</item>
<item name="colorBackground">@color/background_dark</item>
<item name="backgroundDimAmount">0.6</item>
<item name="disabledAlpha">0.5</item>
<snip>
<item name="textAppearanceLarge">@style/TextAppearance.Large</item>
<item name="textAppearanceMedium">@style/TextAppearance.Medium</item>
<item name=[COLOR="red"]"textAppearanceSmall">@style/TextAppearance.Small[/COLOR]</item>
Code:
<style name="TextAppearance.Small" parent="@style/TextAppearance">
<item name="textSize">14.0sp</item>
<item name=[COLOR="Red"]"textColor">?textColorSecondary[/COLOR]</item>
</style>
?textColorSecondary
Click to expand...
Click to collapse
-
Code:
<item name="textColorSecondary">@color/secondary_text_dark</item>
secondary_text_dark
Code:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="false" android:color="@color/dim_foreground_dark_disabled" />
<item android:state_window_focused="false" android:color="@color/dim_foreground_dark" />
<item android:state_enabled="false" android:state_selected="true" android:color="@color/dim_foreground_dark_inverse_disabled" />
<item android:state_enabled="false" android:state_pressed="true" android:color="@color/dim_foreground_dark_inverse_disabled" />
<item android:state_selected="true" android:color="@color/dim_foreground_dark_inverse" />
<item android:color="@color/bright_foreground_dark_inverse" android:state_activated="true" />
<item android:state_pressed="true" android:color="@color/dim_foreground_dark_inverse" />
<item android:state_enabled="false" android:color="@color/dim_foreground_dark_disabled" />
<item android:color="[COLOR="Red"]@color/dim_foreground_dark[/COLOR]" />
</selector>
Code:
<color name="dim_foreground_dark">#ffbebebe</color>
Decompile SystemUI.apk and goto res/layout and open status_bar.xml in Notepad++. Find Ticker in that xml file and under that there is two <TextView then add android:textColor="your text color" to both <TextView.
It should look something like this:
Code:
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" [COLOR="Red"]android:textColor="your text color"[/COLOR] android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" [COLOR="Red"]android:textColor="your text color"[/COLOR] android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
Then recompile.
Or you could just download and install xposed framework. Thru xposed download xblast tools which has a ticker editor built in
Related
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
How to change that yellow color to blue or other color ? I should edit or add any xml file on framework-re.apk ?
Please help me with this... I want to change the yellow color to cyan color...
Well, it is in an xml file. You'll first need to decompile the framework-res.apk then open the relevant xml file. Can't remember off hand what it's called, but it's something like horizontal_progress and vertical_progress, most probably in one of the layout folders. You'll then need to find the colour values and changes them to what you want.
Sorry, not been much help, but hope it gives you something to go on.
There is no landscape_progress and horizantal progress.. There is some xml files and there is preference.xml and preference_dialog.xml
preference.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<ImageView android:layout_gravity="center_vertical" android:background="@drawable/btn_circle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="4.0dip" android:src="@drawable/ic_btn_round_more"
xmlns:android="http://schemas.android.com/apk/res/android" />
preference_dialog.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="horizontal" android:id="@id/body" android:paddingLeft="8.0dip" android:paddingTop="10.0dip" android:paddingRight="8.0dip" android:paddingBottom="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:baselineAligned="false">
<ProgressBar android:id="@id/progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="12.0dip" android:max="10000" style="@android:style/Widget.ProgressBar" />
<TextView android:layout_gravity="center_vertical" android:id="@id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>
L0cke said:
Well, it is in an xml file. You'll first need to decompile the framework-res.apk then open the relevant xml file. Can't remember off hand what it's called, but it's something like horizontal_progress and vertical_progress, most probably in one of the layout folders. You'll then need to find the colour values and changes them to what you want.
Sorry, not been much help, but hope it gives you something to go on.
Click to expand...
Click to collapse
Can you remember the xml file name ?
Almost right.....
progress_horizontal.xml located in framework-res.apk/res/drawable/
use a hex colour chart to help you if you dont have any image editing software, here's an online chart
http://www.colorschemer.com/online.html
When editing the code you need to follow the ARGB layout:
A=Alpha(transparency/Opacity) 00=transparent ff=opaque
R=Red
G=Green
B=Blue
Edit the parts highlighted in red, there are 3 lines this is just one:
<gradient android:startColor="#50007fff" android:endColor="#80070274" android:angle="270.0" android:centerColor="#800018ff" />
Hope this helps, if you need any more find me over here-
http://forum.xda-developers.com/showthread.php?t=1433053
I just found the trick to manipulate carrier label on notification bar when I'm exploring decompiled stock based SystemUI.apk..
Wanna know how to do that ??
Check this out :
Here I'm using lidroid's modified SystemUI, should work on other stock based SystemUI
First you need to decompile your SystemUI.apk
Open res/layout/status_bar_tracking.xml with any good xml editor (here I'm using NP++)
Find this line:
Code:
<com.android.systemui.statusbar.phone.CarrierLabel android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:textColor="#ff33b5e5" android:gravity="center" android:layout_gravity="bottom" android:paddingBottom="20.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
and change to:
Code:
<textView android:text="@string/carrier_label" android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:textColor="#ff33b5e5" android:gravity="center" android:layout_gravity="bottom" android:paddingBottom="20.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
Save
Now open res/values/strings.xml
Add this line above </resources> :
Code:
<string name="carrier_label">ENTER_YOUR_COOLEST_TEXT_HERE</string>
so it'll be looked a like this:
Code:
<string name="carrier_label">ENTER_YOUR_COOLEST_TEXT_HERE</string>
</resources>
p.s. : change the ENTER_YOUR_COOLEST_TEXT_HERE with your desired label
Now save
Recompile (build) your SystemUI.apk
Push to your phone and you are.......
Done !!
The result will be looked like this :
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Mine :
Remember to
ALWAYS MAKE BACKUP !!
before doing anything above..
I don't responsible of any negative things like bootloop, bricked device, burned SD card, you late to go to school, or the third world war caused by the guide above..
You have been warned !!
Click to expand...
Click to collapse
Good luck..
nice find mate .. thanks for the share
if you lazy to do ,try this app http://forum.xda-developers.com/showthread.php?t=901865
dont know if it work on ICS ,just try its easier for noob like me
btw thanks for share :good:
Does anyone now how to bring the Carrier Label in the bottom of the statusbar Expanded view, in Gingerbread? Tried searching the forum and google, but with no luck...
iiandskater said:
i just found the trick to manipulate carrier label on notification bar when i'm exploring decompiled stock based systemui.apk..
Wanna know how to do that ??
Check this out :
here i'm using lidroid's modified systemui, should work on other stock based systemui
first you need to decompile your systemui.apk
open res/layout/status_bar_tracking.xml with any good xml editor (here i'm using np++)
find this line:
Code:
<com.android.systemui.statusbar.phone.carrierlabel android:textappearance="@style/textappearance.statusbar.clock" android:textcolor="#ff33b5e5" android:gravity="center" android:layout_gravity="bottom" android:paddingbottom="20.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
and change to:
Code:
<textview android:text="@string/carrier_label" android:textappearance="@style/textappearance.statusbar.clock" android:textcolor="#ff33b5e5" android:gravity="center" android:layout_gravity="bottom" android:paddingbottom="20.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
save
now open res/values/strings.xml
add this line above </resources> :
Code:
<string name="carrier_label">enter_your_coolest_text_here</string>
so it'll be looked a like this:
Code:
<string name="carrier_label">enter_your_coolest_text_here</string>
</resources>
p.s. : Change the enter_your_coolest_text_here with your desired label
now save
recompile (build) your systemui.apk
push to your phone and you are.......
done !!
the result will be looked like this :
mine :
good luck..
Click to expand...
Click to collapse
ur status bar is so cool i mean d icons can u make a zip and share???
What do you use to decompile/recompile? Also can you set the clock in the middle of the status bar?
Sent from my SPH-D710 using xda premium
i try but it do not work.
i think my room need more edit at: res\values\public.xlm but i do not know add line:
<public type="string" name="carrier_label" id="0x7f08001c" />
cool
looks very nice bro
Hi, will this work on jellybean??
ICS PROGRESS BAR FOR FROYO
CREDITS : TOXIC77 FOR ORGINALLY MAKING THIS GUIDE.
NOW WITHOUT WASTING TIME . COMMING DIRECTLY ON THE TUTO.
NOTE: THIS IS PERFECTLY WORKING IF YOU FOLLOW THIS CORRECTLY.
REQUIREMENTS: apktool
java sdk
android sdk
notepad++
brain
and little time .......
This is a simple guide of porting the ICS style progress_indeterminate_horizontal_holo to FROYO.
The progress bar animation when downloading and installing applications on android.
Change from this
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
TO THIS
Now decompile your framework-res.apk using apktool .
you will get many files out of it.
File to be edited:
framework-res\res\drawable\progress_indeterminate_horizontal.xml
Open it with notepad++ and paste this line of code:
Code:
<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo1" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo2" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo3" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo4" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo5" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo6" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo7" />
<item android:duration="50" android:drawable="@drawable/progressbar_indeterminate_holo8" />
</animation-list>
Additional Note:Edit your Styles.xml.
open it with notepad++
And copy this attributes to it, search for <style name="Widget.ProgressBar.Horizontal" & Widget.SeekBar
now copy this code and paste it for whole widget.progressbar.horizontal code.
Code:
<style name="Widget.ProgressBar.Horizontal" parent="@style/Widget.ProgressBar">
<item name="maxHeight">16.0dip</item>
<item name="indeterminateOnly">false</item>
<item name="indeterminateDrawable">@drawable/progress_indeterminate_horizontal</item>
<item name="progressDrawable">@drawable/progress_horizontal</item>
<item name="minHeight">16.0dip</item>
</style>
and for WIDGET.SEEKBAR paste this code :
Code:
<style name="Widget.SeekBar" parent="@style/Widget">
<item name="focusable">true</item>
<item name="maxHeight">13.0dip</item>
<item name="indeterminateOnly">false</item>
<item name="indeterminateDrawable">@drawable/progress_horizontal</item>
<item name="progressDrawable">@drawable/progress_horizontal</item>
<item name="minHeight">13.0dip</item>
<item name="thumb">@drawable/seek_thumb</item>
<item name="thumbOffset">16.0dip</item>
</style>
After it save the file place the files from the zip file to your desired drawable folder, on mine I used drawable-mdpi, and using apktool just compile your framework-res again.
Now open your framework-res folder and navigare to BUILD/APK/ now copy the "res" and "resources.arsc"
and paste it in your orginal framework-res.apk file using 7-zip .
now copy that to your /system/framework.
If you liked my post, just press the. THANKS button:good:.
reserved....
reserved. .....
comment if you have doubts or problems...
i am always there for youplease rate this thread with 5 stars if you like it....
patelkishan1985 said:
reserved. .....
comment if you have doubts or problems...
i am always there for youplease rate this thread with 5 stars if you like it....
Click to expand...
Click to collapse
hello
i am a new in editing all these..can you plz guide me.?
just make me know every single step or with a video showing..
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This mod is based off of Verizon MK2 build.
First we start off with framework-res.apk
Decompile framework-res.apk
Now you will choose a name for the EPM.
I call mine "Sun Devil Options" It is called "Phone Options" on a stock S4.
Go to framework-res\res\values\strings.xml open with Notepad++ and find "<string name="power_dialog">Phone options</string>" change the red text to your desired EPM menu name.
Then at the end of string.xml add the following just before </resources> to look like this
PHP:
<string name="epm_recovery">Recovery</string>
<string name="epm_download">Download</string>
<string name="epm_flashlight">Flashlight</string>
<string name="epm_screenshot">Screenshot</string>
</resources>
Now save strings.xml
Now go to framework-res\res\values\public.xml
Add the following at the bottom just before </resources> to look like this:
PHP:
<public type="string" name="epm_recovery" id="0x01040a08" />
<public type="string" name="epm_download" id="0x01040a09" />
<public type="string" name="epm_flashlight" id="0x01040a0a" />
<public type="string" name="epm_screenshot" id="0x01040a0b" />
<public type="drawable" name="ic_lock_recovery" id="0x01081082" />
<public type="drawable" name="ic_lock_download" id="0x01081083" />
<public type="drawable" name="ic_lock_flashlight" id="0x01081084" />
<public type="drawable" name="ic_lock_screenshot" id="0x01081085" />
</resources>
Now save public.xml
Now you need to add 4 png images to framework-res\res\drawable-sw360dp-xxhdpi. You can use any 96 x 96 png.
ic_lock_recovery.png
ic_lock_download.png
ic_lock_flashlight.png
ic_lock_screenshot.png
Here are my png images. You are free to use them png-images.zip
Now compile framework-res upload to phone via adb or use a flash zip push it back to system/framework
Now we have a couple of choices.
You can flash my android.policy.jar zip #1 which will ask for conformation after selecting an option.
Or you can flash my android.policy.jar zip #2 and your phone will execute the selection immediately without asking for a conformation.
Downloads:
android.policy.jar-#1
android.policy.jar-#2
png-images.zip
I will be putting up a smali "how to" on my android.policy.jar EPM soon.
I want to thank the following folks for making this mod. If I forgot someone please PM me and I will add you to the list.
jeboo
sbreen94
rompnit
Naddict
Mine
Mine
More great stuff!
I want one too!
Sent from my SPH-L710 using xda app-developers app
Looks cool:laugh::good:
Hello. I was wondering if someone might be able to help me figure this out. I use a program called Channels DVR for TV / DVR. I wasn't happy with the stock color theme of purple, so I spent quite a bit of time decompiling the app, editing the color codes, and threw together a much more pleasant theme. Now I would like to change the app logo displayed at the top left to a clock. I have identified the code for the logo, and have been trying to hack around the textClock in, and just can't figure it out. I was wondering if someone smarter than me might help me out.
Here's a picture of the UI, what I'm trying to replace. The logo at the top left.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
And here is the code for the sidebar on the left:
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.getchannels.android.ui.SideBar android:background="@color/background" android:layout_width="@dimen/sidebar_closed_width" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.Guideline android:orientation="vertical" android:id="@id/sidebar_guideline" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintGuide_begin="@dimen/sidebar_closed_width" />
<androidx.constraintlayout.widget.Guideline android:orientation="vertical" android:id="@id/sidebar_expanded_guideline" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintGuide_begin="@dimen/sidebar_open_width" />
<ImageView android:id="@id/sidebar_logo" android:layout_width="70.0dip" android:layout_height="42.0dip" android:layout_marginTop="35.0dip" android:src="@drawable/logo" android:adjustViewBounds="true" android:alpha="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/sidebar_expanded_guideline" app:layout_constraintTop_toTopOf="parent" />
<LinearLayout android:orientation="vertical" android:id="@id/sidebar_items" android:layout_width="0.0dip" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="@id/sidebar_expanded_guideline" app:layout_constraintTop_toTopOf="parent">
<include android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" layout="@layout/sidebar_button" />
<include android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" layout="@layout/sidebar_button" />
<include android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" layout="@layout/sidebar_button" />
</LinearLayout>
<include android:id="@id/sidebar_btn_settings" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" layout="@layout/sidebar_button" /></com.getchannels.android.ui.SideBar>
This portion of code that is for the logo:
Code:
<ImageView android:id="@id/sidebar_logo" android:layout_width="70.0dip" android:layout_height="42.0dip" android:layout_marginTop="35.0dip" android:src="@drawable/logo" android:adjustViewBounds="true" android:alpha="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/sidebar_expanded_guideline" app:layout_constraintTop_toTopOf="parent" />
I've just been reading the examples for TextClock when I google 'TextClock Android', and trying to write something in, in place of the original code. The app just crashes shortly after launch so I'm obviously not making the correct changes.
Any ideas?
Have you placed some drawable resource for that logo in proper folders?
yes that logo is already present in the drawable folder from the original code. I'm trying to take out that line of code to display the logo and instead display a clock so I guess it wouldn't matter if that were there or not I'm going to leave it anyways because it's used other places but just that one line of code that says image view and has the source for the logo I need to change that one line, and I'm trying to use either textclock or digitalclock or textview and I just can't figure it out cuz I'm stupid