Skip to content

Commit

Permalink
1.0.9(19) (#14)
Browse files Browse the repository at this point in the history
* update dependencies

* add kotlin dependency to avoid errors

* Enable code shrinking, obfuscation, and optimization for release.

* set sdk_version = 32

* add contentDescription for TabLayout

* upgrade to compile_sdk_version = 33

* Add image links (not used)

* Use java 17 for data layer
  • Loading branch information
Turskyi authored May 22, 2023
1 parent 2e59d78 commit 1fded6f
Show file tree
Hide file tree
Showing 20 changed files with 362 additions and 158 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/android_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Set up JDK environment(JDK 11)
uses: actions/setup-java@v1.4.3
with:
java-version: 11
java-version: 17

- name: Generate Release APK
run: ./gradlew assembleRelease
Expand Down
103 changes: 52 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# sense.of.silence & Zigmund Afraid [![Codemagic build status](https://api.codemagic.io/apps/60d07948ab5163f7f1fb5066/release-workflow/status_badge.svg)](https://codemagic.io/apps/60d07948ab5163f7f1fb5066/release-workflow/latest_build)
# sense.of.silence & Zigmund Afraid

[![Codemagic build status](https://api.codemagic.io/apps/60d07948ab5163f7f1fb5066/release-workflow/status_badge.svg)](https://codemagic.io/apps/60d07948ab5163f7f1fb5066/release-workflow/latest_build)

Online Music Player for particular Music Band "відчуття.тиші" (where I used to play on piano), with
an opportunity to listen to almost all their songs online.
Expand All @@ -24,9 +26,7 @@ after every push to the **dev** branch,
[Codemagic](https://codemagic.io/start/) is used to deliver new release app bundle to **Google
Play** after every push to **master** branch;

• Architectural pattern: [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel)
and
[Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html);
• Architectural pattern: [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel);

• Architecture Components:
[LiveData](https://developer.android.com/topic/libraries/architecture/livedata),
Expand Down Expand Up @@ -59,30 +59,29 @@ no unused variables or methods, no commented out code.

**Screenshots:**

<img src="/screenshots/bonus-2021-11-01.png?raw=true" width="200" ><img src="/screenshots/home-2021-11-01.png?raw=true" width="200" >
<img src="/screenshots/za-2021-11-01.png?raw=true" width="300" ><img src="/screenshots/zombi-2021-11-01.png?raw=true" width="200" >
<img src="screenshots/bonus-2021-11-01.png" width="200" ><img src="screenshots/home-2021-11-01.png" width="200" >
<img src="screenshots/za-2021-11-01.png" width="300" ><img src="screenshots/zombi-2021-11-01.png" width="200" >

## Privacy Policy

Dmytro Turskyi built the Відчуття.Тиші & Zigmund Afraid app as a Free app. This SERVICE is provided
Dmytro Turskyi built the Відчуття.Тиші & Zigmund Afraid app as a free app. This service is provided
by Dmytro Turskyi at no cost and is intended for use as is.

This page is used to inform visitors regarding my policies with the collection, use, and disclosure
of Personal Information if anyone decided to use my Service.

If you choose to use my Service, then you agree to the collection and use of information in relation
to this policy. The Personal Information that I collect is used for providing and improving the
Service. I will not use or share your information with anyone except as described in this Privacy
Policy.
This page is used to inform visitors regarding policies with the collection, use, and disclosure
of personal information if anyone decided to use this service.

The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which
are accessible at Відчуття.Тиші & Zigmund Afraid unless otherwise defined in this Privacy Policy.
If you choose to use this service, then you agree to the collection and use of information in
relation to this policy. The personal information that app collects is used for providing and
improving
the service. App will not use or share your information with anyone except as described in this
privacy policy.

**Information Collection and Use**

For a better experience, while using our Service, I may require you to provide us with certain
personally identifiable information. The information that I request will be retained on your device
and is not collected by me in any way.
For a better experience, while using this service, app may require you to provide with certain
personally identifiable information. The information that app request will be retained on your
device
and is not collected by Dmytro Turskyi in any way.

The app does use third-party services that may collect information used to identify you.

Expand All @@ -94,67 +93,69 @@ Link to the privacy policy of third-party service providers used by the app

**Log Data**

I want to inform you that whenever you use my Service, in a case of an error in the app I collect
data and information (through third-party products) on your phone called Log Data. This Log Data may
include information such as your device Internet Protocol (“IP”) address, device name, operating
system version, the configuration of the app when utilizing my Service, the time and date of your
use of the Service, and other statistics.
You should be informed that whenever you use this service, in a case of an error in the app your
data and information will be collected (through third-party products) on your phone called log data.
This log data may include information such as your device internet protocol (“IP”) address, device
name, operating system version, the configuration of the app when utilizing this service, the time
and date of your use of the service, and other statistics.

**Cookies**

Cookies are files with a small amount of data that are commonly used as anonymous unique
identifiers. These are sent to your browser from the websites that you visit and are stored on your
device's internal memory.

This Service does not use these “cookies” explicitly. However, the app may use third-party code and
This service does not use these “cookies” explicitly. However, the app may use third-party code and
libraries that use “cookies” to collect information and improve their services. You have the option
to either accept or refuse these cookies and know when a cookie is being sent to your device. If you
choose to refuse our cookies, you may not be able to use some portions of this Service.
choose to refuse our cookies, you may not be able to use some portions of this service.

**Service Providers**

I may employ third-party companies and individuals due to the following reasons:
Dmytro Turskyi may employ third-party companies and individuals due to the following reasons:

* To facilitate our Service;
* To provide the Service on our behalf;
* To perform Service-related services; or
* To assist us in analyzing how our Service is used.
* To facilitate this service;
* To provide the service on behalf of Dmytro Turskyi;
* To perform service-related services; or
* To assist us in analyzing how this service is used.

I want to inform users of this Service that these third parties have access to their Personal
Information. The reason is to perform the tasks assigned to them on our behalf. However, they are
obligated not to disclose or use the information for any other purpose.
Users should be informed of this service that these third parties have access to your personal
information. The reason is to perform the tasks assigned to them on Dmytro Turskyi behalf. However,
they are obligated not to disclose or use the information for any other purpose.

**Security**

I value your trust in providing us your Personal Information, thus we are striving to use
Dmytro Turskyi values your trust in providing your personal information, thus he is striving to use
commercially acceptable means of protecting it. But remember that no method of transmission over the
internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its
internet, or method of electronic storage is 100% secure and reliable, and he cannot guarantee its
absolute security.

**Links to Other Sites**

This Service may contain links to other sites. If you click on a third-party link, you will be
directed to that site. Note that these external sites are not operated by me. Therefore, I strongly
advise you to review the Privacy Policy of these websites. I have no control over and assume no
responsibility for the content, privacy policies, or practices of any third-party sites or services.
This service may contain links to other sites. If you click on a third-party link, you will be
directed to that site. Note that these external sites are not operated by Dmytro Turskyi. Therefore,
he strongly advises you to review the privacy policy of these websites. Dmytro Turskyi have no
control over and assume no responsibility for the content, privacy policies, or practices of any
third-party sites or services.

**Children’s Privacy**

These Services do not address anyone under the age of 13. I do not knowingly collect personally
identifiable information from children under 13 years of age. In the case I discover that a child
under 13 has provided me with personal information, I immediately delete this from our servers. If
you are a parent or guardian, and you are aware that your child has provided us with personal
information, please contact me so that I will be able to do the necessary actions.
These services do not address anyone under the age of 13. Dmytro Turskyi do not knowingly collect
personally identifiable information from children under 13 years of age. In the case Dmytro Turskyi
discovers that a child under 13 has provided him with personal information, he immediately will
delete this from server. If you are a parent or guardian, and you are aware that your child has
provided Dmytro Turskyi with personal information, please contact Dmytro Turskyi so that he will be
able to do the necessary actions.

**Changes to This Privacy Policy**

I may update our Privacy Policy from time to time. Thus, you are advised to review this page
periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on
this page.
Dmytro Turskyi may update this privacy policy from time to time. Thus, you are advised to review
this page periodically for any changes. Dmytro Turskyi will notify you of any changes by posting the
new Privacy Policy on this page.

This policy is effective as of 2021-12-01
This policy is effective as of 2023-05-22

**Contact Us**

If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me at
dmitriy.turskiy@gmail.com.
If you have any questions or suggestions about this privacy policy, do not hesitate to contact
Dmytro Turskyi at dmytro.turskyi@gmail.com.
36 changes: 18 additions & 18 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,37 @@
buildscript {
ext {
// sdk versions
compile_sdk_version = 32
compile_sdk_version = 33
build_tools_version = "30.0.3"
min_sdk_version = 21
target_sdk_version = 32
target_sdk_version = 33
/* to check the latest version @see
[https://play.google.com/console/u/0/developers/6867856033872987263/app/4974045020812963921/releases/overview] */
version_code = 18
version_name = "1.0.8"
[
https://play.google.com/console/u/0/developers/6867856033872987263/app/4974045020812963921/releases/overview
]
*/
version_code = 19
version_name = "1.0.9"
}
repositories {
// Google's Maven repository
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
classpath 'com.android.tools.build:gradle:8.0.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "com.google.dagger:hilt-android-gradle-plugin:$hiltVersion"

// Google Services plugin (required for firebase)
classpath 'com.google.gms:google-services:4.3.13'
classpath 'com.google.gms:google-services:4.3.15'

// firebase
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
classpath 'com.google.firebase:perf-plugin:1.4.1'
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.5'
classpath 'com.google.firebase:perf-plugin:1.4.2'
classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0'
}
}
ext {
Expand Down Expand Up @@ -67,16 +70,13 @@ subprojects {
implementation "io.reactivex.rxjava3:rxandroid:$rxAndroidVersion"
implementation "com.github.akarnokd:rxjava3-bridge:$rxAndroidVersion"
implementation "io.reactivex.rxjava3:rxjava:$rxJavaVersion"

// database (Room)
implementation "androidx.room:room-runtime:$roomVersion"
annotationProcessor "androidx.room:room-compiler:$roomVersion"
implementation "androidx.room:room-rxjava2:$roomVersion"
}
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << '-Xmaxerrs' << '500'
tasks.withType(JavaCompile).tap {
configureEach {
options.compilerArgs << '-Xmaxerrs' << '500'
}
}
}
}
Expand All @@ -89,6 +89,6 @@ allprojects {
}
}

task clean(type: Delete) {
tasks.register('clean') {
delete rootProject.buildDir
}
20 changes: 18 additions & 2 deletions data/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ android {

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"

javaCompileOptions {
annotationProcessorOptions {
arguments += [
"room.schemaLocation" : "$projectDir/schemas".toString(),
"room.incremental" : "true",
"room.expandProjection": "true"
]
}
}
}

buildTypes {
Expand All @@ -24,9 +34,10 @@ android {
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
namespace 'io.github.turskyi.data'
}

dependencies {
Expand All @@ -35,6 +46,11 @@ dependencies {
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation "com.google.android.material:material:$materialVersion"

// database (Room)
implementation "androidx.room:room-runtime:$roomVersion"
annotationProcessor "androidx.room:room-compiler:$roomVersion"
implementation "androidx.room:room-rxjava2:$roomVersion"

// test
testImplementation "junit:junit:$junitVersion"
androidTestImplementation "androidx.test.ext:junit:$extJunitVersion"
Expand Down
70 changes: 70 additions & 0 deletions data/schemas/io.github.turskyi.data.database.SongsDatabase/1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "f0a497baf07ad23e6355677d0f98818a",
"entities": [
{
"tableName": "table_songs",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `band` TEXT, `album` TEXT, `name` TEXT, `image_resource_id` INTEGER NOT NULL, `image_resource` TEXT, `audio_link` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "bandName",
"columnName": "band",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "album",
"columnName": "album",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "songName",
"columnName": "name",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "imageResourceId",
"columnName": "image_resource_id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "imageResource",
"columnName": "image_resource",
"affinity": "TEXT",
"notNull": false
},
{
"fieldPath": "audioLink",
"columnName": "audio_link",
"affinity": "TEXT",
"notNull": false
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'f0a497baf07ad23e6355677d0f98818a')"
]
}
}
2 changes: 1 addition & 1 deletion data/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="io.github.turskyi.data" />
<manifest />
Loading

0 comments on commit 1fded6f

Please sign in to comment.