Audio Hack / Microphone "Service Mode" - Galaxy S II Q&A, Help & Troubleshooting

This is about the Microphone Volume Issue,
I have read Multiple Threads everywhere, and no real answer.
In comparison to my HTC Desire, the Microphone level is a little poor.
Quiet a few people have had issues hearing me properly,
Although when i make the following changes, everyone seems happy and can hear me much better:
i’ve investigated this issue, and it does seem to be a general one, found across all networks. The general fix is to access the service mode, and alter the default max volume for a headset call as follows:
Enter this number *#*#197328640#*#*
This will open the service mode menu.
Select option [5] AUDIO
Select option [1] (VOICE CALL)
Select option [2] HEADSET
Select option [1] Volume
Select option [1] SRC Speech RX Volume
Select option [5] 5_lvl : 87
Press the menu button (left side)
Choose Key Input
Enter a value between 0 and 100, with 100 the loudest setting.
Press ok
Then press the menu button and select back this will save (don't use the right side back key you normally use to navigate the phone or you will quit out of the settings).
Keep selecting the menu and back until you exit the service mode menu.
Click to expand...
Click to collapse
The Problem is, this is only a Temp Solution, and after a Reboot where back to square one,
Has anyone come up with a more Permanent solution?
Mod / Hack
Or even a App?
Hope am not alone on this one? And sorry if this has been bought up, i have done a search and dont find a great deal of information

There's a fix. Search for disable noise suppression (cancellation)

search in the market for "AudioBoost SGS2" its works perfect for me...
dave7802 said:
This is about the Microphone Volume Issue,
I have read Multiple Threads everywhere, and no real answer.
In comparison to my HTC Desire, the Microphone level is a little poor.
Quiet a few people have had issues hearing me properly,
Although when i make the following changes, everyone seems happy and can hear me much better:
The Problem is, this is only a Temp Solution, and after a Reboot where back to square one,
Has anyone come up with a more Permanent solution?
Mod / Hack
Or even a App?
Hope am not alone on this one? And sorry if this has been bought up, i have done a search and dont find a great deal of information
Click to expand...
Click to collapse

Related

Changing function of volume buttons?

I've tried with out much success to change the function of the volume controls when held down so that they scroll up and down instead of launching voice dial or recorder.
It's probably glaringly obvious but i was just wondering if there is a reg entry i can change as if you go to settings\buttons and change to scroll up and down respectively it only shifts once?
Tried smartskeys but it didn't do anything.
Cheers in advance
excellente question!!
yes please I would love to know this as well. I read about smartskey but I don't think it will work.
I've tried a few apps now, that people have used on other devices, without any luck. They either don't do anything or stop the buttons from doing the volume.
I think the reg is under HKCU somewhere but haven't had a good look yet.
I want to find the reg entries that pertain to the up down for the dpad and then find the reg entries for the volume buttons when held down and change them for the ones for the dpad.
Problem is i don't know what they are called. Yet
I've found the reg entries so now i just need to work out where to point them to:-
HKLM\SOFTWARE\MICROSOFT\SHELL\KEYS
40C1 = button 1 which is camera
40C2 = button 2 which is voice speed dial
40C3 = button 3 which is voice recorder
Anyone know where the reg entries for the dpad are?
Never mind.
Duplicate threads appearing all over the place now
http://forum.xda-developers.com/showthread.php?t=369740
http://forum.xda-developers.com/showthread.php?t=351144
Anyway hope you find the stuff we need
Jeremy
jeremymacmull said:
Duplicate threads appearing all over the place now
http://forum.xda-developers.com/showthread.php?t=369740
http://forum.xda-developers.com/showthread.php?t=351144
Anyway hope you find the stuff we need
Jeremy
Click to expand...
Click to collapse
So do i but for now i'm a bit stuck without knowing the reg entries for the dpad up down.
Strange
I thought this was as simple as changing the settings > buttons - setting from Voice Recorder to tbd and the Voice Dialer to tbd, did that but it still only changes the bloody volume.
Ideally i like an easy access, OK and Start Menu key.

[APP][Updated 27-05-2009] Simple Redial V1.1.1

I do not know why but redial applications are rare. I do not like any of them so I wrote one myself.
Requirements and compatibility.
.NET Compact Framework 2 is required. For any other requirement and compatibility you tell me. I am not a professional mobile developer and I can only test on my phone, a HTC Diamond2 (Topaz) with WM6.1
Install
Run SimpleRedial.cab. Can be installed in main memory or storage card.
Uninstall
Use Remove Programs in Settings
Usage
Simple Redial calls the most recent number in the dial history. No history, no call. Tap and hold the most recent number label at the top of the screen to select dial history filter (All,Missed,Incoming,Outgoing).
Call attempt number and time between call attempts can be selected by tapping and holding the labels.
On tapping Redial the program starts the call attempts and goes on until one of these happens.
1 - A call attempt is answered. The program produces a 'connected' notification (sound plus short vibration) and exit. Speakerphone can be optionally activated (check Keep on Speakerphone).
2 - You tap Abort. After current attempt ending the program produces a 'not connected' notification (sound plus vibration).
3 - You tap Exit. After current attempt ending the program exit (no notification).
4 - All the attempts fail. The program produces a 'not connected' notification (sound plus vibration).
5 - An inbound call arrives between call attempts. The program exit (no notification).
The 'not connected' notification is played when the phone call is not active and is so a 'normal' notification. Therefore, you can control it with volume and vibrate/silent settings.
The 'connected' notification is played when the phone call is active and this is somewhat tricky. You can not control it with volume and vibrate/silent settings but you can select whether it is played on speakerphone (check Sound on Speakerphone) or on the phone speaker (uncheck Sound on Speakerphone).
Tweaking
The sounds used by the program are Connected.wma and NotConnected.wma in the installation directory. You can change them if you like by replacing these files. If your Connected.wma is longer and gets truncated you should change the registry HKCU\Software\SimpleRedial\ConnectedSoundSecs. This is the time in seconds the program allows for Connected.wma playing before exiting.
USUAL LEGAL DISCLAIMER
Use Simple Redial at your own risk! NO WARRANTY! Although running this application does not seem to produce any damage on my phone, I take no responsibility for any kind of damage or major or minor inconvenience caused to devices or data or person or whatever else due to this application and its usage.
PROBLEM: on some phones popup menus do not popup, can't say why as it should be managed by Framework and I could not reproduce the problem. At any rate at post #9 you can download the previous version that used drop down lists.
Nice work. I'll try it. I knew only one redial app before you created this. Thanks. I'll start to annoy the ones that owe me some money with this
Idea - this kind of app should be service to save process slots (which are sow few as we know - 32)
darfri said:
Idea - this kind of app should be service...
Click to expand...
Click to collapse
The ideal option would be to have it inside the dialer application as a 'fire (a call) and forget (till answer)' option, otherwise compromise are in order.
For example, I would have liked to start the call attemps in a hidden way (maybe using Tapi) and then handover it to the normal phone window on call answer. Unfortunately, this is not possible (or, at least, I could not find a way) so to keep the phone window hidden I had to set my application as topmost. It works, provided you do not start switching applications with a task manager, but it is not very elegant.
Unfortunately, it seems redial is not an interesting capability (maybe it's me that know strange people with an almost alway busy phone) and MS or HTC leave the dialer as it is.
I cannot seem to figure out how I can change the number of attempts and how long in between each attempt.
toddpedersen said:
I cannot seem to figure out how I can change the number of attempts and how long in between each attempt.
Click to expand...
Click to collapse
Tap and hold the labels until a popup menu appears.
I do that and see that something is happening, butI get now menu. I just reboot the device and same result. I get the circle of dots when I press and hold, but no menu.
Let me try that again. I do that and see that something is happening, but I get NO menue. I rebooted the device and got the same result. Circle of dots when I press and old, but no menu.
toddpedersen said:
Let me try that again. I do that and see that something is happening, but I get NO menue. I rebooted the device and got the same result. Circle of dots when I press and old, but no menu.
Click to expand...
Click to collapse
That's strange. Tap and hold popup is a .NET Framework provided feature and it works flawlessly on my phone.
Do you have .NET Compact Framework 2 installed? Does tap and hold works in other programs on your device? Are you tapping exactly over 'xx attempts' label and 'xx secs between attempts' label?
At any rate here is old version 1.1 that used drop down lists. I moved to menus because it is supposed to be more finger friendly.
I will try the new file. I have running Compact Framework 3.5. Yes press and hold works for other programs.
Do I get this right? The app redials not if the line is busy - you have to start the app to set the redialprocess in motion?
peterpan911 said:
Do I get this right? The app redials not if the line is busy - you have to start the app to set the redialprocess in motion?
Click to expand...
Click to collapse
Yes, the application does not start by itself. The usage as I thougt it is...
1 - I call let's say Jack and I find that the line is busy. Now the Jack's number is on top of call history.
2 - I run SimpleRedial, it gets the Jack's number from the call history and when I tap Redial it starts calling again and again.
3 - When Jack answer SimpleRedial notifies me and exits.
oruam57 said:
Yes, the application does not start by itself. The usage as I thougt it is...
1 - I call let's say Jack and I find that the line is busy. Now the Jack's number is on top of call history.
2 - I run SimpleRedial, it gets the Jack's number from the call history and when I tap Redial it starts calling again and again.
3 - When Jack answer SimpleRedial notifies me and exits.
Click to expand...
Click to collapse
Do you plan to make it an auto redial? If so can you add the option of whether I want the number redialed, if so how many times? It would be very useful then. I have been waiting for years for such an app. Pocketmax.net has one, but the developer is not working on it. Yours could be the perfect app. All the best looking forward to further development.
kull said:
Do you plan to make it an auto redial?
Click to expand...
Click to collapse
Sorry, but no. I have only Compact Framework development tools (as a byproduct of my "real" .NET programming activities) and Compact Framework applications are very easy to code but real resource hogs. Therefore, making SimpleRedial resident would be quite a bad idea, it would not even be really resident because the Framework can decide to kill background applications to recover resources. Moreover, it would became not really "Simple"
kull said:
... add the option of whether I want the number redialed, if so how many times...
Click to expand...
Click to collapse
There is already an option for the redial attemps number. Just tap and hold the "xx attemps" label to get the popup menu (on some phone it does not work, can't say why, but on post #9 there is the old version that uses drop down lists).
Thanks for the reply.
hELP
How can i mod my dream im new to this
very great APP thx!
idea: I've got confused with difference between "speaker phone" and "phonespeaker"
Kaiser running WM6.1 CF3.5.
I've installed to the storage card.
The selection popups work fine.
With "sound on speakerphone" enabled, but "keep on speakerphone" disabled I get this error when the call connects:
Code:
simpleredial.exe
ObjectDisposedException
at Microsoft.AGL.Common.MISC.HandleAr()
at System.Windows.Forms.Control.get_Parent()
at System.Windows.Forms.Control.get_Enabled()
at System.Windows.Forms.Control._SyncEnabled()
at System.Windows.Forms.Control.set_Enabled()
at Redial.MainForm.RedialEnd()
at System.Reflection.RuntimeMethodInfo.InternalInvoke()
at System.Reflection.RuntimeMethodInfo.InternalInvoke()
at System.Reflection.RuntimeMethodInfo.Invoke()
at System.Reflection.MethodBase.Invoke()
at TASK.Invoke()
at System.Windows.Forms.Control._InvokeAll()
at System.Windows.Forms.Control.WnProc()
at System.Windows.Forms.ContainerControl.WnProc()
at System.Windows.Forms.Form.WnProc()
at System.Windows.Forms.Control._InternalWnProc()
at Microsoft.AGL.Forms.EVL.EnterMainLoop()
at System.Windows.Forms.Application.Run()
at Redial.Program.Main()
The call stays connected, but simple redial crashes. Also, the writeup indicates that the notification should be via sound (works sorta) and vibrate (does not work). The notification sound does not come over the speakerphone.
When I enable "sounds over speakerphone" and enable "keep on speakerphone", the sound does not come over the speakerphone, but once the call connects the speakerphone comes on (after a brief delay)
When a busy signal is encountered it seems like the app waits for the line to be disconnected by the service provided (busy signal runs for over 1 minute) is there a ways to decrease this or to disconnect when a busy signal is detected by tone? This would increase the effectiveness of the redialer as well as decrease the burden on the device (wasted resources waiting for the telcom to disconnect the call)
The app has great potential, it would be nice to see the last couple of bugs ironed out.
It would be highly appreciated if it can be set to 1 sec between atempt!! Thank you!
BallGor said:
It would be highly appreciated if it can be set to 1 sec between atempt!! Thank you!
Click to expand...
Click to collapse
I subscribe as well to this kind request to have 1sec between atempts.

[App] Recent Plus - volume control in recent apps dialog for CM7

What is Recent Plus!?
It is a small app in an early state that replaces the "recent apps" dialog that appears when you long-press the home button. It shows the recently opened apps as before but additionally shows a volume slider. See screenshots. Requires CM7.
UPDATE: Recent Plus in Market
Why?
As you all know, the nook color is a wonderful device but it is lacking hardware buttons. A typical and really nice remedy is to install keysmod / Hard-key editor and bind the volume buttons to back and menu. Problem: you can no longer easily change the current volume while in an app, especially when it is running in fullscreen.
It started with this post and I am now moving it here.
Requirements:
* a device running a recent nightly of cyanogenmod 7
Installation:
(0. install the keysmod so you have back/menu instead of the volume buttons)
1. install the apk that is attached to this post, UPDATE: Recent Plus in the Market
2. go to "Settings", "Cyanogenmod Settings", "Input", "long-press home settings": check "Use custom application" and then choose "Select custom application", tap "Applications" (yes, another tap here in that list! This is the first entry), finally select "Recent Plus!"
3. done. Now you can long press home to switch apps and change the volume
TODOs/Problems:
1. Not sure what happens with devices other than the nook and/or different roms
2. The number of recent apps can not be configured yet
Looking forward to your feedback!
History:
v0.7: (July 9, 2011)
color application label by status (white: running, gray: suspended, dark: closed) - can be turned off
fixed a force close bug when switching to apps in certain states
instead of force closing display an error message instead
Recent Plus in the Market
v0.6: (Apr 12 2011)
optional brightness slider (see settings)
v0.5:
crappy looking settings menu
select which volumes you want to control in the settings
v0.4:
fix android compatibility mode messing up the layout
v0.3:
visual stuff (Button background, longer app names)
different button layout in landscape/portrait
more apps
v0.2: initial release
(reserved)
Excellent app. My only problem is I cannot add recent plus as a custom application. I followed all of the steps exactly. Any advice?
matalo said:
Excellent app. My only problem is I cannot add recent plus as a custom application. I followed all of the steps exactly. Any advice?
Click to expand...
Click to collapse
I need more info. What does "cannot add as a custom application" mean? Could you follow all steps? Which Rom and which version are you running?
Kudos to you! This is exactly what I need to put everything together and eliminate the need to switch keys and such. Thanks for making an awesome app!
Ok, I figured out why I was only getting a small window that couldn't fit everything... I turned off Compatibility Mode in Spare Parts and now the Recent Plus window is big and works properly.
Does anyone have this working right at the default "on" setting for Compatibility Mode?
Nice idea. Works. Wishing i was on CM now
RoboRay said:
Ok, I figured out why I was only getting a small window that couldn't fit everything... I turned off Compatibility Mode in Spare Parts and now the Recent Plus window is big and works properly.
Does anyone have this working right at the default "on" setting for Compatibility Mode?
Click to expand...
Click to collapse
Worked fine for me. I also notice that there's an option in the settings to "show recent apps title". I unchecked it, but it still shows the title of the recent apps. Maybe you guys can work something out of it. Like having Compatibility Mode and still show the volume slider.
And, thanks.
RoboRay said:
Ok, I figured out why I was only getting a small window that couldn't fit everything... I turned off Compatibility Mode in Spare Parts and now the Recent Plus window is big and works properly.
Does anyone have this working right at the default "on" setting for Compatibility Mode?
Click to expand...
Click to collapse
Thanks for finding that out. I think I know how to fix that.
I just uploaded a new version that should fix the compatibility problem. Thanks again RoboRay.
MACLUIS1 said:
I also notice that there's an option in the settings to "show recent apps title". I unchecked it, but it still shows the title of the recent apps.
Click to expand...
Click to collapse
The are currently no options you can change. The stuff in that settings menu only applies to the default recent app switcher application.
Works great. Landscape mode works well too. Only thing id like to see is it control the complete system volume, not just media. You really have a great handy app. Is this only compatible with cm7 or is there future plans to have it work with other builds.
john10101 said:
Works great. Landscape mode works well too. Only thing id like to see is it control the complete system volume, not just media. You really have a great handy app.
Click to expand...
Click to collapse
Well, I can change it to affect all or only some of the different volumes. The thing is that I am not sure what is the best thing to do. The normal volume button is aware of the context and only changes that volume but I am not sure how to do that.
I don't like the idea of adding several sliders on the screen. Would having a settings menu to decide which volumes are affected help? Opinions?
john10101 said:
Is this only compatible with cm7 or is there future plans to have it work with other builds.
Click to expand...
Click to collapse
Well, the app itself is independent of the rom, but you need a way to launch it using a hardware button. I am not aware of a way to do this without support in the rom. One might be able to do something like "tap home -> launch recent plus", "double tap home -> go to home", not sure. This is similar to the softkeys behavior...
timoskrempel said:
Well, I can change it to affect all or only some of the different volumes. The thing is that I am not sure what is the best thing to do. The normal volume button is aware of the context and only changes that volume but I am not sure how to do that.
I don't like the idea of adding several sliders on the screen. Would having a settings menu to decide which volumes are affected help? Opinions?
Click to expand...
Click to collapse
Personally i would be fine with it doing full system volume, for my usage i dont think i need the ability to control different volume's. a settings option would be best for all around functionality for all users. i would suggest you hide it (press menu in app for it to show up) a settings menu would also give you ability to add features in the future if you choose so. I think there are people out there who would like this screen to do more then it does now. Myself all i want is a volume slider, This is much cleaner then having to use any other apps ive tried.
Thank you again for your hard work. This is going to be a staple apk, on my nook
timoskrempel said:
I don't like the idea of adding several sliders on the screen. Would having a settings menu to decide which volumes are affected help? Opinions?
Click to expand...
Click to collapse
A button to either pop out a selection menu or even to simply step through the different volume types with multiple presses might work. Tucked away behind the Menu button would make for a cleaner UI, though.
Media volume is the critical one to have by default, though, at least on a phoneless tablet... How often do people really have to change their Notifications volume on the fly? Adding a way to select the other volumes could certainly increase the app's usefulness outside the NC community, as well as to anyone who does constantly adjust the other volumes, though.
An option to adjust ALL volume levels with one slider would be very helpful, for instance when using with headphones -- see below.
RoboRay said:
Media volume is the critical one to have by default, though, at least on a phoneless tablet... How often do people really have to change their Notifications volume on the fly?
Click to expand...
Click to collapse
Yeah, about that... I was listening to music at a nice comfortable level using headphones, when I received an email... since RecentPlus only adjusted the media volume, the notification sound was deafening and had my ears ringing for a few moments.
tj!2k7 said:
An option to adjust ALL volume levels with one slider would be very helpful, for instance when using with headphones -- see below.
Yeah, about that... I was listening to music at a nice comfortable level using headphones, when I received an email... since RecentPlus only adjusted the media volume, the notification sound was deafening and had my ears ringing for a few moments.
Click to expand...
Click to collapse
Settings > CM > Sound > Always play on speaker > Notifications > Check
Or, use settings on the same page to attenuate them while using headphones, if you do want notification sounds out the 3.5mm jack.
FC when trying to switch to Yahoo Mail. I don't know if you can make anything out of that, just wanted to let you know
RoboRay said:
Settings > CM > Sound > Always play on speaker > Notifications > Check
Or, use settings on the same page to attenuate them while using headphones, if you do want notification sounds out the 3.5mm jack.
Click to expand...
Click to collapse
Yeah, that was one of the first things I did with CM7 as I love that feature on my phone... and I've got Not, Ring, and Alarm all set to play on speaker -- however -- have you actually tried the "always play on speaker" feature?
I've got two NCs here, and it doesn't work on either one -- most recent: CM7n30.
Can other folks confirm that this feature is working properly?
Edit: Based on some experimentation with Tasker just now, I don't think the NC hardware is actually capable of determining when headphones are plugged in.
Arbelzapf said:
FC when trying to switch to Yahoo Mail. I don't know if you can make anything out of that, just wanted to let you know
Click to expand...
Click to collapse
I installed yahoo mail but I can not reproduce this. It crashes when you hit the yahoo icon inside the recent app list? Does this happen every time?

[Q] Call Waiting Menu - Choose default action instead of option

Hi,
When I receive a call while already on a call, and want to answer, I get the following options:
- Put <number> on hold
- End call with <number>
This means having to first swipe to bring up this menu and then select. More often that not, I miss the incoming call while doing this.
All my earlier phones with physical answer buttons allowed a default option to answer the call while putting the current call on hold. I know there's no option to enable this on the S3. Was hoping to see if there's an app that does that.
Any help is appreciated.
Thanks
the-0ne said:
Hi,
When I receive a call while already on a call, and want to answer, I get the following options:
- Put <number> on hold
- End call with <number>
This means having to first swipe to bring up this menu and then select. More often that not, I miss the incoming call while doing this.
All my earlier phones with physical answer buttons allowed a default option to answer the call while putting the current call on hold. I know there's no option to enable this on the S3. Was hoping to see if there's an app that does that.
Any help is appreciated.
Thanks
Click to expand...
Click to collapse
Me too I hate this behaviour. If you install a custom rom base 4.2.1 and higher you will have a different menu or install a Cyanogenmod rom. I recommand Omega rom 44.1.

Gestures and Input - sound settings?

Hey guys,
My problem: I have an S7 edge, and the case that I got for it makes it a pain to use the volume buttons.
My solution: Use nova launcher prime to set a gesture to open volume settings.
I cannot find any way to get to the volume settings using the nova launcher. There are A TON activities you can go to, but I can only find "sound and notifications", which is ok for now, but still have to click "volume" afterwards. With so many options, I am sure there is a way to pull this off, curious if any of you lads have had any luck with this sort of thing.
Cheers,
- Patrick
patomack said:
Hey guys,
My problem: I have an S7 edge, and the case that I got for it makes it a pain to use the volume buttons.
My solution: Use nova launcher prime to set a gesture to open volume settings.
I cannot find any way to get to the volume settings using the nova launcher. There are A TON activities you can go to, but I can only find "sound and notifications", which is ok for now, but still have to click "volume" afterwards. With so many options, I am sure there is a way to pull this off, curious if any of you lads have had any luck with this sort of thing.
Cheers,
- Patrick
Click to expand...
Click to collapse
I have a set up where I use this app >> https://play.google.com/store/apps/details?id=com.phoenixstudios.aiogestures << and I point it towards a Tasker profile I made.
So basically with one swipe even on lock screen I can change the volume to any predefined level that I have made in Tasker.The beauty of this is I can use it with any launcher even stock and also change volume levels from the lock screen without opening my phone.
More information please
You'r solution sounds great. I have downloaded tasker and the gesture app, but it is definitely not a strait forward system.
Hate to be a bother, but if you could give a bit more detail on how to set up your system I would appreciate it!
patomack said:
You'r solution sounds great. I have downloaded tasker and the gesture app, but it is definitely not a strait forward system.
Hate to be a bother, but if you could give a bit more detail on how to set up your system I would appreciate it!
Click to expand...
Click to collapse
Tasker as a bit of a learning curve basically you need to create a task under the Task settings press + sign at bottom of screen and name your task (Example loud or silent) Then press the + sign at the bottom of the screen and select Audio from there you can select many different options ie Ringer volume Notification volume System volume etc.
Once you have created you task save it then use the "All gesture" app to select the Tasker task you made under shortcuts and then assign it to a gesture ie corner of screen etc.You can then set up multiple tasks to different corners of your screen.
Sorry this is only a basic guide Tasker as many more features you can use but as I said its a bit of a learning curve (But worth it)
Thank you
Tasker as a bit of a learning curve basically you need to create a task under the Task settings press + sign at bottom of screen and name your task (Example loud or silent) Then press the + sign at the bottom of the screen and select Audio from there you can select many different options ie Ringer volume Notification volume System volume etc.
Once you have created you task save it then use the "All gesture" app to select the Tasker task you made under shortcuts and then assign it to a gesture ie corner of screen etc.You can then set up multiple tasks to different corners of your screen.
Sorry this is only a basic guide Tasker as many more features you can use but as I said its a bit of a learning curve (But worth it)
Click to expand...
Click to collapse
Thank you,
This worked quite nicely.
I set my bottom left and right corners to high volume and mute.
This does the trick for now, would love to figure out a way to have a gesture open the quick volume menu which hovers over the screen, and shows the 4 volumes to adjust.
Thank you again!
Try Swiftly switch
Too much feature compare to your need but you may like it

Categories

Resources