/* Ċ Copyright Ġ 2 0 2 0 ĠRe think DNS Ġand Ġits Ġauthors Ċ Ċ Licensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ you Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ You Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ċ https :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ċ Unless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ distributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ WITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ See Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ limitations Ġunder Ġthe ĠLicense . Ċ */ Ċ package Ġcom . cel zero . br aved ns . util Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ class ĠConstants Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġon - device Ġblock list Ġdownload Ġpath ĊĠĠĠĠĠĠĠ Ġval ĠON DEVICE _ BLOCK LIST _ DOWNLOAD _ PATH Ġ= ĠFile . separator Ġ+ Ġ" downloads " Ġ+ ĠFile . separator ĊĊĠĠĠĠĠĠĠ Ġ// Ġfile Ġnames Ġwhich Ġare Ġdownloaded Ġas Ġpart Ġof Ġon - device Ġblock lists ĊĠĠĠĠĠĠĠ Ġval ĠON DEVICE _ BLOCK LIST _ FILE _ TAG Ġ= ĠFile . separator Ġ+ Ġ" file tag . json " ĊĠĠĠĠĠĠĠ Ġval ĠON DEVICE _ BLOCK LIST _ FILE _ BASIC _ CONFIG Ġ= ĠFile . separator Ġ+ Ġ" basic config . json " ĊĠĠĠĠĠĠĠ Ġval ĠON DEVICE _ BLOCK LIST _ FILE _ RD Ġ= ĠFile . separator Ġ+ Ġ" rd . txt " ĊĠĠĠĠĠĠĠ Ġval ĠON DEVICE _ BLOCK LIST _ FILE _ TD Ġ= ĠFile . separator Ġ+ Ġ" td . txt " ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġto Ġcheck Ġto Ġcheck Ġthe Ġif Ġthere Ġis Ġupdate Ġavailable Ġfor Ġon - device Ġblock list ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠON DEVICE _ BLOCK LIST _ UPDATE _ CHECK _ URL Ġ= Ġ" https :// download . re think dns . com / update / block lists ? t stamp =" ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġparameter , Ġpart Ġof Ġupdate Ġcheck Ġfor Ġon - device Ġblock list ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠON DEVICE _ BLOCK LIST _ UPDATE _ CHECK _ PARAMETER _ V CODE Ġ= Ġ" v code =" ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġto Ġcheck Ġif Ġthere Ġis Ġapp - update Ġis Ġavailable Ġ( this Ġis Ġfor Ġwebsite Ġversion Ġonly ) ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK _ APP _ UPDATE _ CHECK Ġ= Ġ" https :// download . re think dns . com / update / app ? v code =" ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġto Ġlaunch Ġthe Ġblock list Ġ( remote / on - device ) Ġconfigure Ġscreen ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK _ BLOCK LIST _ CONFIGURE _ URL Ġ= Ġ" https :// re think dns . com / configure ? v = app " ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġparameter Ġused Ġin Ġconfigure Ġblock list Ġweb view ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK _ BLOCK LIST _ CONFIGURE _ URL _ PARAMETER Ġ= Ġ" t stamp " ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġversion Ġtag Ġvalue ( response ) Ġfor Ġthe Ġupdate Ġcheck Ġ( both Ġon - device Ġand Ġapp Ġupdate ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġhave Ġtwo Ġdifferent Ġresponse Ġversions Ġfor Ġblock list Ġupdate Ġand Ġapp Ġupdate ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPDATE _ CHECK _ RESPONSE _ VERSION Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġ// Ġmeta Ġdata Ġfor Ġon - device Ġblock list ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠOn Device Block lists Metadata ( val Ġurl : ĠString , Ġval Ġfilename : ĠString ) ĊĊĠĠĠĠĠĠĠ Ġval ĠON DEVICE _ BLOCK LIST S Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Device Block lists Metadata (" https :// download . re think dns . com / block lists ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠON DEVICE _ BLOCK LIST _ FILE _ TAG ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Device Block lists Metadata (" https :// download . re think dns . com / basic config ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠON DEVICE _ BLOCK LIST _ FILE _ BASIC _ CONFIG ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Device Block lists Metadata (" https :// download . re think dns . com / rank ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠON DEVICE _ BLOCK LIST _ FILE _ RD ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Device Block lists Metadata (" https :// download . re think dns . com / trie ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠON DEVICE _ BLOCK LIST _ FILE _ TD )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġto Ġdownload Ġthe Ġre think dns Ġapk Ġfile ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK _ APP _ DOWNLOAD _ LINK Ġ= Ġ" https :// re think dns . com / download " ĊĊĠĠĠĠĠĠĠ Ġ// Ġbase - url Ġfor Ġbr aved ns ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBR AVE _ BASE _ URL Ġ= Ġ" https :// basic . br aved ns . com /" ĊĊĠĠĠĠĠĠĠ Ġ// Ġbase - url Ġstamp Ġfor Ġconfigure Ġblock list ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK _ BLOCK LIST _ CONFIGURE _ BASE _ URL Ġ= Ġ" re think dns . com / configure " ĊĊĠĠĠĠĠĠĠ Ġ// Ġbase - url Ġfor Ġbr aved ns ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBR AV ED NS _ DOMAIN Ġ= Ġ" br aved ns . com " ĊĊĠĠĠĠĠĠĠ Ġ// Ġbase - url Ġfor Ġre think dns ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK DNS _ DOMAIN Ġ= Ġ" re think dns . com " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefault Ġdo h Ġurl ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ DO H _ URL Ġ= Ġ" https :// basic . br aved ns . com / dns - query " ĊĊĠĠĠĠĠĠĠ Ġ// Ġjson Ġobject Ġconstants Ġreceived Ġas Ġpart Ġof Ġupdate Ġcheck ĊĠĠĠĠĠĠĠ Ġ// ĠFIXME : ĠAvoid Ġusage Ġof Ġthese Ġparameters , Ġmap Ġto ĠPO JO Ġinstead ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠJSON _ VERSION Ġ= Ġ" version " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠJSON _ UPDATE Ġ= Ġ" update " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠJSON _ LATE ST Ġ= Ġ" latest " ĊĊĠĠĠĠĠĠĠ Ġ// Ġapp Ġtype Ġunknown ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUNKNOWN _ APP Ġ= Ġ" Unknown " ĊĊĠĠĠĠĠĠĠ Ġ// ĠNumber Ġof Ġnetwork Ġlog Ġentries Ġto Ġstore Ġin Ġthe Ġdatabase . ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTOT AL _ LOG _ ENTR IES _ THRESHOLD Ġ= Ġ 1 0 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvalid Ġapplication Ġuid ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINVALID _ UID Ġ= Ġ- 1 ĊĊĠĠĠĠĠĠĠ Ġ// Ġmissing Ġuid , Ġused Ġwhen Ġthe Ġuid Ġis Ġunder min ed . Ġsee ĠConnection Tracer # get Uid Q () ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMIS SING _ UID Ġ= Ġ- 2 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġlabel Ġfor Ġre think dns Ġplus Ġdo h Ġendpoint ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRET H INK _ DNS _ PLUS Ġ= Ġ" Re think DNS ĠPlus " ĊĊĠĠĠĠĠĠĠ Ġ// Ġconstants Ġused Ġas Ġpart Ġof Ġintent Ġto Ġload Ġthe Ġview pager 's Ġscreen ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVIEW _ P AGER _ SCREEN _ TO _ LOAD Ġ= Ġ" view _ pager _ screen " ĊĊĠĠĠĠĠĠĠ Ġ// Ġname - value Ġto Ġpass Ġas Ġpart Ġof Ġintent ĊĠĠĠĠĠĠĠ Ġ// Ġdetermines Ġwhether Ġlaunched Ġfrom Ġlocal / remote ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK LIST _ LOCATION _ INT ENT _ EXTRA Ġ= Ġ" location " ĊĊĠĠĠĠĠĠĠ Ġ// Ġstamp Ġname - value Ġfor Ġblock list Ġconfigure Ġscreen ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK LIST _ STAMP _ INT ENT _ EXTRA Ġ= Ġ" stamp " ĊĊĠĠĠĠĠĠĠ Ġ// Ġurl Ġname - value Ġfor Ġblock list Ġconfigure Ġscreen ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK LIST _ URL _ INT ENT _ EXTRA Ġ= Ġ" url " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefault Ġcustom Ġhttp Ġproxy Ġport Ġnumber ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHTTP _ PROXY _ PORT Ġ= Ġ" 8 1 1 8 " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefault Ġcustom Ġsock s 5 Ġip ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOCK S _ DEFAULT _ IP Ġ= Ġ" 1 2 7 . 0 . 0 . 1 " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefault Ġcustom Ġsock s 5 Ġport ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOCK S _ DEFAULT _ PORT Ġ= Ġ" 9 0 5 0 " ĊĊĠĠĠĠĠĠĠ Ġ// Ġconstants Ġto Ġsend Ġtype Ġof Ġproxy : Ġfor Ġsock s 5 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOCK S Ġ= Ġ" S ocks 5 " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdata - time Ġformat Ġused Ġas Ġpart Ġof Ġnetwork Ġlog Ġadapter ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATE _ FORMAT _ PATTERN Ġ= Ġ" HH : mm : ss " ĊĊĠĠĠĠĠĠĠ Ġ// Ġconstants Ġgenerated Ġas Ġpart Ġof ĠBuild Config . FL AV ORS Ġ( play store / fd roid / website ) ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFL AV OR _ PLAY Ġ= Ġ" play " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFL AV OR _ FD ROID Ġ= Ġ" fd roid " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFL AV OR _ WE BS ITE Ġ= Ġ" website " ĊĊĠĠĠĠĠĠĠ Ġ// ĠVar ious Ġnotification Ġaction Ġconstants Ġused Ġpart Ġof ĠNotification Compat . Action ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IFICATION _ ACTION Ġ= Ġ" NOTIFICATION _ VALUE " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ STOP _ VPN Ġ= Ġ" RE TH INK _ STOP " Ġ// Ġstop Ġv pn Ġservice ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ PAUSE _ VPN Ġ= Ġ" RE TH INK _ PAUSE " Ġ// Ġpause Ġv pn ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ RE SU ME _ VPN Ġ= Ġ" RE TH INK _ RE SU ME " Ġ// Ġresume Ġv pn ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ DNS _ VPN Ġ= Ġ" RE TH INK _ DN SON LY " Ġ// Ġbattery - sa ver Ġdns - only ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ DNS _ FIRE WALL _ VPN Ġ= Ġ" RE TH INK _ FULL MODE " Ġ// Ġdefault Ġdns + firewall ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ R ULES _ FAILURE Ġ= Ġ" RE TH INK _ R ULES _ RE LOAD " Ġ// Ġload Ġrules Ġfailure ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ NEW _ APP _ ALLOW Ġ= Ġ" NEW _ APP _ ALLOW " Ġ// Ġallow Ġnetwork Ġaccess Ġfor Ġnew Ġapps ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ ACTION _ NEW _ APP _ DEN Y Ġ= Ġ" NEW _ APP _ DEN Y " Ġ// Ġdeny Ġnetwork Ġaccess Ġfor Ġnew Ġapps ĊĊĠĠĠĠĠĠĠ Ġ// Ġvarious Ġnotification Ġintent Ġextra Ġname / values Ġused Ġpart Ġof Ġnotification 's Ġpending - intent ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ INT ENT _ EXTRA _ ACC ES SI B ILITY _ NAME Ġ= Ġ" ACC ES SI B ILITY " Ġ// Ġaccessibility Ġfailure Ġname ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ INT ENT _ EXTRA _ ACC ES SI B ILITY _ VALUE Ġ= Ġ" ACC ES SI B ILITY _ FAILURE " Ġ// Ġaccessibility Ġfailure Ġvalue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ INT ENT _ EXTRA _ NEW _ APP _ NAME Ġ= Ġ" NEW _ APP " Ġ// Ġnew Ġapp Ġinstall Ġname ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ INT ENT _ EXTRA _ NEW _ APP _ VALUE Ġ= Ġ" NEW _ APP _ INSTALL _ NOTIFY " Ġ// Ġnew Ġapp Ġinstall Ġvalue ĊĊĠĠĠĠĠĠĠ Ġ// Ġnew Ġapp Ġinstall Ġintent Ġextra Ġname Ġfor Ġuid . Ġsee ĠRefresh Database # make New App Vpn Intent () ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT IF _ INT ENT _ EXTRA _ APP _ UID Ġ= Ġ" NEW _ APP _ UID " ĊĊĠĠĠĠĠĠĠ Ġ// ĠDNS Ġmessage Ġtype Ġreceived Ġby Ġthe ĠDNS Ġresolver ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNX DOMAIN Ġ= Ġ" NX DOMAIN " ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġminimum Ġinterval Ġbefore Ġchecking Ġif Ġthe Ġinternal Ġaccessibility Ġservice ĊĠĠĠĠĠĠĠ Ġ// Ġ( used Ġto Ġblock Ġapps - not - in - use ) Ġis Ġindeed Ġrunning . ĊĠĠĠĠĠĠĠ Ġ// ĠRef : Ġ{@ link Ġcom . cel zero . br aved ns . util . Utilities # is Accessibility Service Enabled } Ġand ĊĠĠĠĠĠĠĠ Ġ// Ġ{@ link Ġcom . cel zero . br aved ns . util . Utilities # is Accessibility Service Enabled Via Settings Secure } ĊĠĠĠĠĠĠĠ Ġval ĠACC ES SI B ILITY _ SERVICE _ HE ART BE AT _ THRESHOLD _ MS Ġ= ĠTimeUnit . MIN UTES . to Millis ( 5 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠView Ġmodel Ġ- Ġfilter Ġstring ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFILTER _ IS _ SYSTEM Ġ= Ġ" is System " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFILTER _ IS _ FILTER Ġ= Ġ" is Filter " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFILTER _ CATEGORY Ġ= Ġ" category :" ĊĊĠĠĠĠĠĠĠ Ġ// ĠIPv 4 Ġuses Ġ 0 . 0 . 0 . 0 Ġas Ġan Ġunspecified Ġaddress ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUNS PE CI FIED _ IP Ġ= Ġ" 0 . 0 . 0 . 0 " ĊĊĠĠĠĠĠĠĠ Ġ// Ġspecial Ġport Ġnumber Ġnot Ġassigned Ġto Ġany Ġapp ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUNS PE CI FIED _ PORT Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// ĠIPv 6 Ġuses Ġ:: 0 Ġas Ġan Ġunspecified Ġaddress ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUNS PE CI FIED _ IPV 6 Ġ= Ġ":: 0 " ĊĊĠĠĠĠĠĠĠ Ġ// ĠIPv 6 Ġloop back Ġaddress ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOOP BACK _ IPV 6 Ġ= Ġ":: 1 " ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvalid Ġport Ġnumber ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINVALID _ PORT Ġ= Ġ- 1 ĊĊĠĠĠĠĠĠĠ Ġ// Ġintent Ġfor Ġsettings -> vpn Ġscreen ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTION _ VPN _ SETTINGS _ INT ENT Ġ= Ġ" android . net . vpn . SETTINGS " ĊĊĠĠĠĠĠĠĠ Ġ// Ġdefault Ġlive Ġdata Ġpage Ġsize Ġused Ġby Ġre cycler Ġviews ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠL IVED ATA _ PAGE _ SIZE Ġ= Ġ 5 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġdns Ġlogs Ġlive Ġdata Ġpage Ġsize ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDNS _ LI VED ATA _ PAGE _ SIZE Ġ= Ġ 3 0 ĊĊĠĠĠĠĠĠĠ Ġ// ĠTo Ġinitiate Ġ/ Ġreset Ġthe Ġtimestamp Ġin Ġmilliseconds ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINIT _ TIME _ MS Ġ= Ġ 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġvarious Ġtime Ġformats Ġused Ġin Ġapp ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTIME _ FORMAT _ 1 Ġ= Ġ" HH : mm : ss " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTIME _ FORMAT _ 2 Ġ= Ġ" yy . MM Ġ( dd )" ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTIME _ FORMAT _ 3 Ġ= Ġ" dd ĠM MMM Ġy yyy , ĠHH : mm : ss " ĊĊĠĠĠĠĠĠĠ Ġ// Ġplay Ġservices Ġpackage Ġname ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPK G _ NAME _ PLAY _ STORE Ġ= Ġ" com . android . v ending " ĊĠĠĠ Ġ} Ċ } Ċ