Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
6169
gaia/shared/resources/apn.json
Executable file
2
gaia/shared/resources/apn/Makefile
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
../apn_tz.json: ../tz.json service_providers.xml default_timezones.py
|
||||
python default_timezones.py > $@
|
||||
33855
gaia/shared/resources/apn/apns_conf.xml
Executable file
295
gaia/shared/resources/apn/apns_conf_local.xml
Executable file
|
|
@ -0,0 +1,295 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
|
||||
<!-- use empty string to specify no proxy or port -->
|
||||
<!-- This version must agree with that in apps/common/res/apns.xml -->
|
||||
<apns version="7">
|
||||
|
||||
<!-- Test Network -->
|
||||
<apn carrier="Test Network"
|
||||
mcc="001"
|
||||
mnc="01"
|
||||
apn="internet"
|
||||
user="user"
|
||||
password="password"
|
||||
proxy="127.0.0.1"
|
||||
port="8080"
|
||||
mmsc="http://127.0.0.1"
|
||||
mmsproxy="127.0.0.1"
|
||||
mmsport="8080"
|
||||
authtype="0"
|
||||
type="default,supl,mms,dun,ims"
|
||||
/>
|
||||
|
||||
<!-- APNs used for bearer tests -->
|
||||
<!-- Test network with no bearer (compatible with all network types) -->
|
||||
<apn carrier="NoBearer"
|
||||
mcc="001"
|
||||
mnc="02"
|
||||
apn="nobearer"
|
||||
user="user"
|
||||
password="password"
|
||||
proxy="127.0.0.1"
|
||||
port="8080"
|
||||
mmsc="http://127.0.0.1"
|
||||
mmsproxy="127.0.0.1"
|
||||
mmsport="8080"
|
||||
authtype="0"
|
||||
type="default,supl,mms,dun,ims"
|
||||
/>
|
||||
|
||||
<!-- Test network with an EVDO_0 bearer -->
|
||||
<apn carrier="Evdo0Bearer"
|
||||
mcc="001"
|
||||
mnc="02"
|
||||
apn="evdo0bearer"
|
||||
user="user"
|
||||
password="password"
|
||||
proxy="127.0.0.1"
|
||||
port="8080"
|
||||
mmsc="http://127.0.0.1"
|
||||
mmsproxy="127.0.0.1"
|
||||
mmsport="8080"
|
||||
authtype="0"
|
||||
type="default,supl,mms,dun,ims"
|
||||
bearer="7"
|
||||
/>
|
||||
|
||||
<!-- Test network with a 0 bearer (compatible with all network types) -->
|
||||
<apn carrier="ZeroBearer"
|
||||
mcc="001"
|
||||
mnc="02"
|
||||
apn="zerobearer"
|
||||
user="user"
|
||||
password="password"
|
||||
proxy="127.0.0.1"
|
||||
port="8080"
|
||||
mmsc="http://127.0.0.1"
|
||||
mmsproxy="127.0.0.1"
|
||||
mmsport="8080"
|
||||
authtype="0"
|
||||
type="default,supl,mms,dun,ims"
|
||||
bearer="0"
|
||||
/>
|
||||
|
||||
<!-- Default APN for undefined types -->
|
||||
<apn carrier="No type test"
|
||||
mcc="001"
|
||||
mnc="03"
|
||||
apn="internet"
|
||||
user="user"
|
||||
password="password"
|
||||
proxy="127.0.0.1"
|
||||
port="8080"
|
||||
mmsc="http://127.0.0.1"
|
||||
mmsproxy="127.0.0.1"
|
||||
mmsport="8080"
|
||||
authtype="0"
|
||||
/>
|
||||
|
||||
<!-- /Test Networks -->
|
||||
|
||||
<apn carrier="SpeakOut"
|
||||
mcc="302"
|
||||
mnc="720"
|
||||
apn="goam.com"
|
||||
user="wapuser1"
|
||||
password="wap"
|
||||
proxy="10.128.1.69"
|
||||
port="80"
|
||||
mmsc="http://mms.gprs.rogers.com"
|
||||
mmsproxy="10.128.1.69"
|
||||
mmsport="80"
|
||||
type="default,mms"
|
||||
/>
|
||||
|
||||
<!-- override carrier names until they get updated in the upstream database -->
|
||||
|
||||
<apn carrier="VM WAP"
|
||||
mcc="208"
|
||||
mnc="01"
|
||||
name="Virgin Mobile"
|
||||
/>
|
||||
|
||||
<apn carrier="VM MMS"
|
||||
mcc="208"
|
||||
mnc="01"
|
||||
name="Virgin Mobile MMS"
|
||||
/>
|
||||
|
||||
<apn carrier="亞太電信(APBW) (Internet)"
|
||||
mcc="466"
|
||||
mnc="05"
|
||||
apn="aptnet"
|
||||
mmsproxy="210.200.66.196"
|
||||
mmsport="80"
|
||||
user="aptwap@nsip.qma.com.tw"
|
||||
password="aptwap"
|
||||
authtype="2"
|
||||
type="default"
|
||||
/>
|
||||
|
||||
<apn carrier="亞太電信(APBW) (WAP)"
|
||||
mcc="466"
|
||||
mnc="05"
|
||||
apn="aptwap"
|
||||
mmsproxy="210.200.66.196"
|
||||
mmsport="80"
|
||||
user="aptwap@nsip.qma.com.tw"
|
||||
password="aptwap"
|
||||
authtype="2"
|
||||
type="default"
|
||||
/>
|
||||
|
||||
<apn carrier="亞太電信(APBW) (MMS)"
|
||||
mcc="466"
|
||||
mnc="05"
|
||||
apn="aptmms"
|
||||
mmsc="http://mms.aptg.com.tw"
|
||||
mmsproxy="210.200.66.196"
|
||||
mmsport="80"
|
||||
user="aptwap@nsip.qma.com.tw"
|
||||
password="aptwap"
|
||||
type="mms"
|
||||
/>
|
||||
|
||||
<apn carrier="Conexion Compartida"
|
||||
mcc="214"
|
||||
mnc="07"
|
||||
apn="movistar.es"
|
||||
user="MOVISTAR"
|
||||
password="MOVISTAR"
|
||||
authtype="1"
|
||||
type="dun"
|
||||
/>
|
||||
|
||||
<!-- overwrite APNs until they get updated in the upstream database -->
|
||||
|
||||
<apn carrier_name="ATT Nextgenphone"
|
||||
carrier="ATT Phone"
|
||||
overwrite="true"
|
||||
mcc="310"
|
||||
mnc="410"
|
||||
apn="phone"
|
||||
type="default,mms,supl,fota"
|
||||
mmsc="http://mmsc.mobile.att.net"
|
||||
mmsproxy="proxy.mobile.att.net"
|
||||
mmsport="80"
|
||||
/>
|
||||
|
||||
<!-- Bug - 1011584 | Adding Bangladeshi APNs Below -->
|
||||
<!-- Drop them once they get added to the AOSP APN database -->
|
||||
<apn carrier="GP INTERNET"
|
||||
mcc="470"
|
||||
mnc="01"
|
||||
apn="gpinternet"
|
||||
type="default,supl"
|
||||
/>
|
||||
|
||||
<apn carrier="GP WAP"
|
||||
mcc="470"
|
||||
mnc="01"
|
||||
apn="gpwap"
|
||||
proxy="010.128.001.002"
|
||||
port="8080"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="GP MMS"
|
||||
mcc="470"
|
||||
mnc="01"
|
||||
apn="gpmms"
|
||||
mmsc="http://mms.gpsurf.net/servlets/mms"
|
||||
mmsproxy="010.128.001.002"
|
||||
mmsport="8080"
|
||||
type="mms"
|
||||
/>
|
||||
<apn carrier="Robi-INTERNET"
|
||||
mcc="470"
|
||||
mnc="02"
|
||||
apn="internet"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Robi-WAP"
|
||||
mcc="470"
|
||||
mnc="02"
|
||||
apn="wap"
|
||||
proxy="10.16.18.77"
|
||||
port="9028"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Robi-MMS"
|
||||
mcc="470"
|
||||
mnc="02"
|
||||
apn="wap"
|
||||
mmsc="http://10.16.18.40:38090/was"
|
||||
mmsproxy="10.16.18.77"
|
||||
mmsport="9028"
|
||||
type="mms"
|
||||
/>
|
||||
<apn carrier="Banglalink-WEB"
|
||||
mcc="470"
|
||||
mnc="03"
|
||||
apn="blweb"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Banglalink-WAP"
|
||||
mcc="470"
|
||||
mnc="03"
|
||||
apn="blwap"
|
||||
proxy="10.10.55.34"
|
||||
port="8799"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Banglalink-MMS"
|
||||
mcc="470"
|
||||
mnc="03"
|
||||
apn="blmms"
|
||||
mmsc="http://mmsc1:10021/mmsc/01"
|
||||
mmsproxy="10.10.55.34"
|
||||
mmsport="8799"
|
||||
type="mms"
|
||||
/>
|
||||
<apn carrier="Airtel Internet"
|
||||
mcc="470"
|
||||
mnc="07"
|
||||
apn="internet"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Airtel WAP"
|
||||
mcc="470"
|
||||
mnc="07"
|
||||
apn="wap"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Airtel MMS"
|
||||
mcc="470"
|
||||
mnc="07"
|
||||
apn="mms"
|
||||
mmsc="http://bd.airtel.com"
|
||||
mmsproxy="10.128.5.6"
|
||||
type="mms"
|
||||
/>
|
||||
<apn carrier="TT-INTERNET"
|
||||
mcc="470"
|
||||
mnc="04"
|
||||
apn="wap"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="TT-WAP"
|
||||
mcc="470"
|
||||
mnc="04"
|
||||
apn="wap"
|
||||
proxy="192.168.145.101"
|
||||
port="9201"
|
||||
type="default,supl"
|
||||
/>
|
||||
<apn carrier="Teletalk-MMS"
|
||||
mcc="470"
|
||||
mnc="04"
|
||||
apn="mms"
|
||||
mmsc="http://10.5.4.22:38090/was"
|
||||
mmsproxy="10.5.4.40"
|
||||
mmsport="8080"
|
||||
type="mms"
|
||||
/>
|
||||
|
||||
</apns>
|
||||
120
gaia/shared/resources/apn/default_timezones.py
Executable file
|
|
@ -0,0 +1,120 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import sys, re, json
|
||||
from xml.parsers import expat
|
||||
|
||||
#
|
||||
# Parse the TZ input file and build the tree.
|
||||
#
|
||||
|
||||
text = open("../tz.json").read()
|
||||
data = json.loads(text)
|
||||
|
||||
cities = {}
|
||||
conflicts = {
|
||||
'CD': 'Africa/Kinshasa',
|
||||
'ML': 'Africa/Bamako',
|
||||
'AR': 'America/Argentina/Buenos_Aires', # This is weird in tz.json I guess
|
||||
'BR': 'America/Sao_Paulo',
|
||||
'CA': 'America/Toronto',
|
||||
'CL': 'America/Santiago',
|
||||
'GL': 'America/Godthab',
|
||||
'MX': 'America/Mexico_City',
|
||||
'US': 'America/New_York',
|
||||
'VI': 'America/Virgin',
|
||||
'AQ': 'Antarctica/South_Pole',
|
||||
'CN': 'Asia/Chongqing', # Beijing is not in our database?
|
||||
'CY': 'Asia/Nicosia',
|
||||
'ID': 'Asia/Jakarta',
|
||||
'IL': 'Asia/Jerusalem',
|
||||
'KZ': 'Asia/Almaty',
|
||||
'MN': 'Asia/Ulan_Bator',
|
||||
'MY': 'Asia/Kuala_Lumpur',
|
||||
'PS': 'Asia/Gaza',
|
||||
'TM': 'Asia/Ashgabat',
|
||||
'UZ': 'Asia/Tashkent',
|
||||
'VN': 'Asia/Saigon',
|
||||
'AU': 'Australia/Sydney',
|
||||
'ES': 'Europe/Madrid',
|
||||
'GB': 'Europe/London',
|
||||
'MD': 'Europe/Chisinau',
|
||||
'NO': 'Europe/Oslo',
|
||||
'PT': 'Europe/Lisbon',
|
||||
'RU': 'Europe/Moscow',
|
||||
'TR': 'Europe/Istanbul',
|
||||
'UA': 'Europe/Kyiv',
|
||||
'AS': 'Pacific/Samoa',
|
||||
'EC': 'Pacific/Galapagos',
|
||||
'FM': 'Pacific/Ponape',
|
||||
'KI': 'Pacific/Kiritimati',
|
||||
'MH': 'Pacific/Kwajalein',
|
||||
'NZ': 'Pacific/Auckland',
|
||||
'PF': 'Pacific/Tahiti',
|
||||
'UM': 'Pacific/Midway'
|
||||
}
|
||||
|
||||
for continent in data:
|
||||
for entry in data[continent]:
|
||||
cc = entry['cc'].encode('ascii')
|
||||
city = entry['city'].encode('ascii')
|
||||
if cc in cities:
|
||||
if not cc in conflicts:
|
||||
print(city)
|
||||
cities[cc] = conflicts[cc]
|
||||
else:
|
||||
cities[cc] = continent + '/' + city
|
||||
|
||||
#
|
||||
# Parse the APN input file and build the tree.
|
||||
#
|
||||
|
||||
apn_tz = {}
|
||||
|
||||
def start_element(name, attrs):
|
||||
global cc, apn_tz
|
||||
if name == "country":
|
||||
cc = attrs['code'].encode('ascii')
|
||||
if not re.match('[a-z]{2}', cc):
|
||||
print("invalid cc='" + cc + "'")
|
||||
sys.exit(-1)
|
||||
if name == "network-id":
|
||||
mcc = attrs['mcc'].encode('ascii')
|
||||
mnc = attrs['mnc'].encode('ascii')
|
||||
if not re.match('[0-9]{3}', mcc) or not re.match('[0-9]{1,3}', mnc):
|
||||
print("invalid mcc='" + mcc + "' or mnc='" + mnc + "'")
|
||||
sys.exit(-1)
|
||||
if not mcc in apn_tz:
|
||||
apn_tz[mcc] = {}
|
||||
apn_tz[mcc][mnc] = cities[cc.upper()]
|
||||
|
||||
def char_data(text):
|
||||
True
|
||||
|
||||
def end_element(name):
|
||||
True
|
||||
|
||||
p = expat.ParserCreate()
|
||||
p.StartElementHandler = start_element
|
||||
p.CharacterDataHandler = char_data
|
||||
p.EndElementHandler = end_element
|
||||
p.ParseFile(open('service_providers.xml', 'rb'))
|
||||
|
||||
#
|
||||
# Sort/filter apn_tz
|
||||
#
|
||||
|
||||
for mcc in apn_tz:
|
||||
tz_list = apn_tz[mcc]
|
||||
tmp = ''
|
||||
same_tz = True
|
||||
for mnc in tz_list:
|
||||
if (tmp == ''):
|
||||
tmp = tz_list[mnc]
|
||||
elif (tmp != tz_list[mnc]):
|
||||
same_tz = False
|
||||
break
|
||||
if same_tz:
|
||||
apn_tz[mcc] = tmp
|
||||
|
||||
print(json.dumps(apn_tz, sort_keys = True, indent = 2))
|
||||
|
||||
exit()
|
||||
54
gaia/shared/resources/apn/index.html
Executable file
|
|
@ -0,0 +1,54 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title> APN Database </title>
|
||||
<script type="application/javascript" src="query.js"></script>
|
||||
<style type="text/css">
|
||||
html, body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
textarea {
|
||||
margin: 2px;
|
||||
}
|
||||
body > textarea {
|
||||
position: absolute;
|
||||
width: 50%;
|
||||
height: -moz-calc(100% - 10px);
|
||||
height: -webkit-calc(100% - 10px);
|
||||
}
|
||||
form {
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
width: -moz-calc(50% - 10px);
|
||||
width: -webkit-calc(50% - 10px);
|
||||
height: 90%;
|
||||
}
|
||||
form label {
|
||||
display: block;
|
||||
text-align: center;
|
||||
height: 25px;
|
||||
margin: 0;
|
||||
}
|
||||
form textarea {
|
||||
width: 100%;
|
||||
height: -moz-calc(50% - 2px);
|
||||
height: -webkit-calc(50% - 2px);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<textarea readonly></textarea>
|
||||
<form>
|
||||
<label> MCC: <input name="mcc" value="214"/> </label>
|
||||
<label> MNC: <input name="mnc" value="07" /> </label>
|
||||
<textarea readonly id="selection"></textarea>
|
||||
<textarea readonly id="preferences"></textarea>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
582
gaia/shared/resources/apn/operator_variant.xml
Executable file
|
|
@ -0,0 +1,582 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
-->
|
||||
<variant version="1">
|
||||
<operator carrier="Test Network with Operator Variant Settings"
|
||||
mcc="001"
|
||||
mnc="01"
|
||||
cellBroadcastSearchList="gsm:0,1,2,3|cdma:4,5,6,7"
|
||||
voicemail="999999"
|
||||
/>
|
||||
<operator
|
||||
name="Internet movil"
|
||||
mcc="214"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Orange Internet Móvil"
|
||||
mcc="214"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Yoigo Navegador"
|
||||
mcc="214"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET GPRS"
|
||||
mcc="214"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Euskaltel Internet"
|
||||
mcc="214"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Internet R"
|
||||
mcc="214"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="TeleCable Internet"
|
||||
mcc="214"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar"
|
||||
mcc="214"
|
||||
mnc="07"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="512000"
|
||||
/>
|
||||
<operator
|
||||
name="Euskaltel Internet"
|
||||
mcc="214"
|
||||
mnc="08"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="TeleCable Internet"
|
||||
mcc="214"
|
||||
mnc="16"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Internet"
|
||||
mcc="334"
|
||||
mnc="020"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Mensajes Multimedia"
|
||||
mcc="334"
|
||||
mnc="020"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="334"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
operatorSizeLimitation="512000"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="334"
|
||||
mnc="030"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
operatorSizeLimitation="512000"
|
||||
/>
|
||||
<operator
|
||||
name="Iusacell Internet"
|
||||
mcc="334"
|
||||
mnc="050"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET CLARO"
|
||||
mcc="704"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="BROADBAND TIGO"
|
||||
mcc="704"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="704"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="704"
|
||||
mnc="030"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET CLARO"
|
||||
mcc="706"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="El Salvaldor Digicel"
|
||||
mcc="706"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="BROADBAND TIGO"
|
||||
mcc="706"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="706"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="706"
|
||||
mnc="040"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET"
|
||||
mcc="710"
|
||||
mnc="21"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="710"
|
||||
mnc="300"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET"
|
||||
mcc="710"
|
||||
mnc="730"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Kolbi"
|
||||
mcc="712"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Kolbi"
|
||||
mcc="712"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET CLARO"
|
||||
mcc="712"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="712"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*1690"
|
||||
/>
|
||||
<operator
|
||||
name="Wap"
|
||||
mcc="714"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="714"
|
||||
mnc="020"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*86"
|
||||
/>
|
||||
<operator
|
||||
name="WEB Claro"
|
||||
mcc="714"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="INTERNET Panama"
|
||||
mcc="714"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="716"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*169"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="CLARO DATOS"
|
||||
mcc="716"
|
||||
mnc="10"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar WAP"
|
||||
mcc="722"
|
||||
mnc="07"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="555"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="Claro AR"
|
||||
mcc="722"
|
||||
mnc="31"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Claro AR"
|
||||
mcc="722"
|
||||
mnc="310"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Personal Datos"
|
||||
mcc="722"
|
||||
mnc="34"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Personal Datos"
|
||||
mcc="722"
|
||||
mnc="341"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="TIM Connect"
|
||||
mcc="724"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="TIM Connect"
|
||||
mcc="724"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="TIM Connect"
|
||||
mcc="724"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Java Session"
|
||||
mcc="724"
|
||||
mnc="05"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Claro Foto"
|
||||
mcc="724"
|
||||
mnc="05"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Vivo Internet"
|
||||
mcc="724"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
cellBroadcastSearchList="gsm:50"
|
||||
/>
|
||||
<operator
|
||||
name="SCTL GPRS"
|
||||
mcc="724"
|
||||
mnc="07"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Vivo Internet"
|
||||
mcc="724"
|
||||
mnc="10"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
cellBroadcastSearchList="gsm:50"
|
||||
/>
|
||||
<operator
|
||||
name="Vivo Internet"
|
||||
mcc="724"
|
||||
mnc="11"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
cellBroadcastSearchList="gsm:50"
|
||||
/>
|
||||
<operator
|
||||
name="BrT Modem"
|
||||
mcc="724"
|
||||
mnc="16"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="TelemigC GPRS"
|
||||
mcc="724"
|
||||
mnc="19"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Vivo Internet"
|
||||
mcc="724"
|
||||
mnc="23"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
cellBroadcastSearchList="gsm:50"
|
||||
/>
|
||||
<operator
|
||||
name="AmazôniaC GPRS"
|
||||
mcc="724"
|
||||
mnc="24"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="OI GPRS"
|
||||
mcc="724"
|
||||
mnc="31"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Internet Movil"
|
||||
mcc="730"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Internet Movil"
|
||||
mcc="730"
|
||||
mnc="10"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar APLICACIONES"
|
||||
mcc="730"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="500"
|
||||
skipProxy="true"
|
||||
skipProxyFor="Movistar APLICACIONES"
|
||||
/>
|
||||
<operator
|
||||
name="BAM Claro"
|
||||
mcc="730"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="web"
|
||||
mcc="730"
|
||||
mnc="07"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Internet"
|
||||
mcc="730"
|
||||
mnc="08"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Wap"
|
||||
mcc="730"
|
||||
mnc="08"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Bam"
|
||||
mcc="730"
|
||||
mnc="08"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Internet Movil"
|
||||
mcc="730"
|
||||
mnc="10"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="WEB Comcel 3GSM"
|
||||
mcc="732"
|
||||
mnc="101"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="TIGO WEB"
|
||||
mcc="732"
|
||||
mnc="103"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="TIGO Multimedia"
|
||||
mcc="732"
|
||||
mnc="103"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="TIGO WEB"
|
||||
mcc="732"
|
||||
mnc="111"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="TIGO Multimedia"
|
||||
mcc="732"
|
||||
mnc="111"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="732"
|
||||
mnc="123"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*123"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="Digitel GSM"
|
||||
mcc="734"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Digitel GSM"
|
||||
mcc="734"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Digitel GSM"
|
||||
mcc="734"
|
||||
mnc="03"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="734"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*2"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar WAP"
|
||||
mcc="734"
|
||||
mnc="04"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*2"
|
||||
/>
|
||||
<operator
|
||||
name="MODEM"
|
||||
mcc="734"
|
||||
mnc="06"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="740"
|
||||
mnc="00"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="*82"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="Claro Internet"
|
||||
mcc="740"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="Claro Internet"
|
||||
mcc="740"
|
||||
mnc="010"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="ALEGRO 3G"
|
||||
mcc="740"
|
||||
mnc="02"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
<operator
|
||||
name="wapANCEL"
|
||||
mcc="748"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="gprsANCEL"
|
||||
mcc="748"
|
||||
mnc="01"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="Movistar INTERNET"
|
||||
mcc="748"
|
||||
mnc="07"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
voicemail="6684"
|
||||
operatorSizeLimitation="1048576"
|
||||
/>
|
||||
<operator
|
||||
name="Claro UY"
|
||||
mcc="748"
|
||||
mnc="10"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
/>
|
||||
<operator
|
||||
name="T-Mobile Internet"
|
||||
mcc="262"
|
||||
mnc="01"
|
||||
voicemail="3311"
|
||||
/>
|
||||
<operator
|
||||
name="T-mobile.pl"
|
||||
mcc="260"
|
||||
mnc="02"
|
||||
cellBroadcastSearchList="gsm:0,9,19,28,112"
|
||||
/>
|
||||
<operator
|
||||
name="o2"
|
||||
mcc="262"
|
||||
mnc="07"
|
||||
enableStrict7BitEncodingForSms="true"
|
||||
operatorSizeLimitation="614400"
|
||||
/>
|
||||
</variant>
|
||||
428
gaia/shared/resources/apn/query.js
Executable file
|
|
@ -0,0 +1,428 @@
|
|||
'use strict';
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function onload() {
|
||||
var DEBUG = false;
|
||||
|
||||
var OPERATOR_VARIANT_FILE = '../apn.json';
|
||||
var GNOME_DB_FILE = 'service_providers.xml';
|
||||
var ANDROID_DB_FILE = 'apns_conf.xml';
|
||||
var LOCAL_ANDROID_DB_FILE = 'apns_conf_local.xml';
|
||||
var OPERATOR_VARIANT_DB_FILE = 'operator_variant.xml';
|
||||
|
||||
var gGnomeDB = null;
|
||||
var gAndroidDB = null;
|
||||
var gOperatorVariantDB = null;
|
||||
|
||||
|
||||
/**
|
||||
* XML helpers: load & query XML databases
|
||||
*/
|
||||
|
||||
function loadXML(url) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url, false);
|
||||
xhr.send();
|
||||
return xhr.responseXML;
|
||||
}
|
||||
|
||||
function queryXML(xmlDocument, query) {
|
||||
var xpe = new XPathEvaluator();
|
||||
var nsResolver = xpe.createNSResolver(xmlDocument);
|
||||
return xpe.evaluate(query, xmlDocument, nsResolver, 0, null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Merge the Android and Gnome APN and the Operator Variant databases
|
||||
*/
|
||||
|
||||
function queryAndroidDB(mcc, mnc) {
|
||||
var query = '//apn';
|
||||
if (mcc) {
|
||||
query += '[@mcc=' + mcc + ']'; // Mobile Country Code
|
||||
}
|
||||
if (mnc) {
|
||||
query += '[@mnc=' + mnc + ']'; // Mobile Network Code
|
||||
}
|
||||
|
||||
var result = queryXML(gAndroidDB, query);
|
||||
var res = result.iterateNext();
|
||||
var found = [];
|
||||
|
||||
while (res) { // turn each resulting XML element into a JS object
|
||||
var apn = {};
|
||||
for (var i = 0; i < res.attributes.length; i++) {
|
||||
var name = res.attributes[i].name;
|
||||
var value = res.attributes[i].value;
|
||||
if (name == 'type') { // array of comma-separated values
|
||||
apn.type = value.split(',');
|
||||
} else { // all other attributes are plain strings
|
||||
apn[name] = value;
|
||||
}
|
||||
}
|
||||
found.push(apn);
|
||||
res = result.iterateNext();
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
function queryGnomeDB(mcc, mnc, setting) {
|
||||
var query = '//gsm[network-id' + '[@mcc=' + mcc + '][@mnc=' + mnc + ']' +
|
||||
']/' + setting;
|
||||
var result = queryXML(gGnomeDB, query);
|
||||
var node = result.iterateNext();
|
||||
return node ? node.textContent : '';
|
||||
}
|
||||
|
||||
function queryOperatorVariantDB(mcc, mnc) {
|
||||
var query = '//operator' + '[@mcc=' + mcc + '][@mnc=' + mnc + ']';
|
||||
var result = queryXML(gOperatorVariantDB, query);
|
||||
var res = result.iterateNext();
|
||||
var found = [];
|
||||
|
||||
while (res) { // turn each resulting XML element into a JS object
|
||||
var operatorSettings = {};
|
||||
for (var i = 0; i < res.attributes.length; i++) {
|
||||
var name = res.attributes[i].name;
|
||||
var value = res.attributes[i].value;
|
||||
operatorSettings[name] = value;
|
||||
}
|
||||
found.push(operatorSettings);
|
||||
res = result.iterateNext();
|
||||
}
|
||||
|
||||
return found.length ? found[0] : null;
|
||||
}
|
||||
|
||||
function padLeft(num, length) {
|
||||
var r = String(num);
|
||||
while (r.length < length) {
|
||||
r = '0' + r;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
function mergeDBs() {
|
||||
var apn = {};
|
||||
|
||||
for (var mcc = 1; mcc < 999; mcc++) {
|
||||
var country = {};
|
||||
|
||||
var _mcc = padLeft(mcc, 3);
|
||||
|
||||
var result = queryAndroidDB(_mcc);
|
||||
|
||||
if (result && result.length) {
|
||||
result.sort();
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
/* jshint loopfunc: true */
|
||||
var mnc = result[i].mnc;
|
||||
|
||||
var operatorVariantSettings = {};
|
||||
var voicemail = queryGnomeDB(_mcc, mnc, 'voicemail');
|
||||
if (voicemail) {
|
||||
operatorVariantSettings.voicemail = voicemail;
|
||||
if (DEBUG) {
|
||||
console.log(operatorVariantSettings.voicemail + ': ' + voicemail);
|
||||
}
|
||||
}
|
||||
var otherSettings = queryOperatorVariantDB(_mcc, mnc);
|
||||
if (otherSettings) {
|
||||
if (DEBUG) {
|
||||
console.log('Other operator settings: ' +
|
||||
JSON.stringify(otherSettings));
|
||||
}
|
||||
if (!operatorVariantSettings.voicemail) {
|
||||
voicemail = otherSettings.voicemail;
|
||||
if (voicemail) {
|
||||
operatorVariantSettings.voicemail = voicemail;
|
||||
}
|
||||
}
|
||||
|
||||
var enableStrict7BitEncodingForSms =
|
||||
otherSettings.enableStrict7BitEncodingForSms;
|
||||
if (enableStrict7BitEncodingForSms) {
|
||||
operatorVariantSettings.enableStrict7BitEncodingForSms =
|
||||
enableStrict7BitEncodingForSms == 'true';
|
||||
}
|
||||
var cellBroadcastSearchList =
|
||||
otherSettings.cellBroadcastSearchList;
|
||||
if (cellBroadcastSearchList) {
|
||||
var searchListObj = {};
|
||||
var lists = cellBroadcastSearchList.split('|');
|
||||
lists.forEach(function(list) {
|
||||
var parts = list.split(':');
|
||||
searchListObj[parts[0]] = parts[1];
|
||||
});
|
||||
operatorVariantSettings.cellBroadcastSearchList = searchListObj;
|
||||
}
|
||||
|
||||
var operatorSizeLimitation =
|
||||
otherSettings.operatorSizeLimitation;
|
||||
if (operatorSizeLimitation) {
|
||||
operatorVariantSettings.operatorSizeLimitation =
|
||||
+operatorSizeLimitation;
|
||||
}
|
||||
var skipProxy = otherSettings.skipProxy;
|
||||
if (skipProxy == 'true') {
|
||||
var skipProxyFor = otherSettings.skipProxyFor;
|
||||
if (skipProxyFor) {
|
||||
if (skipProxyFor.indexOf(result[i].carrier) != -1) {
|
||||
if (DEBUG) {
|
||||
console.log('Skip proxy setting for: ' + result[i].carrier);
|
||||
}
|
||||
result[i].proxy = result[i].port = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete(result[i].mcc);
|
||||
delete(result[i].mnc);
|
||||
if (country[mnc]) {
|
||||
if (DEBUG) { // warn about the duplicate (mcc, mnc) tuple
|
||||
if (country[mnc].length == 1) {
|
||||
console.log('duplicate mcc/mnc: ' + _mcc + '/' + mnc);
|
||||
console.log(' - ' + country[mnc][0].carrier);
|
||||
}
|
||||
console.log(' - ' + result[i].carrier);
|
||||
}
|
||||
country[mnc].push(result[i]);
|
||||
} else {
|
||||
country[mnc] = [result[i]];
|
||||
if (voicemail || otherSettings) {
|
||||
operatorVariantSettings.type = [];
|
||||
operatorVariantSettings.type.push('operatorvariant');
|
||||
country[mnc].push(operatorVariantSettings);
|
||||
}
|
||||
}
|
||||
}
|
||||
apn[_mcc] = country;
|
||||
}
|
||||
}
|
||||
|
||||
return apn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* User Interface
|
||||
*/
|
||||
|
||||
var gAPN;
|
||||
var apnPrefNames = {
|
||||
'default': {
|
||||
'ril.data.carrier': 'carrier',
|
||||
'ril.data.apn': 'apn',
|
||||
'ril.data.user': 'user',
|
||||
'ril.data.passwd': 'password',
|
||||
'ril.data.httpProxyHost': 'proxy',
|
||||
'ril.data.httpProxyPort': 'port',
|
||||
'ril.data.authtype': 'authtype',
|
||||
'ril.data.mtu': 'mtu'
|
||||
},
|
||||
'supl': {
|
||||
'ril.supl.carrier': 'carrier',
|
||||
'ril.supl.apn': 'apn',
|
||||
'ril.supl.user': 'user',
|
||||
'ril.supl.passwd': 'password',
|
||||
'ril.supl.httpProxyHost': 'proxy',
|
||||
'ril.supl.httpProxyPort': 'port',
|
||||
'ril.supl.authtype': 'authtype',
|
||||
'ril.supl.mtu': 'mtu'
|
||||
},
|
||||
'mms': {
|
||||
'ril.mms.carrier': 'carrier',
|
||||
'ril.mms.apn': 'apn',
|
||||
'ril.mms.user': 'user',
|
||||
'ril.mms.passwd': 'password',
|
||||
'ril.mms.httpProxyHost': 'proxy',
|
||||
'ril.mms.httpProxyPort': 'port',
|
||||
'ril.mms.mmsc': 'mmsc',
|
||||
'ril.mms.mmsproxy': 'mmsproxy',
|
||||
'ril.mms.mmsport': 'mmsport',
|
||||
'ril.mms.authtype': 'authtype',
|
||||
'ril.mms.mtu': 'mtu'
|
||||
},
|
||||
'dun': {
|
||||
'ril.dun.carrier': 'carrier',
|
||||
'ril.dun.apn': 'apn',
|
||||
'ril.dun.user': 'user',
|
||||
'ril.dun.passwd': 'password',
|
||||
'ril.dun.httpProxyHost': 'proxy',
|
||||
'ril.dun.httpProxyPort': 'port',
|
||||
'ril.dun.authtype': 'authtype',
|
||||
'ril.dun.mtu': 'mtu'
|
||||
},
|
||||
'ims': {
|
||||
'ril.ims.carrier': 'carrier',
|
||||
'ril.ims.apn': 'apn',
|
||||
'ril.ims.user': 'user',
|
||||
'ril.ims.passwd': 'password',
|
||||
'ril.ims.httpProxyHost': 'proxy',
|
||||
'ril.ims.httpProxyPort': 'port',
|
||||
'ril.ims.authtype': 'authtype',
|
||||
'ril.ims.mtu': 'mtu'
|
||||
},
|
||||
'fota': {
|
||||
'ril.fota.carrier': 'carrier',
|
||||
'ril.fota.apn': 'apn',
|
||||
'ril.fota.user': 'user',
|
||||
'ril.fota.passwd': 'password',
|
||||
'ril.fota.httpProxyHost': 'proxy',
|
||||
'ril.fota.httpProxyPort': 'port',
|
||||
'ril.fota.authtype': 'authtype',
|
||||
'ril.fota.mtu': 'mtu'
|
||||
},
|
||||
'operatorvariant': {
|
||||
'ril.iccInfo.mbdn': 'voicemail',
|
||||
'ril.sms.strict7BitEncoding.enabled': 'enableStrict7BitEncodingForSms',
|
||||
'ril.cellbroadcast.searchlist': 'cellBroadcastSearchList',
|
||||
'dom.mms.operatorSizeLimitation': 'operatorSizeLimitation'
|
||||
}
|
||||
};
|
||||
|
||||
var booleanPrefNames = [
|
||||
'ril.sms.strict7BitEncoding.enabled'
|
||||
];
|
||||
|
||||
function loadDB(output, callback) {
|
||||
output.textContent = '\n loading database...';
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', OPERATOR_VARIANT_FILE, true);
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState == 4) {
|
||||
if (xhr.status == 200 || xhr.status === 0) {
|
||||
// the JSON database is already available -- we don't use
|
||||
// xhr.responseType = 'json' to be compatible with Chrome... sigh.
|
||||
gAPN = JSON.parse(xhr.responseText);
|
||||
} else {
|
||||
// the JSON database is not available, merge the three XML databases
|
||||
output.textContent = '\n merging databases, this takes a while...';
|
||||
gAndroidDB = loadXML(ANDROID_DB_FILE);
|
||||
// First merge the local DB
|
||||
var localAndroidDB = loadXML(LOCAL_ANDROID_DB_FILE);
|
||||
var localApns =
|
||||
localAndroidDB.documentElement.querySelectorAll('apn');
|
||||
var androidApns;
|
||||
var androidApn;
|
||||
for (var localApn of localApns) {
|
||||
if (localApn.getAttribute('overwrite') &&
|
||||
localApn.getAttribute('carrier_name')) {
|
||||
var pattern = '[carrier="' +
|
||||
localApn.getAttribute('carrier_name') + '"]';
|
||||
androidApns =
|
||||
gAndroidDB.documentElement.querySelectorAll(pattern);
|
||||
var matchFound = false;
|
||||
for (androidApn of androidApns) {
|
||||
if (androidApn &&
|
||||
androidApn.getAttribute('carrier') ===
|
||||
localApn.getAttribute('carrier_name')) {
|
||||
|
||||
if (DEBUG) {
|
||||
console.log('- replace "' +
|
||||
androidApn.getAttribute('apn') +
|
||||
'" to "' + localApn.getAttribute('apn') +
|
||||
'"');
|
||||
}
|
||||
localApn.removeAttribute('overwrite');
|
||||
localApn.removeAttribute('carrier_name');
|
||||
var parent = androidApn.parentNode;
|
||||
parent.insertBefore(localApn, androidApn);
|
||||
parent.removeChild(androidApn);
|
||||
matchFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!matchFound) {
|
||||
alert('Warning!\nCould not find APN \'' +
|
||||
localApn.getAttribute('carrier_name') +
|
||||
'\'. Which is expected to be overwrited.');
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// use local apn to patch origin carrier name in the Android DB
|
||||
// if the name is not the correct one (see bug 863126).
|
||||
// Note: This patch will not function once we get
|
||||
// the correct names updated in the upstream database.
|
||||
if (localApn.getAttribute('name')) {
|
||||
var localPattern = 'apn' +
|
||||
'[mcc="' + localApn.getAttribute('mcc') + '"]' +
|
||||
'[mnc="' + localApn.getAttribute('mnc') + '"]';
|
||||
androidApns =
|
||||
gAndroidDB.documentElement.querySelectorAll(localPattern);
|
||||
for (androidApn of androidApns) {
|
||||
if (androidApn &&
|
||||
androidApn.getAttribute('carrier') ===
|
||||
localApn.getAttribute('carrier')) {
|
||||
if (DEBUG) {
|
||||
console.log('- replace "' +
|
||||
androidApn.getAttribute('carrier') +
|
||||
'" to "' + localApn.getAttribute('name') +
|
||||
'"');
|
||||
}
|
||||
androidApn.setAttribute('carrier',
|
||||
localApn.getAttribute('name'));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
gAndroidDB.documentElement.appendChild(localApn);
|
||||
}
|
||||
}
|
||||
// Then the Gnome DB
|
||||
gGnomeDB = loadXML(GNOME_DB_FILE);
|
||||
gOperatorVariantDB = loadXML(OPERATOR_VARIANT_DB_FILE);
|
||||
gAPN = mergeDBs();
|
||||
}
|
||||
output.textContent = DEBUG ?
|
||||
JSON.stringify(gAPN, true, 2) :
|
||||
JSON.stringify(gAPN, true, 0)
|
||||
.replace(/("[0-9]+"):{/g, '\n$1: {')
|
||||
.replace(/("[0-9]+"):\[/g, '\n $1: [')
|
||||
.replace(/},\n/g, '\n},\n')
|
||||
.replace(/\[{/g, '[\n {')
|
||||
.replace(/},{/g, '},\n {')
|
||||
.replace(/}(],?)/g, '}\n $1')
|
||||
.replace(/]}}$/, ']\n}\n}');
|
||||
callback();
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
function update() {
|
||||
var selection = document.getElementById('selection');
|
||||
var mcc = document.querySelector('input[name=mcc]').value;
|
||||
var mnc = document.querySelector('input[name=mnc]').value;
|
||||
var res = gAPN[mcc] ? (gAPN[mcc][mnc] || []) : [];
|
||||
selection.textContent = JSON.stringify(res, true, 2);
|
||||
|
||||
var preferences = document.getElementById('preferences');
|
||||
var prefs = {};
|
||||
for (var type in apnPrefNames) {
|
||||
var apn = {};
|
||||
for (var i = 0; i < res.length; i++) {
|
||||
if (res[i].type.indexOf(type) != -1) {
|
||||
apn = res[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
var prefNames = apnPrefNames[type];
|
||||
for (var key in prefNames) {
|
||||
var name = apnPrefNames[type][key];
|
||||
if (booleanPrefNames.indexOf(key) != -1) {
|
||||
prefs[key] = apn[name] || false;
|
||||
} else {
|
||||
prefs[key] = apn[name] || '';
|
||||
}
|
||||
}
|
||||
}
|
||||
preferences.textContent = JSON.stringify(prefs, true, 2);
|
||||
}
|
||||
|
||||
document.querySelector('form').oninput = update;
|
||||
loadDB(document.querySelector('textarea'), update);
|
||||
});
|
||||
11021
gaia/shared/resources/apn/service_providers.xml
Executable file
168
gaia/shared/resources/apn_tz.json
Executable file
|
|
@ -0,0 +1,168 @@
|
|||
{
|
||||
"202": "Europe/Athens",
|
||||
"204": "Europe/Amsterdam",
|
||||
"206": "Europe/Brussels",
|
||||
"208": "Europe/Paris",
|
||||
"214": "Europe/Madrid",
|
||||
"216": "Europe/Budapest",
|
||||
"218": "Europe/Sarajevo",
|
||||
"219": "Europe/Zagreb",
|
||||
"220": "Europe/Belgrade",
|
||||
"222": "Europe/Rome",
|
||||
"226": "Europe/Bucharest",
|
||||
"228": "Europe/Zurich",
|
||||
"230": "Europe/Prague",
|
||||
"231": "Europe/Bratislava",
|
||||
"232": "Europe/Vienna",
|
||||
"234": {
|
||||
"00": "Europe/London",
|
||||
"02": "Europe/London",
|
||||
"03": "Europe/Jersey",
|
||||
"10": "Europe/London",
|
||||
"11": "Europe/London",
|
||||
"15": "Europe/London",
|
||||
"20": "Europe/London",
|
||||
"30": "Europe/London",
|
||||
"31": "Europe/London",
|
||||
"32": "Europe/London",
|
||||
"33": "Europe/London",
|
||||
"34": "Europe/London",
|
||||
"36": "Europe/Isle_of_Man",
|
||||
"50": "Europe/Jersey",
|
||||
"55": "Europe/Jersey",
|
||||
"58": "Europe/Isle_of_Man"
|
||||
},
|
||||
"238": "Europe/Copenhagen",
|
||||
"240": "Europe/Stockholm",
|
||||
"242": "Europe/Oslo",
|
||||
"244": "Europe/Helsinki",
|
||||
"246": "Europe/Vilnius",
|
||||
"247": "Europe/Riga",
|
||||
"248": "Europe/Tallinn",
|
||||
"250": "Europe/Moscow",
|
||||
"255": "Europe/Kyiv",
|
||||
"257": "Europe/Minsk",
|
||||
"259": "Europe/Chisinau",
|
||||
"260": "Europe/Warsaw",
|
||||
"262": "Europe/Berlin",
|
||||
"268": "Europe/Lisbon",
|
||||
"270": "Europe/Luxembourg",
|
||||
"272": "Europe/Dublin",
|
||||
"274": "Atlantic/Reykjavik",
|
||||
"276": "Europe/Tirane",
|
||||
"278": "Europe/Malta",
|
||||
"280": "Asia/Nicosia",
|
||||
"282": "Asia/Tbilisi",
|
||||
"283": "Asia/Yerevan",
|
||||
"284": "Europe/Sofia",
|
||||
"286": "Europe/Istanbul",
|
||||
"288": "Atlantic/Faroe_Islands",
|
||||
"293": "Europe/Ljubljana",
|
||||
"294": "Europe/Skopje",
|
||||
"297": "Europe/Podgorica",
|
||||
"302": "America/Toronto",
|
||||
"310": "America/New_York",
|
||||
"311": "America/New_York",
|
||||
"334": "America/Mexico_City",
|
||||
"338": "America/Jamaica",
|
||||
"342": "America/Barbados",
|
||||
"358": "America/St_Lucia",
|
||||
"360": "America/St_Vincent",
|
||||
"364": "America/Nassau",
|
||||
"370": "America/Santo_Domingo",
|
||||
"374": "America/Port_of_Spain",
|
||||
"400": "Asia/Baku",
|
||||
"401": "Asia/Almaty",
|
||||
"404": "Asia/Kolkata",
|
||||
"405": "Asia/Kolkata",
|
||||
"410": "Asia/Karachi",
|
||||
"412": "Asia/Kabul",
|
||||
"413": "Asia/Colombo",
|
||||
"415": "Asia/Beirut",
|
||||
"416": "Asia/Amman",
|
||||
"418": "Asia/Baghdad",
|
||||
"419": "Asia/Kuwait",
|
||||
"420": "Asia/Riyadh",
|
||||
"422": "Asia/Muscat",
|
||||
"424": "Asia/Dubai",
|
||||
"425": "Asia/Jerusalem",
|
||||
"426": "Asia/Bahrain",
|
||||
"427": "Asia/Qatar",
|
||||
"428": "Asia/Ulan_Bator",
|
||||
"429": "Asia/Kathmandu",
|
||||
"432": "Asia/Tehran",
|
||||
"434": "Asia/Tashkent",
|
||||
"437": "Asia/Bishkek",
|
||||
"440": "Asia/Tokyo",
|
||||
"450": "Asia/Seoul",
|
||||
"452": "Asia/Saigon",
|
||||
"454": "Asia/Hong_Kong",
|
||||
"455": "Asia/Macau",
|
||||
"456": "Asia/Phnom_Penh",
|
||||
"457": "Asia/Vientiane",
|
||||
"460": "Asia/Chongqing",
|
||||
"466": "Asia/Taipei",
|
||||
"470": "Asia/Dhaka",
|
||||
"472": "Indian/Maldives",
|
||||
"502": "Asia/Kuala_Lumpur",
|
||||
"505": "Australia/Sydney",
|
||||
"510": "Asia/Jakarta",
|
||||
"515": {
|
||||
"01": "Asia/Karachi",
|
||||
"02": "Asia/Manila",
|
||||
"03": "Asia/Manila",
|
||||
"04": "Asia/Karachi",
|
||||
"05": "Asia/Manila",
|
||||
"06": "Asia/Karachi",
|
||||
"07": "Asia/Karachi"
|
||||
},
|
||||
"520": "Asia/Bangkok",
|
||||
"525": "Asia/Singapore",
|
||||
"528": "Asia/Brunei",
|
||||
"530": "Pacific/Auckland",
|
||||
"542": "Pacific/Fiji",
|
||||
"547": "Pacific/Tahiti",
|
||||
"602": "Africa/Cairo",
|
||||
"603": "Africa/Algiers",
|
||||
"604": "Africa/Casablanca",
|
||||
"605": "Africa/Tunis",
|
||||
"608": "Africa/Dakar",
|
||||
"610": "Africa/Bamako",
|
||||
"612": "Africa/Abidjan",
|
||||
"617": "Indian/Mauritius",
|
||||
"620": "Africa/Accra",
|
||||
"621": "Africa/Lagos",
|
||||
"624": "Africa/Douala",
|
||||
"630": "Africa/Kinshasa",
|
||||
"631": "Africa/Luanda",
|
||||
"634": "Africa/Khartoum",
|
||||
"635": "Africa/Kigali",
|
||||
"636": "Africa/Addis_Ababa",
|
||||
"639": "Africa/Nairobi",
|
||||
"640": "Africa/Dar_es_Salaam",
|
||||
"641": "Africa/Kampala",
|
||||
"642": "Africa/Bujumbura",
|
||||
"643": "Africa/Maputo",
|
||||
"647": "Indian/Reunion",
|
||||
"649": "Africa/Windhoek",
|
||||
"650": "Africa/Blantyre",
|
||||
"651": "Africa/Maseru",
|
||||
"652": "Africa/Gaborone",
|
||||
"655": "Africa/Johannesburg",
|
||||
"704": "America/Guatemala",
|
||||
"706": "America/El_Salvador",
|
||||
"708": "America/Tegucigalpa",
|
||||
"710": "America/Managua",
|
||||
"712": "America/Costa_Rica",
|
||||
"714": "America/Panama",
|
||||
"716": "America/Lima",
|
||||
"722": "America/Argentina/Buenos_Aires",
|
||||
"724": "America/Sao_Paulo",
|
||||
"730": "America/Santiago",
|
||||
"732": "America/Bogota",
|
||||
"734": "America/Caracas",
|
||||
"738": "America/Guyana",
|
||||
"740": "America/Quito",
|
||||
"744": "America/Asuncion",
|
||||
"748": "America/Montevideo"
|
||||
}
|
||||
BIN
gaia/shared/resources/branding/official/about_logo.png
Executable file
|
After Width: | Height: | Size: 23 KiB |
BIN
gaia/shared/resources/branding/official/about_logo@1.5x.png
Executable file
|
After Width: | Height: | Size: 47 KiB |
BIN
gaia/shared/resources/branding/official/about_logo@2.25x.png
Executable file
|
After Width: | Height: | Size: 74 KiB |
BIN
gaia/shared/resources/branding/official/about_logo@2x.png
Executable file
|
After Width: | Height: | Size: 64 KiB |
BIN
gaia/shared/resources/branding/official/browser_126.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/official/browser_142.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/official/browser_189.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/official/browser_284.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/official/browser_336.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/official/browser_84.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/official/initlogo.png
Executable file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/official/initlogo@1.5x.png
Executable file
|
After Width: | Height: | Size: 199 KiB |
BIN
gaia/shared/resources/branding/official/initlogo@2.25x.png
Executable file
|
After Width: | Height: | Size: 110 KiB |
BIN
gaia/shared/resources/branding/official/initlogo@2x.png
Executable file
|
After Width: | Height: | Size: 27 KiB |
BIN
gaia/shared/resources/branding/official/initlogo_large.png
Executable file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/official/logosmall.png
Executable file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/official/logosmall@1.5x.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
BIN
gaia/shared/resources/branding/official/logosmall@2.25x.png
Executable file
|
After Width: | Height: | Size: 23 KiB |
BIN
gaia/shared/resources/branding/official/logosmall@2x.png
Executable file
|
After Width: | Height: | Size: 18 KiB |
BIN
gaia/shared/resources/branding/official/powered.png
Executable file
|
After Width: | Height: | Size: 122 KiB |
BIN
gaia/shared/resources/branding/official/powered@1.5x.png
Executable file
|
After Width: | Height: | Size: 543 KiB |
BIN
gaia/shared/resources/branding/official/powered@2.25x.png
Executable file
|
After Width: | Height: | Size: 137 KiB |
BIN
gaia/shared/resources/branding/official/powered@2x.png
Executable file
|
After Width: | Height: | Size: 28 KiB |
BIN
gaia/shared/resources/branding/official/privacy_sprite.png
Executable file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
gaia/shared/resources/branding/official/privacy_sprite@1.5x.png
Executable file
|
After Width: | Height: | Size: 14 KiB |
BIN
gaia/shared/resources/branding/official/privacy_sprite@2.25x.png
Executable file
|
After Width: | Height: | Size: 25 KiB |
BIN
gaia/shared/resources/branding/official/privacy_sprite@2x.png
Executable file
|
After Width: | Height: | Size: 22 KiB |
BIN
gaia/shared/resources/branding/official/vulpes-symbol.png
Normal file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/unofficial/about_logo.png
Executable file
|
After Width: | Height: | Size: 21 KiB |
BIN
gaia/shared/resources/branding/unofficial/about_logo@1.5x.png
Executable file
|
After Width: | Height: | Size: 34 KiB |
BIN
gaia/shared/resources/branding/unofficial/about_logo@2.25x.png
Executable file
|
After Width: | Height: | Size: 60 KiB |
BIN
gaia/shared/resources/branding/unofficial/about_logo@2x.png
Executable file
|
After Width: | Height: | Size: 51 KiB |
BIN
gaia/shared/resources/branding/unofficial/browser_126.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/unofficial/browser_142.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/unofficial/browser_189.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/unofficial/browser_284.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/unofficial/browser_336.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/unofficial/browser_84.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
gaia/shared/resources/branding/unofficial/initlogo.png
Executable file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/unofficial/initlogo@1.5x.png
Executable file
|
After Width: | Height: | Size: 37 KiB |
BIN
gaia/shared/resources/branding/unofficial/initlogo@2.25x.png
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
gaia/shared/resources/branding/unofficial/initlogo@2x.png
Executable file
|
After Width: | Height: | Size: 40 KiB |
BIN
gaia/shared/resources/branding/unofficial/initlogo_large.png
Executable file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/unofficial/logosmall.png
Executable file
|
After Width: | Height: | Size: 769 KiB |
BIN
gaia/shared/resources/branding/unofficial/logosmall@1.5x.png
Executable file
|
After Width: | Height: | Size: 26 KiB |
BIN
gaia/shared/resources/branding/unofficial/logosmall@2.25x.png
Executable file
|
After Width: | Height: | Size: 34 KiB |
BIN
gaia/shared/resources/branding/unofficial/logosmall@2x.png
Executable file
|
After Width: | Height: | Size: 31 KiB |
BIN
gaia/shared/resources/branding/unofficial/powered.png
Executable file
|
After Width: | Height: | Size: 29 KiB |
BIN
gaia/shared/resources/branding/unofficial/powered@1.5x.png
Executable file
|
After Width: | Height: | Size: 38 KiB |
BIN
gaia/shared/resources/branding/unofficial/powered@2.25x.png
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
gaia/shared/resources/branding/unofficial/powered@2x.png
Executable file
|
After Width: | Height: | Size: 39 KiB |
BIN
gaia/shared/resources/branding/unofficial/privacy_sprite.png
Executable file
|
After Width: | Height: | Size: 21 KiB |
BIN
gaia/shared/resources/branding/unofficial/privacy_sprite@1.5x.png
Executable file
|
After Width: | Height: | Size: 27 KiB |
BIN
gaia/shared/resources/branding/unofficial/privacy_sprite@2.25x.png
Executable file
|
After Width: | Height: | Size: 37 KiB |
BIN
gaia/shared/resources/branding/unofficial/privacy_sprite@2x.png
Executable file
|
After Width: | Height: | Size: 33 KiB |
BIN
gaia/shared/resources/branding/unofficial/vulpes-symbol.png
Normal file
|
After Width: | Height: | Size: 769 KiB |
28
gaia/shared/resources/default-cards.json
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"card_list": [
|
||||
{
|
||||
"type": "Deck",
|
||||
"deckClass": "tv",
|
||||
"manifestURL": "app://tv-deck.gaiamobile.org/manifest.webapp",
|
||||
"group": "tv"
|
||||
},
|
||||
{
|
||||
"type": "Deck",
|
||||
"deckClass": "application",
|
||||
"manifestURL": "app://app-deck.gaiamobile.org/manifest.webapp",
|
||||
"group": "application"
|
||||
},
|
||||
{
|
||||
"type": "Deck",
|
||||
"deckClass": "device",
|
||||
"manifestURL": "app://device-deck.gaiamobile.org/manifest.webapp",
|
||||
"group": "device"
|
||||
},
|
||||
{
|
||||
"type": "Deck",
|
||||
"deckClass": "browser",
|
||||
"manifestURL": "app://browser.gaiamobile.org/manifest.webapp",
|
||||
"group": "website"
|
||||
}
|
||||
]
|
||||
}
|
||||
5
gaia/shared/resources/languages.json
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"en-US" : "English (US)",
|
||||
"fr-x-psaccent" : "Ƥȧȧƈķȧȧɠḗḗḓ Ȧȧƈƈḗḗƞŧḗḗḓ",
|
||||
"ar-x-psbidi" : "\u202eԀɐɔʞɐƃǝp\u202c \u202eԐıpı\u202c"
|
||||
}
|
||||
1132
gaia/shared/resources/mcc.json
Executable file
BIN
gaia/shared/resources/media/alarms/ac_awake.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_crystalize.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_cycle.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_digicloud.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_humming_waves.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_into_the_void.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_lightly.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_mobile.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_pinger.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_skip.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_tri.opus
Executable file
BIN
gaia/shared/resources/media/alarms/ac_universal.opus
Executable file
22
gaia/shared/resources/media/notifications/list.json
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"notifier_bells.opus": {"l10nID": "notifier_bells"},
|
||||
"notifier_bloom.opus": {"l10nID": "notifier_bloom"},
|
||||
"notifier_chime.opus": {"l10nID": "notifier_chime"},
|
||||
"notifier_clicka.opus": {"l10nID": "notifier_clicka"},
|
||||
"notifier_digi.opus": {"l10nID": "notifier_digi"},
|
||||
"notifier_dropplet.opus": {"l10nID": "notifier_dropplet"},
|
||||
"notifier_firefox.opus": {"l10nID": "notifier_firefox2"},
|
||||
"notifier_hello.opus": {"l10nID": "notifier_hello"},
|
||||
"notifier_lowmarble.opus": {"l10nID": "notifier_lowmarble"},
|
||||
"notifier_ping.opus": {"l10nID": "notifier_ping"},
|
||||
"notifier_plickle.opus": {"l10nID": "notifier_plickle"},
|
||||
"notifier_pocko.opus": {"l10nID": "notifier_pocko"},
|
||||
"notifier_quado.opus": {"l10nID": "notifier_quado"},
|
||||
"notifier_red.opus": {"l10nID": "notifier_red"},
|
||||
"notifier_sato.opus": {"l10nID": "notifier_sato"},
|
||||
"notifier_swipo.opus": {"l10nID": "notifier_swipo"},
|
||||
"notifier_trickleup.opus": {"l10nID": "notifier_trickleup"},
|
||||
"notifier_trink.opus": {"l10nID": "notifier_trink"},
|
||||
"notifier_verse.opus": {"l10nID": "notifier_verse"}
|
||||
}
|
||||
|
||||