Merge branch 'develop' of gitlab.com:omicronmedia/omivpn/privado-ios into feature/lizaveta/VPNDEV-881_login-screen

This commit is contained in:
liz.malinouskaya
2021-07-15 13:10:01 +03:00
20 changed files with 342 additions and 422 deletions
@@ -1,17 +1,8 @@
{
"images" : [
{
"filename" : "latencyHigh.pdf",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
"filename" : "latencyHigh.svg",
"idiom" : "universal"
}
],
"info" : {
@@ -1,70 +0,0 @@
%PDF-1.4
%µí®û
4 0 obj
<< /Length 5 0 R
/Filter /FlateDecode
>>
stream
xœ]M®Â0 „÷>…/€qBÒ4Çà¨RaQ¼w ÿRTÉ©¦ãONÈòœ’ŒT(W\žð¦Òær‘¯Ts-]Þ­Tî3þÝñ|c¼ÿCJO”d>1ÜÅìöµM&Û´vшUØ©B˜é¾—,*£Nª¦Ó+XÞ̾␍,3R-øø¡\aÒ?
ÍM­™óîdNô¬4␍À»‚B{6”/Tãí[h­@ z“ÉÅ7¨ ¤\q€Söë
Y#-l>œ;׎}¸µ]§ø¡"Ë_pŽæÍ”Þ—‚Ç[&ÇN~Ùš,:€)ös…+¼Ôtå
endstream
endobj
5 0 obj
235
endobj
3 0 obj
<<
/ExtGState <<
/a0 << /CA 1 /ca 1 >>
>>
>>
endobj
2 0 obj
<< /Type /Page % 1
/Parent 1 0 R
/MediaBox [ 0 0 11.25 14.25 ]
/Contents 4 0 R
/Group <<
/Type /Group
/S /Transparency
/I true
/CS /DeviceRGB
>>
/Resources 3 0 R
>>
endobj
1 0 obj
<< /Type /Pages
/Kids [ 2 0 R ]
/Count 1
>>
endobj
6 0 obj
<< /Producer (cairo 1.15.12 (http://cairographics.org))
/CreationDate (D:20210301133320Z)
>>
endobj
7 0 obj
<< /Type /Catalog
/Pages 1 0 R
>>
endobj
xref
0 8
0000000000 65535 f
0000000643 00000 n
0000000421 00000 n
0000000349 00000 n
0000000015 00000 n
0000000327 00000 n
0000000708 00000 n
0000000819 00000 n
trailer
<< /Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
871
%%EOF
@@ -0,0 +1,5 @@
<svg width="13" height="15" viewBox="0 0 13 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.019 14.4151L12.019 1.2636C12.019 1.0293 11.8237 0.839355 11.5827 0.839355L9.83722 0.839355C9.59623 0.839355 9.40086 1.0293 9.40086 1.2636L9.40086 14.4151C9.40086 14.6494 9.59623 14.8394 9.83722 14.8394L11.5827 14.8394C11.8237 14.8394 12.019 14.6494 12.019 14.4151Z" fill="#28D799"/>
<path d="M7.43726 14.415L7.43726 5.08171C7.43726 4.84741 7.24189 4.65747 7.00089 4.65747L5.25543 4.65747C5.01444 4.65747 4.81907 4.84741 4.81907 5.08171L4.81907 14.415C4.81907 14.6494 5.01444 14.8393 5.25543 14.8393L7.00089 14.8393C7.24189 14.8393 7.43726 14.6494 7.43726 14.415Z" fill="#28D799"/>
<path d="M2.63721 14.4151L2.63721 8.2636C2.63721 8.0293 2.44184 7.83936 2.20084 7.83936L0.455389 7.83936C0.214391 7.83936 0.0190248 8.0293 0.0190248 8.2636L0.0190246 14.4151C0.0190246 14.6494 0.214391 14.8394 0.455388 14.8394L2.20084 14.8394C2.44184 14.8394 2.63721 14.6494 2.63721 14.4151Z" fill="#28D799"/>
</svg>

After

Width:  |  Height:  |  Size: 1006 B

@@ -1,17 +1,8 @@
{
"images" : [
{
"filename" : "latencyLow.pdf",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
"filename" : "latencyLow.svg",
"idiom" : "universal"
}
],
"info" : {
@@ -0,0 +1,5 @@
<svg width="12" height="15" viewBox="0 0 12 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 13.6588L12 0.426836C12 0.191101 11.8046 -8.59196e-09 11.5636 -1.91907e-08L9.81818 -9.59534e-08C9.57718 -1.06552e-07 9.38182 0.191101 9.38182 0.426836L9.38182 13.6588C9.38182 13.8945 9.57718 14.0856 9.81818 14.0856L11.5636 14.0856C11.8046 14.0856 12 13.8945 12 13.6588Z" fill="#A2A9D2"/>
<path d="M7.41821 13.659L7.41821 4.26863C7.41821 4.0329 7.22285 3.8418 6.98185 3.8418L5.23639 3.8418C4.99539 3.8418 4.80003 4.0329 4.80003 4.26863L4.80003 13.659C4.80003 13.8948 4.99539 14.0859 5.23639 14.0859L6.98185 14.0859C7.22285 14.0859 7.41821 13.8948 7.41821 13.659Z" fill="#A2A9D2"/>
<path d="M2.61816 13.6589L2.61816 7.4698C2.61816 7.23407 2.4228 7.04297 2.1818 7.04297L0.436346 7.04297C0.195349 7.04297 -1.81281e-05 7.23407 -1.81384e-05 7.4698L-1.84072e-05 13.6589C-1.84175e-05 13.8947 0.195348 14.0858 0.436345 14.0858L2.1818 14.0858C2.4228 14.0858 2.61816 13.8947 2.61816 13.6589Z" fill="#FC1028"/>
</svg>

After

Width:  |  Height:  |  Size: 1014 B

@@ -1,17 +1,8 @@
{
"images" : [
{
"filename" : "latencyMedium.pdf",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
"filename" : "latencyMedium.svg",
"idiom" : "universal"
}
],
"info" : {
@@ -0,0 +1,5 @@
<svg width="13" height="15" viewBox="0 0 13 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.7344 14.2408L12.7344 1.08928C12.7344 0.854979 12.539 0.665039 12.298 0.665039L10.5526 0.665039C10.3116 0.665039 10.1162 0.854979 10.1162 1.08928L10.1162 14.2408C10.1162 14.4751 10.3116 14.665 10.5526 14.665L12.298 14.665C12.539 14.665 12.7344 14.4751 12.7344 14.2408Z" fill="#A2A9D2"/>
<path d="M8.15259 14.2407L8.15259 4.9074C8.15259 4.67309 7.95722 4.48315 7.71622 4.48315L5.97077 4.48315C5.72977 4.48315 5.5344 4.67309 5.5344 4.9074L5.5344 14.2407C5.5344 14.475 5.72977 14.665 5.97077 14.665L7.71622 14.665C7.95722 14.665 8.15259 14.475 8.15259 14.2407Z" fill="#F57C2C"/>
<path d="M3.35254 14.2408L3.35254 8.08928C3.35254 7.85498 3.15717 7.66504 2.91618 7.66504L1.17072 7.66504C0.929724 7.66504 0.734357 7.85498 0.734357 8.08928L0.734357 14.2408C0.734357 14.4751 0.929723 14.665 1.17072 14.665L2.91618 14.665C3.15717 14.665 3.35254 14.4751 3.35254 14.2408Z" fill="#F57C2C"/>
</svg>

After

Width:  |  Height:  |  Size: 994 B

-285
View File
@@ -1,285 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<style>
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff
}
h1, h2, h3, h4, h5, h6 {
margin-top: .5rem;
margin-bottom: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem
}
dl, ol, ul {
margin-top: 0;
margin-bottom: 1rem
}
ol ol, ol ul, ul ol, ul ul {
margin-bottom: 0
}
b, strong {
font-weight: bolder
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent
}
a:hover {
color: #0056b3;
text-decoration: underline
}
a:not([href]) {
color: inherit;
text-decoration: none
}
a:not([href]):hover {
color: inherit;
text-decoration: none
}
.container {
margin: auto;
padding-right: 15px;
padding-left: 15px;
}
@media (min-width: 768px) {
.container {
width: 750px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
.privacy-policy {
color: #606b9f;
background-color: #00082c;
font-family: 'Open Sans', sans-serif;
font-weight: 400;
}
.bold {
font-weight: 700;
}
.underline {
text-decoration: underline;
}
.fs-20 {
font-size: 20px;
}
.disc {
list-style-type: circle;
}
</style>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap" rel="stylesheet">
<body class="privacy-policy">
<div class="container ">
<h1>PrivadoVPN Privacy Policy</h1>
<h2>Last Updated: <span>May 26, 2020</span></h2>
<p>The PrivadoVPN Privacy Policy ("Policy") applies to the applications, websites and online products and services
provided by Privado Networks AG. By visiting our websites or creating an account to use our Services, you agree
to this Policy. If you do not agree to this Policy, you may not use our Services.</p>
<p>This Policy explains how we collect, use and store information. We collect only the minimal data required to
provide the Services.</p>
<h2>PrivadoVPN Key Privacy Facts</h2>
<ul class="bold">
<li>We do no store any information about what any specific user browsed or accessed through a PrivadoVPN
connection.
</li>
<li>We are not able to connect activity originating from an IP address from our VPN servers to activity
conducted by an individual user.
</li>
<li>We encrypt all data over our VPN connections, and we do not inspect or record the contents of what you
are
viewing, browsing or doing through the PrivadoVPN connections.
</li>
<li>We ensure that we never log browsing history, traffic destination, data content, IP addresses, or DNS
queries.
</li>
<li>We will never sell your data to any third parties.</li>
</ul>
<h2>Information that we collect (information that you provide to us):</h2>
<ol>
<li><b>Account Creation:</b> We collect minimal information when you create an account. This is
information that you provide to us, including your email and your username.
</li>
<li><b>Payment Information:</b> We use third party payment processors to facilitate payment for the
Services. If you utilize a credit card, this information will be collected by the payment processor. We do
not collect or store your credit card number. The specific information collected varies based on your choice
of payment method.
</li>
<li><b>Support:</b> We do collect and keep data that you share with us regarding support issues or
customer requests. We may use third parties for support reporting purposes.
</li>
</ol>
<h2>How We Use Information That You Provide To Us:</h2>
<ol>
<li>To communicate with you regarding support issues.</li>
<li>To communicate with you regarding billing issues.</li>
<li>To send you updates and announcements regarding the Services.</li>
<li>To send marketing emails about new products and updates that are part of our Services.</li>
<li>To send you promotions, seasonal discounts and to communicate with you about contests regarding our
Services.
</li>
</ol>
<p>You may opt out from receiving any marketing or promotional emails by following the opt-out procedures that are
explained in the email. Alternatively, you may go to <a class="underline" href="mailto:support@privado.io">support@privado.io</a>
opt out of our internal marketing or promotional emails.</p>
<h2>Information We Collect Automatically When You Use Our Services</h2>
<p>When you use our Services, we may collect the following information:</p>
<ol>
<li><b>Mobile Applications:</b> We collect information regarding which App version(s) you have
activated for troubleshooting and assisting with support issues. We may also collect anonymous,
aggregate statistics, such as the type of operating systems and devices that are most commonly used,
including total number of installs, total number of uninstalls and the number of active users over a
period of time.
</li>
<li><b>Mobile Analytics Software:</b> We use self-hosted Sentry crash reporting to send us crash
reports so we can provide bug fixes and address technical issues rapidly.
</li>
<li><b>Mobile Identifiers:</b> We use mobile identifiers provided by iOS and Android devices. These
identifiers do not contain your email address or name. Mobile identifiers provide us with statistics
related to marketing or channel partners. Users may turn-off or reset Mobile Identifiers at any time.
iOS users should review Apple's support page at <a href="https://support.apple.com/en-us/HT205223">https://support.apple.com/en-us/HT205223</a>.
Android users should review Google's support page at <a
href="https://support.google.com/android/answer/3118621?hl=en">https://support.google.com
/android/answer/3118621?hl=en</a>.
</li>
</ol>
<p><b>Please note that the anonymized Mobile Applications Data is fully anonymized and is unable to be tied to a
user
of our Services. We collect the information to provide a fast and secure experience.</b></p>
<ol start="4">
<li>
<b>Information Collected by Cookies:</b>
<ul class="disc">
<li>Cookies are small files that store and provide information about your visit to our websites. We
use cookies to improve the user experience of our website. We use analytics providers, like
Google, which set cookies when you visit our websites.
</li>
<li>We use cookies for a number of reasons, like helping us see which features are most popular,
counting visitors to a page, improving our users' experience, keeping our services secure, and
generally providing you with a better experience.
</li>
<li>To prevent your data from being used by Google Analytics, you can install <a
href="https://tools.google.com/dlpage/gaoptout">Google's opt-out browser add-on</a>.
</li>
<li>You are also free to change your cookie preferences in the settings tab for your browser. The
type of browser and device you are using will determine the control level for cookies you wish
to allow or completely block.
</li>
<li>For information on how our advertising partners allow you to opt out of receiving ads based on
your web browsing history, please visit <a href="https://www.youronlinechoices.eu">https://www.youronlinechoices.eu</a>.
Users in the United States should please visit <a href="http://optout.aboutads.info/">http://optout.aboutads.info/</a>.
</li>
</ul>
</li>
</ol>
<p><b>Any Cookies that are utilized will not contain personally identifying information such as your email address
and
they do not track your activity outside of our websites. </b></p>
<p><b>Information Collected on Social Media or Blogs: </b>We may collect information on our blog via our
websites or through our social media accounts, including but not limited to Facebook, Reddit and Twitter.
Any communication you provide to us on external social media accounts is done at your own risk and without
guarantee of privacy. If you post a comment on one of our blogs or websites, please contact us if you want
it deleted.</p>
<p><b>External Links: </b>Our Services may contain links to other websites or other services of interest.
We are not responsible for the content or material on any website that we link to, as these external sites
and services are governed by their own terms and privacy policies.</p>
<h2>Bandwidth Utilized &amp; Free Versions.</h2>
<p>We measure the amount of bandwidth utilized by users of the Services. Free versions may have a limited data
transfer amount. Subscribers that paid for Services will be provided with unlimited data transfer. The total
sum of data transferred is not identifiable for a user's behavior. We measure bandwidth utilized in order to
improve our services. We do not log any data sent over the connections.</p>
<h2>Use of Information</h2>
<p>We combine the information we collect about you and use this information for various purposes, including
to:</p>
<ul>
<li>Provide and improve our products and services;</li>
<li>Process your transactions;</li>
<li>Send you technical notices and support and administrative messages;</li>
<li>Communicate with you about products, services, promotions, events and other news and information we
think will be of interest to you;
</li>
<li>Personalize our Services, including by providing content or features we think will be of interest to
you;
</li>
<li>Facilitate contests and promotions and process and deliver prizes;</li>
<li>Monitor and analyze trends and usage in connection with our Services;</li>
<li>Detect and prevent fraudulent transactions and other illegal activities, comply with our legal
obligations and protect the rights and property of Privado and others; and
</li>
<li>Carry out any other purpose described to you at the time the information was collected.</li>
</ul>
<h2>Disclosure of Information</h2>
<p>We only disclose the limited data we have on record (i.e., email address &amp; username) when compelled by
the Swiss authorities. Data requests from foreign authorities must be approved by the Swiss authorities.</p>
<p>Under the laws of Switzerland, we are required to notify the targets of a surveillance request. Such
notification may come from Swiss authorities if not directly from Us.</p>
<p class="underline fs-20"><b>We are unable to supply any information for requests related to a PrivadoVPN user's
browsing history, traffic destination, data content, IP addresses, or DNS queries. This information does not
exist.</b></p>
<h2>Right to Access, Rectification, Portability and Erasure</h2>
<p>You can directly access, delete, edit or export personal data processed by us in your use of the Services.
You can also email our support team at <a href="mailto:support@privado.io">support@privado.io</a> to make a
request.</p>
<h2>Data Retention</h2>
<p>We store the information we collect about you for as long as necessary for the purposes for which we
originally collected it. We may retain certain information for legitimate business purposes or as required
by the laws of Switzerland.</p>
<h2>Data Security</h2>
<p>Data Security is a core pillar of our business. Our infrastructure and secure servers are contained in fully
locked and 24-7 monitored data facilities that are best in class.</p>
<p>Even if a regulatory authority physically seizes a PrivadoVPN server (assuming it could break the disk
encryption) there would be no logs or information that could be tied an individual user.</p>
<h2>Changes to this Policy</h2>
<p><span>We reserve the right to review and change this Policy at any time. We will notify users about any such changes. Continued use of our Services will be deemed as acceptance of such changes.</span>
</p>
</div>
</body>
</html>
+274
View File
@@ -0,0 +1,274 @@
<!DOCTYPE html>
<html lang="en">
<style>
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff
}
h1, h2, h3, h4, h5, h6 {
margin-top: .5rem;
margin-bottom: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem
}
dl, ol, ul {
margin-top: 0;
margin-bottom: 1rem
}
ol ol, ol ul, ul ol, ul ul {
margin-bottom: 0
}
b, strong {
font-weight: bolder
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent
}
a:hover {
color: #0056b3;
text-decoration: underline
}
a:not([href]) {
color: inherit;
text-decoration: none
}
a:not([href]):hover {
color: inherit;
text-decoration: none
}
.container {
margin: auto;
padding-right: 15px;
padding-left: 15px;
}
@media (min-width: 768px) {
.container {
width: 750px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
.privacy-policy {
color: #606b9f;
background-color: #00082c;
font-family: 'Open Sans', sans-serif;
font-weight: 400;
}
.bold {
font-weight: 700;
}
.underline {
text-decoration: underline;
}
.fs-20 {
font-size: 20px;
}
.disc {
list-style-type: circle;
}
</style>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap" rel="stylesheet">
<body class="privacy-policy">
<div class="container ">
<h1>PrivadoVPN Privacy Policy</h1>
<h2>Last Updated: <span>July 8, 2021</span></h2>
<h2>PrivadoVPN Key Privacy Facts</h2>
<ul class="bold">
<li>We do not store any data about what any specific user browsed or accessed through a PrivadoVPN connection.
</li>
<li>We are not able to connect activity originating from an IP address from our VPN servers to activity
conducted by an individual user.
</li>
<li>We encrypt all data over our VPN connections, and we do not inspect or record the contents of what you are
viewing, browsing or doing through the PrivadoVPN connections.
</li>
<li>We ensure that we never log browsing history, traffic destination, data content, IP addresses, or DNS
queries.
</li>
<li>We will never sell your data to any third parties.</li>
</ul>
<p>The PrivadoVPN Privacy Policy ("Policy") applies to the applications, websites and online products and services
(the "Services") provided by Privado Networks AG ("we"). By visiting our websites or creating an account to use
our Services and ticking the "I agree"-box, you agree to this Policy. If you do not agree to this Policy, you
may not use our Services.</p>
<p>This Policy informs the customers and users ("you" or "user") of our Services of how we collect, process and
store personal data. We strive to collect only the minimal data required to provide the Services.</p>
<h2>Data Controller:</h2>
<p>Privado Networks AG in Zug, Switzerland, is the controller for the data processing pursuant to this Policy. You
can notify us of any data protection related concerns using <a class="underline"
href="mailto:support@privado.io">support@privado.io</a>.
</p>
<h2>Data that we collect (data that you provide to us):</h2>
<ol>
<li><strong>Account Creation:</strong> We collect minimal data when you create an account. This is data that you
provide to us, including your email address and your username.
</li>
<li><strong>Payment Information:</strong> We use third party payment processors to facilitate payment for the
Services. These third party payment processors are located in Switzerland and the EU. If you utilize a
credit card, this information will be collected by the payment processor. We do not collect or store your
credit card number. The specific information collected varies based on your choice of payment method. We
recommend using Bitcoin when subscribing to our Services for maximum security.
</li>
<li><strong>Support:</strong> We do collect and keep data that you share with us regarding support issues or
customer requests. We may use third parties for support reporting purposes.
</li>
</ol>
<h2>How we use data that you provide to us:</h2>
<ol>
<li>To communicate with you regarding support issues and to send you technical notices.</li>
<li>To communicate with you regarding billing issues and to send you administrative messages.</li>
<li>To communicate with you and send you information about products, updates, services, promotions, events,
contests and other news regarding the Services we think will be of interest to you and announcements
regarding the Services.
</li>
</ol>
<p>You may opt out from receiving any marketing or promotional emails by following the opt-out procedures that are
explained in the email. Alternatively, you may go to <a class="underline" href="mailto:support@privado.io">support@privado.io</a>
opt out of our internal marketing or promotional emails.</p>
<h2>Data we collect automatically when you use our Services</h2>
<p>When you use our Services, we may collect the following information:</p>
<ol>
<li><strong>Mobile Applications:</strong> We collect information regarding which application version(s) you have
activated for troubleshooting and assisting with support issues. We may also collect anonymous, aggregate
statistics, such as the type of operating systems and devices that are most commonly used, including total
number of installs, total number of uninstalls and the number of active users over a period of time.
</li>
<li><strong>Mobile Analytics Software:</strong> We use self-hosted Sentry crash reporting tools to send us crash
reports so we can provide bug fixes and address technical issues rapidly.
</li>
<li><strong>Mobile Identifiers:</strong> We use mobile identifiers provided by iOS and Android devices. These
identifiers do not contain your email address or name. Mobile identifiers provide us with statistics related
to marketing or channel partners. Users may turn-off or reset Mobile Identifiers at any time. iOS users
should review Apple's support page at <a href="https://support.apple.com/en-us/HT205223">https://support.apple.com/en-us/HT205223</a>.
Android users should review Google's support page at <a
href="https://support.google.com/android/answer/3118621?hl=en">https://support.google.com/android/answer/3118621?hl=en</a>.
</li>
</ol>
<p><strong>Please note that the anonymized mobile applications data is fully anonymized and is unable to be tied to
a user of our Services. We collect the information to provide a fast and secure experience.</strong></p>
<ol start="4">
<li>
<strong> Information collected by Cookies:</strong>
<ul class="disc">
<li>Cookies are small files that store and provide information about your visit to our websites. We use
cookies to improve the user experience of our website. We use analytics providers, like Google,
which set cookies when you visit our websites.
</li>
<li>We use cookies for a number of reasons, like helping us see which features are most popular,
counting visitors to a page, improving our users' experience, keeping our services secure, and
generally providing you with a better experience.
</li>
<li>To prevent your data from being used by Google Analytics, you can install <a
href="https://tools.google.com/dlpage/gaoptout">Google's opt-out browser add-on</a>.
</li>
<li>For information on how our advertising partners allow you to opt out of receiving ads based on your
web browsing history, please visit <a href="https://www.youronlinechoices.eu">https://www.youronlinechoices.eu</a>.
Users in the United States should please visit <a href="http://optout.aboutads.info/">http://optout.aboutads.info/</a>.
</li>
</ul>
</li>
</ol>
<p><strong>Any Cookies that are utilized will not contain personally identifying information such as your email
address and they do not track your activity outside of our websites.</strong></p>
<p><strong>Information collected on social media or blogs:</strong> We may collect information on our blog via our
websites or through our social media accounts, including but not limited to Facebook, Reddit and Twitter. Any
communication you provide to us on external social media accounts is done at your own risk and without guarantee
of privacy. If you post a comment on one of our blogs or websites, please contact us if you want it deleted.</p>
<p><strong>External links:</strong> Our Services may contain links to other websites or other services of interest.
We are not responsible for the content or material on any website that we link to, as these external sites and
services are governed by their own terms and privacy policies.</p>
<h2>Bandwidth utilized & free versions</h2>
<p>We measure the amount of bandwidth utilized by users of the Services. Free versions may have a limited data
transfer amount. Subscribers that paid for Services will be provided with unlimited data transfer. The total sum
of data transferred is not identifiable for a user's behavior. We measure bandwidth utilized in order to improve
our services. We do not log any data sent over the connections.</p>
<h2>Combination and further use of data</h2>
<p>We combine the data we collect about you and use this information for various purposes, including to:</p>
<ul>
<li>provide and improve our products and services;</li>
<li>process your transactions;</li>
<li>send you technical notices and support and administrative messages;</li>
<li>communicate with you about products, services, promotions, events and other news and information we think
will be of interest to you;
</li>
<li>personalize our Services, including by providing content or features we think will be of interest to you;
</li>
<li>facilitate contests and promotions and process and deliver prizes;</li>
<li>monitor and analyze trends and usage in connection with our Services;</li>
<li>detect and prevent fraudulent transactions and other illegal activities, comply with our legal obligations
and protect the rights and property of Privado and others; and
</li>
<li>carry out any other purpose described to you at the time the information was collected.</li>
</ul>
<h2>Disclosure of data</h2>
<p>We only disclose the limited data we have on record (i.e., email address & username) when compelled by the Swiss
authorities. Data requests from foreign authorities must be approved by the Swiss authorities.</p>
<p class="underline fs-20"><strong>We are unable to supply any information for requests related to a PrivadoVPN
user's browsing history, traffic destination, data content, IP addresses, or DNS queries. This information does
not exist.</strong></p>
<h2>Right to access, rectification, object, portability and erasure</h2>
<p>You can directly access, delete, edit or export personal data processed by us in your use of the Services or
object to our processing of your data. You can also email our support team at <a
href="mailto:support@privado.io">support@privado.io</a> to make a request.</p>
<h2>Data retention</h2>
<p>We store the data we collect about you for as long as necessary for the purposes for which we originally
collected it. We may retain certain information for legitimate business purposes or as required by the laws of
Switzerland. The data is stored in Switzerland and the EU.</p>
<h2>Data security</h2>
<p>Data security is a core pillar of our business. Our infrastructure and secure servers are contained in fully
locked and 24-7 monitored data facilities that are best in class.</p>
<p>Even if a regulatory authority physically seizes a PrivadoVPN server (assuming it could break the disk
encryption) there would be no logs or information that could be tied an individual user.</p>
<h2>Changes to this Policy</h2>
<p><strong>We reserve the right to review and change this Policy at any time. We will notify users about any such
changes. Continued use of our Services will be deemed as acceptance of such changes.</strong></p>
</div>
</body>
</html>
+1 -1
View File
@@ -34,7 +34,7 @@
<key>LSRequiresIPhoneOS</key>
<true/>
<key>PRIVADO_BUILD_TIMESTAMP</key>
<string>2021-07-09</string>
<string>2021-07-15</string>
<key>UIAppFonts</key>
<array>
<string>SF-Pro-Text-Semibold.otf</string>
@@ -14,15 +14,7 @@ import AppCenterCrashes
final class AppCenterLogger: EventCometLoggerProtocol {
init() {
#if os(macOS)
#if INTERNAL
MSAppCenter.start("430b7e48-a17b-475a-89e6-0f2d0ffb5e43", withServices: [MSAnalytics.self, MSCrashes.self])
#else
MSAppCenter.start("85703fa1-c9fc-4f84-9373-605c11f310bf", withServices: [MSAnalytics.self, MSCrashes.self])
#endif
#else
MSAppCenter.start("ebaa632a-cee6-462b-a321-bb086b5e4cef", withServices: [MSAnalytics.self, MSCrashes.self])
#endif
AppCenter.start(withAppSecret: "ebaa632a-cee6-462b-a321-bb086b5e4cef", services: [Analytics.self, Crashes.self])
}
func event(name: String, attributes: [String: Any], secured: [String: Any]?) {
@@ -47,7 +39,7 @@ final class AppCenterLogger: EventCometLoggerProtocol {
guard let event = eventName else { return }
MSAnalytics.trackEvent(event,
Analytics.trackEvent(event,
withProperties: attributes.mapValues({ value -> String in String(describing: value) }))
}
@@ -61,7 +61,7 @@ final class PrivacyPolicyViewForm: UIView {
self.webview.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0)
])
let url = Bundle.main.url(forResource: "index", withExtension: "html")
let url = Bundle.main.url(forResource: "privacy-policy", withExtension: "html")
self.webview.load(URLRequest(url: url!))
self.webview.navigationDelegate = self
self.webview.scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)
@@ -61,7 +61,7 @@ final class TermsOfServiceViewForm: UIView {
self.webview.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0)
])
let url = Bundle.main.url(forResource: "index1", withExtension: "html")
let url = Bundle.main.url(forResource: "terms-of-service", withExtension: "html")
self.webview.load(URLRequest(url: url!))
self.webview.navigationDelegate = self
self.webview.scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)
@@ -130,18 +130,22 @@ final class ServerListPresenter {
@discardableResult
private func calculateBestRecord(for records: [ServerLocationRecord]?, current location: GeoLocation?) -> ServerLocationRecord? {
#if os(iOS)
if let vpn = Session.shared().currentVPN, vpn.state == .connected {
if let bestLocation = Session.shared().bestLocation {
return bestLocation
}
}
#endif
guard let records = records else { return nil }
if let bestLatencyRecord = self.getBestLatencyRecord(from: records) {
Session.shared().bestLocation = bestLatencyRecord
return bestLatencyRecord
}
typealias BestRecord = (ServerLocationRecord?, Haversine.Distance)
guard let records = records
, let location = location
guard let location = location
, let latitude = Double(location.lat)
, let longitude = Double(location.long) else { return nil }
@@ -162,13 +166,26 @@ final class ServerListPresenter {
}
#if os(iOS)
Session.shared().bestLocation = bestRecord.0
#endif
return bestRecord.0
}
private func getBestLatencyRecord(from records: [ServerLocationRecord]) -> ServerLocationRecord? {
records.reduce(into: nil) { (result, record) in
guard let city = record.city, let latency = self.cityLatencyBest[city] else {
return
}
guard let resultCity = result?.city, let resultLatency = self.cityLatencyBest[resultCity] else {
result = record
return
}
if latency < resultLatency {
result = record
}
}
}
private func searchRecord(for server: Server, in records: [ServerLocationRecord]?) -> ServerLocationRecord? {
guard let records = records else { return nil }
return records.first(where: { $0.servers?.contains(server) ?? false })
@@ -286,16 +303,16 @@ final class ServerListPresenter {
self.updateServerRecords()
self.pingServers(of: self.serverRecords) { [weak self] in
// Update GEO
self?.output?.current(location: result.geoLocation)
self?.viewInput?.reload(collapsing: false)
self?.preselectServer(with: result.geoLocation)
self?.updateView(isBest: false)
self?.connectToSelectedIfNeeded()
}
// Update GEO
self.output?.current(location: result.geoLocation)
self.preselectServer(with: result.geoLocation)
self.updateView(isBest: false)
self.connectToSelectedIfNeeded()
}
private func preselectServer(with geoLocation: GeoLocation?) {
@@ -324,6 +341,10 @@ final class ServerListPresenter {
self.selectedRecord = self.bestRecord
}
if !self.selectedRecord.isExist {
self.selectedRecord = self.connectableRecords?.filter { $0.city.isExist }.first
}
let country = self.selectedRecord?.country ?? "null"
let city = self.selectedRecord?.city ?? "null"
@@ -29,7 +29,7 @@ class ServerLocationCell: UITableViewCell {
static let pinImageHeight: CGFloat = 25
static let pinImageWidth: CGFloat = 18
static let latencyImageRight: CGFloat = 82
static let latencyImageSize: CGFloat = 22
static let latencyImageSize = CGSize(width: 14, height: 12)
static let imagePinLocation = "pinLocation"
static let imageBestLocation = "bestLocation"
@@ -278,8 +278,8 @@ extension ServerLocationCell {
self.addSubview(self.latencyImageView)
self.latencyImageView.isHidden = true
NSLayoutConstraint.activate([
self.latencyImageView.widthAnchor.constraint(equalToConstant: Constants.latencyImageSize),
self.latencyImageView.heightAnchor.constraint(equalToConstant: Constants.latencyImageSize),
self.latencyImageView.widthAnchor.constraint(equalToConstant: Constants.latencyImageSize.width),
self.latencyImageView.heightAnchor.constraint(equalToConstant: Constants.latencyImageSize.height),
self.latencyImageView.centerYAnchor.constraint(equalTo: self.centerYAnchor),
self.latencyImageView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -Constants.latencyImageRight)
])
+2 -2
View File
@@ -20,10 +20,10 @@ packages:
majorVersion: 5.2.2
AppCenterAnalytics:
url: https://github.com/microsoft/appcenter-sdk-apple.git
majorVersion: 3.3.4
majorVersion: 4.2.0
AppCenterCrashes:
url: https://github.com/microsoft/appcenter-sdk-apple.git
majorVersion: 3.3.4
majorVersion: 4.2.0
targets:
+2 -2
View File
@@ -20,10 +20,10 @@ packages:
majorVersion: 5.2.2
AppCenterAnalytics:
url: https://github.com/microsoft/appcenter-sdk-apple.git
majorVersion: 3.3.4
majorVersion: 4.2.0
AppCenterCrashes:
url: https://github.com/microsoft/appcenter-sdk-apple.git
majorVersion: 3.3.4
majorVersion: 4.2.0
targets: