Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add General Terms and Conditions and Privacy Policy for visitors screens #226

Merged
merged 3 commits into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add app privacy policy viewer to start screen
  • Loading branch information
kropp committed Jan 16, 2025
commit 3deefa5155295d0addd694c2ad314d62641b705c
301 changes: 301 additions & 0 deletions shared/src/commonMain/composeResources/files/app-privacy-policy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,301 @@
**KotlinConf App Privacy Policy**

Version 1.1, effective from <span class="mark">February 28, 2024</span>

In this KotlinConf App Privacy Policy (“Privacy Policy”), we describe
the types of data, including Personal Data (collectively, "data"), that
we and our associated companies collect from you when you use the
KotlinConf app and the functionalities and services it offers
(collectively, the "App"), how we and our associated companies use and
disclose that data, and your options to access or update your data.

The data controllers are JetBrains Expo B.V. with its business address
at Huidekoperstraat 26, 1017 ZM, the Netherlands, and [<u>its associated
companies</u>](https://www.jetbrains.com/company/contacts/#headquarters-international-sales):
JetBrains N.V., JetBrains s.r.o. and JetBrains GmbH.

JetBrains and its associated companies act as joint data controllers,
who are jointly responsible for compliance with data protection
legisla<span class="mark">tion. JetBrains Expo B.V. i</span>s primarily
responsible for exercising the rights of data subjects and providing
information about data processing.

**Definitions**

The following definitions are used throughout this Privacy Policy:

**JetBrains Website**. The website of JetBrains which can be found on
[<u>https://www.jetbrains.com/</u>](https://www.jetbrains.com/).

**KotlinConf**. The official event by
[<u>JetBrains</u>](https://www.jetbrains.com/) under the name KotlinConf
of which more information can be directly found on the website
[<u>https://kotlinconf.com/</u>](https://kotlinconf.com/).

**Personal Data** means any data relating to an identified or
identifiable natural person.

All other capitalized terms used in this Privacy Policy shall have the
same meaning as defined in article 4 GDPR (such as personal data,
controller, processor, data subject, and others), unless defined
otherwise in this definition clause.

**Why We Collect Data and What We Collect**

We collect data for various reasons as reflected in our [<u>general
Privacy
Policy</u>](https://www.jetbrains.com/legal/docs/privacy/privacy/) which
can be found on the JetBrains Website, but for this App specifically we
collect data for only the following reasons:

a) **To provide you with the basic functionalities of the App.** Upon
your (re-)installation of the App we generate and collect a random ID,
which is required to provide you with the basic functionalities of this
App, such as in any case the account management (used for the setup or
management of a user’s account) and other processing connected with the
use of this App. Please note that we do not collect, store or process
any Personal Data, such as your Device ID, so we can’t trace the random
ID back to any device or person. We use [<u>Google
Cloud</u>](https://cloud.google.com/terms/cloud-privacy-notice)
<u>Platform</u>, as third party service provider, acting as a data
processor, to assist us in hosting and providing the App to you or in
our operations. The legal basis for this data processing is the
performance of a contract between you and us.

b) **To improve the App and KotlinConf.** We may collect anonymous data
based on your use of the App and we may use feedback that you provide
voluntarily through the App, in particular on the talks during
KotlinConf, as applicable. We use such data to better understand the
usage patterns of the App, the options it provides and the behavior,
preferences and feedback of our KoltinConf audience. Collection of data
based on your use of the App and feedback that you provide voluntarily
through the App is done anonymously but if you decide to share any
Personal Data in your feedback the legal basis for this data processing
shall be your consent.

Categories of data involved in data processing include:

- generated random ID,

- data about usage of the App and services,

- votes, comments, voluntarily provided feedback, and any data provided
in survey responses,

Where appropriate, we will prompt you to give us your consent to the
collection and processing of your data as described above. This will in
any case happen within the App upon your first use of it, in a clear and
conspicuous manner. You can manage your Personal Data and opt-outs as
described in the Transparency section below.

**Your Privacy Choices And Rights**

Your Privacy Choices. The privacy choices you may have about your
Personal Data are determined by applicable law and are described below.

● Mobile Devices. We may send push notifications through the App. You
may opt out from receiving these push notifications by changing the
settings on your mobile device.

Please note you must separately opt out in each browser and on each
device.

**Children**

This App is not designed for and is not offered to children under the
age of 16. If we discover that a person under the age of 16 has
submitted information directly to us, we will endeavor to delete the
information from our systems.

**Transparency**

To respect your privacy, before using your Personal Data we will inform
you about the categories of Personal Data we collect and the purposes we
use them for. We will also inform you about the data management options
that you may have. For this purpose, we use this Privacy Policy and the
Terms of Use found in the App. In this case, the App does not collect,
store or process any Personal Data. Should you wish to get more detailed
information on this topic, please do not hesitate to contact us.

**Sharing**

Collected Personal Data are shared based on this Privacy Policy.
Additionally, we share collected Personal Data within the JetBrains
group of companies described above, which act as joint data controllers
and process Personal Data for the purposes described above.

We may share your Personal Data with [<u>Google Cloud Platform</u> which
third party hosts and helps us provide you with this
App.](https://cloud.google.com/terms/cloud-privacy-notice)

We may also share your Personal Data with certain third parties if we
are obliged to do so under applicable legislation (especially with tax
authorities or with other government bodies exercising their statutory
powers) or if such sharing is necessary to achieve the purposes defined
above (especially with government bodies or with parties harmed as a
result of violations of applicable laws).

To adhere to the requirements of the California Consumer Privacy Act
(CCPA), we hereby notify you that JetBrains will not a) retain, use,
sell, or otherwise disclose any Personal Data for any purpose other than
to provide the App; or b) retain, use, sell, or disclose such Personal
Data outside of the direct relationship between you and JetBrains; or c)
use Personal Data other than as described within this Privacy Policy.

**Security**

We take steps to ensure that your information is treated securely and in
accordance with this Privacy Policy. To secure your Personal Data, this
App is designed with security and privacy in mind. Unfortunately, no
system is 100% secure, and we cannot ensure or warrant the security of
any information you provide to us. To the fullest extent permitted by
applicable law, we do not accept liability for unauthorized access,
acquisition, use, disclosure, or loss of personal information.

We encrypt your data in transfer and at rest where it is technically
feasible. External web resources are protected by SSL encryption.

We review the processes of Personal Data usage before implementing them.
This is done to minimize data usage and to make sure that you as the
data owner are informed about the processing. When the reason for data
storage expires, we remove your Personal Data from our servers or
anonymize it for further usage. By the nature of the activity within
which your data is collected, in particular when using the App to
provide feedback. it may appear in our internal datasets used for
researching the results of the voting. Before using the datasets for
research or other purposes you are not informed of, we remove or
anonymize your Personal Data in the datasets.

We are using [<u>Google
Cloud</u>](https://cloud.google.com/terms/cloud-privacy-notice)
<u>Platform</u> as a third party to host the App and to process your
data in accordance with this Privacy Policy. While choosing the
partners, we ascertain their compliance with legal regulations and
security standards to make sure your data are stored in a secure
location with appropriate security measures in place.

**Location of Your Information**

Any servers or services of the App that contain Personal Data are
located within the EU. At times, JetBrains may process or transfer some
of your Personal Data to our affiliate companies outside of the EU. Any
such transfer will be made in accordance with the applicable laws on
data protection and this Privacy Policy and will be based on a relevant
adequacy decision of the European Commission, especially on standard
data protection clauses.

**Third-Party Links**

The App may contain links to other websites/applications and other
websites/applications may reference or link to our App. These
third-party services are not controlled by us. We encourage our users to
read the privacy policies of each website and application with which
they interact. We do not endorse, screen, or approve, and are not
responsible for, the privacy practices or content of such other websites
or applications. Providing personal information to third-party websites
or applications is at your own risk.

**Data Retention, Withdrawal of Approval, Access to Data and Your
Rights**

As the App does not collect, store or process any Personal Data, there
is no Personal Data that needs to be removed from our servers if you
choose to cease using this App at any time. Generally, we retain your
Personal Data as long as we need to in order to achieve the purpose for
which it was collected. We may retain your information if it is required
to comply with legal obligations and/or defense in case of violation of
any JetBrains terms of use and/or Privacy Policies. We may also have
copies of your information in application logs, weblogs, and/or backups
made for security and support purposes or consent text accepted before
the Personal Data collection. These backups will not be accessible as
separately delineated information. We may store Personal Data as
reflected above for as long as you are using the App and/or for as long
as you have it installed on your device. Further, we may keep the data
to protect ourselves from damage in case of litigation in accordance
with the current legislation. Please note, however, that you must retain
a copy of all data that you have placed on our servers in the case of
any loss; further, if you cease using our software and/or services, we
will not be responsible for the retention of any of your data.

If applicable, you are responsible for the correctness of the Personal
Data you provide to us. We expect you to check the Personal Data you
provide to us and if any inconsistency takes place, update your Personal
Data or report the inconsistency to JetBrains.

As permitted by applicable law, EU residents may request a copy of the
information that we hold about them. As we do not collect, store or
process any Personal Data with the App we do not hold any information
about you.

Moreover, as set out in locally applicable Personal Data protection law,
you may have the right to: (i) request access to your Personal Data;
(ii) request rectification of your Personal Data; (iii) request erasure
of your Personal Data; (iv) request a restriction on the processing of
your Personal Data; (v) request Personal Data portability; or (vi)
object to the processing of your Personal Data. Please note that as we
do not collect, store or process any Personal Data with the App, some of
the rights can’t be exercised.

- **Right of Access.** You may have the right to obtain from us a
confirmation as to whether or not Personal Data concerning you are
being processed, and, where that is the case, to request access to
your Personal Data. The information about Personal Data processing
includes the purposes of the processing, the categories of Personal
Data concerned, and the recipients or categories of recipients to whom
your Personal Data have been or will be disclosed, etc. However, this
is not an absolute right and the interests of other individuals may
restrict your right of access. Further, you may have the right to
obtain a copy of your Personal Data undergoing processing. For
additional copies requested, we may charge a reasonable fee based on
administrative costs.

- **Right to Rectification.** You may have the right to obtain from us
the rectification of inaccurate Personal Data. Depending on the
purposes of the processing, you may have the right to have incomplete
Personal Data made complete, in particular by providing a
supplementary statement.

- **Right to Erasure (Right to Be Forgotten).** Under certain
circumstances, you may have the right to require us to delete your
Personal Data.

- **Right to a Restriction of Processing.** Under certain circumstances,
you may have the right to require us to restrict the processing of
your Personal Data. In this case, the respective Personal Data will be
marked and may only be processed by us for certain purposes.

- **Right to Personal Data portability.** Under certain circumstances,
you may have the right to receive the Personal Data concerning you,
which you have provided to us, in a structured, commonly used, and
machine-readable format, and to transmit these Personal Data to
another entity.

- **Right to Object.** Under certain circumstances, you may have the
right to object, on grounds relating to their particular situation, at
any time to the processing of your Personal Data by us and we can be
required to no longer process your Personal Data.

Where applicable, these rights can be exercised via the email
address [[email protected]]([email protected]).

You may also contact JetBrains to get up-to-date information about your
Personal Data processing and any Personal Data recipients.

You may lodge a complaint related to the processing of your personal data with the competent data protection supervisory authority, i.e. in the Netherlands the Authority Personal Data (*Autoriteit Persoonsgegevens*), with its visiting address at Hoge Nieuwstraat 8, 2514 EL Den Haag. For more information, please visit [<u>https://autoriteitpersoonsgegevens.nl</u>](https://autoriteitpersoonsgegevens.nl).

**Changes to this Policy**

This Privacy Policy is current as of the Effective Date set forth above.
We may change this Privacy Policy from time to time, so please be sure
to check back periodically. We will post any changes to this Privacy
Policy in the App. If we make any changes to this Privacy Policy that
materially affect our practices with regard to the Personal Data we have
previously collected from you, we will endeavor to provide you with an
advance notice of such change by highlighting the change upon your
subsequent use of the App.

**Reaching out**

If you have any questions or concerns, or you feel that this Privacy
Policy has been violated in any way, please let us know immediately by
contacting [[email protected]]([email protected]).
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,15 @@ import kotlinconfapp.shared.generated.resources.privacy_policy_title
import kotlinconfapp.ui_components.generated.resources.Res
import kotlinconfapp.ui_components.generated.resources.arrow_left_24
import kotlinconfapp.ui_components.generated.resources.arrow_right_24
import org.jetbrains.compose.resources.ExperimentalResourceApi
import org.jetbrains.compose.resources.stringResource
import org.jetbrains.compose.resources.vectorResource
import org.jetbrains.kotlinconf.ui.components.Action
import org.jetbrains.kotlinconf.ui.components.ActionSize
import org.jetbrains.kotlinconf.ui.components.Button
import org.jetbrains.kotlinconf.ui.components.Divider
import org.jetbrains.kotlinconf.ui.components.MainHeaderTitleBar
import org.jetbrains.kotlinconf.ui.components.MarkdownView
import org.jetbrains.kotlinconf.ui.components.SettingsItem
import org.jetbrains.kotlinconf.ui.components.StyledText
import org.jetbrains.kotlinconf.ui.components.TopMenuButton
Expand Down Expand Up @@ -92,8 +94,13 @@ fun StartPrivacyPolicyScreen(
thickness = 1.dp,
color = KotlinConfTheme.colors.strokePale,
)
// TODO add actual text of the privacy policy
StyledText("Privacy policy text goes here")
MarkdownView(
loadText = {
@OptIn(ExperimentalResourceApi::class)
AppRes.readBytes("files/app-privacy-policy.md")
},
modifier = Modifier.padding(horizontal = 12.dp).verticalScroll(rememberScrollState())
)
Spacer(Modifier.weight(1f))
Divider(
thickness = 1.dp,
Expand Down