HTML Logo by World Wide Web Consortium (www.w3.org). Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS, which is now in beta. ocPortal 9 will be superseded by Composr 10.

Head over to compo.sr for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.


ocPortal Currencies Add-on

Login / Search

 [ Join | More ]
 Add topic 
Posted
Rating:
#91792 (In Topic #18442)
Avatar

Community saint

A discussion for ideas.

Hi all,

I am thinking about writing an addon for ocPortal that allows for multiple Admin defined currencies to be used in various parts of the CMS. I am hoping for ideas and suggestions to what approaches I should take and or what features people would be interested in (if any) of something like this.

Here is a brief outline of what I am thinking:

Currently ocPortal uses points as a currency for many actions on the website. ( besides real world currencies for store purchases but points can work for some of that to I believe). I would like to define other currencies and use them "in place of" OR "in addition to" points system on the site.

For instance I could define 3 currencies for my site. Points being one, Support Credits another, Barter Bucks a third. In some instances one currency could be used or traded for another. Let's use Downloads as an example: I could offer digital downloads for a cost: Real world currency of say $10us or 1000 pts or 10 Barter Bucks.  now places where oints are earned currently could be set to either earn points or barter bucks if i chose. Like maybe points for forum posting etc but Barter bucks for Submitting Downloads or tutorials or something extra useful.  I could set up exchange rates between currencies if needed.

Another example could be the ocWorld add-on. I could set up ocWorld Cash as a currency and based on actions in the game users can accumulate ocWorld Caash and use it to buy objects in the game without it being related to the whole sites point system if I wanted. Therfore only what you do inside ocWorld applies to what you earn and spend in there.

Hopefully that's enough of some basic examples of what I suggesting so that you understand the concept. That said here is the approach I was thinking and as yet I am not sure it's either the best or even feasible yet so i am asking for input (not only from the users perspective but anyone familiar with ocPortals coding towards implementation).

SO I'd need a table to store currencies and i am thinking:

ocPcurrency
Fields list
id -  obvious
name - for the full name of currency (ie Barter Bucks, Points what have you)
prefix - For symbol or graphic to be applied to the front ( like a dollar sign $)
suffix - For sybol letters or graphic to appended (ie pts or bb as in 100 pts or 100 bb)
thousand_separator - (store the character for separation as in a space or comma)
decimal_places -  store the decimal place as maybe someone wants a currency to be defined to the thousanths or something ike 1.0001
currency_type - Real World or Website ?
prefix_type - if it type is image render the prefix as an image name to prefix an image or if text render characters
suffix_type - same as above in principle
base_unit -  Not sure if necessary yet but may need for certain implications (areas like this is where your help is encouraged) ie 1 or .0001 or 10 etc as the base unit to use for counting?
primary_currency - whether this currency is the primary currency of the site from which other currencies base their exchange values from? I don't know about this one yet it is an idea not fully formed?? lol Probably better as a site config option

ok next we need an exchnange rate table for currencies we want to define as exchangable for others

ocPcurrency_exhange
field list:
left_id - Id of currency being echanged FROM
right_rid - Id of cureency being exchanged TO
rate - The multipler rate ie rate = 10 then if Currency Left is points and currency right is Barter Bucks then 10 points equals 1 barter buck
rate_multiplyer - Wther to Add, subtract, multiply, divide or percent the rate.

So with the exchange table set up this way you could effectively have one way or two way exchanges if you like in other words with an entry of points left and BB right points can be exchanged for BB's but BB's can't be achanged for points. To have it two way we need add an entry of BB left and Points right.

Next I was thinking an accounts Table to hold the balances of currencies a users has

ocPcurrency_accounts
fields list
member_id - obvious
currency_id - obvious
balance - obvious

Now we need (well need I suppose is not true but ideal would be a better word so we can have tracking) a transactions table

ocPcurrency_transactions
field list
id -  obvious
account_id - member and curency id composite key
transaction_amount - obvious
transaction_type -  Debit or Credit
transaction_datetime - timestamp for transaction.
transaction_fee - (not sure i intend to implement this feature at the outset but future modifications could become useful)
transaction_description - What was the transaction for? ie Charge for Downloading Download id #301
transaction_category - holds an id key to sort of short version of Description I suppose like DL_Buy (meaning Bought a Download) Useful for quick overview statements or sort/searching of transactions by category types

Now the Transactions Category Types table for programmers or even maybe admins to define transaction categorytypes (like Dl_Buy for Perchased a download or F_Post for Posted to a Forum?)

ocPcurrency_transactions_category
field list:
id -  obvious
name -  ie Dl_Buy or F_Post etc
description -  What does the name mean in plain terms?


Now some extra thoughts?

Do I need a Central account (like  A central Bank) that holds maximum possible currencies available in circulation for some currencies?

What about adding Real World Account ties to the website accounts? Ie Website accounts could be used to store real currency balances as well and interesting cases could be made to for income distribution:

ie: Buy a Beer for this User (as seen on some forums) for instance if you run an opensource community like this you could have a "Buy Arbo a Beer" next to his name in his forum posts (account etc)Whereby a user donates $5 (or $20 whatever) to Arbo (a fee could go to the website from that amount too so for arguements sake lets call the fee $1 on the $5). So user clicks "Buy Beer for Arbo" is directed to paypal and they donate $5 into websites account (or sraight to arbo even if you don't want to charge fees)  Arbo is created in his account on the website as having $4 ($5 minus the website fee - let's leave paypal fees out of the equation for now lol) Then later the website can Transfer the $4 to Arbo's paypal if we've stored the details somewhere to his realworld account (ie paypal address but who's to say we can't use email banking or something else)


Besides obvious methods of AED currencies and Transactions and Exchanges

We'd need
Exchange Calculators
Debit/Credit Accounts
Transfers for account to account
Hooks to use for various areas of website to accumulate or debite currencies such as points from accounts

OK now ALL INPUT is greatly appreciated and earnestly encouraged to help with ideas on this subject and/or if you see areas for improvement please let me know.
Back to the top
 
Posted
Rating:
#91806
Avatar

Community saint

I've never been a fan of multiple different point/virtual currencies for a site as it just adds more artificial constraints. The most a site should ever have in my opinion is two: one points and one real-world currency (site admins choice).

You don't, for example, need both Support Credits and Barter Bucks. If they both have their roots in a real world currency (i.e. you have to spend $ to get them) then why not just have a real-world currency as your base?

I know there is also a psychological reason for abstracting say Support Credits. It looks better to say something only costs 10 Support credits rather then 55.

Currently in ocp we have points and Gift-points, with the latter having arbitrary restrictions on how they can be used. Sure there is logic applied to how it is intended to be used but I don't see the need for the restrictions.

As for things like add-on specific currencies (i.e. ocWorld Cash) which have no value outside the add-on, the only hook into a central system I can see a value for is to be able to see all balances in the one place.

There is possibly a 3rd one, which I'll call $Skills for want of a better name, which you can trade with members to get specific work done. You wouldn't buy it with real-world currency but it would be traded for work done. Note that I say possibly for this third option because it could actually be a negative for a site as it could deter some people offering free help and only wanting to do thing for $Skills.

Duck, I'm sure that people would find a currencies add-on useful, and I'm not trying to dissuade you, just adding my 2c.

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#91808
Avatar

Community saint

Please don't apologize you weren't rude just honest with your opinion which I like and respect and very much appreciate. (Well i know you're not actually apologizing but your using an apolgetic tone in your last paragraph)

But to elaborate a little as to why I'd like an addon like this is not so much for ocWorld but it makes a good example that's why I used it. For ocWorld has no real place with the rest of the site I feel and points earned on the site shouldn't be required to buy things in the game but that's how i feel and others may like it that way but I am talking options. Nut lets aside ocWorld and look at real world oportunities I see or would like to use it for.

I currently do some of my business work for Barter. Keeping track of who owes what to who can get frustrating sometimes but i could have my clients on the site with accounts they can check to see how many Barter Bucks they owe or have earned. With something like this real world currency can't be used. But if I say in my real world currency I charge $80 hour and I barter with a guy for 2 hour job who has a painting worth $160 he gives me painting for my time. Now I can list that painting on my site amongst my barter clients that I have a painting worth $160 Barter Bucks so another client who gives massages for $120 an hour gives me a massage for an hour and half has earned $160 barter bucks they can buy the painting with. Besides the fact that no real world currency changes hands I can also control inflation on my barter bucks an issue i had to raise with a client I was trading services with. This clients services were priced per hour the same as  mine when we started.  However they started raising their fees from $80 per hour to $140 per hour after a few months. Not that the client had an issue but I raised a concern that when we I did the work for them we were on par for hourly rates which means if I have 20 hours of service stored at 80 an hour if I now take my services at 140 an hour I now only get 11.5 hours of their time back? But with Barter bucks I can record the hours spent as units of time and despite the person raising their hourly time my barter bucks grow with it cause they owe me 20 hours of time if they raised their fee to 140 I now have 2800 barter bucks instead of 1600 to barter with someone else with (in terms of time units)

But lets drop barter bucks for now and look at other examples. I have a recipe site. I want to encourage users to submit recipes more than forum activities or page viewing etc. I can use points for page views forum post and trivial stuff and give trivial rewards for points but for Quality items like recipe submission I can make a currency called discount coupons. Each recipe submitted gets you 1% discount (upto a maximum I set like 20%) on purchasable products like cookware or aprons etc so when you buy something you can pay  realworld money aas well as cash in the coupon bucks.

Downloads is another great area.
 Instead of points earned all over the site you get download credits. You have to submit downloads in order to get credits to download something. I can give you 40 credits per upload (with average of 10 credits each to download) do if you upload something you can download something.

You can make all sorts of campaigns llok at ocPortal for example. Support Credits cost real world currency (which as you point out can be a good marketing tool turning $55.73 into 10 credits which sounds round and cool and cheap) but lets say Chris wants to encourage development of code or themes so he decides to make Developer Dollars (or whatever) and when he sees Arbo pump out a new addon or Jean a new theme he can reward them with Developer Dollars that they can spend on Support Credits or ocPortal merchandise like the (hopefully upcomming) book or paid themes or maybe he sells t-shrts whatever. But without the option to have multiple currencies these ideas are much harder to manage.

As you say it won't be for eveyone but if done right I can see people comming up with creative ways to use it for marketing campaigns and or activity motivators etc.


Last edit: by Duck
Back to the top
 
Posted
Rating:
#91814
Avatar

Community saint

Duck said

Well i know you're not actually apologizing but your using an apolgetic tone in your last paragraph
I though I might have come across a little strong, so I put that in just in case.

Duck said

I currently do some of my business work for Barter. Keeping track of who owes what to who can get frustrating sometimes but i could have my clients on the site with accounts they can check to see how many Barter Bucks they owe or have earned. With something like this real world currency can't be used.
I would have though real-world currency would have been ideal because there is no ambiguity as to its value.

Duck said

Besides the fact that no real world currency changes hands I can also control inflation on my barter bucks an issue i had to raise with a client I was trading services with.
But your inflation controls will be arbitrary and/or inconsistent.

Duck said

But with Barter bucks I can record the hours spent as units of time and despite the person raising their hourly time my barter bucks grow with it cause they owe me 20 hours of time if they raised their fee to 140 I now have 2800 barter bucks instead of 1600 to barter with someone else with (in terms of time units)

So you are essentially talking about "Barter Time", but as you've shown from your example, people will still value their time in terms of monetary value instead of labour. So while your example is an extreme case of 75% inflation in few months I'd be surprised if most people would not expect some inflation (i.e. one hour of my time now is worth more then it was a year or two ago).

Good luck trying to come up with an inflation formula that take into account not just labour costs but supply costs as well, after all it may take two hours to make a painting but how much did the paint/canvas supplies cost, and how will those costs compare to the next 3 or 12 months?

That's where real-world currency has the edge. Its no longer a problem that you have to fix, it just becomes a normal supply/demand problem. Supplier x is now too expensive so I will no longer barter with them or will reduce my bartering with them. Just because its a barter system does not automatically make it a fairer system or even a simpler system.

Duck said

Downloads is another great area.
 Instead of points earned all over the site you get download credits. You have to submit downloads in order to get credits to download something. I can give you 40 credits per upload (with average of 10 credits each to download) do if you upload something you can download something.
I see now what you are getting at, I thought it was a more arbitrary/interchangeable system your were talking about initially.

That's perfectly logical when you have pairings like that.

Duck said

Each recipe submitted gets you 1% discount (upto a maximum I set like 20%) on purchasable products like cookware or aprons etc so when you buy something you can pay  realworld money aas well as cash in the coupon bucks.

Duck said

But without the option to have multiple currencies these ideas are much harder to manage.
I think of those as more rewards, so didn't click with me that you would consider them currencies. Currencies are generally more freely tradable rather then have restrictive redemption options.

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#91817
Avatar

Community saint

As to your comments on seeing at as rewards - There is always ten different ways to accomplish something (certainly more so in ocPortal lol) so you may be right for something like a discount you could find other ways to do it. But as I say its the ability to have things done automatically based on configuration options you choose is what I am going for. As is points is the only way to reward users for actions so you can either restrict points giving to only those crucial areas and not trivial areas but then you still can't have diverse reward options or campaigns.

Oh and as for the complexity of inflation in the Barter system it works simple. At the time the deal is made that is what the price is for the object (be that a unit of time) So if you're a lawyer charging $500 an hour but I only charge $100 (in real world currencies) then I am bartering 5 hours of my time for 1 of yours. Once we've agreed I get credit of 1 hour of your time (not $500) So if I don't use that hour till next year but you've given yourself a raise to $1000 per hour then that doesn't matter cause I still get the 1 hour. Where the barter bucks comes in handy is if I want to trade that time unit for an actual tangeble object (like a painting) I can evalute that unit of time in terms of barter dollars (as can the painting) at the time it is being bartered. So because I saved my unit of time for a year my barter value went up to $1000 from $500 and so I can buy a more expensive painting. Nobody loses this way. I really like Barter because people are more willing to pay you what your worth for your time vs real money. They can say yes to a $6000 bill for website when a lot of it is going on barter but if they gotta pay cash nobody wants to pay more than 1 or 2 thousand and many expect it for $500 or less. Especially in these tight times. The only bad part is most of my regular bills I can't pay with barter lol But that's why I usually try to negotiate at least a portion in cash when I can.
Back to the top
 
Posted
Rating:
#91827
Avatar

Community saint

I see what you are getting at, and understand it will be of great benefit to some sights.   Personally I currently can envision it as something I'd need, but that may change.

Paul
Back to the top
 
Posted
Rating:
#91830
Avatar

Community saint

Duck said

As to your comments on seeing at as rewards - There is always ten different ways to accomplish something (certainly more so in ocPortal lol) so you may be right for something like a discount you could find other ways to do it.
I'm not saying currency is not a good way of doing it, it just wasn't the first thing that came to mind.

Duck said

Oh and as for the complexity of inflation in the Barter system it works simple.
But that's not inflation on the barter bucks per-Se.

Your original problem was the fact that you did not pre-purchase (agree to) the number of hours that would be worked by the other party. Barter bucks would not fix that.

Lets say our barterers are:

  Lawyer Joe (US): 1 hour = 500BB
  Lawyer Louie (US): 1 hour = 400BB
  Painter John (UK): 1 painting = 200BB
  Web Dev Duck (US): 1 hour = 100BB

So just as you have too keep track of the BB's, you will also have to keep track of 4 different barterable services/items in your account. You have:

  700BB in the bank
  1 hour of Lawyer Joe (patent law)
  0.5 hours of lawyer Louie (property law)
  2 painting from Painter John
  -11 Web Dev Duck hours (because you owe 5 hours to Joe, 2 to Louie & 4 to John).

You've pre-purchased several services and products and only those are protected against inflation.

And because they are tradeable they are also currencies in their own right because their individual values may (lets face it, will) change independent of BB's. In 3 months, Joe may increase to 600BB per hour while the rest may not change at all.

And what are BB's worth?
   1 US$ per BB?
   0.5 per BB?
   1.05 AUD$ per BB?

Unless the BB is pegged to a real-world currency you would have to determine its worth and therefore manage the inflation as well.

Duck said

I really like Barter because people are more willing to pay you what your worth for your time vs real money.
I'm not saying you have to use real world money, just that BB's need to be pegged to a real world currency to determine its value.

Your just spending virtual currency that has a value equivalent to a real currency.

I hope I'm making sense O_o.

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#91833
Avatar

Community saint

This is a fascinating subject and discussion and I thank you both for presenting me a spaghetti of mathematics that my brain cannot digest as fast as it use to.:lol:

There is certainly good potential in all of this and if you have the courage to put it all together Duck, it will get the gratitude of many I'm sure, but if someone just want to keep it simple, there's the one currency equivalence option in v9 which can lead to good prospects in a somewhat much subdued way:

Admin Zone-->Setup-->Configuration-->Points options:  Points per unit of currency

Jean:)
Back to the top
 
Posted
Rating:
#91871
Avatar

Community saint

Jean said

This is a fascinating subject and discussion and I thank you both for presenting me a spaghetti of mathematics that my brain cannot digest as fast as it use to.
The maths side is actually fairly simple, but its one of those subjects that looks straight-forward at first and gets trickier as you get deeper.

Don't worry about the inflation related math as that is largely a red-herring and won't be necessary at all if right components are in place.

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#91884
Avatar

Community saint

This is a stimulating subject eh Jean!

I thank Temp for debating with me it helps to try and see things from other angles.

In a sense the BB's would be losely coupled with your main realworld currency in determining it's value or worth. So as you say Joe making 500BB is prob cause Joe makes $500us an hour. But what we are trading is not really the BB's we are trading items (cars, paintings. tickets to a concert etc) or time units (for labour that has no product) so at the time of trade whatever you set as your BB rate for your time (or product) is the value you placed (at that time) on your labour but you still owe the labour not the BB's. So tomorrow if you change your labour rate up or down it doesn't matter to who you traded with you still owe an hour. But the person you traded with now has an appreciated value increase (or possible decrease but who gives themselves a pay cut?) in terms of BB purchasing power.

Now keep in mind the BB (barter system) is (would be) an independent add-on from the actually currencies add-on but is simply an application that could be made possible with the currencies add-on. However, as I debate with you I am starting to think maybe it's more uneccessary than I had originally envisioned.
Back to the top
 
Posted
Rating:
#91897
Avatar

Community saint

Duck said

In a sense the BB's would be losely coupled with your main realworld currency in determining it's value or worth. So as you say Joe making 500BB is prob cause Joe makes $500us an hour. But what we are trading is not really the BB's
It would actually be fairly tightly coupled to the real world currency otherwise there would be no way to price your service/items effectively.

If Jane (US) comes along and sells run-of-the-mill basketballs for 400BB's each, who would buy them if in the real world she charges $US35. And if she charged anything between say 30BB - 40BB it would be seen as a realistic price. It doesn't have to be identical because there are valid reasons to want to offer discounts or a premium to deal in BB's.

Now if Jane actually came from the UK, would she be pricing it at 35BB if it cost 35, or 56BB?

Without the main world currency being declared (and coupled) who knows what she would chose.

Duck said

we are trading items (cars, paintings. tickets to a concert etc) or time units (for labour that has no product) so at the time of trade whatever you set as your BB rate for your time (or product) is the value you placed (at that time) on your labour but you still owe the labour not the BB's.
Correct.

So how many hours of Ducks development time is worth one of Jane's (US) basketballs? If your normal rate is $US80, you are likely to think 0.5 hours (40BB), you might even go all the way up to a whole hour (80BB) because you think 0.5 hours is too small a chink of time to work with.

But Duck also does basic tech support work (which he can only typically charge $US25 per hour for) to keep himself busy while he waits for those nice $$$ development gigs. Duck might value a basketball at 1.5-2 tech support hours (37.5BB - 50BB).

So Ducks unit of time can be priced differently depending on the task to be performed during that time. This is certainly not uncommon.

The BB's, because they are coupled (pegged) to a real world currency, help establish the prices and are not actually traded.

The only thing not covered yet relating to the barted time/item is the likelihood of there needing to be an expiry element.

If Duck owes Jane 1 development hour, he can't be expected to wait forever for Jane (or whom ever she may have bartered Duck's time to) to redeem. So Duck may stipulate that his developer time must re redeemed in 30/60/…/365 (or whatever) days.

How's that for stimulation?

Duck said

So tomorrow if you change your labour rate up or down it doesn't matter to who you traded with you still owe an hour. But the person you traded with now has an appreciated value increase (or possible decrease but who gives themselves a pay cut?) in terms of BB purchasing power.
Correct.

Duck said

However, as I debate with you I am starting to think maybe it's more uneccessary than I had originally envisioned.
Maybe from the pure BB's perspective, but as a tracking mechanism for bartered items and services it should be spot on. Remember, you said:

Duck said

Keeping track of who owes what to who can get frustrating sometimes
So this could go a long way toward relieving the frustration.

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#91906
Avatar

Community saint

Actually it is loosely coupled (in a sense) because it is entirely possible (and almost probable) that Jane would charge 400bb's for he basketball even though she sells them for $35us for real money. (well probable is an exageration at 400bb's but 50bb's could be likely) because in Barter items are typically exchange at FULL retail value without discounts. So Jane may have initially set her real world price at $50us for her basketballs but they don't sell well at that price so she dropped it to $35 but in barter she may say I want the value to be 50bb's (more equivallant to $50us). Just like if I quote someone some Tech support if I charge $80 hour retail rate but if you paying cash I'll do it for $60 (or $40 etc) but if it's on barter its gonna most definitely be $80 or terms of BB's 80bb's
Back to the top
 
Posted
Rating:
#91920
Avatar

Community saint

That 400BB was just an example of Jane picking an arbitrary BB value rather then one that was based on real world price.

So if the real world normal price was $50 but is currently discounted to $35, it would be 50BB. That's just an example of Jane applying a premium for dealing in BB's (as I alluded to previously). Its still tightly coupled to the real world, its just that she is not offering the discounted version for barter.

Expand: mmmmm, maybe I shouldn't be using Jane as an example! mmmmm, maybe I shouldn't be using Jane as an example!




Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#91956
Avatar

Community saint

temp1024 said

… she is not offering the discounted version for barter.
Why the hell not?

Of course, I get easily confused between basketballs and volleyballs.

 :o

Take my advice. I'm not using it!

View my working ocPortal site (version 9.x.x) at Anglo-Indian Portal
Back to the top
 
Posted
Rating:
#91959
Avatar

Community saint

hmmm do you suppose she waxes?  :lol:
Back to the top
 
Posted
Rating:
#91964
Avatar

Community saint

LOL, Duck.

An immediate 'quick retort' rolled off my tongue (I'm not famous for that sort of thing - I usually find a response several hours later!), but I was able to stop the fingers from typing that in …!!

 :thumbs:

Take my advice. I'm not using it!

View my working ocPortal site (version 9.x.x) at Anglo-Indian Portal
Back to the top
 
Posted
Rating:
#91968
Avatar

Community saint

Fletch said

temp1024 said

… she is not offering the discounted version for barter.
Why the hell not?
We'll never know :( .

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
Posted
Rating:
#92020
Avatar

Community saint

Temp, thank you for your valuable input on this idea. After debating the pro's and cons with you I am re-thinking this effort entirely and may not build this addon after all. I think you may be right that it wouldn't be useful to enough people and that, for some of the functionality I had hoped to gain from, it could just be directly coded into whatever addon or section I wanted. Like if I am to build my Barter System I could just build my BB's into it and/or if i decide to further improve ocWorld I could just build a currency into that. So perhaps a general currency addon is not neccessary. Thanks again.
Back to the top
 
Posted
Rating:
#92026
Avatar

Community saint

No problem, I had fun.

:thumbs:

Do you have a Samsung Galaxy S / Galaxy S II ? If so, why not check out my ScreenFree FM Radio .
Back to the top
 
There are too many online users to list.
Control functions:

Quick reply   Contract

Your name:
Your message: