Q:

Degrees of liking in "Ich mag dich" and "Ich habe dich gern"

In this thread, it has been pointed out that "Ich liebe dich" and "Ich habe dich lieb" are both strong statements -- the former is  reserved for the significant other such as boy/girlfriend, wife/husband, while the latter for somewhat close and beloved family members.
What about

Ich habe dich gern.

and

Ich mag dich (sehr).

?
Who would these be appropriate to say to? Would both of them be appropriate to say to friends without risking any confusion?
Also, one answer in that thread ranked "Ich mag dich" as weaker than "Ich habe dich gern." Do you think this is actually true? 

A:

Ich liebe dich

serious, true love (husband to wife, boyfriend to girlfriend),
also used in strongly connected families

Ich hab dich lieb

Medium, not too definitive love or
strong, but not yet too settled and meaningful connection,
also amongst family members

Ich mag dich / Ich hab dich gern

good friendship,
amongst closer relatives,
notice: can be used to neutrally positive opinion about objects (tools, food, clothing, ...)

Notice that all these mean actual love or strong attraction, not just good worker's fellowship. People of same genders using these terms on each others could appear homosexual (especially amongst males, but not so much if the statement clearly has no context to love because of difference in age, hierarchy borders, ...), although normally understood. In such situations, you would somehow need to figure out another way of telling them that you like their humor, appearance, style or much appreciate their work and so on. Generally, if there's no true or rising love, there's no need to declare your feelings that openly, unless you have to decide about important things that are influenced by how well you get along with each other or are confronted with a reproach that tells wrong about your feelings.

