I've written a script called "RandomRingtone". This script allows to automatically change the ringtone after each incoming call. It needs MortScript to run (I'm using 4.3b15) and .NET Compact Framework 3.5. Tested on Benq E72, Windows Mobile 6.5 Standard.
Features:
Various work modes:
Regular - it doesn't change ringtone, little useless, but good if we want to "lock" current ringtone for a while,
Random - allows to select random ringtone,
List - user can specify the order of use.
Exlcusion lists: user can specify which ringtones shouldn't be used by script or which calling numbers shouldn't cause to change the ringtone.
Various notification types: after each incoming call name of actually selected ringtone can be shown as a message, displayed on the homescreen or omitted.
Ignore missed calls: when enabled, only answered call will cause to change the ringtone.
Don't change when meeting profile is active: in this profile no ringtone is used so there is no need to change the ringtone.
Detailed informations:
When work mode is set to "Regular", you still can change ringtones. Just click "Next ringtone", then new random ringtone will be chosen. When work mode is set to "Random", each incoming call will cause to select random ringtone. You can also force the change like previously, clicking "Next ringtone". In this mode, when "Loop" option is enabled, each ringtone will be used only once as long as there are ringtones which have been not used yet. When all ringtones will be used, the cycle starts from the beginning. Even if this option is disabled, next ringtone always is different than actually used. When work mode is set to "List", user can create the list with specified usage order. Clicking on ringtone's name will show context menu with options ("Remove", "Move up", "Move down"). When the list ends, it can be repeated or mode can be changed to random or regular (with given default ringtone). Regardless of chosen work mode, user may select to ignore missed calls - ringtone's change will be done only when call was answered.
User can specify excluded ringtones list. These ringtones will not be used by script, so e.g. these ringtones can be assigned individually to some contacts. Clicking on ringtone's name will display additional context menu. There is also one option which may be useful for that purposes - excluding some contacts. Contacts added to the list will not cause change ringtone when they are calling to us. These options are not connected, but when we assign static ringtone to specified contacts, it would be good if their calls will not cause to change the ringtone .. These options give us ability to do that.
Main script ("RandomRingtone.mscr") is automatically executed after each incoming call through other script, "RandomRingtone_loader.mscr", which is executed by "RandomRingtone_preloader0.mscr" or "RandomRingtone_preloader1.mscr". Those scripts are executed by a small program, "RandomRingtone.exe", which is running in the background and checking for incoming call. User should always run main script, not preloader's application or loader's script. When we want to turn on/off preloader, there is an option in main menu - "Active". To automatically start preloader when system starts, enable "Autorun" option in Settings.
After incoming call script can inform us which ringtone is actually choosen. This can be done in two ways: displaying automatically hiding message with countdown (5 sec.) or through plugin on homescreen. I used "CTestUIPlugin" which is the part of "SlidingPanel" (Bronze plugin), unfortunately I don't know how it looks in other phones. In the attachements I've added modified .xml and .cpr files. User may also supress this notifications selecting proper option.
Strings are stored in file "Language.ini". I've created two files (polish and english, sorry for poor translation, there are probably many linguistic errors, so it will be nice if someone would correct this file...). Error / warning / information messages are part of scripts and are only in english. While normal work you shouldn't even see these messages, but when something going wrong, see if in directory where script is stored exists file "ErrorLog.txt".
Ringtones need to be stored in "\Windows" or directly on "\Storage Card".
Installation:
Unpack archive and run "RandomRingtone.mscr". You need to have MortScript installed (tested on 4.3b15).
If you are using "AppToDate", place "RandomRingtone.xml" into your AppToDate folder (usually "\Application Data\AppToDate").
If you are using "SlidingPanel" (Bronze plugin), you can put "SlidingPanel.home.xml" into "\Application Data\Home" and "SlidingPanel_240x320.cpr" into "\Windows" directory. Standard plugin's icon was changed to "2401;2401" (you can do this manually, key "HKLM\Software\Microsoft\CHome\CTestUIPlugin", value "ICONPATHS").
I've attached polish language file, if you want to use them, change name to "Language.ini" and replace with existing one.
Known bugs:
Please report in this topic any bugs, even small or related with poor english translation...
Code:
1. Actual MortScript beta version (4.3b15) seems to has a problem with ExitSub or If...EndIf section, what causes unexpected behaviour even when ExitSub command is in condition which is not true, so shouldn't be processed. By this reason, there is no "Exit" option when we enter into "Ringtones list" submenu, instead of this we need to use "Cancel" softkey.
2. Probably from this same reason MortScript doesn't serve correctly some strings (in "Choice" window), so some ringtones name or options can be displayed incorrectly.
3. Very short incoming calls can cause to not recognize incoming caller number, so when we are using "Excluded contacts" list, script may change ringtone although user is on the list.
4. Few times when system was very low on memory and caller with unknown ID was calling while "Ignore missed calls" was disabled, my phone changed ringtone to default stored in rom.
5. When system is very busy, message which informs about used ringtone may stay in background and not shown.
Changelog:
Version number describes release date (YYMMDD) and version number released in that day.
Code:
100927.01
- Now small .exe application is responsible for incoming call detection, not script like previously. This application is less power consuming than continously running script, which was draining battery too fast.
100503.01
- User can enter script for meeting profile. When meeting profile is active, script will not change the ringtone.
- Minor bugs fixed.
100502.01
- Initial version.
I like it!
An exceptional piece of work!
is it supporting Inesoft Phone 6 ??
I didn't use Inesoft Phone, but it will be working, script uses system registry entries to detect incoming call, not dialer window's title. I don't know exactly what are the features of Inesoft Phone, so some functions may be overlapping but I don't think this happen.
Hi,
I don't know if u r interested in adding any features, but with all the architecture in your script, you might:
Personal tones for text messages
You could also select contacts by using the Cyclone command line app. This way it would pull up the contact list and then select a contact from their...
Of course you would need to handle the playing of the sound for sms.
Mortscript forever?
Hey,
I'm new to android and i have used this forums a lot,
But now after i've searched for like several hours (Both here and in google..) for a solution and haven't found it i decided to sign up and ask it...
I'm using "Minimal Text" widget for my lockscreen (WidgetLocker)
and i want to add a Unread SMS Count number,
I Understood i need to create a Locale Variable for this one and read the tutorial on the "Minimalistic Text Wiki".
I Must add i'm also a complete noob with the "Tasker" app and just downloaded it for this particular use of creating a Variable.
The problem is, even after reading and doing exactly what the tutorial says,
And even trying to create a Variable manually in Tasker i just can't display it on the Minimal text widget no matter how much i try..
What could be the problem?
Are you setting the minimalistic text variable? For example, on your text received profile you should have two actions. The first sets a variable, lets say %SMSUNREAD. The second is Minimalistic Text variable, under plugins. For this you configure the variable name to be something else (%MNMLSMSUNREAD for example) and the content is %SMSUNREAD. You then configure Minimalistic text to use %MNMLSMSUNREAD.
Also you need to make sure Tasker is selected in Settings>Accessibility as an Accessibility Service.
Lastly, there seems to be reported issues with Tasker and deodexed roms. Are you running a custom Rom?
Hope that helps.
First of all thanks for the reply,
I noticed i Don't have tasker checked on Accessibility, Neither "Accessibility" checked.
I've checked them both but still, it doesn't show the amount of unread SMS...
here is what i have:
Tasker -
"New SMS" profile:
Received Text,*,* -
Variable Set "%SMSCOUNT" to "%SMSCOUNT + 1"
Minimalistic Text variable settings "%MNMLSMSCOUNT = %SMSCOUNT"
"Reset SMS" profile:
Messages (stock android messages app) -
Variable Set "%SMSCOUNT" to "0"
Minimalistic Text variable settings "%MNMLSMSCOUNT = %SMSCOUNT"
And of course a locale variable in the Minimalistic Text widget of "%MNMLSMSCOUNT" but still, Shows nothing.
I have just done some testing with Tasker and it seems like Nothing i try work,
For example i made a new profile with the task of showing some custom notification when i receive SMS,
or Display a popup when i turn my BT on, and Nothing happens....
What can i do to make tasker even work?!
PS. in my notifications bar i have "No Active Profiles" under tasker although it's all On...
Alright just wanted to update you, got it to work,
Well i just made it from the beginning Not following the tutorial,
Instead of the "%Variable + 1" i used the "Variable Add" oprion and WITHOUT the "Do Math" check.
So this is odd. I just got my Note II (love it for the most part), but can't figure this out for the life of me. There seems to be only one vibrate option, and that's in the main system settings > sound. It allows you to choose a vibrate pattern or create your own. If you go into the dialer (phone app) you can also set a vibrate pattern from there. Problem is the two are linked. If I change the one in phone it changes the main settings and vice versa. The messaging app has no such option, therefore my call and text vibrate patterns are always identical.
This is kind of annoying. I'd like to just use the stock messaging app. I have Handcent installed right now until I can (hopefully) find a fix for this, because that takes care of my problem, but it's not exactly the workaround I was looking for. Is there any way to fix this?
Hi all, one thing bothering me is the inability to set individual notification sounds, I have discovered how to do it for email but I cannot set individual sounds for other apps, so my Facebook, text etc are all the same, it's annoying me. Is there any way to change this, either a setting I don't know about or a good free app.
Many thanks
Does anyone else have a problem with their xperia using the default system notification sound for ALL notifications instead of what is set for each app? For instance, snapchat notifications always use the system default instead of the sounds that snapchat specifically is supposed to install and use. It's really annoying as I've gotten inconsistent results trying to set custom notifications for specific apps to use and some refuse to use the custom settings. Is it something I'm doing wrong?
I have the XQ-BC72 version of the phone.
I apologize if this has been asked before, my search didn't pull up anything in this realm of use case.
Thanks.
Can't speak for Snapchat as I do not use it. However, I have different sounds set for different things and they all work as expected. Do you have a separate "notifications" and "ringtones" folder? If not then you need to create each one in the root of the device and place all the 3rd party sounds you want to use in the proper folder. Now in settings you can choose a default notification sound which will be used by default by all your communications apps UNLESS you go into each apps settings to choose a specific one. If for some reason you continue to have issues try to choose "none" for the default notification sound. This way you will have to choose a sound for each app or else you will not hear anything.