Commit d93e749b by Dell

1、增加63个渠道包

2、增加邀请码功能
parent 5c3ea40e
......@@ -6,7 +6,7 @@ def config = rootProject.ext.ver
def library = rootProject.ext.library
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getDefault())
return new Date().format("yyyyMMdd", TimeZone.getDefault())
}
......@@ -46,7 +46,7 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "0",
UMENG_CHANNEL_VALUE: "qj_01"
]
......@@ -56,15 +56,46 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
UMENG_CHANNEL_VALUE: "qj_02"]
}
qj_1001 {
def myAppName = "球聚体育"
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "1001",
UMENG_CHANNEL_VALUE: "qj_1001"
]
}
qj_1002 {
def myAppName = "球聚体育"
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "1002",
UMENG_CHANNEL_VALUE: "qj_1002"
]
}
qj_1003 {
def myAppName = "球聚体育"
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "1003",
UMENG_CHANNEL_VALUE: "qj_1003"
]
}
qj_baidu {
def myAppName = "球聚体育"
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "3",
UMENG_CHANNEL_VALUE: "qj_baidu"
]
......@@ -74,7 +105,7 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "4",
UMENG_CHANNEL_VALUE: "qj_huawei_01"
]
......@@ -84,7 +115,7 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "6",
UMENG_CHANNEL_VALUE: "qj_xiaomi_01"
]
......@@ -94,7 +125,7 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "7",
UMENG_CHANNEL_VALUE: "qj_vivo_01"
]
......@@ -105,7 +136,7 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "8",
UMENG_CHANNEL_VALUE: "qj_oppo_01"
]
......@@ -116,7 +147,7 @@ android {
def myAppNamePY = "qiujutiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "9",
UMENG_CHANNEL_VALUE: "qj_sanxing_01"
]
......@@ -127,7 +158,7 @@ android {
def myAppNamePY = "yuyan"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_yuyan"
]
......@@ -138,7 +169,7 @@ android {
def myAppNamePY = "JRS"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_jrs"
]
......@@ -149,7 +180,7 @@ android {
def myAppNamePY = "uuqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_uu_qiu"
]
......@@ -161,7 +192,7 @@ android {
def myAppNamePY = "lebo"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_lebo"
]
......@@ -172,7 +203,7 @@ android {
def myAppNamePY = "daishu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_daishu"
]
......@@ -184,7 +215,7 @@ android {
def myAppNamePY = "kuangqiujie"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kuangqiujie"
]
......@@ -196,7 +227,7 @@ android {
def myAppNamePY = "huanqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_huanqiu"
]
......@@ -208,7 +239,7 @@ android {
def myAppNamePY = "jike"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_jike"
]
......@@ -220,7 +251,7 @@ android {
def myAppNamePY = "jike"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_jiaoqiu"
]
......@@ -232,7 +263,7 @@ android {
def myAppNamePY = "kanqiubao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kanqiubao"
]
......@@ -244,7 +275,7 @@ android {
def myAppNamePY = "kanqiubao2"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kanqiubao2"
]
......@@ -256,7 +287,7 @@ android {
def myAppNamePY = "lanjing"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_lanjing"
]
......@@ -267,7 +298,7 @@ android {
def myAppNamePY = "lanjian"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_lanjian"
]
......@@ -279,7 +310,7 @@ android {
def myAppNamePY = "lansu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_leisu"
]
......@@ -291,7 +322,7 @@ android {
def myAppNamePY = "qie"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_qie"
]
......@@ -303,7 +334,7 @@ android {
def myAppNamePY = "qiuhui"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_qiuhui"
]
......@@ -315,7 +346,7 @@ android {
def myAppNamePY = "qiuke"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_qiuke"
]
......@@ -327,7 +358,7 @@ android {
def myAppNamePY = "renren"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_renren"
]
......@@ -339,7 +370,7 @@ android {
def myAppNamePY = "riqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_riqiu"
]
......@@ -351,7 +382,7 @@ android {
def myAppNamePY = "woao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_woao"
]
......@@ -362,7 +393,7 @@ android {
def myAppNamePY = "wuxing"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_wuxing"
]
......@@ -374,13 +405,584 @@ android {
def myAppNamePY = "yingqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_yingqiu"
]
}
qj_88zhibo {
def myAppName = "88直播"
def myAppNamePY = "88zhibo"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_88zhibo"
]
}
qj_91tiyu {
def myAppName = "91体育"
def myAppNamePY = "91tiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_91tiyu"
]
}
qj_365tiyu {
def myAppName = "365体育"
def myAppNamePY = "365tiyu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_365tiyu"
]
}
qj_baihu {
def myAppName = "百狐体育"
def myAppNamePY = "baihu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_baihu"
]
}
qj_douqiu {
def myAppName = "斗球"
def myAppNamePY = "douqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_douqiu"
]
}
qj_hetun {
def myAppName = "河豚直播"
def myAppNamePY = "hetun"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_hetun"
]
}
qj_heibai {
def myAppName = "黑白足球"
def myAppNamePY = "heibai"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_heibai"
]
}
qj_jiguang {
def myAppName = "极光体育"
def myAppNamePY = "jiguang"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_jiguang"
]
}
qj_jiaoying {
def myAppName = "骄英体育"
def myAppNamePY = "jiaoying"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_jiaoying"
]
}
qj_kangeqiu {
def myAppName = "看个球"
def myAppNamePY = "kangeqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kangeqiu"
]
}
qj_lemi {
def myAppName = "乐米体育"
def myAppNamePY = "lemi"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_lemi"
]
}
qj_obao {
def myAppName = "欧宝体育"
def myAppNamePY = "obao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_obao"
]
}
qj_sulei {
def myAppName = "速雷快讯"
def myAppNamePY = "sulei"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_sulei"
]
}
qj_wulou {
def myAppName = "五楼直播"
def myAppNamePY = "wulou"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_wulou"
]
}
qj_yuntu {
def myAppName = "云图体育"
def myAppNamePY = "yuntu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_yuntu"
]
}
qj_zhibo8 {
def myAppName = "直播8"
def myAppNamePY = "zhibo8"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_zhibo8"
]
}
qj_zhuafan {
def myAppName = "抓饭直播"
def myAppNamePY = "zhuafan"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_zhuafan"
]
}
qj_9qiu1 {
def myAppName = "9球直播"
def myAppNamePY = "9qiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_9qiu"
]
}
qj_9qiu2 {
def myAppName = "9球直播"
def myAppNamePY = "9qiu2"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_9qiu2"
]
}
qj_88p {
def myAppName = "88p直播安卓官方版"
def myAppNamePY = "88p"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_88p"
]
}
qj_A8 {
def myAppName = "A8直播"
def myAppNamePY = "a8"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_a8"
]
}
qj_Gyoulanjing {
def myAppName = "G友蓝鲸直播"
def myAppNamePY = "gyoulanjing"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_Gyoulanjing"
]
}
qj_NBAshanmao {
def myAppName = "NBA山猫直播"
def myAppNamePY = "NBAshanmao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_NBAshanmao"
]
}
qj_bobotiyu {
def myAppName = "波波球体育"
def myAppNamePY = "bobotiyuNBA"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_bobotiyu"
]
}
qj_duobao {
def myAppName = "多宝体育"
def myAppNamePY = "duobao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_duobao"
]
}
qj_NBAchaojizhibo {
def myAppName = "NBA超级直播"
def myAppNamePY = "NBAchaojizhibo"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_BAchaojizhibo"
]
}
qj_fengkuang11ren {
def myAppName = "疯狂11人"
def myAppNamePY = "fengkuang11ren"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_fenbgkuang11ren"
]
}
qj_heibai2 {
def myAppName = "黑白直播"
def myAppNamePY = "heibai2"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_heibai2"
]
}
qj_hongyingtao {
def myAppName = "红樱桃直播"
def myAppNamePY = "hongyingtao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_hongyingtao"
]
}
qj_hulishipin {
def myAppName = "狐狸直播"
def myAppNamePY = "hulishipin"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_hulishipin"
]
}
qj_huaxin {
def myAppName = "花心直播"
def myAppNamePY = "huaxin"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_huaxin"
]
}
qj_huatihui {
def myAppName = "华体会"
def myAppNamePY = "huatihui"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_huatihui"
]
}
qj_kanqiubao3 {
def myAppName = "看球宝"
def myAppNamePY = "kanqiubao3"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kanqiubao3"
]
}
qj_kele {
def myAppName = "可乐直播"
def myAppNamePY = "kele"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kele"
]
}
qj_kele2 {
def myAppName = "可乐直播"
def myAppNamePY = "kele2"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_kele2"
]
}
qj_midou {
def myAppName = "米斗跟单"
def myAppNamePY = "midou"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_midou"
]
}
qj_mile {
def myAppName = "米乐直播"
def myAppNamePY = "mile"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_mile"
]
}
qj_oumei {
def myAppName = "欧美直播"
def myAppNamePY = "oume"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_oume"
]
}
qj_qiulaile {
def myAppName = "球来了"
def myAppNamePY = "qiulaile"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_qiulaile"
]
}
qj_qiuyou {
def myAppName = "球友直播"
def myAppNamePY = "qiuyou"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_qiuyou"
]
}
qj_shuoqiudi {
def myAppName = "说球帝"
def myAppNamePY = "shuoqiudi"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_shuoqiudi"
]
}
qj_weilai {
def myAppName = "纬来体育"
def myAppNamePY = "weilai"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_weilai"
]
}
qj_xiaojibaohe {
def myAppName = "小鸡宝盒直播app"
def myAppNamePY = "xiaojibaohe"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_xiaojibaohe"
]
}
qj_xiaomanyao {
def myAppName = "小蛮腰"
def myAppNamePY = "xiaomanyao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_xiaomanyao"
]
}
qj_xiaosongshu {
def myAppName = "小松鼠直播"
def myAppNamePY = "xiaosongshu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_xiaosongshu"
]
}
qj_jiebao {
def myAppName = "捷报比分"
def myAppNamePY = "jiebao"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_jiebao"
]
}
qj_chaojidianshi {
def myAppName = "超级电视直播"
def myAppNamePY = "chaojidianshi"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_chaojidianshi"
]
}
qj_boboqiu {
def myAppName = "波波球直播"
def myAppNamePY = "boboqiu"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_boboqiu"
]
}
qj_zhanqi {
def myAppName = "战旗直播"
def myAppNamePY = "zhanqi"
manifestPlaceholders = [
myAppName : "${myAppName}",
myAppNamePY : "${myAppNamePY}",
API_CHANNEL_ID : "10",
UMENG_CHANNEL_VALUE: "third_zhanqi"
]
}
}
sourceSets {
main {
......@@ -397,6 +999,15 @@ android {
qj_yuyan {
res.srcDirs = ['src/main/X-YUYAN/res']
}
qj_boboqiu {
res.srcDirs = ['src/main/X-BOBOQIU/res']
}
qj_chaojidianshi {
res.srcDirs = ['src/main/X-CHAOJIDIANSHI/res']
}
qj_jiebao {
res.srcDirs = ['src/main/X-JIEBAO/res']
}
qj_jrs {
res.srcDirs = ['src/main/X-JRS/res']
......@@ -411,6 +1022,11 @@ android {
res.srcDirs = ['src/main/X-DAISHU/res']
}
qj_NBAchaojizhibo {
res.srcDirs = ['src/main/X-NBACHAOJIZHIBO/res']
}
qj_lebo {
res.srcDirs = ['src/main/X-LEBO/res']
......@@ -498,62 +1114,244 @@ android {
res.srcDirs = ['src/main/X-YINGQIU/res']
}
qj_88zhibo {
res.srcDirs = ['src/main/X-88ZHIBO/res']
}
}
qj_91tiyu {
res.srcDirs = ['src/main/X-91TIYU/res']
}
qj_365tiyu {
res.srcDirs = ['src/main/X-365TIYU/res']
// AS3.0 自定义APK安装包名
applicationVariants.all { variant ->
variant.outputs.all {
// outputFileName = "A_v${variant.versionName}_${variant.buildType.name}_id_0_250.apk"
outputFileName = "qjLive_v${variant.versionName}_${variant.buildType.name}_${variant.productFlavors[0].name}_${releaseTime()}.apk"
}
}
qj_baihu {
res.srcDirs = ['src/main/X-BAIHU/res']
signingConfigs {
release {
storeFile file(rootProject.ext.keystorePath)
storePassword rootProject.ext.keystorePassword
keyAlias rootProject.ext.alias
keyPassword rootProject.ext.aliasPassword
}
}
qj_douqiu {
res.srcDirs = ['src/main/X-DOUQIU/res']
}
qj_hetun {
res.srcDirs = ['src/main/X-HETUN/res']
}
qj_heibai {
res.srcDirs = ['src/main/X-HEIBAI/res']
}
qj_jiguang {
res.srcDirs = ['src/main/X-JIGUANGres']
}
qj_jiaoying {
res.srcDirs = ['src/main/X-JIAOYING/res']
}
qj_kangeqiu {
res.srcDirs = ['src/main/X-KANGEQIUres']
}
qj_lemi {
res.srcDirs = ['src/main/X-LEMIres']
}
qj_obao {
res.srcDirs = ['src/main/X-OBAO/res']
}
qj_sulei {
res.srcDirs = ['src/main/X-SULEI/res']
}
qj_wulou {
res.srcDirs = ['src/main/X-WULOU/res']
}
qj_yuntu {
res.srcDirs = ['src/main/X-YUNTU/res']
}
qj_zhibo8 {
res.srcDirs = ['src/main/X-ZHIBO8/res']
}
qj_zhuafan {
res.srcDirs = ['src/main/X-ZHUAFAN/res']
}
qj_9qiu1 {
res.srcDirs = ['src/main/X-JIUQIU/res']
}
qj_9qiu2 {
res.srcDirs = ['src/main/X-JIUQIU2/res']
}
qj_88p {
res.srcDirs = ['src/main/X-88P/res']
}
qj_A8 {
res.srcDirs = ['src/main/X-A8/res']
}
qj_Gyoulanjing {
res.srcDirs = ['src/main/X-GYOU/res']
}
qj_NBAshanmao {
res.srcDirs = ['src/main/X-SHANMAO/res']
}
qj_bobotiyu {
res.srcDirs = ['src/main/X-BOBO/res']
}
qj_duobao {
res.srcDirs = ['src/main/X-DUOBAO/res']
}
qj_fengkuang11ren {
res.srcDirs = ['src/main/X-FENGKUANG11REN/res']
}
qj_heibai2 {
res.srcDirs = ['src/main/X-HEIBAIMIANFEI/res']
}
qj_hongyingtao {
res.srcDirs = ['src/main/X-HONGYINGTAO/res']
}
qj_hulishipin {
res.srcDirs = ['src/main/X-HULI/res']
}
qj_huaxin {
res.srcDirs = ['src/main/X-HUAXIN/res']
}
qj_huatihui {
res.srcDirs = ['src/main/X-HUATIHUI/res']
}
qj_kanqiubao3 {
res.srcDirs = ['src/main/X-KANQIUBAO3/res']
}
qj_kele {
res.srcDirs = ['src/main/X-KELE/res']
}
qj_kele2 {
res.srcDirs = ['src/main/X-KELEGUANWANG/res']
}
qj_midou {
res.srcDirs = ['src/main/X-MIDOU/res']
}
qj_mile {
res.srcDirs = ['src/main/X-MILE/res']
}
qj_oumei {
res.srcDirs = ['src/main/X-OUMEI/res']
}
qj_qiulaile {
res.srcDirs = ['src/main/X-OIULAILE/res']
}
qj_qiuyou {
res.srcDirs = ['src/main/X-OIUYOU/res']
}
qj_shuoqiudi {
res.srcDirs = ['src/main/X-SHUOQIUDI/res']
}
qj_weilai {
res.srcDirs = ['src/main/X-WEILAI/res']
}
qj_xiaojibaohe {
res.srcDirs = ['src/main/X-XIAOJIBAOHE/res']
}
qj_xiaomanyao {
res.srcDirs = ['src/main/X-XIAOMANYAO/res']
buildTypes {
debug {
buildConfigField 'int', 'CHANNEL_ID', '0'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release {
//Zipalign开关
zipAlignEnabled true
//清理开关
shrinkResources true
//CHANNEL_ID
buildConfigField 'int', 'CHANNEL_ID', '0'
//混淆
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
qj_xiaosongshu {
res.srcDirs = ['src/main/X-XIAOSONGSHU/res']
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
qj_zhanqi {
res.srcDirs = ['src/main/X-ZHANQI/res']
lintOptions {
checkReleaseBuilds false
abortOnError false
}
dataBinding {
enabled = true
}
// AS3.0 自定义APK安装包名
applicationVariants.all { variant ->
variant.outputs.all {
// outputFileName = "A_v${variant.versionName}_${variant.buildType.name}_id_0_250.apk"
outputFileName = "qjLive_v${variant.versionName}_${variant.buildType.name}_${variant.productFlavors[0].name}_${releaseTime()}.apk"
}
}
signingConfigs {
release {
storeFile file(rootProject.ext.keystorePath)
storePassword rootProject.ext.keystorePassword
keyAlias rootProject.ext.alias
keyPassword rootProject.ext.aliasPassword
}
}
buildTypes {
debug {
buildConfigField 'int', 'CHANNEL_ID', '0'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release {
//Zipalign开关
zipAlignEnabled true
//清理开关
shrinkResources true
//CHANNEL_ID
buildConfigField 'int', 'CHANNEL_ID', '0'
//混淆
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
dataBinding {
enabled = true
}
// packagingOptions{
// exclude 'META-INF/shark-log.kotlin_module'
// exclude 'support/http/resources/js/lang.js'
......@@ -562,41 +1360,41 @@ android {
// exclude 'support/monitor/mysql/webapp.sql'
// }
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//support
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
api project(':FlycoTabLayout_Lib')
api project(':baselibrary')
api project(':indexlib')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'jp.wasabeef:glide-transformations:4.0.1'
implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
implementation 'com.android.support:multidex:1.0.3'
//七牛
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//support
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
api project(':FlycoTabLayout_Lib')
api project(':baselibrary')
api project(':indexlib')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'jp.wasabeef:glide-transformations:4.0.1'
implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
implementation 'com.android.support:multidex:1.0.3'
//七牛
// implementation files('src\\lib\\pldroid-player-2.1.9.jar')
implementation files('src\\lib\\core-3.3.0.jar')
implementation files('src\\lib\\core-3.3.0.jar')
implementation library.flexbox
implementation 'com.github.yhaolpz:FloatWindow:1.0.9'
implementation library.flexbox
implementation 'com.github.yhaolpz:FloatWindow:1.0.9'
//XUpdate
implementation 'com.github.xuexiangjys:XUpdate:1.1.6'
implementation 'com.zhy:okhttputils:2.6.2'
//gsy
implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'
//exo2
implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'
implementation 'com.shuyu:gsyVideoPlayer-armv7a:8.1.2'
implementation 'com.shuyu:gsyVideoPlayer-arm64:8.1.2'
//XUpdate
implementation 'com.github.xuexiangjys:XUpdate:1.1.6'
implementation 'com.zhy:okhttputils:2.6.2'
//gsy
implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'
//exo2
implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'
implementation 'com.shuyu:gsyVideoPlayer-armv7a:8.1.2'
implementation 'com.shuyu:gsyVideoPlayer-arm64:8.1.2'
// implementation 'com.github.ctiao:DanmakuFlameMaster:0.9.25'
// implementation 'com.github.ctiao:ndkbitmap-armv7a:0.9.21'
......@@ -604,53 +1402,53 @@ android {
// implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer:v8.1.3-jitpack'
//m3u8download
implementation 'com.arialyy.aria:core:3.8.10'
kapt 'com.arialyy.aria:compiler:3.8.10'
implementation 'com.arialyy.aria:m3u8Component:3.8.10'
//glide
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'com.google.android:flexbox:1.0.0'
implementation("com.github.bumptech.glide:recyclerview-integration:4.8.0") {
// Excludes the support library because it's already included by Glide.
transitive = false
}
//im
api 'com.hyphenate:hyphenate-chat:3.8.0'
api 'com.hyphenate:ease-im-kit:3.8.0'
//m3u8download
implementation 'com.arialyy.aria:core:3.8.10'
kapt 'com.arialyy.aria:compiler:3.8.10'
implementation 'com.arialyy.aria:m3u8Component:3.8.10'
//glide
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'com.google.android:flexbox:1.0.0'
implementation("com.github.bumptech.glide:recyclerview-integration:4.8.0") {
// Excludes the support library because it's already included by Glide.
transitive = false
}
//im
api 'com.hyphenate:hyphenate-chat:3.8.0'
api 'com.hyphenate:ease-im-kit:3.8.0'
implementation 'com.blankj:utilcode:1.30.6'
implementation 'com.blankj:utilcode:1.30.6'
//SwitchButton
implementation 'com.kyleduo.switchbutton:library:2.0.3'
implementation 'com.github.pinguo-zhouwei:CustomPopwindow:2.1.1'
//SwitchButton
implementation 'com.kyleduo.switchbutton:library:2.0.3'
implementation 'com.github.pinguo-zhouwei:CustomPopwindow:2.1.1'
//友盟
// 友盟基础组件库(所有友盟业务SDK都依赖基础组件库)
implementation "com.umeng.umsdk:common:9.4.4" //必选
implementation "com.umeng.umsdk:asms:1.4.1" // asms包依赖(必选)
//友盟
// 友盟基础组件库(所有友盟业务SDK都依赖基础组件库)
implementation "com.umeng.umsdk:common:9.4.4" //必选
implementation "com.umeng.umsdk:asms:1.4.1" // asms包依赖(必选)
// 下面各SDK根据宿主App是否使用相关业务按需引入。
implementation "com.umeng.umsdk:abtest:1.0.0" // ABTest功能依赖(可选) 友盟统计
implementation 'com.scwang.smart:refresh-layout-kernel:2.0.3' //核心必须依赖
implementation 'com.scwang.smart:refresh-header-classics:2.0.3' //经典刷新头
//图片选择器
implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0'
//防连点
implementation 'cc.taylorzhang:single-click:1.1.0'
//Banner
implementation 'com.github.zhpanvip:bannerviewpager:3.5.4'
implementation "com.umeng.umsdk:abtest:1.0.0" // ABTest功能依赖(可选) 友盟统计
implementation 'com.scwang.smart:refresh-layout-kernel:2.0.3' //核心必须依赖
implementation 'com.scwang.smart:refresh-header-classics:2.0.3' //经典刷新头
//图片选择器
implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0'
//防连点
implementation 'cc.taylorzhang:single-click:1.1.0'
//Banner
implementation 'com.github.zhpanvip:bannerviewpager:3.5.4'
// implementation 'com.jaeger.statusbarutil:library:1.5.1'
implementation 'com.kuaishou:akdanmaku:1.0.3'
implementation 'com.kuaishou:akdanmaku:1.0.3'
implementation 'com.github.lihangleo2:ShadowLayout:3.2.4'
implementation 'com.github.lihangleo2:ShadowLayout:3.2.4'
}
repositories {
mavenCentral()
}
}
repositories {
mavenCentral()
}
......@@ -132,7 +132,7 @@
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="um.606eca9818b72d2d244b25bb" />
<data android:scheme="um.625d03d7d024421570beb456" />
</intent-filter>
<intent-filter>
......
......@@ -26,6 +26,8 @@ import com.hupu.tv.player.app.ui.contact.LoginActivityContact
import com.hupu.tv.player.app.ui.presenter.LoginActivityPresenter
import com.hupu.tv.player.app.utils.CommonUtils
import com.hupu.tv.player.app.utils.DialogUtils
import com.hupu.tv.player.app.utils.ProductFlavors
import com.hupu.tv.player.app.utils.VersionControl
import com.mirkowu.statusbarutil.StatusBarUtil
import com.quanmingxing.app.widget.widget.BiggerDotPasswordTransformationMethod
import com.softgarden.baselibrary.base.BaseActivity
......@@ -155,7 +157,12 @@ class LoginActivity : RefreshActivity<LoginActivityPresenter>(), LoginActivityCo
DialogUtils.showLoginAgreement(
this@LoginActivity,
getString(R.string.string_user_agreement_title_private),
getString(R.string.string_user_private)
if (VersionControl.getCurrentFlavor() == VersionControl.XIAOMI){
getString(R.string.string_user_private_xiaomi)
}else{
getString(R.string.string_user_private)
}
)
}
......
......@@ -2,10 +2,8 @@ package com.hupu.tv.player.app.ui.activity
import android.content.Context
import android.content.Intent
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.TextUtils
import android.text.method.HideReturnsTransformationMethod
import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan
......@@ -20,14 +18,12 @@ import com.softgarden.baselibrary.utils.ToastUtil
import com.hupu.tv.player.app.R
import com.hupu.tv.player.app.app.Constants
import com.hupu.tv.player.app.base.RefreshActivity
import com.hupu.tv.player.app.event.RefreshUserEvent
import com.hupu.tv.player.app.event.RegisterEvent
import com.hupu.tv.player.app.ui.contact.LoginActivityContact
import com.hupu.tv.player.app.ui.contact.RegisterActivityContact
import com.hupu.tv.player.app.ui.presenter.LoginActivityPresenter
import com.hupu.tv.player.app.ui.presenter.RegisterActivityPresenter
import com.hupu.tv.player.app.utils.CommonUtils
import com.hupu.tv.player.app.utils.DialogUtils
import com.hupu.tv.player.app.utils.VersionControl
import com.mirkowu.statusbarutil.StatusBarUtil
import com.quanmingxing.app.widget.widget.BiggerDotPasswordTransformationMethod
import com.softgarden.baselibrary.base.BaseActivity
......@@ -58,9 +54,10 @@ class RegisterActivity : RefreshActivity<RegisterActivityPresenter>(),
override fun onResume() {
super.onResume()
StatusBarUtil.setStatusBarColor(this,getColor(R.color.color_F5F6F7))
StatusBarUtil.setStatusBarLightMode(this,3)
StatusBarUtil.setStatusBarColor(this, getColor(R.color.color_F5F6F7))
StatusBarUtil.setStatusBarLightMode(this, 3)
}
override fun initialize() {
// cb_agree.isChecked = true
Log.e("loginActivity", "initialize")
......@@ -88,7 +85,11 @@ class RegisterActivity : RefreshActivity<RegisterActivityPresenter>(),
DialogUtils.showLoginAgreement(
this@RegisterActivity,
getString(R.string.string_user_agreement_title_private),
getString(R.string.string_user_private)
if (VersionControl.getCurrentFlavor() == VersionControl.XIAOMI) {
getString(R.string.string_user_private_xiaomi)
} else {
getString(R.string.string_user_private)
}
)
}
......@@ -145,7 +146,8 @@ class RegisterActivity : RefreshActivity<RegisterActivityPresenter>(),
et_register_phone.text.toString(),
et_nick_name.text.toString(),
et_register_code.text.toString(),
et_register_password.text.toString()
et_register_password.text.toString(),
et_recommend_code.text.toString()
)
}
}
......
......@@ -15,7 +15,7 @@ interface RegisterActivityContact {
}
interface Present{
fun register(phone:String,nickName:String,smsCode:String,password:String)
fun register(phone:String,nickName:String,smsCode:String,password:String,agentCode:String)
fun startNext()
fun getSmsCode(phone: String)
}
......
......@@ -30,13 +30,14 @@ class RegisterActivityPresenter : IBasePresenter, RegisterActivityContact.Presen
override fun detachView() {
}
override fun register(phone: String, nickName: String, smsCode: String, password: String) {
override fun register(phone: String, nickName: String, smsCode: String, password: String, agentCode: String) {
val hashMap = HashMap<String, Any>()
hashMap["channelId"] = SPUtil[Constants.CHANNEL_ID, BuildConfig.CHANNEL_ID]
hashMap["nickName"] = nickName
hashMap["smsCode"] = smsCode
hashMap["phone"] = phone
hashMap["password"] = password
hashMap["agentCode"] = agentCode
RetrofitClient.retrofitService
.register(JsonUtils.toRequestBody(hashMap))
.compose(NetworkTransformer(mView))
......
......@@ -459,6 +459,12 @@ object DialogUtils {
val tvClosePrivate = v.findViewById<TextView>(R.id.tv_close_private)
val rlUserAgreement = v.findViewById<RelativeLayout>(R.id.rl_user_agreement)
val rlUserPrivate = v.findViewById<RelativeLayout>(R.id.rl_user_private)
val tvContentPrivate = v.findViewById<TextView>(R.id.tv_content_private)
tvContentPrivate.text = if (VersionControl.getCurrentFlavor() == VersionControl.XIAOMI){
activity?.getString(R.string.string_user_private_xiaomi)
}else{
activity?.getString(R.string.string_user_private)
}
val style =
SpannableStringBuilder(activity?.getString(R.string.string_user_agreement_title_new))
val oneSpan = object : ClickableSpan() {
......@@ -532,8 +538,13 @@ object DialogUtils {
val rlUserPrivate = v.findViewById<RelativeLayout>(R.id.rl_user_private)
val tvConfirm = v.findViewById<TextView>(R.id.tv_confirm)
val tvCancel = v.findViewById<TextView>(R.id.tv_cancel)
val tvContentPrivate = v.findViewById<TextView>(R.id.tv_content_private)
val style = SpannableStringBuilder(activity?.getString(R.string.string_first_login))
tvContentPrivate.text = if (VersionControl.getCurrentFlavor() == VersionControl.XIAOMI){
activity?.getString(R.string.string_user_private_xiaomi)
}else{
activity?.getString(R.string.string_user_private)
}
val oneSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
activity?.let {
......
......@@ -14,11 +14,14 @@ object VersionControl {
private const val OFFICIAL_1 = "qj_01"
private const val OFFICIAL_2 = "qj_02"
private const val OFFICIAL_3 = "qj_yuyan_01"
private const val OFFICIAL_1001 = "qj_1001"
private const val OFFICIAL_1002 = "qj_1002"
private const val OFFICIAL_1003 = "qj_1003"
private const val BAIDU = "qj_baidu"
private const val VIVO = "qj_vivo_01"
private const val HUAWEI = "qj_huawei_01"
private const val OPPO = "qj_oppo_01"
private const val XIAOMI = "qj_xiaomi_01"
const val XIAOMI = "qj_xiaomi_01"
fun isShowLive(): Boolean {
......@@ -27,7 +30,10 @@ object VersionControl {
fun saveConfig(showConfig: Boolean) {
when (BuildConfig.FLAVOR) {
BAIDU, VIVO, HUAWEI, OPPO, XIAOMI -> SPUtil.put(Constants.SHOW_LIVE_CONFIG, showConfig)
BAIDU, VIVO, HUAWEI, OPPO, XIAOMI, OFFICIAL_1001, OFFICIAL_1002, OFFICIAL_1003 -> SPUtil.put(
Constants.SHOW_LIVE_CONFIG,
showConfig
)
else -> SPUtil.put(Constants.SHOW_LIVE_CONFIG, true)
}
}
......@@ -39,4 +45,8 @@ object VersionControl {
fun showRedList(): Boolean {
return isShowLive()
}
fun getCurrentFlavor(): String {
return BuildConfig.FLAVOR
}
}
\ No newline at end of file
......@@ -183,6 +183,27 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_22"
android:orientation="horizontal">
<EditText
android:id="@+id/et_recommend_code"
android:layout_width="0dp"
android:layout_height="@dimen/dp_23"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@null"
android:gravity="center_vertical"
android:hint="请输入推荐码"
android:textColor="@color/color_2D363E"
android:textColorHint="@color/color_959DB0"
android:textSize="@dimen/dp_13" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:gravity="center"
android:orientation="horizontal">
......
......@@ -171,7 +171,7 @@
android:id="@+id/tv_content_private"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/string_user_private" />
tools:text="@string/string_user_private" />
</ScrollView>
......
......@@ -163,7 +163,7 @@
android:id="@+id/tv_content_private"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/string_user_private" />
tools:text="@string/string_user_private" />
</ScrollView>
......
......@@ -291,6 +291,393 @@
 
</string>
<string name="string_user_private_xiaomi">
\n\n隐私政策
\n\n河南夜澜网络科技有限公司(以下简称“我们”)是球聚体育的开发者和运营者,非常重视用户的隐私和个人信息保护。我们深知个人信息对您的重要性,并会尽全力保护您个人信息的安全。您在使用我们的产品或服务时,我们可能会收集和使用您的相关信息。我们希望通过《隐私政策》(“本隐私政策”)向您说明我们在您使用我们的产品或服务时如何收集、使用、保护这些信息 ,以便您更好地了解我们的服务并作出适当的选择。本隐私政策不适用于其他独立第三方向您提供的服务,例如我们平台上的第三方依托我们平台向您提供服务时,您向第三方提供的个人信息不适用于本隐私政策,我们对任何第三方使用由您提供的信息不承担任何责任。
\n\n在使用球聚体育产品和服务前,请您务必仔细阅读并透彻理解本隐私政策,在确认充分理解并同意后使用相关产品或服务。如果您不同意本隐私政策任何内容,您应立即停止使用球聚体育服务。若您使用球聚体育的产品或服务,即表示您已充分理解并同意我们在本隐私政策中所述内容。
\n\n第一部分 定义
\n\n球聚体育严格遵守法律法规,遵循以下隐私保护原则,为您提供更加安全、可靠的服务
\n\n1、安全可靠:
\n我们竭尽全力通过合理有效的信息安全技术及管理流程,防止您的信息泄露、损毁、丢失。
\n\n2、自主选择:
\n我们为您提供便利的信息管理选项,以便您做出合适的选择,管理您的个人信息。
\n\n3、保护通信秘密:
\n我们严格遵照法律法规,保护您的通信秘密,为您提供安全的通信服务。
\n\n4、合理必要:
\n为了向您和其他用户提供更好的服务,我们仅收集必要的信息。
\n\n5、清晰透明:
\n我们努力使用简明易懂的表述,向您介绍隐私政策,以便您清晰地了解我们的信息处理方式。
\n\n6、将隐私保护融入产品设计:
\n我们在产品或服务开发的各个环节,综合法律、产品、设计等多方因素,融入隐私保护的理念。
\n\n第二部分 隐私政策
\n\n本《隐私政策》主要向您说明:
\n1、我们收集哪些信息
\n2、我们收集信息的目的及收集采用的技术
\n3、我们如何分享信息
\n4、我们如何向您发送的信息
\n5、隐私政策其它说明
\n6、隐私政策特别条款
\n7、隐私政策的变更
\n8、管辖与法律适用
\n9、其它
\n10、联系我们
\n\n我们根据合法、正当、必要的原则,仅收集实现产品功能所必要的信息。
\n\n一、您在使用我们服务时会收集您的信息
\n1、您在注册帐户时填写的信息
\n例如,您在注册球聚体育帐户时所填写的昵称、手机号码。
\n\n2、您在使用服务时上传的信息
\n例如,您在使用球聚体育时,上传的头像、分享的照片。
\n\n3、您通过我们的客服或参加我们举办的活动时所提交的信息
\n例如,您参与我们线上活动时填写的调查问卷中可能包含您的姓名、电话、家庭地址等信息。
\n\n4、我们的部分服务可能需要您提供特定的个人敏感信息来实现特定功能
\n若您选择不提供该类信息,则可能无法正常使用服务中的特定功能,但不影响您使用服务中的其他功能。若您主动提供您的个人敏感信息,即表示您同意我们按本政策所述目的和方式来处理您的个人敏感信息。
\n\n5、我们在您使用服务时获取的信息日志信息
\n当您使用我们的服务时,我们可能会自动收集相关信息并存储为服务日志信息。
\n1) 设备信息 例如,设备型号、操作系统版本、唯一设备标符、电池、信号强度等信息。
\n2) 软件信息例如,软件的版本号、浏览器类型。为确保操作环境的安全或提供服务所需,我们会收集有关您使用的移动应用和其他软件的信息。
\n3) IP 地址
\n4) 服务日志信息例如,您在使用我们服务时搜索、查看的信息、服务故障信息、引荐网址等信息。
\n5) 通讯日志信息例如,您在使用我们服务时曾经通讯的账户、通讯时间和时长。
\n\n6、位置信息
\n当您使用与位置有关的服务时,我们可能会记录您设备所在的位置信息,以便为您提供相关服务。
\n在您使用服务时,我们可能会通过IP地址 、GPS、WLAN(如 WIFI)或基站等途径获取您的地理位置信息;
\n您或其他用户在使用服务时提供的信息中可能包含您所在地理位置信息,例如您提供的帐号信息中可能包含的您所在地区信息,您或其他人共享的照片包含的地理标记信息。
\n\n7、其他相关信息
\n1)为了帮助您更好地使用我们的产品或服务,我们会收集相关信息。
\n例如,我们收集的好友列表、群列表信息、声纹特征值信息。为确保您使用我们服务时能与您认识的人进行联系,如您选择开启导入通讯录功能,我们可能对您联系人的姓名和电话号码进行加密,并仅收集加密后的信息。
\n\n2)其他用户分享的信息中含有您的信息
\n例如,其他用户发布的照片或分享的视频中可能包含您的信息。
\n\n3)从第三方合作伙伴获取的信息
\n我们可能会获得您在使用第三方合作伙伴服务时所产生或分享的信息。
\n例如,您使用球聚体育帐户登录第三方合作伙伴服务时,我们会获得您登录第三方合作伙伴服务的名称、登录时间,方便您进行授权管理。请您仔细阅读第三方合作伙伴服务的用户协议或隐私政策。
\n\n4)第三方(SDK)获取权限和使用信息如下:
\nSDK名称及所属公司 信息获取 目的/用途
\nBugly(深圳市腾讯计算机系统有限公司)  日志信息(包括:第三方开发者自定义 日志、Logcat 日志以及 APP 崩溃堆栈信息)、设备 ID(包括:androidid 以及 idfv)、联网信息、系统名称、系统版本以及国家码。 用于收集应用运行崩溃信息,改进应用产品体验
\n友盟(北京锐讯灵通科技有限公司) SDK或API版本、平台、时间戳、应用标识符、应用程序版本、应用分发渠道、网卡(MAC)地址、设备型号、终端制造厂商、终端设备操作系统版本、应用使用时长、语言所在地、时区和网络状态(WiFi) 用于用户数据的统计分析和平台行为数据埋点统计
\n 极光推送(深圳市和讯华谷信息技术有限公司) 手机状态和身份、存储卡内容、外部存储空间、系统设置、设备软件安装列表、网络状态(WIFI)、MAC地址 提供准时的消息推送和通知功能、应用切至后台会一定频次收集相关信息
\n环信(环信公司) 设备信息、位置信息、日志信息、文件访问保存权限、网络状态(WIFI) 提供即时通讯服务
\n阿里云OSS(阿里云计算有限公司)  网络访问、访问网络状态、访问WIFI状态、写入储存权限 实时云数据存储,提供用户反馈功能
\n七牛云  (上海七牛信息技术有限公司) 设备信息,访问网络状态(WIFI),IP地址,内置传感器信息,定位信息(GPS) 提供视频云存储服务
\n腾讯播放器(深圳市腾讯计算机系统有限公司)  网络访问、访问网络状态、访问网络状态(WIFI)、读取/修改储存权限、蓝牙耳机状态、音量改变权限 实时直播和即时IM消息服务
\n小米推送(小米科技有限责任公司) 网络访问权限、网络状态权限、访问WIFI状态权限、获取电话状态权限 用于小米手机的个性化推送
\n魅族推送(魅族通讯设备有限公司) 网络状态权限、获取电话状态权限 用于魅族手机的个性化推送
\nOppo推送(广东欢太科技有限公司) 网络状态权限、获取电话状态权限 用于OPPO手机的个性化推送
\nVivo推送(广东天宸网络科技有限公司
) 网络状态权限 用于vivo手机的个性化推送
\n华为推送(华为终端有限公司) 网络状态权限 用于华为手机的个性化推送
\n\n5)球聚体育权限获取说明
\n\n在您使用球聚体育的部分功能和/或服务可能需要您自行开启以下权限。您有权自行决定开启或关闭这些权限,开启即代表您授权球聚体育可以收集和使用这些信息来实现相关功能。如果您不使用这些功能和/或服务,您可以选择不开启或者关闭,球聚体育不会收集该部分信息,且关闭不影响基本业务功能使用。与权限获取场景所涉及的个人信息处理或平台功能相关更详细的情况及处理规则,以本政策为补充。
\n(1)定位信息:开启定位信息,为方便您在使用社区发布消息和推荐附近新闻时获取当前位置。
\n(2)使用相机:开启相机权限,为向您扫一扫和社区发布内容上传图片相关功能。
\n(3)读取短信/彩信信息:获取用户短信内验证码,一键登录功能。
\n(4)读写存储:开启读写存储权限,使用于用户头像、个人相册、发布动态、下载文件、更新应用。
\n(5)使用录音:开启麦克风权限,为向您提供聊天界面发送语音、语音输入、视频/语音通话、客服协助视频认证相关功能。
\n(6)使用悬浮窗:用于房间最小化,关闭房间后可快速回到房间。
\n(7)设备信息:获取设备信息(设备序列号、IMEI、IP、IMSI、MAC地址、手机号码),安装列表,用于储存为服务日志信息和安全保障、用户推荐功能。
\n(8)系统日志:获取系统日志,为开展数据分析和更好改善平台服务。
\n(9)网络状态:获取网络、检测wifi状态,用于加载在线内容和服务功能。
\n(10)MAC地址:极光推送获取手机的MAC地址,为用户提供注册登录短信验证码。
\n\n二、我们收集信息的目的及收集采用的技术
\n我们严格遵守法律法规的规定及与用户的约定,将收集的信息用于以下用途。若我们超出以下用途使用您的信息,我们将再次向您进行说明,并征得您的同意。向您提供服务
\n\n1、我们收集使用信息的目的
\n1)满足您的个性化需求
\n例如,语言设定、位置设定、个性化的帮助服务。
\n\n2)产品开发和服务优化
\n例如,当我们的系统发生故障时,我们会记录和分析系统故障时产生的信息,优化我们的服务。
\n\n3)安全保障
\n例如,我们会将您的信息用于身份验证、安全防范、反诈骗监测、存档备份、客户的安全服务等用途。例如,您下载或安装的安全软件会对恶意程序或病毒进行检测,或为您识别诈骗信息。
\n\n4)管理软件
\n例如,进行软件认证、软件升级等
\n\n5)邀请您参与有关我们服务的调查
\n为了让您有更好的体验、改善我们的服务或经您同意的其他用途,在符合相关法律法规的前提下,我们可能将通过某些服务所收集的信息用于我们的其他服务。例如,将您在使用我们某项服务时的信息,用于另一项服务中向您展示个性化的内容或广告、用于用户研究分析与统计等服务。
\n\n为了确保服务的安全,帮助我们更好地了解我们应用程序的运行情况,我们可能记录相关信息,例如,您使用应用程序的频率、故障信息、总体使用情况、性能数据以及应用程序的来源。我们不会将我们存储在分析软件中的信息与您在应用程序中提供的个人身份信息相结合。
\n\n6)我们如何使用cookie及相关技术
\n我们或我们的第三方合作伙伴,可能通过放置安全的Cookie 及相关技术收集您的信息,目的是为您提供更个性化的用户体验和服务。我们会严格要求第三方合作伙伴遵守本政策的相关规定。您也可以通过浏览器设置管理Cookie。但请注意,如果停用Cookie,您可能无法享受最佳的服务体验,某些服务也可能无法正常使用。若您希望了解更多Cookie的安全性等信息,可参见《Cookie 政策说明》。
\n\n7)您分享的信息
\n您可以通过我们的服务与您的好友、家人及其他用户分享您的相关信息。例如,您在球聚体育中公开分享的文字和照片。
\n请注意,这其中可能包含您的个人身份信息、个人财产信息等敏感信息。请您谨慎考虑披露您的相关个人敏感信息。
\n您可通过我们服务中的隐私设置来控制您分享信息的范围,也可通过服务中的设置或我们提供的指引删除您公开分享的信息。但请您注意,这些信息仍可能由其他用户或不受我们控制的非关联第三方独立地保存。
\n\n8)您如何管理自己的信息
\n您可以在使用我们服务的过程中,访问、修改和删除您提供的注册信息和其他个人信息,也可按照通知指引与我们联系。您访问、修改和删除个人信息的范围和方式将取决于您使用的具体服务。
\n例如,若您在使用地理位置相关服务时,希望停止分享您的地理位置信息,您可通过手机定位关闭功能、软硬件服务商及通讯服务提供商的关闭方式停止分享,建议您仔细阅读相关指引。
\n我们将按照本政策所述,仅为实现我们产品或服务的功能,收集、使用您的信息。如您发现我们违反法律、行政法规的规定或者双方的约定收集、使用您的个人信息,您可以要求我们删除。
\n如您发现我们收集、存储的您的个人信息有错误的,您也可以要求我们更正。请通过本政策列明的联系方式与我们联系。
\n在您访问、修改和删除相关信息时,我们可能会要求您进行身份验证,以保障帐号的安全。
\n请您理解,由于技术所限、法律或监管要求,我们可能无法满足您的所有要求,我们会在合理的期限内答复您的请求。
\n\n2、信息收集技术
\n我们在《隐私政策》中所述的“自动收集”包括以下方式:
\n\n1、Cookie(曲奇档案)
\nCookie是您浏览网页时,网站服务器放在客户端(您的计算机、移动电话或其他智能终端内)里面的一个小小的文本文件,可用于改善您的使用体验,具体可参见《Cookie政策说明》。
\n\n2、Web beacon(网络信标)
\nWeb beacon是装嵌在网站或电邮内的电子图像文件案或其他技术,可用于计算访客数目、记录您是否及何时阅览电邮或网站,或用以使用某些Cookie。
\n\n3、Logfiles(日志文件)
\nLog files储存自动收集的若干数据。该等数据包括互联网协议(IP)地址、浏览器类型、互联网服务提供商(ISP)、引用/退出页面、操作系统、日期/时间戳和点击流数据等。
\n\n4、ET Tag(实体标签)
\nET Tag是在互联网浏览器与互联网服务器之间背后传送的HTTP协议标头,可代替Cookie,用以追踪个别使用者,使我们可更深入地了解和改善我们的服务。
\n\n5、JavaScript
\nJavaScript是一种编程语言,用于制作更具互动性和动态的网页。JavaScript可以设Cookie、阅读Cookie及删除Cookie。
\n\nCookie政策说明
\n1、什么是Cookie?
\nCookie 是一种可让网站服务器将数据存储于客户端或从客户端中读取数据的中立技术。Cookie 文件是存储了一些与用户访问网站有关信息的文件,格式为.txt。
\n\nCookie 内容通常均经过加密。
\nCookie 安全的Cookie技术会为用户在上网时提供更为便捷的服务。
\n\n2、使用Cookie的目的
\nCookie 对提升用户的网络使用体验十分重要,球聚体育使用Cookie一般出于以下目的:
\n\n身份验证
\nCookie可在您接入我们的服务时通知我们,以使我们可验证您的身份信息,以确保您的账号安全。
\n例如,Cookie技术可在您登入球聚体育服务时通知我们,因此,我们能够在您访问所有球聚体育服务的站点时,识别是否您本人安全登录,向您显示与您相关的信息。
\n\n偏好设置
\nCookie可帮助我们按照您所希望的服务样式、外观的个性化设置为您提供服务。
\n\n例如, Cookie技术可记录您是否已经阅读过一些提示性的展现,防止重复提示对您造成骚扰;一些阅读展现(如字体大小等)方面您本人偏好的设定,我们也会存放于Cookie中,在您访问时自动为您调整到您上次设定的值。
\n\n安全
\nCookie可帮助我们保障数据和服务的安全性,排查针对我们的产品和服务的作弊、黑客、欺诈行为。
\n例如,Cookie可以存放票据信息,能够由服务器验证是否是您自主在本站点的正常登录,通过票据中的加密信息,阻止多种类型的攻击,防止跨站信息窃取访问,防止身份冒充访问。
\n\n功能与服务
\nCookie可帮助我们为用户提供更好的产品和服务。
\n例如,Cookie可以在您进行登录时,通过存储的信息,帮您填入您最后一次登入的账户名称,提高您的操作效率。
\n\n效率
\nCookie可以避免不必要的服务器负载,提高服务效率,节省资源、能源。
\n例如,Cookie可帮助我们优化在服务器之间路由流量,并且了解不同用户加载我们服务时的速度,有时,我们或会利用Cookie让您正在使用时加载及响应得更快。
\n\n分析与研究
\n我们使用这些Cookie来了解、改善我们的产品和服务,为新产品或功能的研发提供参考数据。
\n例如,我们会使用Cookie来了解您使用我们服务的方式,以求改善用户体验。例如您在接入我们服务时,在各个步骤所耗费的时间,我们会收集此信息用以分析研究能够进一步优化和改善的方面。
\n\n广告优化
\nCookie可提高广告对用户的吸引力并提升广告服务对广告主、发布商的价值。
\n例如,Cookie可以帮助我们在球聚体育网站或软件中向您显示您可能感兴趣的广告。
\n我们也可使用Cookie来知道曾在球聚体育的站点看见广告的人,之后是否浏览该广告商的网站。
\n同样地,我们的合作伙伴可能会运用Cookie来确定我们是否已显示广告、了解广告的表现,或向我们提供他们与您之间的互动信息
\n\n3、如何管理Cookie
\n大多数浏览器均为用户提供了管理Cookie 的功能。
\n当用户在进行浏览器的Cookie设置时,可以允许自己信任的网站启用 Cookie功能,禁止其他网站使用Cookie功能。
\n例如,您可在QQ浏览器设置中进行Cookie的管理。
\n\n同时,您还可以开启“禁止跟踪(DNT)”功能。
\n但请注意,如果停用Cookie,您可能无法享受最佳的服务体验,某些服务也可能无法正常使用。
\n\n三、我们如何分享信息
\n\n我们遵照法律法规的规定,对信息的分享进行严格的限制,例如:
\n\n经您事先同意,我们可能与第三方分享您的个人信息仅为实现外部处理的目的,我们可能会与第三方合作伙伴(第三方服务供应商、承包商、代理、广告合作伙伴、应用开发者等,例如,代表我们发出电子邮件或推送通知的通讯服务提供商、为我们提供位置服务的地图服务供应商)(他们可能并非位于您所在的法域)分享您的个人信息,让他们按照我们的说明、隐私政策以及其他相关的保密和安全措施来为我们处理上述信息,并用于以下用途:
\n\n1)向您提供我们的服务;
\n\n2)实现“我们如何使用收集的信息”部分所述目的;
\n\n3)履行我们在《球聚体育服务协议》或本政策中的义务和行使我们的权利;理解、维护和改善我们的服务。
\n如我们与上述第三方分享您的信息,我们将会采用加密、匿名化处理等手段保障您的信息安全。
\n\n4)随着我们业务的持续发展,当发生合并、收购、资产转让等交易导致向第三方分享您的个人信息时,我们将通过推送通知、公告等形式告知您相关情形,按照法律法规及不低于本政策所要求的标准继续保护或要求新的管理者继续保护您的个人信息。
\n\n5)我们会将所收集到的信息用于大数据分析。
\n例如,我们将收集到的信息用于分析形成不包含任何个人信息的城市热力图或行业洞察报告。
\n\n6)我们可能对外公开并与我们的合作伙伴分享经统计加工后不含身份识别内容的信息,用于了解用户如何使用我们服务或让公众了解我们服务的总体使用趋势。
\n\n7)我们可能基于以下目的披露您的个人信息
\na.遵守适用的法律法规等有关规定;
\nb.遵守法院判决、裁定或其他法律程序的规定;
\nc.遵守相关政府机关或其他法定授权组织的要求;
\nd.我们有理由确信需要遵守法律法规等有关规定;
\ne.为执行相关服务协议或本政策、维护社会公共利益,为保护我们的客户、我们或我们的关联公司、其他用户f.或雇员的人身财产安全或其他合法权益合理且必要的用途。
\n\n四、我们如何向您发送的信息
\n\n1、信息推送
\n您在使用我们的服务时,我们可能向您发送电子邮件、短信、资讯或推送通知。您可以按照我们的相关提示,在设备上选择取消订阅。
\n\n2、与服务有关的公告
\n我们可能在必要时(例如,因系统维护而暂停某一项服务时)向您发出与服务有关的公告。
\n\n3、存储信息的地点和期限
\n1)存储信息的地点
\n我们遵守法律法规的规定,将境内收集的用户个人信息存储于境内。
\n\n2)存储信息的期限
\n一般而言,我们仅为实现目的所必需的最短时间保留您的个人信息。但在下列情况下,我们有可能因需符合法律要求,更改个人信息的存储时间:
\na.为遵守适用的法律法规等有关规定;
\nb.为遵守法院判决、裁定或其他法律程序的规定;
\nc.为遵守相关政府机关或法定授权组织的要求;
\nd.我们有理由确信需要遵守法律法规等有关规定;
\ne.为执行相关服务协议或本政策、维护社会公共利益,为保护们的客户、我们或我们的关联公司、其他用户或雇员的人身财产安全或其他合法权益所合理必需的用途。
\n\n当我们的产品或服务发生停止运营的情形时,我们将采取例如,推送通知、公告等形式通知您,并在合理的期限内删除或匿名化处理您的个人信息。
\n\n五、隐私政策其它说明
\n\n1、信息安全
\n我们为您的信息提供相应的安全保障,以防止信息的丢失、不当使用、未经授权访问或披露。
\n\n我们严格遵守法律法规保护用户的通信秘密。
\n\n我们将在合理的安全水平内使用各种安全保护措施以保障信息的安全。
\n\n例如,我们使用加密技术(例如,TLS、SSL)、匿名化处理等手段来保护您的个人信息。我们建立专门的管理制度、流程和组织确保信息安全。
\n\n例如,我们严格限制访问信息的人员范围,要求他们遵守保密义务,并进行审查。
\n\n若发生个人信息泄露等安全事件,我们会启动应急预案,阻止安全事件扩大,并以推送通知、公告等形式告知您。
\n\n2、广告
\n\n我们不会使用您的信息或行为数据,在相关网站、应用及其他渠道向您提供与您相关的广告,但不代表您将不再看到任何广告,您仍可能收到我们普遍投放的广告。
\n\n3、未成年人保护
\n\n我们非常重视对未成年人个人信息的保护。
\n\n根据相关法律法规的规定,若您是18周岁以下的未成年人,在使用球聚体育的服务前,应事先取得您的家长或法定监护人的同意。
\n\n若您是未成年人的监护人,当您对您所监护的未成年人的个人信息有相关疑问时,请通过第十三部分中的联系方式与我们联系。
\n\n4、适用范围
\n\n我们的所有服务均适用本政策。
\n\n某些服务有其特定的隐私指引/声明,该特定隐私指引/声明更具体地说明我们在该服务中如何处理您的信息。
\n\n如本政策与特定服务的隐私指引/声明有不一致之处,请以该特定隐私指引声明为准。
\n\n如本政策与特定服务的隐私指引/声明有不一致之处,请以该特定隐私指引声明为准。
\n\n请您注意,本政策不适用由其他公司或个人提供的服务。
\n\n例如,您通过使用球聚体育帐号登录其他公司或个人提供的服务。
\n\n您使用该等第三方服务须受其隐私政策(而非本政策)约束,您需要仔细阅读其政策内容。
\n\n六、隐私政策特别条款
\n您充分知晓,以下情形中,我们收集、使用个人信息无需征得您的授权同意:
\n1、与国家安全和社会公共利益有关的;
\n2、与犯罪侦查、起诉、审判和判决执行等有关的;
\n3、出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;
\n4、所收集的个人信息是个人信息主体自行向社会公众公开的;
\n5、从合法公开披露的信息中收集的您的个人信息的,如合法的新闻报道、政府信息公开等渠道;
\n6、 违反法律规定或违反我们平台规则导致我们已对您采取必要措施;
\n7、根据您的要求签订合同所必需的;
\n8、用于维护所提供的产品或服务的安全稳定运行所必需的,例如发现、处置产品或服务的故障;
\n9、为合法的新闻报道所必需的;
\n10、学术研究机构基于公共利益开展统计或学术研究所必要,且对外提供学术研究或描述的结果时,对结果中所包含的个人信息进行去标识化处理的;
\n11、法律法规规定的其他情形。
\n\n七、隐私政策的变更
\n\n我们可能适时修订本隐私政策的条款,该修订构成本隐私政策的一部分。如该等修订造成您在本隐私政策下权利的实质减少,我们将在修订生效前通过在主页上显著位置提示或向您发送电子邮件或以其他方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的本隐私政策的约束。
\n\n八、管辖与法律适用
\n本隐私政策的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律,并明确排除其冲突法规范的适用。
\n\n若您和我们发生任何纠纷或争议,首先应友好协商解决;协商不成的,您同意将纠纷或争议提交南宁互联网法院通过诉讼解决;纠纷事由依法不属于南宁互联网法院受理范围的,应提交本隐私政策签订地(广东省深圳市)有管辖权的人民法院管辖。
\n\n九、其它
\nTrueDepth 不会私自记录FaceID等信息。
\nTrueDepth APIs使用不会收集用户Face信息。
\nTrueDepth APIs使用不会产生任何缓存到文件或上传到云端等其他任何记录用户Face信息的操作。
\nTrueDepth APIs使用不会分享用户Face信息。
\n过程中不会进行任何缓存到文件或上传到云端等其他任何记录用户Face信息的操作。
\n\n十、联系我们
\n\n如对本隐私政策内容有任何疑问、意见或建议,您可以联系我们的在线球聚体育官网右上角“在线客服”或者通过球聚客户端APP“我的”-“在线客服”与我们取得联系。
\n我们还设立了个人信息保护专职部门,您可以发送邮件与我们联系。
\n邮箱:qiuq0519@163.com
\n\n常用办公地址:河南省郑州市中原区煤仓北街10号3号楼2单元5层西户
\n邮编:450000
\n河南夜澜网络科技有限公司综合业务部收
\n\n注:本《隐私权保护政策 》版本更新日期为2022年05月20日,于2022年05月20日正式生效,并于正式生效之日替代与您之间原已生效的《隐私权保护政策》 。
\n如您对本政策或其他相关事宜有疑问,请在APP内与我们反馈 ,我们将尽快审核所涉问题,并在验证您的用户身份后的十五天内予以回复。
\n\n第三部分 隐私政策相关名词解释
\n\n1、个人信息
\n个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别自然人个人身份的各种信息,包括但不限于自然人的姓名、出生日期、身份证件号码、个人生物识别信息、住址、电话号码等。
\n\n2、个人敏感信息
\n个人敏感信息是指一旦泄露、非法提供或滥用可能危害人身和财产安全,极易导致个人名誉、身心健康受到损害或歧视性待遇等的个人信息。例如,个人敏感信息包括身份证件号码、个人生物识别信息、银行账号、通信内容、健康生理信息等。
\n\n3、设备
\n设备是指可用于访问球聚体育服务的装置,例如台式计算机、笔记本电脑、平板电脑或智能手机。
\n\n4、唯一设备标识符
\n唯一设备标识符(专属 ID 或 UUID)是指由设备制造商编入到设备中的一串字符,可用于以独有方式标识相应设备(例如手机的 IMEI 号)。唯一设备标识符有多种用途,其中可在不能使用cookies(例如在移动应用程序中)时用以提供广告。
\n\n5、IP地址
\n每台上网的设备都会指定一个编号,称为互联网协议 (IP) 地址。这些编号通常都是根据地理区域指定的。IP 地址通常可用于识别设备连接至互联网时所在的位置。
\n\n6、GPS
\nGlobal Positioning System(全球定位系统)的简称。您使用的设备上的GPS信号接收器可以从GPS卫星收到信号并利用传来的信息计算您的位置。
\n\n7、WIFI
\nWi-Fi是一种允许电子设备连接到一个无线局域网(WLAN)的技术,通常我们所说的无线网络。
\n\n8、基站
\n基站,即公用移动通信基站,是无线电台站的一种形式,是指在一定的无线电覆盖区中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台。
\n\n9、SSL
\nSSL(Secure Socket Layer)又称为安全套接层,是在传输通信协议(TCP/IP)上实现的一种安全协议。SSL支持各种类型的网络,同时提供三种基本的安全服务,均通过使用公开密钥和对称密钥技术以达到信息保密的效果。
</string>
<string name="string_red_list_recent">近%1d中%2d</string>
<string name="string_first_login">欢迎使用球聚体育,在你使用时,为了更好的保护您的个人信息安全,请您充分了解使用球聚体育过程中根据您使用服务的具体功能需要收集您个人信息的情形。在使用App服务前,请认真阅读用户服务协议和隐私政策全部条款。你同意并接受全部条款后开始使用我们的服务</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment