From ff3043fe36f3dcd660a3ac1e7c3f166dda509f19 Mon Sep 17 00:00:00 2001 From: Valentin Date: Sun, 10 Mar 2024 09:27:39 +0000 Subject: [PATCH 1/3] Update dependencies and build tools to latest version --- .gitlab-ci.yml | 89 +++++++++++++++++++ CHANGELOG.md | 20 ++++- app/.gitignore | 2 +- app/build.gradle | 59 ------------ app/build.gradle.kts | 84 +++++++++++++++++ app/proguard-rules.pro | 2 +- app/src/main/AndroidManifest.xml | 48 +++++++--- .../yetanothercallblocker/MainActivity.java | 4 +- .../PermissionHelper.java | 30 +++++-- .../RootSettingsFragment.java | 8 +- .../yetanothercallblocker/Settings.java | 5 ++ build.gradle | 27 ------ build.gradle.kts | 11 +++ gradle.properties | 19 +++- gradle/libs.versions.toml | 58 ++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 1 - settings.gradle.kts | 25 ++++++ 18 files changed, 369 insertions(+), 125 deletions(-) create mode 100644 .gitlab-ci.yml delete mode 100644 app/build.gradle create mode 100644 app/build.gradle.kts delete mode 100644 build.gradle create mode 100644 build.gradle.kts create mode 100644 gradle/libs.versions.toml delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..ba8f7b8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,89 @@ +# To contribute improvements to CI/CD templates, please follow the Development guide at: +# https://docs.gitlab.com/ee/development/cicd/templates.html +# This specific template is located at: +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Android.gitlab-ci.yml + +# Read more about this script on this blog post https://about.gitlab.com/2018/10/24/setting-up-gitlab-ci-for-android-projects/, by Jason Lenny +# If you are interested in using Android with FastLane for publishing take a look at the Android-Fastlane template. + +image: eclipse-temurin:17-jdk-jammy + +variables: + + # ANDROID_COMPILE_SDK is the version of Android you're compiling with. + # It should match compileSdkVersion. + ANDROID_COMPILE_SDK: "34" + + # ANDROID_BUILD_TOOLS is the version of the Android build tools you are using. + # It should match buildToolsVersion. + ANDROID_BUILD_TOOLS: "34.0.0" + + # It's what version of the command line tools we're going to download from the official site. + # Official Site-> https://developer.android.com/studio/index.html + # There, look down below at the cli tools only, sdk tools package is of format: + # commandlinetools-os_type-ANDROID_SDK_TOOLS_latest.zip + # when the script was last modified for latest compileSdkVersion, it was which is written down below + ANDROID_SDK_TOOLS: "11076708" + +# Packages installation before running script +before_script: + - apt-get --quiet update --yes + - apt-get --quiet install --yes wget unzip + + # Setup path as android_home for moving/exporting the downloaded sdk into it + - export ANDROID_HOME="${PWD}/android-sdk-root" + # Create a new directory at specified location + - install -d $ANDROID_HOME + # Here we are installing androidSDK tools from official source, + # (the key thing here is the url from where you are downloading these sdk tool for command line, so please do note this url pattern there and here as well) + # after that unzipping those tools and + # then running a series of SDK manager commands to install necessary android SDK packages that'll allow the app to build + - wget --no-verbose --output-document=$ANDROID_HOME/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip + - unzip -q -d "$ANDROID_HOME/cmdline-tools" "$ANDROID_HOME/cmdline-tools.zip" + - mv -T "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/tools" + - export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/cmdline-tools/tools/bin + + # Nothing fancy here, just checking sdkManager version + - sdkmanager --version + + # use yes to accept all licenses + - yes | sdkmanager --licenses > /dev/null || true + - sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" + - sdkmanager "platform-tools" + - sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" + + # Not necessary, but just for surity + - chmod +x ./gradlew + +# Basic android and gradle stuff +# Check linting +lintDebug: + interruptible: true + stage: build + when: manual + script: + - ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint + artifacts: + paths: + - app/lint/reports/lint-results-debug.html + expose_as: "lint-report" + when: always + +# Make Project +assembleDebug: + interruptible: true + stage: build + script: + - ./gradlew assembleDebug + artifacts: + paths: + - app/build/outputs/ + +# Run all tests, if any fails, interrupt the pipeline(fail it) +debugTests: + needs: [lintDebug, assembleDebug] + when: manual + interruptible: true + stage: test + script: + - ./gradlew -Pci --console=plain :app:testDebug diff --git a/CHANGELOG.md b/CHANGELOG.md index 32ce746..38744c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -## [Unreleased] - -Nothing. +## [1.0.0] - 2024-03-10 + +The project has not been updated from the previous maintainer since 2021. +As I use this app a lot, I will continue to update and distribute this app. +I am not an Android Expert but I will do my best ! + +Cheers + +- Switch to Gradle Kotlin +- Update Android Gradle Plugin to 8.3.0 +- Add support for Kotlin +- Add .gitlab-ci.yml +- Fix some warnings and Manifest +- Update core dependencies to latest version +- Update all libs to latest version +- Do the upgrade path to target Android 14 and do very basic tests +- Bump version ## [0.5.17] - 2021-11-13 diff --git a/app/.gitignore b/app/.gitignore index 796b96d..42afabf 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1 +1 @@ -/build +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index b009dbc..0000000 --- a/app/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'org.greenrobot.greendao' - -android { - compileSdkVersion 30 - defaultConfig { - applicationId "dummydomain.yetanothercallblocker" - minSdkVersion 14 - targetSdkVersion 30 - versionCode 5170 - versionName "0.5.17" - - javaCompileOptions { - annotationProcessorOptions { - arguments = [eventBusIndex: 'dummydomain.yetanothercallblocker.EventBusIndex'] - } - } - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - applicationVariants.all { variant -> - variant.resValue "string", "app_id", variant.applicationId - } - lintOptions { - lintConfig file("lint.xml") - abortOnError false - } -} - -greendao { - schemaVersion 1 -} - -dependencies { - def eventbus_version = '3.2.0' - - implementation 'org.slf4j:slf4j-api:1.7.32' - runtimeOnly 'com.github.tony19:logback-android:2.0.0' - implementation 'org.conscrypt:conscrypt-android:2.5.2' - //noinspection GradleDependency: 3.12.* is the latest version compatible with Android <5 - implementation 'com.squareup.okhttp3:okhttp:3.12.13' - implementation 'com.gitlab.xynngh:LibPhoneNumberInfo:c77bdd2b69' - implementation 'org.apache.commons:commons-csv:1.8' - - implementation 'androidx.appcompat:appcompat:1.3.1' - implementation 'androidx.recyclerview:recyclerview:1.2.1' - implementation 'androidx.recyclerview:recyclerview-selection:1.1.0' - implementation 'androidx.paging:paging-runtime:2.1.2' - implementation 'com.google.android.material:material:1.4.0' - implementation 'androidx.preference:preference:1.1.1' - implementation 'androidx.work:work-runtime:2.6.0' - implementation 'org.greenrobot:greendao:3.3.0' - implementation "org.greenrobot:eventbus:$eventbus_version" - annotationProcessor "org.greenrobot:eventbus-annotation-processor:$eventbus_version" -} diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..fd55c75 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,84 @@ +plugins { + alias(libs.plugins.androidApplication) + alias(libs.plugins.jetbrainsKotlinAndroid) + id("org.greenrobot.greendao") +} + +android { + namespace = "dummydomain.yetanothercallblocker" + compileSdk = 34 + + defaultConfig { + applicationId = "dummydomain.yetanothercallblocker" + minSdk = 14 + targetSdk = 34 + versionCode = 10000 + versionName = "1.0.0" + multiDexEnabled = true + + javaCompileOptions { + annotationProcessorOptions { + argument("eventBusIndex", "dummydomain.yetanothercallblocker.EventBusIndex") + } + } + } + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + + lint { + abortOnError = false + lintConfig = file("lint.xml") + } + + applicationVariants.all { + val variant = this + variant.resValue("string", "app_id", variant.applicationId) + } +} + +greendao { + schemaVersion = 1 +} + +dependencies { + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.androidx.preference) + implementation(libs.androidx.work.runtime) + implementation(libs.androidx.recyclerview) + implementation(libs.androidx.recyclerview.selection) + implementation(libs.androidx.paging) + implementation(libs.androidx.multidex) + implementation(libs.google.material) + implementation(libs.slf4j) + implementation(libs.conscrypt) + implementation(libs.okhttp) + implementation(libs.lib.phone.number.info) + implementation(libs.commons.csv) + implementation(libs.greendao) + implementation(libs.eventbus) + + annotationProcessor(libs.eventbus.annotation.processor) + + runtimeOnly(libs.logback) + + testImplementation(libs.junit) + + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index ac5591e..c2eb94d 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. +# proguardFiles setting in build.gradle.kts. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 639eaeb..bde7af3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,10 @@ + xmlns:tools="http://schemas.android.com/tools"> + + @@ -10,7 +13,11 @@ - + + + @@ -48,7 +55,8 @@ + android:parentActivityName=".MainActivity" + tools:targetApi="jelly_bean"> @@ -57,7 +65,8 @@ android:name=".BlacklistActivity" android:label="@string/title_blacklist_activity" android:launchMode="singleTop" - android:parentActivityName=".MainActivity"> + android:parentActivityName=".MainActivity" + tools:targetApi="jelly_bean"> @@ -65,7 +74,8 @@ + android:parentActivityName=".BlacklistActivity" + tools:targetApi="jelly_bean"> @@ -73,7 +83,8 @@ + android:parentActivityName=".MainActivity" + tools:targetApi="jelly_bean"> @@ -91,7 +102,8 @@ android:autoRemoveFromRecents="true" android:excludeFromRecents="true" android:noHistory="true" - android:theme="@style/DialogBackgroundTheme" /> + android:theme="@style/DialogBackgroundTheme" + tools:targetApi="lollipop" /> + android:theme="@style/DialogBackgroundTheme" + tools:targetApi="n"> @@ -117,7 +130,8 @@ + android:parentActivityName=".MainActivity" + tools:targetApi="jelly_bean"> @@ -127,7 +141,8 @@ android:name=".StartupReceiver" android:directBootAware="true" android:enabled="false" - android:exported="true"> + android:exported="true" + tools:targetApi="n"> @@ -138,7 +153,8 @@ + android:exported="true" + tools:targetApi="n"> @@ -150,12 +166,16 @@ android:description="@string/monitoring_service_description" android:directBootAware="true" android:exported="false" - android:label="@string/monitoring_service_label" /> + android:foregroundServiceType="phoneCall" + android:label="@string/monitoring_service_label" + tools:targetApi="n" /> + android:foregroundServiceType="phoneCall" + android:permission="android.permission.BIND_SCREENING_SERVICE" + tools:targetApi="n"> diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java b/app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java index b788913..e930043 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java +++ b/app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java @@ -129,7 +129,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis PermissionHelper.handlePermissionsResult(this, requestCode, permissions, grantResults, settings.getIncomingCallNotifications(), settings.getCallBlockingEnabled(), - settings.getUseContacts()); + settings.getUseContacts(), settings.getUseNotification()); updateCallLogVisibility(); reloadCallLog(); @@ -203,7 +203,7 @@ public void onSecondaryDbUpdateFinished(SecondaryDbUpdateFinished event) { private void checkPermissions() { PermissionHelper.checkPermissions(this, settings.getIncomingCallNotifications(), settings.getCallBlockingEnabled(), - settings.getUseContacts()); + settings.getUseContacts(), settings.getUseNotification()); } private void startCheckMainDbTask() { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java b/app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java index 1fc9bdb..47c820e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java +++ b/app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java @@ -49,6 +49,7 @@ public class PermissionHelper { private static final Set INFO_PERMISSIONS = new HashSet<>(); private static final Set BLOCKING_PERMISSIONS = new HashSet<>(); private static final Set CONTACTS_PERMISSIONS = new HashSet<>(); + private static final Set NOTIFICATIONS_PERMISSIONS = new HashSet<>(); static { INFO_PERMISSIONS.add(Manifest.permission.READ_PHONE_STATE); @@ -64,15 +65,21 @@ public class PermissionHelper { } CONTACTS_PERMISSIONS.add(Manifest.permission.READ_CONTACTS); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + NOTIFICATIONS_PERMISSIONS.add(Manifest.permission.POST_NOTIFICATIONS); + } + } public static List getMissingPermissions(Context context, boolean info, - boolean block, boolean contacts) { + boolean block, boolean contacts, boolean notification) { Set requiredPermissions = new HashSet<>(); if (info) requiredPermissions.addAll(INFO_PERMISSIONS); if (block) requiredPermissions.addAll(BLOCKING_PERMISSIONS); if (contacts) requiredPermissions.addAll(CONTACTS_PERMISSIONS); + if (notification) requiredPermissions.addAll(NOTIFICATIONS_PERMISSIONS); List missingPermissions = new ArrayList<>(); @@ -87,8 +94,8 @@ public static List getMissingPermissions(Context context, boolean info, } public static void checkPermissions(Activity activity, boolean info, - boolean block, boolean contacts) { - List missingPermissions = getMissingPermissions(activity, info, block, contacts); + boolean block, boolean contacts, boolean notification) { + List missingPermissions = getMissingPermissions(activity, info, block, contacts, notification); if (!missingPermissions.isEmpty()) { ActivityCompat.requestPermissions(activity, @@ -97,8 +104,8 @@ public static void checkPermissions(Activity activity, boolean info, } public static void checkPermissions(Context context, Fragment fragment, - boolean info, boolean block, boolean contacts) { - List missingPermissions = getMissingPermissions(context, info, block, contacts); + boolean info, boolean block, boolean contacts, boolean notification) { + List missingPermissions = getMissingPermissions(context, info, block, contacts, notification); if (!missingPermissions.isEmpty()) { fragment.requestPermissions( @@ -110,17 +117,19 @@ public static void handlePermissionsResult(@NonNull Context context, int request @NonNull String[] permissions, @NonNull int[] grantResults, boolean infoExpected, boolean blockingExpected, - boolean contactsExpected) { + boolean contactsExpected, boolean notificationExpected) { if (requestCode != REQUEST_CODE_PERMISSIONS) return; boolean infoDenied = false; boolean blockingDenied = false; boolean contactsDenied = false; + boolean notificationDenied = false; if (permissions.length == 0) { infoDenied = true; blockingDenied = true; contactsDenied = true; + notificationDenied = true; } else { for (int i = 0; i < permissions.length; i++) { String permission = permissions[i]; @@ -134,22 +143,27 @@ public static void handlePermissionsResult(@NonNull Context context, int request if (CONTACTS_PERMISSIONS.contains(permission)) { contactsDenied = true; } + if (NOTIFICATIONS_PERMISSIONS.contains(permission)) { + contactsDenied = true; + } } } } - LOG.debug("onRequestPermissionsResult() infoDenied={}, blockingDenied={}, contactsDenied={}", - infoDenied, blockingDenied, contactsDenied); + LOG.debug("onRequestPermissionsResult() infoDenied={}, blockingDenied={}, contactsDenied={}, notificationDenied={}", + infoDenied, blockingDenied, contactsDenied, notificationDenied); if (!infoExpected) infoDenied = false; if (!blockingExpected) blockingDenied = false; if (!contactsExpected) contactsDenied = false; + if (!notificationExpected) notificationDenied = false; List features = new ArrayList<>(3); if (infoDenied) features.add(context.getString(R.string.feature_info)); if (blockingDenied) features.add(context.getString(R.string.feature_call_blocking)); if (contactsDenied) features.add(context.getString(R.string.feature_contacts)); + if (notificationDenied) features.add(context.getString(R.string.feature_info)); if (!features.isEmpty()) { String message = context.getString(R.string.denied_permissions_message) + " " diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java b/app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java index 73c0045..9d090f4 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java +++ b/app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java @@ -40,7 +40,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis PermissionHelper.handlePermissionsResult(requireContext(), requestCode, permissions, grantResults, settings.getIncomingCallNotifications(), settings.getCallBlockingEnabled(), - settings.getUseContacts()); + settings.getUseContacts(), settings.getUseNotification()); } @Override @@ -97,7 +97,7 @@ protected void initScreen() { setPrefChangeListener(Settings.PREF_INCOMING_CALL_NOTIFICATIONS, (pref, newValue) -> { if (Boolean.TRUE.equals(newValue)) { PermissionHelper.checkPermissions(requireContext(), this, - true, false, false); + true, false, false, false); } return true; }); @@ -105,7 +105,7 @@ protected void initScreen() { Preference.OnPreferenceChangeListener callBlockingListener = (preference, newValue) -> { if (Boolean.TRUE.equals(newValue)) { PermissionHelper.checkPermissions(requireContext(), this, - false, true, false); + false, true, false, false); } return true; }; @@ -159,7 +159,7 @@ protected void initScreen() { setPrefChangeListener(Settings.PREF_USE_CONTACTS, (preference, newValue) -> { if (Boolean.TRUE.equals(newValue)) { PermissionHelper.checkPermissions(requireContext(), this, - false, false, true); + false, false, true, false); } return true; }); diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/Settings.java b/app/src/main/java/dummydomain/yetanothercallblocker/Settings.java index c5558f1..8bdb6f9 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/Settings.java +++ b/app/src/main/java/dummydomain/yetanothercallblocker/Settings.java @@ -28,6 +28,7 @@ public class Settings extends GenericSettings { public static final String PREF_UI_MODE = "uiMode"; public static final String PREF_CALL_LOG_GROUPING = "callLogGrouping"; public static final String PREF_USE_MONITORING_SERVICE = "useMonitoringService"; + public static final String PREF_USE_NOTIFICATIONS = "useNotifications"; public static final String PREF_NOTIFICATIONS_KNOWN = "showNotificationsForKnownCallers"; public static final String PREF_NOTIFICATIONS_UNKNOWN = "showNotificationsForUnknownCallers"; public static final String PREF_NOTIFICATIONS_BLOCKED = "showNotificationsForBlockedCalls"; @@ -114,6 +115,10 @@ public boolean getIncomingCallNotifications() { return getBoolean(PREF_INCOMING_CALL_NOTIFICATIONS, true); } + public boolean getUseNotification() { + return getBoolean(PREF_USE_NOTIFICATIONS); + } + public void setIncomingCallNotifications(boolean show) { setBoolean(PREF_INCOMING_CALL_NOTIFICATIONS, show); } diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 7f410e8..0000000 --- a/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -buildscript { - repositories { - google() - mavenCentral() - } - dependencies { - classpath 'com.android.tools.build:gradle:7.0.3' - classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' - } -} - -allprojects { - repositories { - google() - mavenCentral() - maven { url 'https://jitpack.io' } - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} - -wrapper { - gradleVersion = "7.2" - distributionType = Wrapper.DistributionType.ALL -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..c80227f --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,11 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + alias(libs.plugins.androidApplication) apply false + alias(libs.plugins.jetbrainsKotlinAndroid) apply false +} + +buildscript { + dependencies { + classpath(libs.greendaoPlugin) + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index d546dea..96efec8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,12 +6,23 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.defaults.buildfeatures.buildconfig=true android.enableJetifier=true -android.useAndroidX=true -org.gradle.jvmargs=-Xmx1536m +android.nonFinalResIds=false +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects # org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..d905f2e --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,58 @@ +[versions] +agp = "8.3.0" +kotlin = "1.9.0" +coreKtx = "1.12.0" +junit = "4.13.2" +junitVersion = "1.1.5" +espressoCore = "3.5.1" +appcompat = "1.6.1" +multidex = "2.0.1" +slf4j = "2.0.12" +logback = "3.0.0" +conscrypt = "2.5.2" +okhttp = "4.12.0" +lib-phone-number-info = "c77bdd2b69" +commons-csv = "1.10.0" +recyclerview = "1.3.2" +recyclerview-selection = "1.1.0" +paging-runtime = "3.2.1" +google-material = "1.11.0" +preference = "1.2.1" +work-runtime = "2.9.0" +greendao = "3.3.0" +greendaoPlugin = "3.3.1" +eventbus = "3.3.1" + +[libraries] +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-work-runtime = { group = "androidx.work", name = "work-runtime", version.ref = "work-runtime" } +androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +androidx-preference = { group = "androidx.preference", name = "preference", version.ref = "preference" } +androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" } +androidx-recyclerview-selection = { group = "androidx.recyclerview", name = "recyclerview-selection", version.ref = "recyclerview-selection" } +androidx-paging = { group = "androidx.paging", name = "paging-runtime", version.ref = "paging-runtime" } +androidx-multidex = { group = "androidx.multidex", name = "multidex", version.ref = "multidex" } + +google-material = { group = "com.google.android.material", name = "material", version.ref = "google-material" } + +junit = { group = "junit", name = "junit", version.ref = "junit" } + +slf4j = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" } +logback = { group = "com.github.tony19", name = "logback-android", version.ref = "logback" } +conscrypt = { group = "org.conscrypt", name = "conscrypt-android", version.ref = "conscrypt" } +commons-csv = { group = "org.apache.commons", name = "commons-csv", version.ref = "commons-csv" } +okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } +lib-phone-number-info = { group = "com.gitlab.xynngh", name = "LibPhoneNumberInfo", version.ref = "lib-phone-number-info" } + + +greendao = { group = "org.greenrobot", name = "greendao", version.ref = "greendao" } +greendaoPlugin = { group = "org.greenrobot", name = "greendao-gradle-plugin", version.ref = "greendaoPlugin" } +eventbus = { group = "org.greenrobot", name = "eventbus", version.ref = "eventbus" } +eventbus-annotation-processor = { group = "org.greenrobot", name = "eventbus-annotation-processor", version.ref = "eventbus" } + +[plugins] +androidApplication = { id = "com.android.application", version.ref = "agp" } +jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a0f7639..fce403e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index e7b4def..0000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..8c19057 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven("https://jitpack.io") + } +} + +rootProject.name = "YetAnotherCallBlocker" +include(":app") + \ No newline at end of file From ba1b18e80360b506acaf9505556f4677502645c1 Mon Sep 17 00:00:00 2001 From: Valentin Date: Sun, 10 Mar 2024 22:07:10 +0100 Subject: [PATCH 2/3] feat: Rename application and logo (#2) --- BUILDING.md | 2 +- CHANGELOG.md | 3 +- FAQ.md | 20 ++-- README.md | 13 ++- app/build.gradle.kts | 10 +- app/src/main/AndroidManifest.xml | 1 + .../event/BlacklistChangedEvent.java | 3 - .../event/CallEvent.java | 3 - .../event/MainDbDownloadFinishedEvent.java | 3 - .../event/MainDbDownloadingEvent.java | 3 - .../event/SecondaryDbUpdatingEvent.java | 3 - .../yetanothercallblocker/work/DbUpdater.java | 37 ------- .../vinetos/tranquille}/AboutActivity.java | 12 +-- .../tranquille}/AdvancedSettingsFragment.java | 8 +- .../vinetos/tranquille}/App.java | 6 +- .../tranquille}/BaseSettingsFragment.java | 2 +- .../tranquille}/BlacklistActivity.java | 16 +-- .../tranquille}/BlacklistDataSource.java | 6 +- .../BlacklistItemRecyclerViewAdapter.java | 4 +- .../CallLogItemRecyclerViewAdapter.java | 8 +- .../tranquille}/CallMonitoringService.java | 6 +- .../tranquille}/CallScreeningServiceImpl.java | 12 +-- .../tranquille}/CustomListViewAdapter.java | 4 +- .../tranquille}/CustomVerticalDivider.java | 2 +- .../DbFilteringSettingsFragment.java | 10 +- .../tranquille}/DbManagementActivity.java | 8 +- .../DeviceProtectedStorageMigrator.java | 4 +- .../tranquille}/DummyDialerActivity.java | 2 +- .../EditBlacklistItemActivity.java | 16 +-- .../vinetos/tranquille}/EventUtils.java | 2 +- .../GenericRecyclerViewAdapter.java | 2 +- .../vinetos/tranquille}/GenericSettings.java | 2 +- .../vinetos/tranquille}/IconAndColor.java | 4 +- .../tranquille}/InfoDialogActivity.java | 6 +- .../vinetos/tranquille}/InfoDialogHelper.java | 8 +- .../vinetos/tranquille}/IntentHelper.java | 2 +- .../tranquille}/LookupNumberActivity.java | 6 +- .../vinetos/tranquille}/MainActivity.java | 22 ++-- .../tranquille}/NotificationHelper.java | 8 +- .../tranquille}/NotificationService.java | 4 +- .../vinetos/tranquille}/NumberInfoUtils.java | 6 +- .../vinetos/tranquille}/PermissionHelper.java | 7 +- .../PhoneStateBroadcastReceiver.java | 6 +- .../tranquille}/PhoneStateHandler.java | 16 +-- .../vinetos/tranquille}/ReviewsActivity.java | 6 +- .../tranquille}/ReviewsSummaryHelper.java | 2 +- .../tranquille}/RoleManagerHelper.java | 2 +- .../tranquille}/RootSettingsFragment.java | 6 +- .../vinetos/tranquille}/Settings.java | 4 +- .../vinetos/tranquille}/SettingsActivity.java | 2 +- .../vinetos/tranquille}/StartupReceiver.java | 2 +- .../vinetos/tranquille}/UiUtils.java | 2 +- .../tranquille}/data/AndroidProperties.java | 4 +- .../tranquille}/data/AndroidStorage.java | 2 +- .../data/BlacklistImporterExporter.java | 14 +-- .../tranquille}/data/BlacklistService.java | 17 ++-- .../tranquille}/data/BlacklistUtils.java | 2 +- .../tranquille}/data/CallLogDataSource.java | 6 +- .../tranquille}/data/CallLogHelper.java | 4 +- .../vinetos/tranquille}/data/CallLogItem.java | 2 +- .../tranquille}/data/CallLogItemGroup.java | 2 +- .../vinetos/tranquille}/data/Config.java | 28 +++--- .../vinetos/tranquille}/data/ContactItem.java | 2 +- .../tranquille}/data/ContactsHelper.java | 4 +- .../tranquille}/data/ContactsProvider.java | 2 +- .../tranquille}/data/CountryHelper.java | 2 +- .../tranquille}/data/NumberFilter.java | 2 +- .../vinetos/tranquille}/data/NumberInfo.java | 4 +- .../tranquille}/data/NumberInfoService.java | 4 +- .../vinetos/tranquille}/data/NumberUtils.java | 2 +- .../tranquille}/data/SiaConstants.java | 2 +- .../data/SiaNumberCategoryUtils.java | 4 +- .../vinetos/tranquille}/data/YacbHolder.java | 8 +- .../tranquille}/data/db/BlacklistDao.java | 4 +- .../tranquille}/data/db/BlacklistItem.java | 6 +- .../data/db/YacbDaoSessionFactory.java | 2 +- .../tranquille}/data/db/YacbDbOpenHelper.java | 2 +- .../event/BlacklistChangedEvent.java | 3 + .../event/BlacklistItemChangedEvent.java | 2 +- .../tranquille}/event/CallEndedEvent.java | 2 +- .../vinetos/tranquille/event/CallEvent.java | 3 + .../tranquille}/event/CallOngoingEvent.java | 2 +- .../event/MainDbDownloadFinishedEvent.java | 3 + .../event/MainDbDownloadingEvent.java | 3 + .../event/SecondaryDbUpdateFinished.java | 2 +- .../event/SecondaryDbUpdatingEvent.java | 3 + .../preference/IntEditTextPreference.java | 2 +- .../preference/IntListPreference.java | 2 +- .../tranquille}/utils/DbFilteringUtils.java | 12 +-- .../tranquille}/utils/DebuggingUtils.java | 6 +- .../tranquille}/utils/DeferredInit.java | 2 +- .../vinetos/tranquille}/utils/FileUtils.java | 4 +- .../utils/PackageManagerUtils.java | 2 +- .../vinetos/tranquille}/utils/PhoneUtils.java | 2 +- .../tranquille}/utils/StringUtils.java | 2 +- .../tranquille}/utils/SystemUtils.java | 2 +- .../fr/vinetos/tranquille/work/DbUpdater.java | 34 +++++++ .../vinetos/tranquille}/work/TaskService.java | 25 ++--- .../tranquille}/work/UpdateScheduler.java | 2 +- .../tranquille}/work/UpdateWorker.java | 2 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 +- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 1873 -> 4020 bytes .../mipmap-hdpi/ic_launcher_background.png | Bin 0 -> 2165 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 4270 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 4270 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1361 -> 2343 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 0 -> 1283 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2726 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 2726 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 2567 -> 5440 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 0 -> 3318 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 6069 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 6069 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 3959 -> 8943 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 0 -> 6206 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 10503 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 10503 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 5588 -> 12338 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 0 -> 9986 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 14700 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 14700 bytes app/src/main/res/values-de/strings.xml | 4 +- app/src/main/res/values-el/strings.xml | 4 +- app/src/main/res/values-eo/strings.xml | 4 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 4 +- app/src/main/res/values-fr/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values-pl/strings.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 4 +- app/src/main/res/values-pt/strings.xml | 4 +- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-sl/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 4 +- app/src/main/res/values-uk/strings.xml | 4 +- app/src/main/res/values-vi/strings.xml | 4 +- app/src/main/res/values/strings.xml | 4 +- app/src/main/res/xml/advanced_preferences.xml | 2 +- .../main/res/xml/db_filtering_preferences.xml | 2 +- app/src/main/res/xml/root_preferences.xml | 2 +- .../metadata/android/ca/changelogs/5040.txt | 10 -- .../metadata/android/ca/changelogs/5050.txt | 10 -- .../metadata/android/ca/changelogs/5060.txt | 11 -- .../metadata/android/ca/changelogs/5070.txt | 9 -- .../metadata/android/ca/changelogs/5080.txt | 9 -- .../metadata/android/ca/changelogs/5090.txt | 5 - .../metadata/android/ca/changelogs/5100.txt | 4 - .../metadata/android/ca/changelogs/5110.txt | 4 - .../metadata/android/ca/changelogs/5120.txt | 5 - .../metadata/android/ca/changelogs/5130.txt | 3 - .../metadata/android/ca/changelogs/5150.txt | 7 -- .../metadata/android/el/changelogs/3020.txt | 2 - .../metadata/android/el/changelogs/3030.txt | 2 - .../metadata/android/el/changelogs/4000.txt | 3 - .../metadata/android/el/changelogs/4010.txt | 10 -- .../metadata/android/el/changelogs/4020.txt | 15 --- .../metadata/android/el/changelogs/4030.txt | 14 --- .../metadata/android/el/changelogs/4040.txt | 19 ---- .../metadata/android/el/changelogs/4050.txt | 18 ---- .../metadata/android/el/changelogs/4060.txt | 17 ---- .../metadata/android/el/changelogs/4070.txt | 22 ---- .../metadata/android/el/changelogs/4080.txt | 19 ---- .../metadata/android/el/changelogs/4090.txt | 18 ---- .../metadata/android/el/changelogs/4100.txt | 22 ---- .../metadata/android/el/changelogs/4110.txt | 20 ---- .../metadata/android/el/changelogs/5000.txt | 21 ---- .../metadata/android/el/changelogs/5010.txt | 20 ---- .../metadata/android/el/changelogs/5020.txt | 25 ----- .../metadata/android/el/changelogs/5030.txt | 17 ---- .../metadata/android/el/changelogs/5040.txt | 10 -- .../metadata/android/el/changelogs/5050.txt | 9 -- .../metadata/android/el/changelogs/5060.txt | 11 -- .../metadata/android/el/changelogs/5070.txt | 9 -- .../metadata/android/el/changelogs/5080.txt | 9 -- .../metadata/android/el/changelogs/5090.txt | 5 - .../metadata/android/el/changelogs/5100.txt | 4 - .../metadata/android/el/changelogs/5110.txt | 4 - .../metadata/android/el/changelogs/5120.txt | 5 - .../metadata/android/el/changelogs/5130.txt | 3 - .../metadata/android/el/changelogs/5150.txt | 7 -- .../metadata/android/el/full_description.txt | 2 +- .../metadata/android/el/short_description.txt | 1 - fastlane/metadata/android/el/title.txt | 2 +- .../android/en-US/changelogs/3020.txt | 2 - .../android/en-US/changelogs/3030.txt | 2 - .../android/en-US/changelogs/4000.txt | 3 - .../android/en-US/changelogs/4010.txt | 10 -- .../android/en-US/changelogs/4020.txt | 15 --- .../android/en-US/changelogs/4030.txt | 14 --- .../android/en-US/changelogs/4040.txt | 19 ---- .../android/en-US/changelogs/4050.txt | 18 ---- .../android/en-US/changelogs/4060.txt | 17 ---- .../android/en-US/changelogs/4070.txt | 22 ---- .../android/en-US/changelogs/4080.txt | 19 ---- .../android/en-US/changelogs/4090.txt | 18 ---- .../android/en-US/changelogs/4100.txt | 22 ---- .../android/en-US/changelogs/4110.txt | 20 ---- .../android/en-US/changelogs/5000.txt | 21 ---- .../android/en-US/changelogs/5010.txt | 20 ---- .../android/en-US/changelogs/5020.txt | 25 ----- .../android/en-US/changelogs/5030.txt | 17 ---- .../android/en-US/changelogs/5040.txt | 10 -- .../android/en-US/changelogs/5050.txt | 10 -- .../android/en-US/changelogs/5060.txt | 11 -- .../android/en-US/changelogs/5070.txt | 9 -- .../android/en-US/changelogs/5080.txt | 9 -- .../android/en-US/changelogs/5090.txt | 5 - .../android/en-US/changelogs/5100.txt | 4 - .../android/en-US/changelogs/5110.txt | 4 - .../android/en-US/changelogs/5120.txt | 5 - .../android/en-US/changelogs/5130.txt | 3 - .../android/en-US/changelogs/5150.txt | 7 -- .../android/en-US/full_description.txt | 2 +- .../en-US/images/phoneScreenshots/1.png | Bin 87916 -> 0 bytes .../en-US/images/phoneScreenshots/5.png | Bin 108735 -> 0 bytes .../en-US/images/phoneScreenshots/6.png | Bin 291929 -> 0 bytes fastlane/metadata/android/en-US/title.txt | 2 +- .../metadata/android/eo/changelogs/3020.txt | 2 - .../metadata/android/eo/changelogs/3030.txt | 2 - .../metadata/android/eo/changelogs/4000.txt | 3 - .../metadata/android/eo/changelogs/4010.txt | 10 -- .../metadata/android/eo/changelogs/4020.txt | 15 --- .../metadata/android/eo/changelogs/4030.txt | 14 --- .../metadata/android/eo/changelogs/4040.txt | 19 ---- .../metadata/android/eo/changelogs/4050.txt | 18 ---- .../metadata/android/eo/changelogs/4060.txt | 17 ---- .../metadata/android/eo/changelogs/4070.txt | 22 ---- .../metadata/android/eo/changelogs/4080.txt | 19 ---- .../metadata/android/eo/changelogs/4090.txt | 18 ---- .../metadata/android/eo/changelogs/4100.txt | 22 ---- .../metadata/android/eo/changelogs/4110.txt | 20 ---- .../metadata/android/eo/changelogs/5000.txt | 21 ---- .../metadata/android/eo/changelogs/5010.txt | 20 ---- .../metadata/android/eo/changelogs/5020.txt | 25 ----- .../metadata/android/eo/changelogs/5030.txt | 17 ---- .../metadata/android/eo/changelogs/5040.txt | 10 -- .../metadata/android/eo/changelogs/5050.txt | 10 -- .../metadata/android/eo/changelogs/5060.txt | 11 -- .../metadata/android/eo/changelogs/5070.txt | 9 -- .../metadata/android/eo/changelogs/5080.txt | 9 -- .../metadata/android/eo/changelogs/5090.txt | 5 - .../metadata/android/eo/changelogs/5100.txt | 4 - .../metadata/android/eo/changelogs/5110.txt | 4 - .../metadata/android/eo/changelogs/5120.txt | 5 - .../metadata/android/eo/changelogs/5130.txt | 3 - .../metadata/android/eo/changelogs/5150.txt | 7 -- .../metadata/android/eo/full_description.txt | 2 +- .../metadata/android/eo/short_description.txt | 1 - fastlane/metadata/android/eo/title.txt | 2 +- .../metadata/android/es/changelogs/3020.txt | 2 - .../metadata/android/es/changelogs/3030.txt | 2 - .../metadata/android/es/changelogs/4000.txt | 3 - .../metadata/android/es/changelogs/4010.txt | 10 -- .../metadata/android/es/changelogs/4020.txt | 15 --- .../metadata/android/es/changelogs/4030.txt | 14 --- .../metadata/android/es/changelogs/4040.txt | 19 ---- .../metadata/android/es/changelogs/4050.txt | 18 ---- .../metadata/android/es/changelogs/4060.txt | 17 ---- .../metadata/android/es/changelogs/4070.txt | 22 ---- .../metadata/android/es/changelogs/4080.txt | 19 ---- .../metadata/android/es/changelogs/4090.txt | 18 ---- .../metadata/android/es/changelogs/4100.txt | 22 ---- .../metadata/android/es/changelogs/4110.txt | 20 ---- .../metadata/android/es/changelogs/5000.txt | 21 ---- .../metadata/android/es/changelogs/5010.txt | 20 ---- .../metadata/android/es/changelogs/5020.txt | 25 ----- .../metadata/android/es/changelogs/5030.txt | 17 ---- .../metadata/android/es/changelogs/5040.txt | 10 -- .../metadata/android/es/changelogs/5050.txt | 10 -- .../metadata/android/es/changelogs/5060.txt | 11 -- .../metadata/android/es/changelogs/5070.txt | 9 -- .../metadata/android/es/changelogs/5080.txt | 9 -- .../metadata/android/es/changelogs/5090.txt | 5 - .../metadata/android/es/changelogs/5100.txt | 4 - .../metadata/android/es/changelogs/5110.txt | 4 - .../metadata/android/es/changelogs/5120.txt | 5 - .../metadata/android/es/changelogs/5130.txt | 3 - .../metadata/android/es/changelogs/5150.txt | 7 -- .../metadata/android/es/short_description.txt | 1 - fastlane/metadata/android/es/title.txt | 2 +- .../metadata/android/fi/changelogs/3020.txt | 2 - .../metadata/android/fi/changelogs/3030.txt | 2 - .../metadata/android/fi/changelogs/4000.txt | 3 - .../metadata/android/fi/changelogs/4010.txt | 10 -- .../metadata/android/fi/changelogs/4020.txt | 15 --- .../metadata/android/fi/changelogs/4030.txt | 14 --- .../metadata/android/fi/changelogs/4040.txt | 19 ---- .../metadata/android/fi/changelogs/4050.txt | 18 ---- .../metadata/android/fi/changelogs/4060.txt | 17 ---- .../metadata/android/fi/changelogs/4070.txt | 22 ---- .../metadata/android/fi/changelogs/4080.txt | 19 ---- .../metadata/android/fi/changelogs/4090.txt | 18 ---- .../metadata/android/fi/changelogs/4100.txt | 22 ---- .../metadata/android/fi/changelogs/4110.txt | 20 ---- .../metadata/android/fi/changelogs/5000.txt | 21 ---- .../metadata/android/fi/changelogs/5010.txt | 20 ---- .../metadata/android/fi/changelogs/5020.txt | 25 ----- .../metadata/android/fi/changelogs/5030.txt | 17 ---- .../metadata/android/fi/changelogs/5040.txt | 10 -- .../metadata/android/fi/changelogs/5050.txt | 10 -- .../metadata/android/fi/changelogs/5060.txt | 11 -- .../metadata/android/fi/changelogs/5070.txt | 9 -- .../metadata/android/fi/changelogs/5080.txt | 9 -- .../metadata/android/fi/changelogs/5090.txt | 5 - .../metadata/android/fi/changelogs/5100.txt | 4 - .../metadata/android/fi/changelogs/5110.txt | 4 - .../metadata/android/fi/changelogs/5120.txt | 5 - .../metadata/android/fi/changelogs/5130.txt | 3 - .../metadata/android/fi/changelogs/5150.txt | 7 -- .../metadata/android/fi/full_description.txt | 2 +- .../metadata/android/fi/short_description.txt | 1 - fastlane/metadata/android/fi/title.txt | 2 +- .../metadata/android/fr/changelogs/3020.txt | 2 - .../metadata/android/fr/changelogs/3030.txt | 2 - .../metadata/android/fr/changelogs/4000.txt | 3 - .../metadata/android/fr/changelogs/4010.txt | 10 -- .../metadata/android/fr/changelogs/4020.txt | 15 --- .../metadata/android/fr/changelogs/4030.txt | 14 --- .../metadata/android/fr/changelogs/4040.txt | 19 ---- .../metadata/android/fr/changelogs/4050.txt | 18 ---- .../metadata/android/fr/changelogs/4060.txt | 17 ---- .../metadata/android/fr/changelogs/4070.txt | 22 ---- .../metadata/android/fr/changelogs/4080.txt | 19 ---- .../metadata/android/fr/changelogs/4090.txt | 18 ---- .../metadata/android/fr/changelogs/4100.txt | 22 ---- .../metadata/android/fr/changelogs/4110.txt | 20 ---- .../metadata/android/fr/changelogs/5000.txt | 21 ---- .../metadata/android/fr/changelogs/5010.txt | 20 ---- .../metadata/android/fr/changelogs/5020.txt | 25 ----- .../metadata/android/fr/changelogs/5030.txt | 17 ---- .../metadata/android/fr/changelogs/5040.txt | 10 -- .../metadata/android/fr/changelogs/5050.txt | 10 -- .../metadata/android/fr/changelogs/5060.txt | 11 -- .../metadata/android/fr/changelogs/5070.txt | 9 -- .../metadata/android/fr/changelogs/5080.txt | 9 -- .../metadata/android/fr/changelogs/5090.txt | 5 - .../metadata/android/fr/changelogs/5100.txt | 4 - .../metadata/android/fr/changelogs/5110.txt | 4 - .../metadata/android/fr/changelogs/5120.txt | 5 - .../metadata/android/fr/changelogs/5130.txt | 3 - .../metadata/android/fr/changelogs/5150.txt | 7 -- .../metadata/android/fr/full_description.txt | 2 +- .../metadata/android/fr/short_description.txt | 1 - fastlane/metadata/android/fr/title.txt | 2 +- .../metadata/android/he/changelogs/3020.txt | 2 - .../metadata/android/he/changelogs/3030.txt | 2 - .../metadata/android/he/changelogs/3040.txt | 3 - .../metadata/android/he/changelogs/310.txt | 2 - .../metadata/android/he/changelogs/4000.txt | 3 - .../metadata/android/he/changelogs/4010.txt | 10 -- .../metadata/android/he/changelogs/4020.txt | 15 --- .../metadata/android/he/changelogs/4030.txt | 14 --- .../metadata/android/he/changelogs/4040.txt | 19 ---- .../metadata/android/he/changelogs/4050.txt | 18 ---- .../metadata/android/he/changelogs/4060.txt | 17 ---- .../metadata/android/he/changelogs/4070.txt | 22 ---- .../metadata/android/he/changelogs/4080.txt | 19 ---- .../metadata/android/he/changelogs/4090.txt | 18 ---- .../metadata/android/he/changelogs/4100.txt | 22 ---- .../metadata/android/he/changelogs/4110.txt | 20 ---- .../metadata/android/he/changelogs/5000.txt | 21 ---- .../metadata/android/he/changelogs/5010.txt | 20 ---- .../metadata/android/he/changelogs/5020.txt | 25 ----- .../metadata/android/he/changelogs/5030.txt | 17 ---- .../metadata/android/he/changelogs/5040.txt | 10 -- .../metadata/android/he/changelogs/5050.txt | 10 -- .../metadata/android/he/changelogs/5060.txt | 11 -- .../metadata/android/he/changelogs/5070.txt | 9 -- .../metadata/android/he/changelogs/5080.txt | 9 -- .../metadata/android/he/changelogs/5090.txt | 5 - .../metadata/android/he/changelogs/5100.txt | 4 - .../metadata/android/he/changelogs/5110.txt | 4 - .../metadata/android/he/changelogs/5120.txt | 5 - .../metadata/android/he/changelogs/5130.txt | 3 - .../metadata/android/he/changelogs/5150.txt | 7 -- .../metadata/android/he/short_description.txt | 1 - fastlane/metadata/android/he/title.txt | 1 - .../metadata/android/hr/changelogs/3020.txt | 2 - .../metadata/android/hr/changelogs/3030.txt | 2 - .../metadata/android/hr/changelogs/4000.txt | 3 - .../metadata/android/hr/changelogs/4010.txt | 10 -- .../metadata/android/hr/changelogs/4020.txt | 15 --- .../metadata/android/hr/changelogs/4030.txt | 14 --- .../metadata/android/hr/changelogs/4040.txt | 19 ---- .../metadata/android/hr/changelogs/4050.txt | 18 ---- .../metadata/android/hr/changelogs/4060.txt | 17 ---- .../metadata/android/hr/changelogs/4070.txt | 22 ---- .../metadata/android/hr/changelogs/4080.txt | 19 ---- .../metadata/android/hr/changelogs/4090.txt | 18 ---- .../metadata/android/hr/changelogs/4100.txt | 22 ---- .../metadata/android/hr/changelogs/4110.txt | 20 ---- .../metadata/android/hr/changelogs/5000.txt | 21 ---- .../metadata/android/hr/changelogs/5010.txt | 20 ---- .../metadata/android/hr/changelogs/5020.txt | 25 ----- .../metadata/android/hr/changelogs/5030.txt | 13 --- .../metadata/android/hr/changelogs/5040.txt | 10 -- .../metadata/android/hr/changelogs/5050.txt | 10 -- .../metadata/android/hr/changelogs/5060.txt | 11 -- .../metadata/android/hr/changelogs/5070.txt | 9 -- .../metadata/android/hr/changelogs/5080.txt | 9 -- .../metadata/android/hr/changelogs/5090.txt | 5 - .../metadata/android/hr/changelogs/5100.txt | 4 - .../metadata/android/hr/changelogs/5110.txt | 4 - .../metadata/android/hr/changelogs/5120.txt | 5 - .../metadata/android/hr/changelogs/5130.txt | 3 - .../metadata/android/hr/changelogs/5150.txt | 7 -- .../metadata/android/hr/short_description.txt | 1 - fastlane/metadata/android/hr/title.txt | 1 - .../metadata/android/it/changelogs/3020.txt | 2 - .../metadata/android/it/changelogs/3030.txt | 2 - .../metadata/android/it/changelogs/4000.txt | 3 - .../metadata/android/it/changelogs/4010.txt | 10 -- .../metadata/android/it/changelogs/4020.txt | 15 --- .../metadata/android/it/changelogs/4030.txt | 14 --- .../metadata/android/it/changelogs/4040.txt | 19 ---- .../metadata/android/it/changelogs/4050.txt | 18 ---- .../metadata/android/it/changelogs/4060.txt | 17 ---- .../metadata/android/it/changelogs/4070.txt | 22 ---- .../metadata/android/it/changelogs/4080.txt | 19 ---- .../metadata/android/it/changelogs/4090.txt | 18 ---- .../metadata/android/it/changelogs/4100.txt | 22 ---- .../metadata/android/it/changelogs/4110.txt | 20 ---- .../metadata/android/it/changelogs/5000.txt | 21 ---- .../metadata/android/it/changelogs/5010.txt | 20 ---- .../metadata/android/it/changelogs/5020.txt | 25 ----- .../metadata/android/it/changelogs/5030.txt | 17 ---- .../metadata/android/it/changelogs/5040.txt | 10 -- .../metadata/android/it/changelogs/5050.txt | 10 -- .../metadata/android/it/changelogs/5060.txt | 11 -- .../metadata/android/it/changelogs/5070.txt | 9 -- .../metadata/android/it/changelogs/5080.txt | 9 -- .../metadata/android/it/changelogs/5090.txt | 5 - .../metadata/android/it/changelogs/5100.txt | 4 - .../metadata/android/it/changelogs/5110.txt | 4 - .../metadata/android/it/changelogs/5120.txt | 5 - .../metadata/android/it/changelogs/5130.txt | 3 - .../metadata/android/it/changelogs/5150.txt | 7 -- .../metadata/android/it/short_description.txt | 1 - fastlane/metadata/android/it/title.txt | 1 - .../android/nb_NO/changelogs/3020.txt | 2 - .../android/nb_NO/changelogs/3030.txt | 2 - .../android/nb_NO/changelogs/4000.txt | 3 - .../android/nb_NO/changelogs/4010.txt | 10 -- .../android/nb_NO/changelogs/4020.txt | 15 --- .../android/nb_NO/changelogs/4030.txt | 14 --- .../android/nb_NO/changelogs/4040.txt | 19 ---- .../android/nb_NO/changelogs/4050.txt | 18 ---- .../android/nb_NO/changelogs/4060.txt | 17 ---- .../android/nb_NO/changelogs/4070.txt | 22 ---- .../android/nb_NO/changelogs/4080.txt | 19 ---- .../android/nb_NO/changelogs/4090.txt | 18 ---- .../android/nb_NO/changelogs/4100.txt | 22 ---- .../android/nb_NO/changelogs/4110.txt | 20 ---- .../android/nb_NO/changelogs/5000.txt | 21 ---- .../android/nb_NO/changelogs/5010.txt | 20 ---- .../android/nb_NO/changelogs/5020.txt | 25 ----- .../android/nb_NO/changelogs/5030.txt | 17 ---- .../android/nb_NO/changelogs/5040.txt | 10 -- .../android/nb_NO/changelogs/5050.txt | 10 -- .../android/nb_NO/changelogs/5060.txt | 11 -- .../android/nb_NO/changelogs/5070.txt | 9 -- .../android/nb_NO/changelogs/5080.txt | 9 -- .../android/nb_NO/changelogs/5090.txt | 5 - .../android/nb_NO/changelogs/5110.txt | 4 - .../android/nb_NO/changelogs/5120.txt | 5 - .../android/nb_NO/changelogs/5130.txt | 3 - .../android/nb_NO/changelogs/5150.txt | 7 -- .../android/nb_NO/short_description.txt | 1 - fastlane/metadata/android/nb_NO/title.txt | 1 - .../metadata/android/nl/changelogs/3020.txt | 2 - .../metadata/android/nl/changelogs/3040.txt | 3 - .../metadata/android/nl/changelogs/310.txt | 2 - .../metadata/android/nl/changelogs/4000.txt | 3 - .../metadata/android/nl/changelogs/4010.txt | 10 -- .../metadata/android/nl/changelogs/4020.txt | 15 --- .../metadata/android/nl/changelogs/4030.txt | 14 --- .../metadata/android/nl/changelogs/4040.txt | 19 ---- .../metadata/android/nl/changelogs/4050.txt | 18 ---- .../metadata/android/nl/changelogs/4060.txt | 17 ---- .../metadata/android/nl/changelogs/4070.txt | 22 ---- .../metadata/android/nl/changelogs/4080.txt | 19 ---- .../metadata/android/nl/changelogs/4090.txt | 18 ---- .../metadata/android/nl/changelogs/4100.txt | 22 ---- .../metadata/android/nl/changelogs/4110.txt | 20 ---- .../metadata/android/nl/changelogs/5000.txt | 21 ---- .../metadata/android/nl/changelogs/5010.txt | 20 ---- .../metadata/android/nl/changelogs/5020.txt | 25 ----- .../metadata/android/nl/changelogs/5030.txt | 17 ---- .../metadata/android/nl/changelogs/5040.txt | 10 -- .../metadata/android/nl/changelogs/5050.txt | 10 -- .../metadata/android/nl/changelogs/5060.txt | 11 -- .../metadata/android/nl/changelogs/5070.txt | 9 -- .../metadata/android/nl/changelogs/5080.txt | 9 -- .../metadata/android/nl/changelogs/5090.txt | 5 - .../metadata/android/nl/changelogs/5100.txt | 4 - .../metadata/android/nl/changelogs/5110.txt | 4 - .../metadata/android/nl/changelogs/5120.txt | 5 - .../metadata/android/nl/changelogs/5130.txt | 3 - .../metadata/android/nl/changelogs/5140.txt | 6 -- .../metadata/android/nl/changelogs/5150.txt | 7 -- .../metadata/android/nl/changelogs/5170.txt | 2 - .../metadata/android/nl/full_description.txt | 2 +- .../metadata/android/nl/short_description.txt | 1 - fastlane/metadata/android/nl/title.txt | 2 +- .../metadata/android/pl/changelogs/3020.txt | 2 - .../metadata/android/pl/changelogs/3030.txt | 2 - .../metadata/android/pl/changelogs/4000.txt | 3 - .../metadata/android/pl/changelogs/4010.txt | 10 -- .../metadata/android/pl/changelogs/4020.txt | 15 --- .../metadata/android/pl/changelogs/4030.txt | 14 --- .../metadata/android/pl/changelogs/4040.txt | 19 ---- .../metadata/android/pl/changelogs/4050.txt | 18 ---- .../metadata/android/pl/changelogs/4060.txt | 17 ---- .../metadata/android/pl/changelogs/4070.txt | 22 ---- .../metadata/android/pl/changelogs/4080.txt | 19 ---- .../metadata/android/pl/changelogs/4090.txt | 18 ---- .../metadata/android/pl/changelogs/4100.txt | 22 ---- .../metadata/android/pl/changelogs/4110.txt | 20 ---- .../metadata/android/pl/changelogs/5000.txt | 21 ---- .../metadata/android/pl/changelogs/5010.txt | 20 ---- .../metadata/android/pl/changelogs/5020.txt | 25 ----- .../metadata/android/pl/changelogs/5030.txt | 17 ---- .../metadata/android/pl/changelogs/5040.txt | 10 -- .../metadata/android/pl/changelogs/5050.txt | 10 -- .../metadata/android/pl/changelogs/5060.txt | 11 -- .../metadata/android/pl/changelogs/5070.txt | 9 -- .../metadata/android/pl/changelogs/5080.txt | 9 -- .../metadata/android/pl/changelogs/5090.txt | 5 - .../metadata/android/pl/changelogs/5100.txt | 4 - .../metadata/android/pl/changelogs/5110.txt | 4 - .../metadata/android/pl/changelogs/5120.txt | 5 - .../metadata/android/pl/changelogs/5130.txt | 3 - .../metadata/android/pl/changelogs/5140.txt | 6 -- .../metadata/android/pl/changelogs/5150.txt | 7 -- .../metadata/android/pl/changelogs/5170.txt | 2 - .../metadata/android/pl/full_description.txt | 2 +- .../metadata/android/pl/short_description.txt | 1 - fastlane/metadata/android/pl/title.txt | 2 +- .../metadata/android/pt/changelogs/3020.txt | 2 - .../metadata/android/pt/changelogs/3030.txt | 2 - .../metadata/android/pt/changelogs/4000.txt | 3 - .../metadata/android/pt/changelogs/4010.txt | 10 -- .../metadata/android/pt/changelogs/4020.txt | 15 --- .../metadata/android/pt/changelogs/4030.txt | 14 --- .../metadata/android/pt/changelogs/4040.txt | 19 ---- .../metadata/android/pt/changelogs/4050.txt | 18 ---- .../metadata/android/pt/changelogs/4060.txt | 17 ---- .../metadata/android/pt/changelogs/4070.txt | 22 ---- .../metadata/android/pt/changelogs/4080.txt | 19 ---- .../metadata/android/pt/changelogs/4090.txt | 18 ---- .../metadata/android/pt/changelogs/4100.txt | 22 ---- .../metadata/android/pt/changelogs/4110.txt | 20 ---- .../metadata/android/pt/changelogs/5000.txt | 21 ---- .../metadata/android/pt/changelogs/5010.txt | 20 ---- .../metadata/android/pt/changelogs/5020.txt | 25 ----- .../metadata/android/pt/changelogs/5030.txt | 17 ---- .../metadata/android/pt/changelogs/5040.txt | 10 -- .../metadata/android/pt/changelogs/5050.txt | 10 -- .../metadata/android/pt/changelogs/5060.txt | 11 -- .../metadata/android/pt/changelogs/5070.txt | 9 -- .../metadata/android/pt/changelogs/5080.txt | 9 -- .../metadata/android/pt/changelogs/5090.txt | 5 - .../metadata/android/pt/changelogs/5100.txt | 4 - .../metadata/android/pt/changelogs/5110.txt | 4 - .../metadata/android/pt/changelogs/5120.txt | 5 - .../metadata/android/pt/changelogs/5130.txt | 3 - .../metadata/android/pt/changelogs/5150.txt | 7 -- .../metadata/android/pt/full_description.txt | 2 +- .../metadata/android/pt/short_description.txt | 1 - fastlane/metadata/android/pt/title.txt | 2 +- .../android/pt_BR/changelogs/3020.txt | 2 - .../android/pt_BR/changelogs/3030.txt | 2 - .../android/pt_BR/changelogs/4000.txt | 3 - .../android/pt_BR/changelogs/4010.txt | 10 -- .../android/pt_BR/changelogs/4050.txt | 18 ---- .../android/pt_BR/changelogs/4060.txt | 17 ---- .../android/pt_BR/changelogs/4070.txt | 22 ---- .../android/pt_BR/changelogs/4080.txt | 19 ---- .../android/pt_BR/changelogs/4090.txt | 18 ---- .../android/pt_BR/changelogs/4100.txt | 22 ---- .../android/pt_BR/changelogs/4110.txt | 20 ---- .../android/pt_BR/changelogs/5000.txt | 21 ---- .../android/pt_BR/changelogs/5010.txt | 20 ---- .../android/pt_BR/changelogs/5020.txt | 25 ----- .../android/pt_BR/changelogs/5030.txt | 17 ---- .../android/pt_BR/changelogs/5040.txt | 10 -- .../android/pt_BR/changelogs/5050.txt | 10 -- .../android/pt_BR/changelogs/5060.txt | 11 -- .../android/pt_BR/changelogs/5070.txt | 9 -- .../android/pt_BR/changelogs/5080.txt | 9 -- .../android/pt_BR/changelogs/5090.txt | 5 - .../android/pt_BR/changelogs/5100.txt | 4 - .../android/pt_BR/changelogs/5110.txt | 4 - .../android/pt_BR/changelogs/5120.txt | 5 - .../android/pt_BR/changelogs/5130.txt | 3 - .../android/pt_BR/changelogs/5150.txt | 7 -- .../android/pt_BR/full_description.txt | 2 +- .../android/pt_BR/short_description.txt | 1 - fastlane/metadata/android/pt_BR/title.txt | 2 +- .../metadata/android/ru/changelogs/3020.txt | 2 - .../metadata/android/ru/changelogs/3030.txt | 2 - .../metadata/android/ru/changelogs/3040.txt | 3 - .../metadata/android/ru/changelogs/310.txt | 2 - .../metadata/android/ru/changelogs/4000.txt | 3 - .../metadata/android/ru/changelogs/4010.txt | 10 -- .../metadata/android/ru/changelogs/4020.txt | 15 --- .../metadata/android/ru/changelogs/4030.txt | 14 --- .../metadata/android/ru/changelogs/4040.txt | 19 ---- .../metadata/android/ru/changelogs/4050.txt | 18 ---- .../metadata/android/ru/changelogs/4060.txt | 17 ---- .../metadata/android/ru/changelogs/4070.txt | 22 ---- .../metadata/android/ru/changelogs/4080.txt | 19 ---- .../metadata/android/ru/changelogs/4090.txt | 18 ---- .../metadata/android/ru/changelogs/4100.txt | 22 ---- .../metadata/android/ru/changelogs/4110.txt | 20 ---- .../metadata/android/ru/changelogs/5000.txt | 21 ---- .../metadata/android/ru/changelogs/5010.txt | 20 ---- .../metadata/android/ru/changelogs/5020.txt | 25 ----- .../metadata/android/ru/changelogs/5030.txt | 17 ---- .../metadata/android/ru/changelogs/5040.txt | 10 -- .../metadata/android/ru/changelogs/5050.txt | 10 -- .../metadata/android/ru/changelogs/5060.txt | 11 -- .../metadata/android/ru/changelogs/5070.txt | 9 -- .../metadata/android/ru/changelogs/5080.txt | 9 -- .../metadata/android/ru/changelogs/5090.txt | 5 - .../metadata/android/ru/changelogs/5100.txt | 4 - .../metadata/android/ru/changelogs/5110.txt | 4 - .../metadata/android/ru/changelogs/5120.txt | 5 - .../metadata/android/ru/changelogs/5130.txt | 3 - .../metadata/android/ru/changelogs/5140.txt | 6 -- .../metadata/android/ru/changelogs/5150.txt | 7 -- .../metadata/android/ru/changelogs/5170.txt | 2 - .../metadata/android/ru/short_description.txt | 1 - fastlane/metadata/android/ru/title.txt | 2 +- .../metadata/android/tr/changelogs/3020.txt | 2 - .../metadata/android/tr/changelogs/3030.txt | 2 - .../metadata/android/tr/changelogs/4000.txt | 3 - .../metadata/android/tr/changelogs/4010.txt | 10 -- .../metadata/android/tr/changelogs/4020.txt | 15 --- .../metadata/android/tr/changelogs/4030.txt | 14 --- .../metadata/android/tr/changelogs/4040.txt | 19 ---- .../metadata/android/tr/changelogs/4050.txt | 18 ---- .../metadata/android/tr/changelogs/4060.txt | 17 ---- .../metadata/android/tr/changelogs/4070.txt | 22 ---- .../metadata/android/tr/changelogs/4080.txt | 19 ---- .../metadata/android/tr/changelogs/4090.txt | 18 ---- .../metadata/android/tr/changelogs/4100.txt | 22 ---- .../metadata/android/tr/changelogs/4110.txt | 20 ---- .../metadata/android/tr/changelogs/5000.txt | 21 ---- .../metadata/android/tr/changelogs/5010.txt | 20 ---- .../metadata/android/tr/changelogs/5020.txt | 25 ----- .../metadata/android/tr/changelogs/5030.txt | 17 ---- .../metadata/android/tr/changelogs/5040.txt | 10 -- .../metadata/android/tr/changelogs/5050.txt | 10 -- .../metadata/android/tr/changelogs/5060.txt | 11 -- .../metadata/android/tr/changelogs/5070.txt | 9 -- .../metadata/android/tr/changelogs/5080.txt | 9 -- .../metadata/android/tr/changelogs/5090.txt | 5 - .../metadata/android/tr/changelogs/5100.txt | 4 - .../metadata/android/tr/changelogs/5120.txt | 5 - .../metadata/android/tr/changelogs/5130.txt | 3 - .../metadata/android/tr/changelogs/5140.txt | 6 -- .../metadata/android/tr/changelogs/5150.txt | 7 -- .../metadata/android/tr/changelogs/5170.txt | 2 - .../metadata/android/tr/full_description.txt | 2 +- .../metadata/android/tr/short_description.txt | 1 - fastlane/metadata/android/tr/title.txt | 2 +- .../metadata/android/uk/changelogs/3020.txt | 2 - .../metadata/android/uk/changelogs/3030.txt | 2 - .../metadata/android/uk/changelogs/4000.txt | 3 - .../metadata/android/uk/changelogs/4010.txt | 10 -- .../metadata/android/uk/changelogs/4020.txt | 15 --- .../metadata/android/uk/changelogs/4030.txt | 14 --- .../metadata/android/uk/changelogs/4040.txt | 19 ---- .../metadata/android/uk/changelogs/4050.txt | 18 ---- .../metadata/android/uk/changelogs/4060.txt | 17 ---- .../metadata/android/uk/changelogs/4070.txt | 22 ---- .../metadata/android/uk/changelogs/4080.txt | 19 ---- .../metadata/android/uk/changelogs/4090.txt | 18 ---- .../metadata/android/uk/changelogs/4100.txt | 22 ---- .../metadata/android/uk/changelogs/4110.txt | 20 ---- .../metadata/android/uk/changelogs/5000.txt | 21 ---- .../metadata/android/uk/changelogs/5010.txt | 20 ---- .../metadata/android/uk/changelogs/5020.txt | 25 ----- .../metadata/android/uk/changelogs/5030.txt | 17 ---- .../metadata/android/uk/changelogs/5040.txt | 10 -- .../metadata/android/uk/changelogs/5050.txt | 10 -- .../metadata/android/uk/changelogs/5060.txt | 11 -- .../metadata/android/uk/changelogs/5070.txt | 9 -- .../metadata/android/uk/changelogs/5080.txt | 9 -- .../metadata/android/uk/changelogs/5090.txt | 5 - .../metadata/android/uk/changelogs/5100.txt | 4 - .../metadata/android/uk/changelogs/5110.txt | 4 - .../metadata/android/uk/changelogs/5120.txt | 5 - .../metadata/android/uk/changelogs/5130.txt | 3 - .../metadata/android/uk/changelogs/5150.txt | 7 -- .../metadata/android/uk/short_description.txt | 1 - fastlane/metadata/android/uk/title.txt | 2 +- .../android/zh-CN/changelogs/3020.txt | 2 - .../android/zh-CN/changelogs/3030.txt | 2 - .../android/zh-CN/changelogs/4000.txt | 3 - .../android/zh-CN/changelogs/4010.txt | 10 -- .../android/zh-CN/changelogs/4020.txt | 15 --- .../android/zh-CN/changelogs/4030.txt | 14 --- .../android/zh-CN/changelogs/4040.txt | 19 ---- .../android/zh-CN/changelogs/4050.txt | 18 ---- .../android/zh-CN/changelogs/4060.txt | 17 ---- .../android/zh-CN/changelogs/4070.txt | 22 ---- .../android/zh-CN/changelogs/4080.txt | 19 ---- .../android/zh-CN/changelogs/4090.txt | 18 ---- .../android/zh-CN/changelogs/4100.txt | 22 ---- .../android/zh-CN/changelogs/4110.txt | 20 ---- .../android/zh-CN/changelogs/5000.txt | 21 ---- .../android/zh-CN/changelogs/5010.txt | 20 ---- .../android/zh-CN/changelogs/5020.txt | 25 ----- .../android/zh-CN/changelogs/5030.txt | 17 ---- .../android/zh-CN/changelogs/5040.txt | 10 -- .../android/zh-CN/changelogs/5050.txt | 10 -- .../android/zh-CN/changelogs/5060.txt | 11 -- .../android/zh-CN/changelogs/5070.txt | 9 -- .../android/zh-CN/changelogs/5080.txt | 9 -- .../android/zh-CN/changelogs/5090.txt | 5 - .../android/zh-CN/changelogs/5100.txt | 4 - .../android/zh-CN/changelogs/5110.txt | 4 - .../android/zh-CN/changelogs/5120.txt | 5 - .../android/zh-CN/changelogs/5130.txt | 3 - .../android/zh-CN/changelogs/5150.txt | 7 -- .../android/zh-CN/changelogs/5160.txt | 3 - .../android/zh-CN/full_description.txt | 2 +- .../android/zh-CN/short_description.txt | 1 - fastlane/metadata/android/zh-CN/title.txt | 1 - other/ic_launcher-playstore.png | Bin 16764 -> 32661 bytes other/main_icon.svg | 94 ++++-------------- other/main_icon_inverse.svg | 94 ++++-------------- other/playstore-banner.png | Bin 0 -> 40111 bytes settings.gradle.kts | 2 +- 736 files changed, 401 insertions(+), 7099 deletions(-) delete mode 100644 app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistChangedEvent.java delete mode 100644 app/src/main/java/dummydomain/yetanothercallblocker/event/CallEvent.java delete mode 100644 app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadFinishedEvent.java delete mode 100644 app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadingEvent.java delete mode 100644 app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdatingEvent.java delete mode 100644 app/src/main/java/dummydomain/yetanothercallblocker/work/DbUpdater.java rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/AboutActivity.java (92%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/AdvancedSettingsFragment.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/App.java (89%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/BaseSettingsFragment.java (99%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/BlacklistActivity.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/BlacklistDataSource.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/BlacklistItemRecyclerViewAdapter.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/CallLogItemRecyclerViewAdapter.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/CallMonitoringService.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/CallScreeningServiceImpl.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/CustomListViewAdapter.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/CustomVerticalDivider.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/DbFilteringSettingsFragment.java (92%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/DbManagementActivity.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/DeviceProtectedStorageMigrator.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/DummyDialerActivity.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/EditBlacklistItemActivity.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/EventUtils.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/GenericRecyclerViewAdapter.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/GenericSettings.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/IconAndColor.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/InfoDialogActivity.java (85%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/InfoDialogHelper.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/IntentHelper.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/LookupNumberActivity.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/MainActivity.java (93%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/NotificationHelper.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/NotificationService.java (85%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/NumberInfoUtils.java (81%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/PermissionHelper.java (99%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/PhoneStateBroadcastReceiver.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/PhoneStateHandler.java (92%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/ReviewsActivity.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/ReviewsSummaryHelper.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/RoleManagerHelper.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/RootSettingsFragment.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/Settings.java (99%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/SettingsActivity.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/StartupReceiver.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/UiUtils.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/AndroidProperties.java (71%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/AndroidStorage.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/BlacklistImporterExporter.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/BlacklistService.java (78%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/BlacklistUtils.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/CallLogDataSource.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/CallLogHelper.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/CallLogItem.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/CallLogItemGroup.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/Config.java (84%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/ContactItem.java (89%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/ContactsHelper.java (93%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/ContactsProvider.java (69%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/CountryHelper.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/NumberFilter.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/NumberInfo.java (88%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/NumberInfoService.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/NumberUtils.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/SiaConstants.java (78%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/SiaNumberCategoryUtils.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/YacbHolder.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/db/BlacklistDao.java (97%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/db/BlacklistItem.java (92%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/db/YacbDaoSessionFactory.java (94%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/data/db/YacbDbOpenHelper.java (92%) create mode 100644 app/src/main/java/fr/vinetos/tranquille/event/BlacklistChangedEvent.java rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/event/BlacklistItemChangedEvent.java (59%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/event/CallEndedEvent.java (50%) create mode 100644 app/src/main/java/fr/vinetos/tranquille/event/CallEvent.java rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/event/CallOngoingEvent.java (51%) create mode 100644 app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadFinishedEvent.java create mode 100644 app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadingEvent.java rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/event/SecondaryDbUpdateFinished.java (78%) create mode 100644 app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdatingEvent.java rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/preference/IntEditTextPreference.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/preference/IntListPreference.java (95%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/DbFilteringUtils.java (87%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/DebuggingUtils.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/DeferredInit.java (93%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/FileUtils.java (93%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/PackageManagerUtils.java (96%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/PhoneUtils.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/StringUtils.java (72%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/utils/SystemUtils.java (97%) create mode 100644 app/src/main/java/fr/vinetos/tranquille/work/DbUpdater.java rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/work/TaskService.java (81%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/work/UpdateScheduler.java (98%) rename app/src/main/java/{dummydomain/yetanothercallblocker => fr/vinetos/tranquille}/work/UpdateWorker.java (94%) create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png create mode 100644 other/playstore-banner.png diff --git a/BUILDING.md b/BUILDING.md index 9874b2a..28e65c5 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -3,7 +3,7 @@ ## Clone the project repo ``` -git clone https://gitlab.com/xynngh/YetAnotherCallBlocker.git +git clone https://github.com/Vinetos/Tranquille.git ``` ### Clone the assets repo (optional step: allows to avoid the initial DB downloading after installation) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38744c3..0e22beb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ I am not an Android Expert but I will do my best ! Cheers +- Rename the app to Tranquille - Switch to Gradle Kotlin - Update Android Gradle Plugin to 8.3.0 - Add support for Kotlin @@ -299,7 +300,7 @@ Cheers ### Added -- Yet Another Call Blocker [can be translated on Weblate](https://hosted.weblate.org/engage/yet-another-call-blocker/). +- Tranquille [can be translated on Weblate](https://hosted.weblate.org/engage/yet-another-call-blocker/). ### Changed diff --git a/FAQ.md b/FAQ.md index edcb6c1..71ccafa 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,6 +1,6 @@ # Frequently Asked Questions -If you didn't find an answer to your question, ask [in issues](https://gitlab.com/xynngh/YetAnotherCallBlocker/-/issues). +If you didn't find an answer to your question, ask [in issues](https://github.com/Vinetos/Tranquille/-/issues). ## The app doesn't prevent a short sound before a call is blocked. @@ -10,7 +10,7 @@ If you didn't find an answer to your question, ask [in issues](https://gitlab.co Enabling "monitoring service" also seems to help with this. -## Do I have to set Yet Another Call Blocker as the default "Phone app"? +## Do I have to set Tranquille as the default "Phone app"? Not necessarily. See ["Advanced call blocking mode"](FAQ.md#whats-that-advanced-call-blocking-mode). @@ -22,15 +22,15 @@ Check that you've granted all the requested permissions (the app asks for missin The app may encounter troubles providing its features on stock firmwares by some manufacturers (like MIUI from Xiaomi). There are two known issues so far: * [Call blocking and informational notifications don't work on MIUI (stock firmware on Xiaomi phones)](https://gitlab.com/xynngh/YetAnotherCallBlocker/-/issues/12). - This problem can be solved by enabling an always-running "monitoring service" (in Yet Another Call Blocker settings). Android requires to display a notification for a service like that, but on Android 8+ you may disable the notification using "notification channels". This feature has no effect on battery life. - Alternatively (or additionally) you may enable the ["Advanced call blocking mode"](FAQ.md#whats-that-advanced-call-blocking-mode) (in Yet Another Call Blocker settings). The feature should help to fix call blocking, though still won't help to provide the informational notifications (except "Call blocked" notifications - these will work fine). + This problem can be solved by enabling an always-running "monitoring service" (in Tranquille settings). Android requires to display a notification for a service like that, but on Android 8+ you may disable the notification using "notification channels". This feature has no effect on battery life. + Alternatively (or additionally) you may enable the ["Advanced call blocking mode"](FAQ.md#whats-that-advanced-call-blocking-mode) (in Tranquille settings). The feature should help to fix call blocking, though still won't help to provide the informational notifications (except "Call blocked" notifications - these will work fine). * [No informational notifications on some modern Samsung phones](https://gitlab.com/xynngh/YetAnotherCallBlocker/-/issues/13). The cause of this problem is unknown (so far) and there's no workaround. Provide system logs (not app logs - these show no anomalies) if you want this fixed. ## The app doesn't have a persistent notification. Does it work? -Yet Another Call Blocker doesn't have a permanent notification since it doesn't have any always-running services. The only actions it may do in background are optional auto-updates and incoming call handling (which are limited to the duration of corresponding events). So yeah, it does work ([unless it doesn't](FAQ.md#calls-arent-blocked-i-dont-get-any-informational-notifications)). +Tranquille doesn't have a permanent notification since it doesn't have any always-running services. The only actions it may do in background are optional auto-updates and incoming call handling (which are limited to the duration of corresponding events). So yeah, it does work ([unless it doesn't](FAQ.md#calls-arent-blocked-i-dont-get-any-informational-notifications)). ## Is there a whitelist? How can I allow a particular number with negative rating to call me? @@ -56,7 +56,7 @@ Obviously, on Android 7–9 you can't enable this feature **and** select a third ## I don't want to see some of the informational notifications, can I disable them? Can I change notification priorities? -If you don't want to receive some notifications (like notifications for calls from your contacts), you should use Android's [notification channels](https://www.androidcentral.com/notification-channels) feature to disable particular notification types or change their priorities. Yet Another Call Blocker provides plenty of notification channels for you to customize. +If you don't want to receive some notifications (like notifications for calls from your contacts), you should use Android's [notification channels](https://www.androidcentral.com/notification-channels) feature to disable particular notification types or change their priorities. Tranquille provides plenty of notification channels for you to customize. On pre-Android 8 devices there's a couple of notification-related options in the settings. There's also an option to disable all the informational notifications at once. @@ -90,10 +90,6 @@ The number format *must* match the format that Android uses, that's why the lead 1. If "Block blacklisted numbers" is enabled and the number matches any valid blacklist pattern, the call is **blocked**. -## Is there a way to display an overlay/pop-up screen with caller information? - -Not yet. If you want this feature, vote for [this issue](https://gitlab.com/xynngh/YetAnotherCallBlocker/-/issues/3). - ## I have "block hidden numbers" enabled, but some hidden/"private" numbers are still not blocked. @@ -126,7 +122,7 @@ I'm not sure disclosing the source is a great idea, I didn't ask for a permissio ## Are there any plans for X feature? -Check [issues](https://gitlab.com/xynngh/YetAnotherCallBlocker/-/issues). If there's nothing about it, create a new one and ask there. +Check [issues](https://github.com/Vinetos/Tranquille/-/issues). If there's nothing about it, create a new one and ask there. ## How to report a crash / get app logs? @@ -141,5 +137,5 @@ If you redact personal data (which you should do), please *replace* numbers (wit You don't have to. If you're happy with some other app - good for you. This project was started because I needed to help my non-techie relatives fight phone spam. Giving calls and contacts permissions to some proprietary app is just not an option for me. -There's only a few FOSS (free and open source) apps that provide call blocking and none of them has any kind of a crowdsourced blacklist. So I created Yet Another Call Blocker to solve this. +There's only a few FOSS (free and open source) apps that provide call blocking and none of them has any kind of a crowdsourced blacklist. So I created Tranquille to solve this. After a while the app got new features, some of which are unique on the FOSS scene (for example, I believe that the "advanced call blocking mode" is not present in any other FOSS spam blocker). diff --git a/README.md b/README.md index ca7109c..706f683 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,18 @@ -**Disclaimer:** This is a free and open source project, but it relies on third-party web-services for some functions to work. This project is not affiliated with any third-party entities in any other sense. +

+ + +

+
-# Yet Another Call Blocker +# Tranquille +**Disclaimer:** This is a free and open source project, but it relies on third-party web-services for some functions to work. This project is not affiliated with any third-party entities in any other sense. A free and open source application that can block unwanted calls or warn about probable intentions of callers using a third-party crowdsourced phone number database (from some other proprietary app). [Get it on F-Droid](https://f-droid.org/app/dummydomain.yetanothercallblocker) + height="80">](https://f-droid.org/app/) ## Key features @@ -114,7 +119,7 @@ Also, this project is meant to be non-commercial. So, there's that. Any contributions are welcome. -[Translate the app on Weblate](https://hosted.weblate.org/engage/yet-another-call-blocker/). +[Translate the app on Weblate](https://hosted.weblate.org/engage/tranquille). [More on contributing](CONTRIBUTING.md). diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fd55c75..61d6fe8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -5,20 +5,20 @@ plugins { } android { - namespace = "dummydomain.yetanothercallblocker" + namespace = "fr.vinetos.tranquille" compileSdk = 34 defaultConfig { - applicationId = "dummydomain.yetanothercallblocker" + applicationId = "fr.vinetos.tranquille" minSdk = 14 targetSdk = 34 - versionCode = 10000 - versionName = "1.0.0" + versionCode = 1 + versionName = "0.0.1" multiDexEnabled = true javaCompileOptions { annotationProcessorOptions { - argument("eventBusIndex", "dummydomain.yetanothercallblocker.EventBusIndex") + argument("eventBusIndex", "fr.vinetos.tranquille.EventBusIndex") } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bde7af3..33e996b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,6 +15,7 @@ + diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistChangedEvent.java b/app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistChangedEvent.java deleted file mode 100644 index e582909..0000000 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistChangedEvent.java +++ /dev/null @@ -1,3 +0,0 @@ -package dummydomain.yetanothercallblocker.event; - -public class BlacklistChangedEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/CallEvent.java b/app/src/main/java/dummydomain/yetanothercallblocker/event/CallEvent.java deleted file mode 100644 index b60d72f..0000000 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/CallEvent.java +++ /dev/null @@ -1,3 +0,0 @@ -package dummydomain.yetanothercallblocker.event; - -public class CallEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadFinishedEvent.java b/app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadFinishedEvent.java deleted file mode 100644 index e8db773..0000000 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadFinishedEvent.java +++ /dev/null @@ -1,3 +0,0 @@ -package dummydomain.yetanothercallblocker.event; - -public class MainDbDownloadFinishedEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadingEvent.java b/app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadingEvent.java deleted file mode 100644 index 23d08b1..0000000 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/MainDbDownloadingEvent.java +++ /dev/null @@ -1,3 +0,0 @@ -package dummydomain.yetanothercallblocker.event; - -public class MainDbDownloadingEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdatingEvent.java b/app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdatingEvent.java deleted file mode 100644 index b30fc55..0000000 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdatingEvent.java +++ /dev/null @@ -1,3 +0,0 @@ -package dummydomain.yetanothercallblocker.event; - -public class SecondaryDbUpdatingEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/work/DbUpdater.java b/app/src/main/java/dummydomain/yetanothercallblocker/work/DbUpdater.java deleted file mode 100644 index 7c2d444..0000000 --- a/app/src/main/java/dummydomain/yetanothercallblocker/work/DbUpdater.java +++ /dev/null @@ -1,37 +0,0 @@ -package dummydomain.yetanothercallblocker.work; - -import dummydomain.yetanothercallblocker.App; -import dummydomain.yetanothercallblocker.Settings; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.event.SecondaryDbUpdateFinished; -import dummydomain.yetanothercallblocker.event.SecondaryDbUpdatingEvent; -import dummydomain.yetanothercallblocker.sia.model.database.DbManager; - -import static dummydomain.yetanothercallblocker.EventUtils.postEvent; -import static dummydomain.yetanothercallblocker.EventUtils.postStickyEvent; -import static dummydomain.yetanothercallblocker.EventUtils.removeStickyEvent; - -public class DbUpdater { - - public void update() { - Settings settings = App.getSettings(); - - boolean updated = false; - - SecondaryDbUpdatingEvent sticky = new SecondaryDbUpdatingEvent(); - - postStickyEvent(sticky); - try { - DbManager.UpdateResult updateResult = YacbHolder.getDbManager().updateSecondaryDb(); - if (updateResult.isUpdated()) { - settings.setLastUpdateTime(System.currentTimeMillis()); - updated = true; - } // TODO: handle other results - settings.setLastUpdateCheckTime(System.currentTimeMillis()); - } finally { - removeStickyEvent(sticky); - postEvent(new SecondaryDbUpdateFinished(updated)); - } - } - -} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/AboutActivity.java b/app/src/main/java/fr/vinetos/tranquille/AboutActivity.java similarity index 92% rename from app/src/main/java/dummydomain/yetanothercallblocker/AboutActivity.java rename to app/src/main/java/fr/vinetos/tranquille/AboutActivity.java index 8368249..7d60099 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/AboutActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/AboutActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Intent; import android.os.Build; @@ -17,12 +17,12 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.event.MainDbDownloadFinishedEvent; -import dummydomain.yetanothercallblocker.event.SecondaryDbUpdateFinished; -import dummydomain.yetanothercallblocker.event.SecondaryDbUpdatingEvent; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.event.MainDbDownloadFinishedEvent; +import fr.vinetos.tranquille.event.SecondaryDbUpdateFinished; +import fr.vinetos.tranquille.event.SecondaryDbUpdatingEvent; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabase; -import dummydomain.yetanothercallblocker.work.TaskService; +import fr.vinetos.tranquille.work.TaskService; public class AboutActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/AdvancedSettingsFragment.java b/app/src/main/java/fr/vinetos/tranquille/AdvancedSettingsFragment.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/AdvancedSettingsFragment.java rename to app/src/main/java/fr/vinetos/tranquille/AdvancedSettingsFragment.java index 4c962b2..553ce6c 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/AdvancedSettingsFragment.java +++ b/app/src/main/java/fr/vinetos/tranquille/AdvancedSettingsFragment.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.app.Activity; import android.text.TextUtils; @@ -15,9 +15,9 @@ import java.io.IOException; import java.util.regex.Pattern; -import dummydomain.yetanothercallblocker.utils.DebuggingUtils; -import dummydomain.yetanothercallblocker.utils.FileUtils; -import dummydomain.yetanothercallblocker.utils.SystemUtils; +import fr.vinetos.tranquille.utils.DebuggingUtils; +import fr.vinetos.tranquille.utils.FileUtils; +import fr.vinetos.tranquille.utils.SystemUtils; public class AdvancedSettingsFragment extends BaseSettingsFragment { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/App.java b/app/src/main/java/fr/vinetos/tranquille/App.java similarity index 89% rename from app/src/main/java/dummydomain/yetanothercallblocker/App.java rename to app/src/main/java/fr/vinetos/tranquille/App.java index fb3a0ec..de69fa2 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/App.java +++ b/app/src/main/java/fr/vinetos/tranquille/App.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.app.Application; @@ -7,8 +7,8 @@ import androidx.appcompat.app.AppCompatDelegate; -import dummydomain.yetanothercallblocker.data.Config; -import dummydomain.yetanothercallblocker.utils.DebuggingUtils; +import fr.vinetos.tranquille.utils.DebuggingUtils; +import fr.vinetos.tranquille.data.Config; public class App extends Application { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/BaseSettingsFragment.java b/app/src/main/java/fr/vinetos/tranquille/BaseSettingsFragment.java similarity index 99% rename from app/src/main/java/dummydomain/yetanothercallblocker/BaseSettingsFragment.java rename to app/src/main/java/fr/vinetos/tranquille/BaseSettingsFragment.java index f8e4f90..c009e62 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/BaseSettingsFragment.java +++ b/app/src/main/java/fr/vinetos/tranquille/BaseSettingsFragment.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.os.Bundle; import android.text.TextUtils; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/BlacklistActivity.java b/app/src/main/java/fr/vinetos/tranquille/BlacklistActivity.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/BlacklistActivity.java rename to app/src/main/java/fr/vinetos/tranquille/BlacklistActivity.java index 6ad8551..3f3731e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/BlacklistActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/BlacklistActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.app.Activity; import android.content.ActivityNotFoundException; @@ -35,13 +35,13 @@ import java.io.IOException; import java.util.Objects; -import dummydomain.yetanothercallblocker.data.BlacklistImporterExporter; -import dummydomain.yetanothercallblocker.data.BlacklistService; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; -import dummydomain.yetanothercallblocker.event.BlacklistChangedEvent; -import dummydomain.yetanothercallblocker.utils.FileUtils; +import fr.vinetos.tranquille.data.BlacklistImporterExporter; +import fr.vinetos.tranquille.data.BlacklistService; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.data.db.BlacklistDao; +import fr.vinetos.tranquille.data.db.BlacklistItem; +import fr.vinetos.tranquille.event.BlacklistChangedEvent; +import fr.vinetos.tranquille.utils.FileUtils; public class BlacklistActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/BlacklistDataSource.java b/app/src/main/java/fr/vinetos/tranquille/BlacklistDataSource.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/BlacklistDataSource.java rename to app/src/main/java/fr/vinetos/tranquille/BlacklistDataSource.java index ef3ca17..231c4e3 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/BlacklistDataSource.java +++ b/app/src/main/java/fr/vinetos/tranquille/BlacklistDataSource.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import androidx.annotation.NonNull; import androidx.paging.DataSource; @@ -11,8 +11,8 @@ import java.util.Iterator; import java.util.List; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; +import fr.vinetos.tranquille.data.db.BlacklistDao; +import fr.vinetos.tranquille.data.db.BlacklistItem; public class BlacklistDataSource extends PositionalDataSource { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/BlacklistItemRecyclerViewAdapter.java b/app/src/main/java/fr/vinetos/tranquille/BlacklistItemRecyclerViewAdapter.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/BlacklistItemRecyclerViewAdapter.java rename to app/src/main/java/fr/vinetos/tranquille/BlacklistItemRecyclerViewAdapter.java index d9323c7..245110b 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/BlacklistItemRecyclerViewAdapter.java +++ b/app/src/main/java/fr/vinetos/tranquille/BlacklistItemRecyclerViewAdapter.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.text.TextUtils; @@ -21,7 +21,7 @@ import java.util.Date; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; +import fr.vinetos.tranquille.data.db.BlacklistItem; public class BlacklistItemRecyclerViewAdapter extends GenericRecyclerViewAdapter { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/CallLogItemRecyclerViewAdapter.java b/app/src/main/java/fr/vinetos/tranquille/CallLogItemRecyclerViewAdapter.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/CallLogItemRecyclerViewAdapter.java rename to app/src/main/java/fr/vinetos/tranquille/CallLogItemRecyclerViewAdapter.java index 9f6e193..8f9718e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/CallLogItemRecyclerViewAdapter.java +++ b/app/src/main/java/fr/vinetos/tranquille/CallLogItemRecyclerViewAdapter.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.text.TextUtils; @@ -16,9 +16,9 @@ import java.util.Iterator; import java.util.List; -import dummydomain.yetanothercallblocker.data.CallLogItem; -import dummydomain.yetanothercallblocker.data.CallLogItemGroup; -import dummydomain.yetanothercallblocker.data.NumberInfo; +import fr.vinetos.tranquille.data.CallLogItem; +import fr.vinetos.tranquille.data.CallLogItemGroup; +import fr.vinetos.tranquille.data.NumberInfo; public class CallLogItemRecyclerViewAdapter extends GenericRecyclerViewAdapter { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/CallMonitoringService.java b/app/src/main/java/fr/vinetos/tranquille/CallMonitoringService.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/CallMonitoringService.java rename to app/src/main/java/fr/vinetos/tranquille/CallMonitoringService.java index 1ce1672..fddddde 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/CallMonitoringService.java +++ b/app/src/main/java/fr/vinetos/tranquille/CallMonitoringService.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.app.Service; import android.content.Context; @@ -15,9 +15,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import dummydomain.yetanothercallblocker.data.YacbHolder; +import fr.vinetos.tranquille.data.YacbHolder; -import static dummydomain.yetanothercallblocker.utils.StringUtils.quote; +import static fr.vinetos.tranquille.utils.StringUtils.quote; import static java.util.Objects.requireNonNull; public class CallMonitoringService extends Service { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/CallScreeningServiceImpl.java b/app/src/main/java/fr/vinetos/tranquille/CallScreeningServiceImpl.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/CallScreeningServiceImpl.java rename to app/src/main/java/fr/vinetos/tranquille/CallScreeningServiceImpl.java index 4078331..7dbfb79 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/CallScreeningServiceImpl.java +++ b/app/src/main/java/fr/vinetos/tranquille/CallScreeningServiceImpl.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.net.Uri; import android.os.Build; @@ -17,12 +17,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import dummydomain.yetanothercallblocker.data.NumberInfo; -import dummydomain.yetanothercallblocker.data.NumberInfoService; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.event.CallEndedEvent; +import fr.vinetos.tranquille.data.NumberInfo; +import fr.vinetos.tranquille.data.NumberInfoService; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.event.CallEndedEvent; -import static dummydomain.yetanothercallblocker.EventUtils.postEvent; +import static fr.vinetos.tranquille.EventUtils.postEvent; @RequiresApi(Build.VERSION_CODES.N) public class CallScreeningServiceImpl extends CallScreeningService { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/CustomListViewAdapter.java b/app/src/main/java/fr/vinetos/tranquille/CustomListViewAdapter.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/CustomListViewAdapter.java rename to app/src/main/java/fr/vinetos/tranquille/CustomListViewAdapter.java index 3f124d9..5ea9ebe 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/CustomListViewAdapter.java +++ b/app/src/main/java/fr/vinetos/tranquille/CustomListViewAdapter.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.text.TextUtils; import android.view.LayoutInflater; @@ -13,7 +13,7 @@ import java.util.Collections; import java.util.List; -import dummydomain.yetanothercallblocker.data.SiaNumberCategoryUtils; +import fr.vinetos.tranquille.data.SiaNumberCategoryUtils; import dummydomain.yetanothercallblocker.sia.model.CommunityReview; class CustomListViewAdapter extends RecyclerView.Adapter { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/CustomVerticalDivider.java b/app/src/main/java/fr/vinetos/tranquille/CustomVerticalDivider.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/CustomVerticalDivider.java rename to app/src/main/java/fr/vinetos/tranquille/CustomVerticalDivider.java index 5d334b7..bed47e7 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/CustomVerticalDivider.java +++ b/app/src/main/java/fr/vinetos/tranquille/CustomVerticalDivider.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.content.res.TypedArray; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/DbFilteringSettingsFragment.java b/app/src/main/java/fr/vinetos/tranquille/DbFilteringSettingsFragment.java similarity index 92% rename from app/src/main/java/dummydomain/yetanothercallblocker/DbFilteringSettingsFragment.java rename to app/src/main/java/fr/vinetos/tranquille/DbFilteringSettingsFragment.java index ef6d6ae..82604d3 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/DbFilteringSettingsFragment.java +++ b/app/src/main/java/fr/vinetos/tranquille/DbFilteringSettingsFragment.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.os.AsyncTask; @@ -9,11 +9,11 @@ import java.util.List; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.utils.DbFilteringUtils; -import dummydomain.yetanothercallblocker.work.TaskService; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.utils.DbFilteringUtils; +import fr.vinetos.tranquille.work.TaskService; -import static dummydomain.yetanothercallblocker.Settings.PREF_DB_FILTERING_PREFIXES_TO_KEEP; +import static fr.vinetos.tranquille.Settings.PREF_DB_FILTERING_PREFIXES_TO_KEEP; public class DbFilteringSettingsFragment extends BaseSettingsFragment { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/DbManagementActivity.java b/app/src/main/java/fr/vinetos/tranquille/DbManagementActivity.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/DbManagementActivity.java rename to app/src/main/java/fr/vinetos/tranquille/DbManagementActivity.java index b9f28b5..f7711df 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/DbManagementActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/DbManagementActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.os.AsyncTask; @@ -13,12 +13,12 @@ import java.util.Date; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.event.SecondaryDbUpdateFinished; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.event.SecondaryDbUpdateFinished; import dummydomain.yetanothercallblocker.sia.model.SiaMetadata; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabase; import dummydomain.yetanothercallblocker.sia.model.database.FeaturedDatabase; -import dummydomain.yetanothercallblocker.work.TaskService; +import fr.vinetos.tranquille.work.TaskService; public class DbManagementActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/DeviceProtectedStorageMigrator.java b/app/src/main/java/fr/vinetos/tranquille/DeviceProtectedStorageMigrator.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/DeviceProtectedStorageMigrator.java rename to app/src/main/java/fr/vinetos/tranquille/DeviceProtectedStorageMigrator.java index d97da71..130f4c8 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/DeviceProtectedStorageMigrator.java +++ b/app/src/main/java/fr/vinetos/tranquille/DeviceProtectedStorageMigrator.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.os.Build; @@ -9,7 +9,7 @@ import java.io.IOException; import java.nio.channels.FileChannel; -import dummydomain.yetanothercallblocker.data.SiaConstants; +import fr.vinetos.tranquille.data.SiaConstants; import dummydomain.yetanothercallblocker.sia.utils.FileUtils; public class DeviceProtectedStorageMigrator { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/DummyDialerActivity.java b/app/src/main/java/fr/vinetos/tranquille/DummyDialerActivity.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/DummyDialerActivity.java rename to app/src/main/java/fr/vinetos/tranquille/DummyDialerActivity.java index 200070b..5dacb41 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/DummyDialerActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/DummyDialerActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.ComponentName; import android.content.Intent; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/EditBlacklistItemActivity.java b/app/src/main/java/fr/vinetos/tranquille/EditBlacklistItemActivity.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/EditBlacklistItemActivity.java rename to app/src/main/java/fr/vinetos/tranquille/EditBlacklistItemActivity.java index 9f80d4a..b90bfdf 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/EditBlacklistItemActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/EditBlacklistItemActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.content.Intent; @@ -26,14 +26,14 @@ import java.util.Date; import java.util.Objects; -import dummydomain.yetanothercallblocker.data.BlacklistService; -import dummydomain.yetanothercallblocker.data.BlacklistUtils; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; +import fr.vinetos.tranquille.data.BlacklistService; +import fr.vinetos.tranquille.data.BlacklistUtils; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.data.db.BlacklistDao; +import fr.vinetos.tranquille.data.db.BlacklistItem; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.cleanPattern; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.patternFromHumanReadable; +import static fr.vinetos.tranquille.data.BlacklistUtils.cleanPattern; +import static fr.vinetos.tranquille.data.BlacklistUtils.patternFromHumanReadable; public class EditBlacklistItemActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/EventUtils.java b/app/src/main/java/fr/vinetos/tranquille/EventUtils.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/EventUtils.java rename to app/src/main/java/fr/vinetos/tranquille/EventUtils.java index 9a57042..c03323a 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/EventUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/EventUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/GenericRecyclerViewAdapter.java b/app/src/main/java/fr/vinetos/tranquille/GenericRecyclerViewAdapter.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/GenericRecyclerViewAdapter.java rename to app/src/main/java/fr/vinetos/tranquille/GenericRecyclerViewAdapter.java index ccbf5eb..164ad19 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/GenericRecyclerViewAdapter.java +++ b/app/src/main/java/fr/vinetos/tranquille/GenericRecyclerViewAdapter.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.view.View; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/GenericSettings.java b/app/src/main/java/fr/vinetos/tranquille/GenericSettings.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/GenericSettings.java rename to app/src/main/java/fr/vinetos/tranquille/GenericSettings.java index cd42579..312ae99 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/GenericSettings.java +++ b/app/src/main/java/fr/vinetos/tranquille/GenericSettings.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.content.SharedPreferences; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/IconAndColor.java b/app/src/main/java/fr/vinetos/tranquille/IconAndColor.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/IconAndColor.java rename to app/src/main/java/fr/vinetos/tranquille/IconAndColor.java index 47bf3d0..1d35b6e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/IconAndColor.java +++ b/app/src/main/java/fr/vinetos/tranquille/IconAndColor.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.content.res.ColorStateList; @@ -10,7 +10,7 @@ import androidx.appcompat.widget.AppCompatImageView; import androidx.core.widget.ImageViewCompat; -import dummydomain.yetanothercallblocker.data.NumberInfo; +import fr.vinetos.tranquille.data.NumberInfo; import dummydomain.yetanothercallblocker.sia.model.CommunityReview; class IconAndColor { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/InfoDialogActivity.java b/app/src/main/java/fr/vinetos/tranquille/InfoDialogActivity.java similarity index 85% rename from app/src/main/java/dummydomain/yetanothercallblocker/InfoDialogActivity.java rename to app/src/main/java/fr/vinetos/tranquille/InfoDialogActivity.java index b7ea6b0..a35df40 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/InfoDialogActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/InfoDialogActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.content.Intent; @@ -7,8 +7,8 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import dummydomain.yetanothercallblocker.data.NumberInfo; -import dummydomain.yetanothercallblocker.data.YacbHolder; +import fr.vinetos.tranquille.data.NumberInfo; +import fr.vinetos.tranquille.data.YacbHolder; public class InfoDialogActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/InfoDialogHelper.java b/app/src/main/java/fr/vinetos/tranquille/InfoDialogHelper.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/InfoDialogHelper.java rename to app/src/main/java/fr/vinetos/tranquille/InfoDialogHelper.java index e87da71..7a0cb94 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/InfoDialogHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/InfoDialogHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.content.Context; @@ -12,9 +12,9 @@ import androidx.appcompat.app.AlertDialog; -import dummydomain.yetanothercallblocker.data.NumberInfo; -import dummydomain.yetanothercallblocker.data.SiaNumberCategoryUtils; -import dummydomain.yetanothercallblocker.data.YacbHolder; +import fr.vinetos.tranquille.data.NumberInfo; +import fr.vinetos.tranquille.data.SiaNumberCategoryUtils; +import fr.vinetos.tranquille.data.YacbHolder; import dummydomain.yetanothercallblocker.sia.model.NumberCategory; import dummydomain.yetanothercallblocker.sia.model.database.FeaturedDatabaseItem; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/IntentHelper.java b/app/src/main/java/fr/vinetos/tranquille/IntentHelper.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/IntentHelper.java rename to app/src/main/java/fr/vinetos/tranquille/IntentHelper.java index 3f2bd1f..b65a94a 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/IntentHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/IntentHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.app.PendingIntent; import android.content.Context; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/LookupNumberActivity.java b/app/src/main/java/fr/vinetos/tranquille/LookupNumberActivity.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/LookupNumberActivity.java rename to app/src/main/java/fr/vinetos/tranquille/LookupNumberActivity.java index 1ffa8e0..a1ad13e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/LookupNumberActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/LookupNumberActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.content.ClipData; @@ -18,8 +18,8 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.util.Pair; -import dummydomain.yetanothercallblocker.data.SiaNumberCategoryUtils; -import dummydomain.yetanothercallblocker.data.YacbHolder; +import fr.vinetos.tranquille.data.SiaNumberCategoryUtils; +import fr.vinetos.tranquille.data.YacbHolder; import dummydomain.yetanothercallblocker.sia.model.NumberCategory; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabaseItem; import dummydomain.yetanothercallblocker.sia.model.database.FeaturedDatabaseItem; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java b/app/src/main/java/fr/vinetos/tranquille/MainActivity.java similarity index 93% rename from app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java rename to app/src/main/java/fr/vinetos/tranquille/MainActivity.java index e930043..aa5ad2a 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/MainActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/MainActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.content.Intent; @@ -25,16 +25,16 @@ import java.util.List; import java.util.Objects; -import dummydomain.yetanothercallblocker.data.CallLogDataSource; -import dummydomain.yetanothercallblocker.data.CallLogItem; -import dummydomain.yetanothercallblocker.data.CallLogItemGroup; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.event.CallEndedEvent; -import dummydomain.yetanothercallblocker.event.MainDbDownloadFinishedEvent; -import dummydomain.yetanothercallblocker.event.MainDbDownloadingEvent; -import dummydomain.yetanothercallblocker.event.SecondaryDbUpdateFinished; -import dummydomain.yetanothercallblocker.work.TaskService; -import dummydomain.yetanothercallblocker.work.UpdateScheduler; +import fr.vinetos.tranquille.data.CallLogDataSource; +import fr.vinetos.tranquille.data.CallLogItem; +import fr.vinetos.tranquille.data.CallLogItemGroup; +import fr.vinetos.tranquille.data.YacbHolder; +import fr.vinetos.tranquille.event.CallEndedEvent; +import fr.vinetos.tranquille.event.MainDbDownloadFinishedEvent; +import fr.vinetos.tranquille.event.MainDbDownloadingEvent; +import fr.vinetos.tranquille.event.SecondaryDbUpdateFinished; +import fr.vinetos.tranquille.work.TaskService; +import fr.vinetos.tranquille.work.UpdateScheduler; public class MainActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/NotificationHelper.java b/app/src/main/java/fr/vinetos/tranquille/NotificationHelper.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/NotificationHelper.java rename to app/src/main/java/fr/vinetos/tranquille/NotificationHelper.java index 3da1e5c..ea68882 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/NotificationHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/NotificationHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.app.Notification; import android.app.NotificationChannel; @@ -16,11 +16,11 @@ import java.util.ArrayList; import java.util.List; -import dummydomain.yetanothercallblocker.data.NumberInfo; +import fr.vinetos.tranquille.data.NumberInfo; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabaseItem; -import static dummydomain.yetanothercallblocker.IntentHelper.clearTop; -import static dummydomain.yetanothercallblocker.IntentHelper.pendingActivity; +import static fr.vinetos.tranquille.IntentHelper.clearTop; +import static fr.vinetos.tranquille.IntentHelper.pendingActivity; public class NotificationHelper { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/NotificationService.java b/app/src/main/java/fr/vinetos/tranquille/NotificationService.java similarity index 85% rename from app/src/main/java/dummydomain/yetanothercallblocker/NotificationService.java rename to app/src/main/java/fr/vinetos/tranquille/NotificationService.java index a35c0e6..9687009 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/NotificationService.java +++ b/app/src/main/java/fr/vinetos/tranquille/NotificationService.java @@ -1,8 +1,8 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; -import dummydomain.yetanothercallblocker.data.NumberInfo; +import fr.vinetos.tranquille.data.NumberInfo; public class NotificationService { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/NumberInfoUtils.java b/app/src/main/java/fr/vinetos/tranquille/NumberInfoUtils.java similarity index 81% rename from app/src/main/java/dummydomain/yetanothercallblocker/NumberInfoUtils.java rename to app/src/main/java/fr/vinetos/tranquille/NumberInfoUtils.java index 4e3b088..1b70545 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/NumberInfoUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/NumberInfoUtils.java @@ -1,9 +1,9 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; -import dummydomain.yetanothercallblocker.data.NumberInfo; -import dummydomain.yetanothercallblocker.data.SiaNumberCategoryUtils; +import fr.vinetos.tranquille.data.NumberInfo; +import fr.vinetos.tranquille.data.SiaNumberCategoryUtils; import dummydomain.yetanothercallblocker.sia.model.NumberCategory; public class NumberInfoUtils { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java b/app/src/main/java/fr/vinetos/tranquille/PermissionHelper.java similarity index 99% rename from app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java rename to app/src/main/java/fr/vinetos/tranquille/PermissionHelper.java index 47c820e..7f9a62f 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/PermissionHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/PermissionHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.Manifest; import android.app.Activity; @@ -36,7 +36,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; -import static dummydomain.yetanothercallblocker.IntentHelper.startActivity; +import static fr.vinetos.tranquille.IntentHelper.startActivity; import static java.util.Objects.requireNonNull; public class PermissionHelper { @@ -307,7 +307,8 @@ private static void showDefaultDialerDialog(Activity activity, boolean set) { @RequiresApi(Build.VERSION_CODES.N) private static void openDefaultAppsSettings(Context context) { - if (startActivity(context, new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS))) return; + if (startActivity(context, new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS))) + return; startActivity(context, new Intent(Settings.ACTION_SETTINGS)); } diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/PhoneStateBroadcastReceiver.java b/app/src/main/java/fr/vinetos/tranquille/PhoneStateBroadcastReceiver.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/PhoneStateBroadcastReceiver.java rename to app/src/main/java/fr/vinetos/tranquille/PhoneStateBroadcastReceiver.java index 1dce0e8..0d900a2 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/PhoneStateBroadcastReceiver.java +++ b/app/src/main/java/fr/vinetos/tranquille/PhoneStateBroadcastReceiver.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.BroadcastReceiver; import android.content.Context; @@ -9,9 +9,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import dummydomain.yetanothercallblocker.data.YacbHolder; +import fr.vinetos.tranquille.data.YacbHolder; -import static dummydomain.yetanothercallblocker.utils.StringUtils.quote; +import static fr.vinetos.tranquille.utils.StringUtils.quote; public class PhoneStateBroadcastReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/PhoneStateHandler.java b/app/src/main/java/fr/vinetos/tranquille/PhoneStateHandler.java similarity index 92% rename from app/src/main/java/dummydomain/yetanothercallblocker/PhoneStateHandler.java rename to app/src/main/java/fr/vinetos/tranquille/PhoneStateHandler.java index 1ff6754..cb0e6c7 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/PhoneStateHandler.java +++ b/app/src/main/java/fr/vinetos/tranquille/PhoneStateHandler.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.text.TextUtils; @@ -13,14 +13,14 @@ import java.util.ListIterator; import java.util.concurrent.TimeUnit; -import dummydomain.yetanothercallblocker.data.NumberInfo; -import dummydomain.yetanothercallblocker.data.NumberInfoService; -import dummydomain.yetanothercallblocker.event.CallEndedEvent; -import dummydomain.yetanothercallblocker.event.CallOngoingEvent; -import dummydomain.yetanothercallblocker.utils.PhoneUtils; +import fr.vinetos.tranquille.data.NumberInfo; +import fr.vinetos.tranquille.data.NumberInfoService; +import fr.vinetos.tranquille.event.CallEndedEvent; +import fr.vinetos.tranquille.event.CallOngoingEvent; +import fr.vinetos.tranquille.utils.PhoneUtils; -import static dummydomain.yetanothercallblocker.EventUtils.postEvent; -import static dummydomain.yetanothercallblocker.utils.StringUtils.quote; +import static fr.vinetos.tranquille.EventUtils.postEvent; +import static fr.vinetos.tranquille.utils.StringUtils.quote; public class PhoneStateHandler { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/ReviewsActivity.java b/app/src/main/java/fr/vinetos/tranquille/ReviewsActivity.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/ReviewsActivity.java rename to app/src/main/java/fr/vinetos/tranquille/ReviewsActivity.java index 413b206..1e250ce 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/ReviewsActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/ReviewsActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.content.Context; @@ -18,10 +18,10 @@ import java.util.List; -import dummydomain.yetanothercallblocker.data.YacbHolder; +import fr.vinetos.tranquille.data.YacbHolder; import dummydomain.yetanothercallblocker.sia.model.CommunityReview; -import static dummydomain.yetanothercallblocker.IntentHelper.clearTop; +import static fr.vinetos.tranquille.IntentHelper.clearTop; public class ReviewsActivity extends AppCompatActivity { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/ReviewsSummaryHelper.java b/app/src/main/java/fr/vinetos/tranquille/ReviewsSummaryHelper.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/ReviewsSummaryHelper.java rename to app/src/main/java/fr/vinetos/tranquille/ReviewsSummaryHelper.java index b3e265e..6765e5e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/ReviewsSummaryHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/ReviewsSummaryHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.view.View; import android.widget.TextView; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/RoleManagerHelper.java b/app/src/main/java/fr/vinetos/tranquille/RoleManagerHelper.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/RoleManagerHelper.java rename to app/src/main/java/fr/vinetos/tranquille/RoleManagerHelper.java index f89b5da..f594f5c 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/RoleManagerHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/RoleManagerHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java b/app/src/main/java/fr/vinetos/tranquille/RootSettingsFragment.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java rename to app/src/main/java/fr/vinetos/tranquille/RootSettingsFragment.java index 9d090f4..16e9245 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/RootSettingsFragment.java +++ b/app/src/main/java/fr/vinetos/tranquille/RootSettingsFragment.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.content.Intent; @@ -11,8 +11,8 @@ import androidx.preference.Preference; import androidx.preference.SwitchPreferenceCompat; -import dummydomain.yetanothercallblocker.utils.PackageManagerUtils; -import dummydomain.yetanothercallblocker.work.UpdateScheduler; +import fr.vinetos.tranquille.utils.PackageManagerUtils; +import fr.vinetos.tranquille.work.UpdateScheduler; public class RootSettingsFragment extends BaseSettingsFragment { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/Settings.java b/app/src/main/java/fr/vinetos/tranquille/Settings.java similarity index 99% rename from app/src/main/java/dummydomain/yetanothercallblocker/Settings.java rename to app/src/main/java/fr/vinetos/tranquille/Settings.java index 8bdb6f9..8c55a08 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/Settings.java +++ b/app/src/main/java/fr/vinetos/tranquille/Settings.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.text.TextUtils; @@ -14,7 +14,7 @@ import java.util.Locale; import java.util.Set; -import dummydomain.yetanothercallblocker.data.CountryHelper; +import fr.vinetos.tranquille.data.CountryHelper; import dummydomain.yetanothercallblocker.sia.model.database.DbManager; public class Settings extends GenericSettings { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/SettingsActivity.java b/app/src/main/java/fr/vinetos/tranquille/SettingsActivity.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/SettingsActivity.java rename to app/src/main/java/fr/vinetos/tranquille/SettingsActivity.java index 2573c39..478b40a 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/SettingsActivity.java +++ b/app/src/main/java/fr/vinetos/tranquille/SettingsActivity.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.os.Bundle; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/StartupReceiver.java b/app/src/main/java/fr/vinetos/tranquille/StartupReceiver.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/StartupReceiver.java rename to app/src/main/java/fr/vinetos/tranquille/StartupReceiver.java index 8f40b57..68535f4 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/StartupReceiver.java +++ b/app/src/main/java/fr/vinetos/tranquille/StartupReceiver.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.annotation.SuppressLint; import android.content.BroadcastReceiver; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/UiUtils.java b/app/src/main/java/fr/vinetos/tranquille/UiUtils.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/UiUtils.java rename to app/src/main/java/fr/vinetos/tranquille/UiUtils.java index 7ed30ab..46eb720 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/UiUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/UiUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker; +package fr.vinetos.tranquille; import android.content.Context; import android.text.TextUtils; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/AndroidProperties.java b/app/src/main/java/fr/vinetos/tranquille/data/AndroidProperties.java similarity index 71% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/AndroidProperties.java rename to app/src/main/java/fr/vinetos/tranquille/data/AndroidProperties.java index 633fd86..2d05c2d 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/AndroidProperties.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/AndroidProperties.java @@ -1,8 +1,8 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; -import dummydomain.yetanothercallblocker.GenericSettings; +import fr.vinetos.tranquille.GenericSettings; import dummydomain.yetanothercallblocker.sia.Properties; public class AndroidProperties extends GenericSettings implements Properties { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/AndroidStorage.java b/app/src/main/java/fr/vinetos/tranquille/data/AndroidStorage.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/AndroidStorage.java rename to app/src/main/java/fr/vinetos/tranquille/data/AndroidStorage.java index dff8e81..139ff6f 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/AndroidStorage.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/AndroidStorage.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistImporterExporter.java b/app/src/main/java/fr/vinetos/tranquille/data/BlacklistImporterExporter.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistImporterExporter.java rename to app/src/main/java/fr/vinetos/tranquille/data/BlacklistImporterExporter.java index bd9f5c3..354fb2a 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistImporterExporter.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/BlacklistImporterExporter.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.text.TextUtils; @@ -24,13 +24,13 @@ import java.util.Iterator; import java.util.List; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; +import fr.vinetos.tranquille.data.db.BlacklistDao; +import fr.vinetos.tranquille.data.db.BlacklistItem; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.cleanPattern; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.isValidPattern; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.patternFromHumanReadable; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.patternToHumanReadable; +import static fr.vinetos.tranquille.data.BlacklistUtils.cleanPattern; +import static fr.vinetos.tranquille.data.BlacklistUtils.isValidPattern; +import static fr.vinetos.tranquille.data.BlacklistUtils.patternFromHumanReadable; +import static fr.vinetos.tranquille.data.BlacklistUtils.patternToHumanReadable; public class BlacklistImporterExporter { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistService.java b/app/src/main/java/fr/vinetos/tranquille/data/BlacklistService.java similarity index 78% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistService.java rename to app/src/main/java/fr/vinetos/tranquille/data/BlacklistService.java index 03ffb3f..9508f0e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistService.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/BlacklistService.java @@ -1,16 +1,15 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.text.TextUtils; import java.util.Date; import java.util.Objects; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; -import dummydomain.yetanothercallblocker.event.BlacklistChangedEvent; -import dummydomain.yetanothercallblocker.event.BlacklistItemChangedEvent; - -import static dummydomain.yetanothercallblocker.EventUtils.postEvent; +import fr.vinetos.tranquille.EventUtils; +import fr.vinetos.tranquille.data.db.BlacklistDao; +import fr.vinetos.tranquille.data.db.BlacklistItem; +import fr.vinetos.tranquille.event.BlacklistChangedEvent; +import fr.vinetos.tranquille.event.BlacklistItemChangedEvent; public class BlacklistService { @@ -58,7 +57,7 @@ public void addCall(BlacklistItem blacklistItem, Date date) { blacklistDao.save(blacklistItem); - postEvent(new BlacklistItemChangedEvent()); + EventUtils.postEvent(new BlacklistItemChangedEvent()); } public void delete(Iterable keys) { @@ -76,7 +75,7 @@ private void sanitize(BlacklistItem blacklistItem) { private void blacklistChanged(boolean itemUpdate) { callback.changed(blacklistDao.countValid() != 0); - postEvent(itemUpdate ? new BlacklistItemChangedEvent() : new BlacklistChangedEvent()); + EventUtils.postEvent(itemUpdate ? new BlacklistItemChangedEvent() : new BlacklistChangedEvent()); } } diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistUtils.java b/app/src/main/java/fr/vinetos/tranquille/data/BlacklistUtils.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistUtils.java rename to app/src/main/java/fr/vinetos/tranquille/data/BlacklistUtils.java index 1bad33f..b433328 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/BlacklistUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/BlacklistUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import java.util.regex.Pattern; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogDataSource.java b/app/src/main/java/fr/vinetos/tranquille/data/CallLogDataSource.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogDataSource.java rename to app/src/main/java/fr/vinetos/tranquille/data/CallLogDataSource.java index cc01131..924906a 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogDataSource.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/CallLogDataSource.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; import android.os.Bundle; @@ -18,9 +18,9 @@ import java.util.List; import java.util.Map; -import dummydomain.yetanothercallblocker.App; +import fr.vinetos.tranquille.App; -import static dummydomain.yetanothercallblocker.data.CallLogHelper.loadCalls; +import static fr.vinetos.tranquille.data.CallLogHelper.loadCalls; public class CallLogDataSource extends ItemKeyedDataSource { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogHelper.java b/app/src/main/java/fr/vinetos/tranquille/data/CallLogHelper.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogHelper.java rename to app/src/main/java/fr/vinetos/tranquille/data/CallLogHelper.java index 53a287a..30614a3 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/CallLogHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; import android.database.Cursor; @@ -10,7 +10,7 @@ import java.util.Collections; import java.util.List; -import dummydomain.yetanothercallblocker.PermissionHelper; +import fr.vinetos.tranquille.PermissionHelper; public class CallLogHelper { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogItem.java b/app/src/main/java/fr/vinetos/tranquille/data/CallLogItem.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogItem.java rename to app/src/main/java/fr/vinetos/tranquille/data/CallLogItem.java index 965d964..e3e50d9 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogItem.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/CallLogItem.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.provider.CallLog; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogItemGroup.java b/app/src/main/java/fr/vinetos/tranquille/data/CallLogItemGroup.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogItemGroup.java rename to app/src/main/java/fr/vinetos/tranquille/data/CallLogItemGroup.java index a977401..8acc94b 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/CallLogItemGroup.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/CallLogItemGroup.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.text.TextUtils; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/Config.java b/app/src/main/java/fr/vinetos/tranquille/data/Config.java similarity index 84% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/Config.java rename to app/src/main/java/fr/vinetos/tranquille/data/Config.java index ba9fec9..5032e98 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/Config.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/Config.java @@ -1,13 +1,16 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; import java.util.concurrent.TimeUnit; -import dummydomain.yetanothercallblocker.NotificationService; -import dummydomain.yetanothercallblocker.PhoneStateHandler; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; -import dummydomain.yetanothercallblocker.data.db.YacbDaoSessionFactory; +import fr.vinetos.tranquille.NotificationService; +import fr.vinetos.tranquille.PhoneStateHandler; +import fr.vinetos.tranquille.data.db.BlacklistDao; +import fr.vinetos.tranquille.data.db.YacbDaoSessionFactory; +import fr.vinetos.tranquille.utils.DbFilteringUtils; +import fr.vinetos.tranquille.utils.DeferredInit; +import fr.vinetos.tranquille.utils.SystemUtils; import dummydomain.yetanothercallblocker.sia.Settings; import dummydomain.yetanothercallblocker.sia.SettingsImpl; import dummydomain.yetanothercallblocker.sia.Storage; @@ -22,26 +25,23 @@ import dummydomain.yetanothercallblocker.sia.network.OkHttpClientFactory; import dummydomain.yetanothercallblocker.sia.network.WebService; import dummydomain.yetanothercallblocker.sia.utils.Utils; -import dummydomain.yetanothercallblocker.utils.DbFilteringUtils; -import dummydomain.yetanothercallblocker.utils.DeferredInit; -import dummydomain.yetanothercallblocker.utils.SystemUtils; import okhttp3.OkHttpClient; -import static dummydomain.yetanothercallblocker.data.SiaConstants.SIA_PATH_PREFIX; -import static dummydomain.yetanothercallblocker.data.SiaConstants.SIA_PROPERTIES; -import static dummydomain.yetanothercallblocker.data.SiaConstants.SIA_SECONDARY_PATH_PREFIX; +import static fr.vinetos.tranquille.data.SiaConstants.SIA_PATH_PREFIX; +import static fr.vinetos.tranquille.data.SiaConstants.SIA_PROPERTIES; +import static fr.vinetos.tranquille.data.SiaConstants.SIA_SECONDARY_PATH_PREFIX; public class Config { private static class WSParameterProvider extends WebService.DefaultWSParameterProvider { - final dummydomain.yetanothercallblocker.Settings settings; + final fr.vinetos.tranquille.Settings settings; final SiaMetadata siaMetadata; final CommunityDatabase communityDatabase; volatile String appId; volatile long appIdTimestamp; - WSParameterProvider(dummydomain.yetanothercallblocker.Settings settings, + WSParameterProvider(fr.vinetos.tranquille.Settings settings, SiaMetadata siaMetadata, CommunityDatabase communityDatabase) { this.settings = settings; this.siaMetadata = siaMetadata; @@ -85,7 +85,7 @@ public SiaMetadata.Country getCountry() { } } - public static void init(Context context, dummydomain.yetanothercallblocker.Settings settings) { + public static void init(Context context, fr.vinetos.tranquille.Settings settings) { Storage storage = new AndroidStorage(context); Settings siaSettings = new SettingsImpl(new AndroidProperties(context, SIA_PROPERTIES)); diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/ContactItem.java b/app/src/main/java/fr/vinetos/tranquille/data/ContactItem.java similarity index 89% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/ContactItem.java rename to app/src/main/java/fr/vinetos/tranquille/data/ContactItem.java index 38016cc..8e6a0d4 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/ContactItem.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/ContactItem.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; public class ContactItem { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/ContactsHelper.java b/app/src/main/java/fr/vinetos/tranquille/data/ContactsHelper.java similarity index 93% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/ContactsHelper.java rename to app/src/main/java/fr/vinetos/tranquille/data/ContactsHelper.java index df10791..70145bf 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/ContactsHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/ContactsHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.ContentResolver; import android.content.Context; @@ -7,7 +7,7 @@ import android.provider.ContactsContract; import android.text.TextUtils; -import dummydomain.yetanothercallblocker.PermissionHelper; +import fr.vinetos.tranquille.PermissionHelper; public class ContactsHelper { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/ContactsProvider.java b/app/src/main/java/fr/vinetos/tranquille/data/ContactsProvider.java similarity index 69% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/ContactsProvider.java rename to app/src/main/java/fr/vinetos/tranquille/data/ContactsProvider.java index 3f0c2ea..8490c8e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/ContactsProvider.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/ContactsProvider.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; public interface ContactsProvider { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/CountryHelper.java b/app/src/main/java/fr/vinetos/tranquille/data/CountryHelper.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/CountryHelper.java rename to app/src/main/java/fr/vinetos/tranquille/data/CountryHelper.java index 1d5ec0b..65593e3 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/CountryHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/CountryHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; import android.telephony.TelephonyManager; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberFilter.java b/app/src/main/java/fr/vinetos/tranquille/data/NumberFilter.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/NumberFilter.java rename to app/src/main/java/fr/vinetos/tranquille/data/NumberFilter.java index 75a54f0..96c0cdd 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberFilter.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/NumberFilter.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import java.util.List; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberInfo.java b/app/src/main/java/fr/vinetos/tranquille/data/NumberInfo.java similarity index 88% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/NumberInfo.java rename to app/src/main/java/fr/vinetos/tranquille/data/NumberInfo.java index 78d7a1e..3a53bbd 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberInfo.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/NumberInfo.java @@ -1,6 +1,6 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; -import dummydomain.yetanothercallblocker.data.db.BlacklistItem; +import fr.vinetos.tranquille.data.db.BlacklistItem; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabaseItem; import dummydomain.yetanothercallblocker.sia.model.database.FeaturedDatabaseItem; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberInfoService.java b/app/src/main/java/fr/vinetos/tranquille/data/NumberInfoService.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/NumberInfoService.java rename to app/src/main/java/fr/vinetos/tranquille/data/NumberInfoService.java index 3cfebb2..4e6996b 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberInfoService.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/NumberInfoService.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.text.TextUtils; @@ -7,7 +7,7 @@ import java.util.Date; -import dummydomain.yetanothercallblocker.Settings; +import fr.vinetos.tranquille.Settings; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabase; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabaseItem; import dummydomain.yetanothercallblocker.sia.model.database.FeaturedDatabase; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberUtils.java b/app/src/main/java/fr/vinetos/tranquille/data/NumberUtils.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/NumberUtils.java rename to app/src/main/java/fr/vinetos/tranquille/data/NumberUtils.java index 266fc4f..e1aa0c8 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/NumberUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/NumberUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.os.Build; import android.telephony.PhoneNumberUtils; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/SiaConstants.java b/app/src/main/java/fr/vinetos/tranquille/data/SiaConstants.java similarity index 78% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/SiaConstants.java rename to app/src/main/java/fr/vinetos/tranquille/data/SiaConstants.java index 3bc63e1..e98a1cf 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/SiaConstants.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/SiaConstants.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; public interface SiaConstants { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/SiaNumberCategoryUtils.java b/app/src/main/java/fr/vinetos/tranquille/data/SiaNumberCategoryUtils.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/SiaNumberCategoryUtils.java rename to app/src/main/java/fr/vinetos/tranquille/data/SiaNumberCategoryUtils.java index 9fd7bec..57bbcb5 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/SiaNumberCategoryUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/SiaNumberCategoryUtils.java @@ -1,10 +1,10 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.content.Context; import androidx.annotation.StringRes; -import dummydomain.yetanothercallblocker.R; +import fr.vinetos.tranquille.R; import dummydomain.yetanothercallblocker.sia.model.NumberCategory; public class SiaNumberCategoryUtils { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/YacbHolder.java b/app/src/main/java/fr/vinetos/tranquille/data/YacbHolder.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/YacbHolder.java rename to app/src/main/java/fr/vinetos/tranquille/data/YacbHolder.java index 87ccf45..22e1016 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/YacbHolder.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/YacbHolder.java @@ -1,10 +1,10 @@ -package dummydomain.yetanothercallblocker.data; +package fr.vinetos.tranquille.data; import android.annotation.SuppressLint; -import dummydomain.yetanothercallblocker.NotificationService; -import dummydomain.yetanothercallblocker.PhoneStateHandler; -import dummydomain.yetanothercallblocker.data.db.BlacklistDao; +import fr.vinetos.tranquille.NotificationService; +import fr.vinetos.tranquille.PhoneStateHandler; +import fr.vinetos.tranquille.data.db.BlacklistDao; import dummydomain.yetanothercallblocker.sia.model.CommunityReviewsLoader; import dummydomain.yetanothercallblocker.sia.model.SiaMetadata; import dummydomain.yetanothercallblocker.sia.model.database.CommunityDatabase; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/BlacklistDao.java b/app/src/main/java/fr/vinetos/tranquille/data/db/BlacklistDao.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/db/BlacklistDao.java rename to app/src/main/java/fr/vinetos/tranquille/data/db/BlacklistDao.java index ea915bf..2b53e83 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/BlacklistDao.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/db/BlacklistDao.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data.db; +package fr.vinetos.tranquille.data.db; import org.greenrobot.greendao.Property; import org.greenrobot.greendao.internal.SqlUtils; @@ -13,7 +13,7 @@ import java.util.Collection; import java.util.List; -import dummydomain.yetanothercallblocker.BlacklistDataSource; +import fr.vinetos.tranquille.BlacklistDataSource; public class BlacklistDao { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/BlacklistItem.java b/app/src/main/java/fr/vinetos/tranquille/data/db/BlacklistItem.java similarity index 92% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/db/BlacklistItem.java rename to app/src/main/java/fr/vinetos/tranquille/data/db/BlacklistItem.java index 5ea4d40..79f5eee 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/BlacklistItem.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/db/BlacklistItem.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data.db; +package fr.vinetos.tranquille.data.db; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Generated; @@ -9,8 +9,8 @@ import java.util.Date; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.patternFromHumanReadable; -import static dummydomain.yetanothercallblocker.data.BlacklistUtils.patternToHumanReadable; +import static fr.vinetos.tranquille.data.BlacklistUtils.patternFromHumanReadable; +import static fr.vinetos.tranquille.data.BlacklistUtils.patternToHumanReadable; @Entity public class BlacklistItem { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/YacbDaoSessionFactory.java b/app/src/main/java/fr/vinetos/tranquille/data/db/YacbDaoSessionFactory.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/db/YacbDaoSessionFactory.java rename to app/src/main/java/fr/vinetos/tranquille/data/db/YacbDaoSessionFactory.java index 8c66c2b..8c69e79 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/YacbDaoSessionFactory.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/db/YacbDaoSessionFactory.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data.db; +package fr.vinetos.tranquille.data.db; import android.content.Context; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/YacbDbOpenHelper.java b/app/src/main/java/fr/vinetos/tranquille/data/db/YacbDbOpenHelper.java similarity index 92% rename from app/src/main/java/dummydomain/yetanothercallblocker/data/db/YacbDbOpenHelper.java rename to app/src/main/java/fr/vinetos/tranquille/data/db/YacbDbOpenHelper.java index 9bc9267..66005ca 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/data/db/YacbDbOpenHelper.java +++ b/app/src/main/java/fr/vinetos/tranquille/data/db/YacbDbOpenHelper.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.data.db; +package fr.vinetos.tranquille.data.db; import android.content.Context; diff --git a/app/src/main/java/fr/vinetos/tranquille/event/BlacklistChangedEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/BlacklistChangedEvent.java new file mode 100644 index 0000000..42e9ccb --- /dev/null +++ b/app/src/main/java/fr/vinetos/tranquille/event/BlacklistChangedEvent.java @@ -0,0 +1,3 @@ +package fr.vinetos.tranquille.event; + +public class BlacklistChangedEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistItemChangedEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/BlacklistItemChangedEvent.java similarity index 59% rename from app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistItemChangedEvent.java rename to app/src/main/java/fr/vinetos/tranquille/event/BlacklistItemChangedEvent.java index fc734fe..61ca6b5 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/BlacklistItemChangedEvent.java +++ b/app/src/main/java/fr/vinetos/tranquille/event/BlacklistItemChangedEvent.java @@ -1,3 +1,3 @@ -package dummydomain.yetanothercallblocker.event; +package fr.vinetos.tranquille.event; public class BlacklistItemChangedEvent extends BlacklistChangedEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/CallEndedEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/CallEndedEvent.java similarity index 50% rename from app/src/main/java/dummydomain/yetanothercallblocker/event/CallEndedEvent.java rename to app/src/main/java/fr/vinetos/tranquille/event/CallEndedEvent.java index c52dcf3..37c237f 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/CallEndedEvent.java +++ b/app/src/main/java/fr/vinetos/tranquille/event/CallEndedEvent.java @@ -1,3 +1,3 @@ -package dummydomain.yetanothercallblocker.event; +package fr.vinetos.tranquille.event; public class CallEndedEvent extends CallEvent {} diff --git a/app/src/main/java/fr/vinetos/tranquille/event/CallEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/CallEvent.java new file mode 100644 index 0000000..b825ee2 --- /dev/null +++ b/app/src/main/java/fr/vinetos/tranquille/event/CallEvent.java @@ -0,0 +1,3 @@ +package fr.vinetos.tranquille.event; + +public class CallEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/CallOngoingEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/CallOngoingEvent.java similarity index 51% rename from app/src/main/java/dummydomain/yetanothercallblocker/event/CallOngoingEvent.java rename to app/src/main/java/fr/vinetos/tranquille/event/CallOngoingEvent.java index e8de234..e36c72f 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/CallOngoingEvent.java +++ b/app/src/main/java/fr/vinetos/tranquille/event/CallOngoingEvent.java @@ -1,3 +1,3 @@ -package dummydomain.yetanothercallblocker.event; +package fr.vinetos.tranquille.event; public class CallOngoingEvent extends CallEvent {} diff --git a/app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadFinishedEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadFinishedEvent.java new file mode 100644 index 0000000..cda0cd2 --- /dev/null +++ b/app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadFinishedEvent.java @@ -0,0 +1,3 @@ +package fr.vinetos.tranquille.event; + +public class MainDbDownloadFinishedEvent {} diff --git a/app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadingEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadingEvent.java new file mode 100644 index 0000000..b32a0aa --- /dev/null +++ b/app/src/main/java/fr/vinetos/tranquille/event/MainDbDownloadingEvent.java @@ -0,0 +1,3 @@ +package fr.vinetos.tranquille.event; + +public class MainDbDownloadingEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdateFinished.java b/app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdateFinished.java similarity index 78% rename from app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdateFinished.java rename to app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdateFinished.java index eb150d1..1dc1fc3 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/event/SecondaryDbUpdateFinished.java +++ b/app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdateFinished.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.event; +package fr.vinetos.tranquille.event; public class SecondaryDbUpdateFinished { diff --git a/app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdatingEvent.java b/app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdatingEvent.java new file mode 100644 index 0000000..06b79cb --- /dev/null +++ b/app/src/main/java/fr/vinetos/tranquille/event/SecondaryDbUpdatingEvent.java @@ -0,0 +1,3 @@ +package fr.vinetos.tranquille.event; + +public class SecondaryDbUpdatingEvent {} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/preference/IntEditTextPreference.java b/app/src/main/java/fr/vinetos/tranquille/preference/IntEditTextPreference.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/preference/IntEditTextPreference.java rename to app/src/main/java/fr/vinetos/tranquille/preference/IntEditTextPreference.java index 2bdab58..61b6f5b 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/preference/IntEditTextPreference.java +++ b/app/src/main/java/fr/vinetos/tranquille/preference/IntEditTextPreference.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.preference; +package fr.vinetos.tranquille.preference; import android.content.Context; import android.content.res.TypedArray; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/preference/IntListPreference.java b/app/src/main/java/fr/vinetos/tranquille/preference/IntListPreference.java similarity index 95% rename from app/src/main/java/dummydomain/yetanothercallblocker/preference/IntListPreference.java rename to app/src/main/java/fr/vinetos/tranquille/preference/IntListPreference.java index a60d494..40a26f4 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/preference/IntListPreference.java +++ b/app/src/main/java/fr/vinetos/tranquille/preference/IntListPreference.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.preference; +package fr.vinetos.tranquille.preference; import android.content.Context; import android.content.res.TypedArray; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/DbFilteringUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/DbFilteringUtils.java similarity index 87% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/DbFilteringUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/DbFilteringUtils.java index e30e720..ee1d7de 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/DbFilteringUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/DbFilteringUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import android.content.Context; import android.text.TextUtils; @@ -10,11 +10,11 @@ import java.util.List; import java.util.Set; -import dummydomain.yetanothercallblocker.Settings; -import dummydomain.yetanothercallblocker.data.CallLogHelper; -import dummydomain.yetanothercallblocker.data.CallLogItem; -import dummydomain.yetanothercallblocker.data.NumberFilter; -import dummydomain.yetanothercallblocker.data.NumberUtils; +import fr.vinetos.tranquille.Settings; +import fr.vinetos.tranquille.data.CallLogHelper; +import fr.vinetos.tranquille.data.CallLogItem; +import fr.vinetos.tranquille.data.NumberFilter; +import fr.vinetos.tranquille.data.NumberUtils; public class DbFilteringUtils { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/DebuggingUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/DebuggingUtils.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/DebuggingUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/DebuggingUtils.java index 50d1477..2897225 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/DebuggingUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/DebuggingUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import android.content.Context; import android.os.Build; @@ -13,8 +13,8 @@ import java.util.Date; import java.util.Locale; -import dummydomain.yetanothercallblocker.App; -import dummydomain.yetanothercallblocker.BuildConfig; +import fr.vinetos.tranquille.App; +import fr.vinetos.tranquille.BuildConfig; public class DebuggingUtils { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/DeferredInit.java b/app/src/main/java/fr/vinetos/tranquille/utils/DeferredInit.java similarity index 93% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/DeferredInit.java rename to app/src/main/java/fr/vinetos/tranquille/utils/DeferredInit.java index c8106b6..464a6f7 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/DeferredInit.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/DeferredInit.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import org.conscrypt.Conscrypt; import org.slf4j.Logger; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/FileUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/FileUtils.java similarity index 93% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/FileUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/FileUtils.java index a54dc80..af05c26 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/FileUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/FileUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import android.app.Activity; import android.content.Context; @@ -14,7 +14,7 @@ import java.io.File; -import dummydomain.yetanothercallblocker.BuildConfig; +import fr.vinetos.tranquille.BuildConfig; public class FileUtils { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/PackageManagerUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/PackageManagerUtils.java similarity index 96% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/PackageManagerUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/PackageManagerUtils.java index b79c523..b3049a5 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/PackageManagerUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/PackageManagerUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import android.content.ComponentName; import android.content.Context; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/PhoneUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/PhoneUtils.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/PhoneUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/PhoneUtils.java index 68b19ff..e7e8b2e 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/PhoneUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/PhoneUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import android.annotation.SuppressLint; import android.content.Context; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/StringUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/StringUtils.java similarity index 72% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/StringUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/StringUtils.java index 77b5884..2ba60ae 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/StringUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/StringUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; public class StringUtils { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/utils/SystemUtils.java b/app/src/main/java/fr/vinetos/tranquille/utils/SystemUtils.java similarity index 97% rename from app/src/main/java/dummydomain/yetanothercallblocker/utils/SystemUtils.java rename to app/src/main/java/fr/vinetos/tranquille/utils/SystemUtils.java index 4c7b532..a619a1f 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/utils/SystemUtils.java +++ b/app/src/main/java/fr/vinetos/tranquille/utils/SystemUtils.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.utils; +package fr.vinetos.tranquille.utils; import android.annotation.SuppressLint; import android.content.Context; diff --git a/app/src/main/java/fr/vinetos/tranquille/work/DbUpdater.java b/app/src/main/java/fr/vinetos/tranquille/work/DbUpdater.java new file mode 100644 index 0000000..9b0e3d1 --- /dev/null +++ b/app/src/main/java/fr/vinetos/tranquille/work/DbUpdater.java @@ -0,0 +1,34 @@ +package fr.vinetos.tranquille.work; + +import fr.vinetos.tranquille.App; +import fr.vinetos.tranquille.EventUtils; +import fr.vinetos.tranquille.Settings; +import fr.vinetos.tranquille.event.SecondaryDbUpdateFinished; +import fr.vinetos.tranquille.event.SecondaryDbUpdatingEvent; +import fr.vinetos.tranquille.data.YacbHolder; +import dummydomain.yetanothercallblocker.sia.model.database.DbManager; + +public class DbUpdater { + + public void update() { + Settings settings = App.getSettings(); + + boolean updated = false; + + SecondaryDbUpdatingEvent sticky = new SecondaryDbUpdatingEvent(); + + EventUtils.postStickyEvent(sticky); + try { + DbManager.UpdateResult updateResult = YacbHolder.getDbManager().updateSecondaryDb(); + if (updateResult.isUpdated()) { + settings.setLastUpdateTime(System.currentTimeMillis()); + updated = true; + } // TODO: handle other results + settings.setLastUpdateCheckTime(System.currentTimeMillis()); + } finally { + EventUtils.removeStickyEvent(sticky); + EventUtils.postEvent(new SecondaryDbUpdateFinished(updated)); + } + } + +} diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/work/TaskService.java b/app/src/main/java/fr/vinetos/tranquille/work/TaskService.java similarity index 81% rename from app/src/main/java/dummydomain/yetanothercallblocker/work/TaskService.java rename to app/src/main/java/fr/vinetos/tranquille/work/TaskService.java index d9b4bec..cb652ee 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/work/TaskService.java +++ b/app/src/main/java/fr/vinetos/tranquille/work/TaskService.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.work; +package fr.vinetos.tranquille.work; import android.app.IntentService; import android.app.Notification; @@ -13,16 +13,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import dummydomain.yetanothercallblocker.App; -import dummydomain.yetanothercallblocker.NotificationHelper; -import dummydomain.yetanothercallblocker.R; -import dummydomain.yetanothercallblocker.data.YacbHolder; -import dummydomain.yetanothercallblocker.event.MainDbDownloadFinishedEvent; -import dummydomain.yetanothercallblocker.event.MainDbDownloadingEvent; - -import static dummydomain.yetanothercallblocker.EventUtils.postEvent; -import static dummydomain.yetanothercallblocker.EventUtils.postStickyEvent; -import static dummydomain.yetanothercallblocker.EventUtils.removeStickyEvent; +import fr.vinetos.tranquille.App; +import fr.vinetos.tranquille.EventUtils; +import fr.vinetos.tranquille.NotificationHelper; +import fr.vinetos.tranquille.event.MainDbDownloadFinishedEvent; +import fr.vinetos.tranquille.event.MainDbDownloadingEvent; +import fr.vinetos.tranquille.R; +import fr.vinetos.tranquille.data.YacbHolder; public class TaskService extends IntentService { @@ -89,7 +86,7 @@ private void updateNotification(String title) { private void downloadMainDb() { MainDbDownloadingEvent sticky = new MainDbDownloadingEvent(); - postStickyEvent(sticky); + EventUtils.postStickyEvent(sticky); try { YacbHolder.getDbManager().downloadMainDb(App.getSettings().getDatabaseDownloadUrl()); YacbHolder.getCommunityDatabase().reload(); @@ -98,10 +95,10 @@ private void downloadMainDb() { } catch (Exception e) { LOG.warn("downloadMainDb()", e); } finally { - removeStickyEvent(sticky); + EventUtils.removeStickyEvent(sticky); } - postEvent(new MainDbDownloadFinishedEvent()); + EventUtils.postEvent(new MainDbDownloadFinishedEvent()); } private void updateSecondaryDb() { diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/work/UpdateScheduler.java b/app/src/main/java/fr/vinetos/tranquille/work/UpdateScheduler.java similarity index 98% rename from app/src/main/java/dummydomain/yetanothercallblocker/work/UpdateScheduler.java rename to app/src/main/java/fr/vinetos/tranquille/work/UpdateScheduler.java index c467209..fcaa93b 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/work/UpdateScheduler.java +++ b/app/src/main/java/fr/vinetos/tranquille/work/UpdateScheduler.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.work; +package fr.vinetos.tranquille.work; import android.content.Context; import android.os.Build; diff --git a/app/src/main/java/dummydomain/yetanothercallblocker/work/UpdateWorker.java b/app/src/main/java/fr/vinetos/tranquille/work/UpdateWorker.java similarity index 94% rename from app/src/main/java/dummydomain/yetanothercallblocker/work/UpdateWorker.java rename to app/src/main/java/fr/vinetos/tranquille/work/UpdateWorker.java index 59fcf55..3b54ccc 100644 --- a/app/src/main/java/dummydomain/yetanothercallblocker/work/UpdateWorker.java +++ b/app/src/main/java/fr/vinetos/tranquille/work/UpdateWorker.java @@ -1,4 +1,4 @@ -package dummydomain.yetanothercallblocker.work; +package fr.vinetos.tranquille.work; import android.content.Context; diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index ac94b34..345888d 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,6 @@ - - + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 0c1ef6c46732917820eb6395e701d6239bb01bef..712ce77c37cfe977f264f2e1c7dfc074dab025a0 100644 GIT binary patch literal 4020 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 amiIqDQvv-)^B|f40000ef delta 1859 zcmV-J2fX;SAJGnwBYy`NNkl|u{!YQ<7&NNQ~pOsn-D+q6-M z^*|dzxir?QwM}U?G!<(jR0XRGJK2}~*vamDzxVrn=FK~P?+qO1OwQy?&g4vvo_~nv21mMTO5jtcq{v7? zv-jO*-`Xn(iuV;l5*7+UajS&j_!UBM!b-;yW;1MOKEM~-A+;48uj|eS$LH|DaU@ER z2Bg)O9PVRXcPk-1dOn%LTv1`*x@JuYeDaUZV=fBDKATQrC&p4h>}Ug=AdR%1N7Bp( z#1J=fVL%6;Eq?&S3ju4FX%$D3<*9vGvj8~f z6{iHCt`pbOTirU_Bm^m~Dx$|~<0fS3~GMVSdvS)vZ;(hQ(3;}fV)*mhc)R>)dKmDy0_1UjIr zPuMn5x5ENrQ+s+ZB8`&rE>dlMqs?H91v;S{bqLn9D0=~du|7ZUragaMp@ydBP6uNw zr~`HREPvQ-87O-IdVg*@rLn%Ermj(OFvfy9Q8#Q*9iU#JNwjwF8LFtMf8t<_1vbDI z*rXajVH*$G9gMNSCe;A??$@J|Mpmh_56H`A@7TyZe(!IiLFbi$1CSdsp)9slLX`v5>N50MaVVxNxx(p@uQ<0Ii#;5zJlzvr{E^*ey0uvWXoM!{+eB9yQ}wSR!H z{*jt68gJnYUz{NV0w^q6&t9*1EZ@DFdJ2utqh4PnQ~y~zXliUOt=v^aTl0%)@5yU) zr>ah}uQRy@vnQaJKih29ewY4sl?bM_CB;$SZ&PU3@e;$_sIs0NQ^CwT#`v6mSoWG z6IaB^XWQJz;u9bCKD^+~hHiZ)oaQiwhJ|hola_W<2Gr$nr#o;*u{YJIU}yunQHP5o zo$fFm(J~6JDh3F;EgHGhcz=MZA6q8iI9+GMfllal_!DLrvPb=t$tHyjodyTGMzMvi zpp`R<=p!%!)iv54hlUR5viY2%+75BzZX>)=UR`H39F+C7wdJT4P#Yxl8~NvM$%bd; z!l)>NvVvBR0UM8QIR2t9Gd)j29^|!pv~om1Z84qRGqzF0)&g<1e1E^)Ne^7(JN$+` zmMmg51E~FDhaeXY8+@N!APTPWouE*iod?KomE!MesNiLmL{+ySyT1-)V+&fN`4{Sj zMZ{SRh#NY4Qv2qp9YDI)S2D*%6E|>LsOal}FS=OzQm+e>SNPFO3k?cI>KYLE0-uJ> zEn+@;w)$%6KN<)O1b-km&a?j@e)#+%eryzLNwE*% diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/app/src/main/res/mipmap-hdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..f2ed5d808bac53c61630c7f31b9758038c57100a GIT binary patch literal 2165 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..38ec456b9c6488074085cd07be6adc79d8be3817 GIT binary patch literal 4270 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index c300910cd6957a0d5427ebffdf85cef8be992403..0e605adeaf1a9d427af3bd97de64b2ede43b73fe 100644 GIT binary patch delta 2333 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 BlH~vZ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..1e76388a163b31591d320a1b438dbfdc066e707b GIT binary patch literal 1283 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..0e41ec0ebaa8665b27927455cf660422e7ecd17d GIT binary patch literal 6069 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 8b2378722ddd62d1884cd3fb516a2fdef79ad783..13884cb158b51c430ac73296a8ccffcea6b600d9 100644 GIT binary patch literal 8943 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 literal 3959 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..41bba453af97b65a314de5a16439e7fa7ea9eb76 GIT binary patch literal 10503 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 69742f3d102a72f5f55692b9a703931025144519..5a11e1abc5e645ee16108d7b5bf56bdab58d997f 100644 GIT binary patch literal 12338 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 literal 5588 zcmb7IXHXPOlb&T|$w5%E2qHO)fWVTJoKZlsAc7Jk^O9jjK#?p-;*ypOi{z*Xl5>`@ zfaIKWynXMhtNVF%T{SZ`)jd@+Jw4OU(;-?KiX?<|ga7~%WhJ@i*sD*xq?%Cb9OwxBoy&mf$2! zY~`vq#br5Vhl3FB|1Ir}0Sqd?!vJb*P6p+oL*CsMfH#Nh(Y&LM^!?7jP%Ag4KKRpY zAnc|-G~8Run$|=%rG+vXKK~-|Phh@lrpv``*fyePBec>nVt(Gdn zkyhUWsWTlgXXS?qRWD;de@7aS1=KSd7`n4>1Pn3sTG)pYu~Kyh+1p}R&Sq_59NO@? z#hksm8=$6dneVw{&Kzvree8|({9-v9DFq{9+gLuSXev7-dYWyfY&miCwvC=6`N%}s z3g^h97Vf`_e(r82xmG-Fbw}OhWZX+CbFOg5)w_n-fDxb3MkJWw=*Iu!u3l8R#GAHU znK6v?{M5_xo$Kk9w`-5s$ffBcAEN$2`zuB2ZZW*k12`j}oh)iMT87RzqeASX&TVcw zcfS$T%kD=9{&I+7d0@i=Z5q0Vu(IgXcAxv_?{}@-@t(&l*_f-iNhF+&(8oBr`8Ci# zhYY~KFrdlAQE>Xbio>M*I@!Aq0+s;kI(!GI7gCsBtx1M7cnQN-tTV z5a8LtAs>|SDz?eeDhKH{Adpk|fvo`GLE~uE8a!JQW(Qo*rq_TNugQQ0#&n-+#0D-o z^|tEHb&uOT8;DC1`D$9IBih3Qo|HlIW*XU`QT5w9G@2yA{5cuYcBs*M&7sQJ$8~NS z@prDnZa)2N*_m^%?K8&Fl7lvxvw<%Hz+IYJRM*zkR!T?1kOHS>zQL6Tcm=&{%JqRlPfL8sRiwzaFx~Gs>BUHS$5vZ?Qe^ zl|6Vj5^%3#p#!%r?d!Ji@Cs@JCwS{q|8T-V^^5Qi2Xcw?Gyv9AUoNsFt&|?g#yWW3 zn7g*#`xu!l#h<~mah#IbQ6qQ$;!VI!FP9)_Q@T6u^y-sxS*VcPmY=xqTAj5TGC?Ec zQDzaE>?-7X!0&4V42FPoBm@{nSk@q`x9f%Q_5G8>W}e)mm1^>wAvwRNgmq zRL35C?)e9YHm%V}|Mb-*@6}5OQQo)b4Xzr-M6fkoum1S)4j=$-vdo;^?Jm)*6?W}T zT^&7#^b0FG!5&;Z6aR$KMe5rXv*SSL?gdpNl~S|D2aZ`*cqe-Ivb`&gq*wA=YDRVD zw?c>!7{GzC{IWUAj%<*#wr@y1dil3lXomYRY?f&w5VGq6x?GbLpg(RBkCAnDg%Up` zGy{Fv`Ct6BreBLR$$bQ_Zy~q>6|UrHZV&=Lq)+yaXjmSql8bbTV?%ud2XVHeIFqV! zzm>hS9ZnDTpLDsT@O>f}%}8a!5(g=z0{Se&tX{>&TyveTAJ-GPRWA*Qt#iP-S;LJp zdqGX^gZCEsXRAxGu|7%l;^L9FOD|bok2rG;vBg6K=)t$)5-G>Dl!dB;qKN9CI+Kbc zjz+i{Del>R5FIqCdN)bh??_5T-D2TFMRa(`y1A>-Ijj}X+>&uD+#B)kg1sp2sz~;$ zk5*}9bBKEX3!Kt`hF@@xb3*z-vka1kYmr1qhc9i*;K9p@Kp4?`M3osJ26LxDwsucH z28m!NICFs-Af4a)bko6gHS9v%dAndb{@<$!hB)@L@M)-~4C zN{@C&nTf3b#Py+f@eaJtU*jnk>21R8jlclxFC4#WhG*dJ z;MT8hA;~TZK^t1j$-`cuejM6c;CYNkSqF(bpR2_oM>o-xU&Yo1eg$MQ0J19xS|{5& zTkX@-X0OgZ($>Y|dcVK2CUf$uQ2!r;)q00%|C}Zg_xX9@fObm-RArMmY&Q{r4Z;{V-7nq4T?{pA;{xDs$1c(%e|A^fA&vHI*{x`y~-cw!E_1v^odMC zv|I*!U`-q#?b3qrD_Wf#-1nIc2{3Aw2oxwZnX7x&#-?zaY+b5`6>3HUJfIMU~yO8a!X1;u~20fS(7A9P0aKn0oxGD6?e}t9gP&Cx9 zcl>02_jB^=OS2WV!8~tRlNoTN^ZG)Xn9*-q`}cTeENxG@&L=l6XhRVr1Yl5v*k#sA z$@;#M!^KvYcb~X?8|&oE<)eH=o(u9`>Tggpwtw&ZVUA(>MRqqdJK5)ZtbKO&)XXJ0 z>D?9RBQ+e5BX}fEnAeux5M!ykEgV{6tZ4}rNA^fzO+3Ig!Z2%!B5-H?e#gO)RGmx~ zd^%{E|7~z1%X$h#fB@)I6_2|<%#kZRLM}Xl-g;i}hZc+o|3`A&>J%o0 z&3t-a=DlBT!p#d`Fgx`UBRWBo%pZEiyXG<7QxXu+bvt|yVXAe_62`Gx0)JchLsFt7Au-q$>5Wd1m5BP z!?BHCR>X)f{P+eD;08*n^Ti*z9Pg}S^I*4$S&3fg>zIzE4NgA-uukRH1HRn>G>-Yy zue8i*UF!w8O@7>Jjsb-V{3fb{M+AX~{QAXpYfT28j0Ob|)iUjB$d5m_u)$QX_$RLP zW<1pu;U@KJ)u}JD=;XGGzm!^JqbTo1`F&6KFFm2>m@>@a#`n-N+W=gf8L5IwH2N3_ z0bJ_7>!V{fx5Ycfn+h7*49L2h5z9!CwTBNGUByU}E4fR?=FUb~y+}wB8-v)2XA}?o z#h!BeOUlw8BQq8$6F5d&Dpm7dH1_FQfd-D0>22#Wo)gorCjW>D#iA7JHSSu$Q+C2H zPOtK9PhPx(kfuKqCC12xy)6BO*IC$gbegv8AhkK@l$U1&Ygz>9{t+Mfed1_)Q#Xg6 zD0!_$8eue2g0|HfYC@?Ua(B+^J)SeM`pA+|YKIF*L!yuUsj@)V{1f zXd!V1S!$YN6?nF@F?R)*IKu^QpG7wns#u{~>BCd(!`lngzSm{=!{LJ5$BW%PO8utU z>P4FCtUm#kVbr|=JTQ=hb8|JU(GpK$H|ZaowjpE`-=cNkfe+RPc5Tf7Va`if4~iJ7 zX;534;u#i|rh=MFhd|ab!mF{mzXd<@*qtq5D&<}W@Q)K~MwXmS^ z&Ad^$gT!yT4BdK-j$Zcu!xT>Q0hhaMX(A>2G#L@ZMkoEi<3wqcb*ds!MHCbrdiaR>Bkl? z2VY5DfA~@v8uRvU%QRp?r%0Z9^NhK~jncWr%nm=I1w;_w(lhDU@l(ULrz4wXrDP}x zll$(x?&`7C9$(`9wHD+k;(W4i3?6OOTwB|xu_GFa_>!?PDb!+Q|D2ZS5ZUf zf*QZ;M?`h4Ty=@dnB-XrOaBLhzNxj=cEEQdw;!l`h)p1WgCbKkeSTLaZ=BFmvrO#VHpQEH!zy3+tQ+h!lrO)d%sbIovT$r!t z{Rp%b&XmeCvPV^RB`+u_)mB zpG(R?OE~uHY!D;DAss5{h}u0h=>TB+!Lg3zSkdUaIt{o_l>42D^|LesB3#}{xifc7 znWgXeHOS;OT3hmZsI;Je54_1MJRMXkb2btHu>9Bki51#39bYtYVrebgt5gcBp-{8k z7_;8An0PwM^db(Su5GgSO@OB8lelJvnDk9M1=jSor7%282s$SXWXy{#)E|9e68qDLuRsOf#fr7w%A^0{#qJfOOV{=^k}imgk5d#u?(#iRcvQ0 z{Uj~8(ebzl8S$TF^L$sOz1;48LTM>ua9LYI3n<+~qE7s=Fsv^A>$1?oLcP`Jo!{;k zmIwF(?AE93FHR`>IQ&OLo`pNobs#lKy)$M(cs&g;gVvLK*I6ICM z5i+Fz*lOMwOJ)Y-nX#Y+)%LomD!Rl%`FSG>vKzBDOk=(3ZZS4QMxUw~%(Jl2f9iiKaTziB zAb2ATvg=@uN2h1~6k_KAL$qS)HP8PJWsIOVONa)15_3hnhQb7hgB)8z zpd+78&I8eky||~|ZfA~V^U5?ofPx^{sQqyQrMK`tJaa4_)`WsIdP7 zJ%bC}Wh$vI{GfW$auCFgS zXI!#t0wcF}PGBN%d_r^p>SS1hx}MMxPi+P=ahXu`gm-YAVx%#9C)(M1J3ov(Hk5PQ zxA`+6a{@#F@|0O68c!tz8Ofz<7d)I7apc6GCgBva$^ zVM;#WDB@^siHnL-Y(*lU+qfbZ-#tnBjXT}P*y_?!wr}A#c%}X7B6fs&CXHE=wUHIh z)@a2D%Gw~`2)J?rgQa-+64B8bPXtTB7(*7+_>MYziOkIt7DMwAW zOy=?Z>bZxq7uUn=io~qXH(<@#3D!cZVP~@o;f<^|(dW zQDdt=sO7rtwPXBa7#?;fFbMJ(anoVmI6uA$W(Ze^GIR&|XjgT;8)GzC1C-3#)Jy9i zeyvWrRuXrc(o2qjl#l#}lG++xc6iVF=zdCGb{BOvtE^OE;so4Ra$ ztcja6acKbZ#F(0zaD|>(F6zW*epXEKs34&E-71wENQLG)gm=dma7i-l95+)A(GRg$ zKJJh0G4~tY1dD;`QO32o9N+4BQM_-w)K;Cs9gXe8;){=BmxJ1c9b(5CC`vqYqvCpy zlmXyOOUP30?z#*4*uSn&mk1UI~bvkiV(sN3$($s+?#Owd64_ zr-WvMssYSgweMQCr-tfYc4{_^VBVIZ6m9nPRf^W<`x~3jlpk!TZnM* zJXpaE@S-N?8N;OQN-Weval2>c=l&1bgb-w{RR+{wTc7>%~}yGSL~SBGY<{PzC(K_|mQ1AbLeXS~sJ zN`?7(dZ@`|>n)k{MfxfQsKQX>N0}cBOuB}Uqy5bFD$N}YT0ZySHO{Y-{G2=I-kjh4 zWo55pYe05cCV$h%wM+Sz1WWaq>5g&62qFBtE;!lznVvqN+t0n@M7;4;(N9e2-#al2 zw;KuELuZ_+%7XpX9_W2$6%)bb3*4u!R#~MTljX+ODiZ`Y>rA-`l%~)R$DVQE?T2IV z+MfeVAL zopdL2T^hYV-adH^+EB@Wos!vgM732Kl!63&hv22pcN}Y|CPE^J(KK(VduCg@3N^L& zo@Re_BSW^mL#%M9XFrS)i6Wn`MY?nqYH9C12~D@eWT3OCsRlBW6_9vsWq{z)^>9y! zkrjJB5k+ZDHkP4Zf~Lz609TjV(+;MTJWD$-4N$un#fi<8agcWIv#-*B>@W5Hl3gvU z2Z@txuo9m7VEOHtw>YG5aX-A&+a{-4RvVhOuSdFA9KE0DwT7S|0fwUlMpu)RH##+Y zjV(?e)W+h-!^Dd{(0nH^Cj4pk#MJZ!_Oukhwa@Wjkin!G7r=<5J;Zb4sslZ&E#e_< zT4rJGw~~w89F!ngMU*CV7R@qv(LWVBtcVX|SX!WH-|*}TWUAfOj1@|{b;zP$G<$v{ zIIp0HZ79XD=i^Y6^rOVXeIe}ObrfYW*QG72ioIGI6Rw)^JC#gl4`ngo(|R9^Ry5g~ z3X@C9=gmjmzudK1+6;N(b*+^!F3HmVP6pd|&I9mLcbj~hB}w*leN#enh}DaUePNKe zX)#cn<*)f-OPkp9?~pDbhbt!Zec98X_?B$3w2BN!e5WB8C#yO;>M|6kNfFR9Z(cmQ zZ)gfR%9R0YmrX9wZ)FE1whrmSyl?*C8!L5@Ky3YF6OAOh-7e&ZU5zk14R7MdBZ!%3 zV)Yz!zP<{Wr3QbBdif#qf-aD`77v8Zx5cwpGw|F`2Dd!%^fiaX?E=MR>wTf^PJrU_ z70iLd%u>&4QAixUZj$h#_rt1r$$VNPTirlVnq7LV9X)|9Z94#5ST=t%pBB%af5Dnh zy>2)1jy%1mx~oQAFgE{akP*_`1li9%5(ta?0o!9qa-a6GplDhSF`6j@*vcFK8trMo-=tavyH z1^TDz<0Jam001M??jjMsMZJmve59~ONq!!h`$*HDzi z#74&ken^Hg2xsMDtGAYTpdlJGO`*Q*{WF%`ku-a}^OBcngLK^QYbz|Mgp-73{S}y^ zt`0+)?9<)Ig4;@NO(j(bL;4kQVZvpEG9D!HgWFN$-5~T?DXl7`2}7q#fCZ<({e1Wt zsQkzKVX0+M5Q-0i$hPTRy8cG?Nt?jxPWzd3ob4&Q8z599aQqzygb zuP~kK3(11~TFyh}s<@0BEirqm1bKOYUMd-6?D?g) zt=-Lmz25}%(juZYCnyHmac2--s;AL@nltMLo~|1>T7+SrE<^H?)#BGd354uo+qp3u zgnZyrR&g$LT962tO9v$wvXe6#4dNCTbxTk*baoV|jh^45YC*_OeL1jnWb&*h+40~9 zK_(A&g1N*_ObS@m=fn3uMni&SwqP(XR(azbYmkr=lqgohPwb<6pR&%y;O~G|S0l|5 z`q);BgL0&|5ekp7bpF*l~SO4LaPDOOT_hCRl;eoFizb!JM;Nm&EGjPuDjQqce0h zeYrWOPr88^P@%J~h66)0`sI%G(K6%J`!8T;Gv2qGQOYlV#D~vHz$2*f+`?Y_#j0e9P_{{vmj2Aj2`1K;XaO{w|CG~an zuVXh3jzy?OWaeT^RT~a^xBG39s*kBx3-cM%&|Ces{mbzcy z7)L1Td&CF{p*Pa)VF}y$t$lhGVJUhfi>`h2QrADtUwN{{H4HI^q;Jt?J}>O4R#fG* zB)(~Wz~@{Hb}x(obeQUI%z>lF^%BbR^^rO@G@~9524Vj90%g?r2)NveS{xVdT2HCE zdFtn_$u#S;0;EthPkUiF1Yp=lLfrv8*cv6H4;3aI=v8BtxY%uY71lVmPF(gogby2QqWwwUUdr%FX%-qfO( z59iQ+KKaHI0%uvl{*YQifTTPwmj`SeP~@W8$;B<$@H8$ysA?HS0+;|72Em+?lc9&9 z>fk!V`I(EHFzrn}x8-)y&)s&Ig+YHsM;Y!1An@s~?@D zg10w5(vUE;lN0~e+t7ReN`kMVlRMP`7nb*SWoDkd_?1ccW-F{h2-05d*W4fC@7yyi zHuU4!u8$|0yEja_r>4l>%Q&%kP}9>0FwZ(Q_#1KhbFla0)#qud4E!UPV^c!tMI-+9 zy^gH#N$c#vU1%@ubTtWoC$@>>6BIs+2PwF`F;Ew``6zvq+#GxqZ80ODzLc8Sl~GV{ z-P2fkoM#VR!rEzE>0RnO^82=!0avqP5pisG!Smt^xGM&}-_fV2M5F%>UQTIZT_>K| z?w@+rV6rfn9HkU{?7ob3^4XG{?p0qg$|7E+edm@F<7%51qcdbr&7X_HKAC(#XMNgC z<+{4EhBF>FURL*~J*cI|hBbeG&>!jQi|206!460`jzuTrh-Rf|T)9^rTI*8oN~WDF z&u@!~5?{HCzk>#$LHTJ;!3zcdwYtx<@aQ%o zlPQpcjFWZxQTM*o)jwJTP zR9RNtm!-ova8aJULiRUVrgL+~L7TxlNn+pXV#vowJ_n3S2iY_Pq=j{p-}mj?zYaU~ z13}p&gTI($G8i;=^FqIJnMo4$cgavMSJiv{OhRr zn4$lkxGv`FK=~ip^;N0(X_kW^HgIva6SKbPt`?o`t5Z8E;M5lEhRLwTL1?CfblBSzE7Ub3&1dF z;@fni5$sxu#Bu{c+#FjYvD<)!^(u>`A@ObNaE=5pgXL>TRZjb15O_%5A%DeH$I&kR zHDG}o==yg?EdHr5#}`OItG`_B@1~Y$8sYCIZ3STR-==1~>c36M{&JPSn^dD|{(m=> z%K=UQHr3%<{%un3*IsuuNZF!kSN?612bljhHR6dI|Eh=XUy%AM$vc|1@^8~NVCJur zXz%gW|29eVFG&C0WEY9m`!|Tj{yWYt1}n?S1CZ9eRTlayHEmFWpOas3Qv9p{&);B- z;E!^1+H;BvtHaC_x-Qe5ss$2ZpX81NFZRBcSNsq-#HE+E$ zS`y>LEvodYqYlkcBg3Ju&+SXB{Cr@jCG8f@Z8{@>e(=D)wd8Bd45w>A)r(k(Khs~l z>9bvh=!I&vs!P(VSAI6&obRoSoz2D7cMvWGs}a={2Mrs8mILyqDx30<1FK)w7QFV- zhC?eOP1XWaHn=e2V>bZ>?G&#};(#_zE(^(rzuJExl8>a>$;YzwD6asag%OF}-9S-} z2v+p-CP@MA_@4YQ!EG$=?kTT+NUkcs@cYVtlUa)SPI@syNU=Ar_2)cmVwFBeH3=;z zsOk4g6I3ca(p6{J&cmjxGzS|#KcG2~&Ae@PR~T8fI$-@rcQp&JAzb-_5;WZ2DvH!O zYl4)-3Ce4E7Az~jGcIUt!Hy7)5P+}mJ=;s~qVxo^UF(w&Xc!;KLtV9fbKZpr*~XXS z4&J9SDX-Fe^PgAZ5YN{hw#8r?x;^WG5101h+W*w<1Iw1wUVamfuFo%bno-pg<0rXj zAxF0c03UyR+(0M4pS=L_s z>Euq3OKUnW^)@Vv>)52j(FKZ9NmWX?d6PDww%bho)*MPW9I!lf5y5=n{T*AzbYY2YoaWGYUfhRzqzIl>P-99&NB^ zekyep=UxhiJHp7{ON%dth5e+D6J35V;~Ta@RO6l$3@9Fu;02Ed8G&bgU2YW|UHklD z|HDvUn~lyQJ7TtKRRSC7qZ7oGIj2S;0#u)b>g%Ba*LHxAI4R9-NUAzQc$}leu3YUm zkz4a5Slzf9a3xGR7Z@rxCY(5wJC>|E%UIW=F)V;n(uF- zOJ$Gw-03CWsqVQk5RdndbcMZw zrLXXl>Ue3+_t7A=$jsK=K>U%mbL~+eN|41j_^25y(8Sin8u*w|7ez1b93`7iH{{Ud zN}%& z1L_$`pxzO$WBCD6`20kL3_C<{jPNMY?v_xc@A~DV*30BZZ^r`Y8Nt2}Qyb8?{D5b= zkgGw87y!)N)S9^*$+Bk&@zOFF|Lkn}K>u5HaDf+)2w=P+N=vG^{MlE41u->_rL(X0 zYh7{UVkhTODyrAiXeIzA7G{_WeD#lODYcUUHs4hT=6c*D z?lqVQDfpHTD9WxG@nX*=$_8s)Y^<`_HzGSZPac#>pPD_Mgg?TAPdZwnG_Ygj+-c#5 z=jvl74@-2M<^g4EPes-$2N4JruC8@Uxca@JJ!Tfa&z1@(7d?49@;dBiUiX5-oIq<- zaD7cNKl5R%Tcd1Dm)Gs8-qU4;pSOScM6$EbSj=WbW;B@CMLEcp^7?`~6AZX zv(A=1_ok}t#2*Qv&&M8`(Xdi^u~X_i(Z{XUT$|vmoXjT()NhEsaz>jeR^!E8rP)cX z7906Il$EPCN`5s^_+MaiF#L-$*;CWw`>VGs+dChoZ!MrPcfVGT%d;f_Yvk|FV-GOH z0{+{`0+BEJj@Ci23qk-`0U3HE&#T!mcCX7%P0J?T=p}qnR?&+tq1!#(lxB}(B?5>l zwZ(UeD_ja}Ds$T={zkj_QaNG4>+jIZ0^d_aSpG3Hq^tRws=Vs;%2Lm;@Wdsz((KfN zs4v`+wQg zW(NM`zB}&THMF(WW*IPrX;j+wde(a&pLMD~d*tS;I92>c$b})j>ItUm{GJNi-&fB~ zcf_m=x`dTiU-@&n5}hTUaU6W`pC`-a&+jMw^t-VXY$$d$J2gOI-_oHf%iyrGC$>Y% zE`MZ{1c3UIL$!<%qLa?T&~||OIp;}FM!|?d<*wH*A28EGsc!A+pT4TIV3-Ifci6tj z-pfK23~UsNjl|=!L33A#f@+JZ(|m+jTTHSe%Hni%epmdiY$+2cDPTW@^&y^e$LZ`Xyo-h=57huM_?$ z{!UFHxOfp6kA#7YFV^vv(*>_x4zVuzPj#Lckn$c9PO$p%xWgx_`&H;WDVE2n%9*Z_ zFKd;v5<)8V$mQ*4_teeXOBD{>d&46H>GrqvDCp zw~?faNe(7CjvLoNo$3Z}xZ_Ej`hg zg>bA2_Zq)ayqcxpw>)&l!hT!DzOqigP5*&yB>Y9hHK)~6-tE4+_UIkVbl3W*nBQ7IXL?Yza1uM~_%=jfY z@@pbTG;{q5a9gWox7TBY;5wG5run4pyUd%*W{4>A=&@&wr!`@h*^xy8Ru3KBF`^Mo z!eJ7xgmEuq_g+@|y})Fc;6lzcr~PO6O8tIP{Ts=f$^~l%zl?iMpP1$iTs=3vf7Ye< zG`a4Ue;(FI?FaMl4yC1F)myLAg0A(n!LOp;&UC7)5>|7R#|=Z7pq zm;y_#?k;|+Cg`Tc`C^K-!Y9sc^p)%4>P}PnwXtC0?QCL=987f`mLhX5ro^*?PBp3a zAL^9EDaP8&Q3H^?dl`jgW@6)Jnt=K8&&LnB7x9mbCFi0O;%%N6rJA~ch%3L>45sx< zi##YaCY2qjlkVtq8+hFL`$`m%qWqe$^rrP*T#9Rb@{5bvj`E+l?Qfn^Nt;>2F{E9E zNe7JY4UENjrc{P>pRjxoHyJxkAMY|3un_{m|6Gc+!Y9z>hNKgdD(Jc^^LVh{OodD2 zY653he)amVNIx&uSCwVCRqr+rdger`#o|fAjv4@p+{+n1gY1HY8 z>&9CkD4`(QFoUoH7ba-^25>|y-6D~OkUl|D=zpeT2NZ${-_B8&FR zl587ZB^mYBGrkwx=`XKbty%d6aIa8HIwYDcPnF)1mDB`T&}7HKWI7nw9uI5&(qLYF zO2781hB-E6I~Mxcg-rEgJ_)@iu!mI@5$3+NF?uANk2(%7uQsvoTT@caVvLBwf)>~& z)H?%bHgMh*-^_=uO1rZ`Ve=iQ!Q4yaT@;(;ArD)Nm!7=I>w~tOS8dah5$jDCV?4DD#Lp6(ukAq!0hebE>({#fxOK75I#qcH$Zt2NhPW%}wj}<}3EO<}ZVn~SK(_H{BX!4k zM@;?m=lvV@e|dsXk&57jiYivvv5$+3ubTD00R1ETN!!Is%Z#oY^RDNJ$9P+1Mxrs- z`uNL7>~fxk3oi%YCYj%gqP6AME4RPge6TzzSpE}-{xEJUJ>Bj86ye0ZlC+9cy$-XS^wNuDwbmNr(gTq zj?1KW)%4HTF2(KH8XAUzb?bO#CdxVUdPd+R~# zR5&TpxNBGitT6k)y4y_YJ!17SRKKy{s|3S1*^`#m3sniZG>7EpL(LX0AiB*%pSh}f zNqI1}V%TA)jb5~bo8DD{aTvW_x-M=z%+B;Kr~MZlvfRB5HX{0Rb^c_))>Ct`QZr0x z^KX#}9tJAyh#Z_fI^9F=bUcM$6l|L$ok$;>W5&}U$usn>9IKs-3LGw$2br3hQKeyN zKaHiq57zIffR##xWQ4Z72=w5B{mSQWE&iG5sDSN=MI4bAVR;7Z(TYbz9~r<-vQw;h z?(GADyx;Y8=8}vyb5Rlh+>;t0E7Na9Lnv2XGa zf}G*nFh<)DDrr`$ogCiqd0<8v1`Sn>AWpp0bn ziVWVpL2s*UFzFde4teZ47@SPKpQ)-)U10TNC52>N<43Y8*~0qGLRUPV6i2zuf@;!0 z8eV6hK{p&*qjx!JIDRouHe1OpbggvFz~R`B%dg!^=;i0@o?%2YwV=q5{IF!HvrYLT zYg>R?@yjA4(!jQ6r)GLHqEReD#*EdaPIUaNR6mR``D=6Xed~l*Ijbybt^QtsEkE`G#J}KwmAEd=+k=+wlI&p zd^2E#*J$hS&rLfm3i}KV(i>;C?Rs2*NHxC;K0LTzpiFj@CVv2oa7NZ|9Jli?^yKjB zZ*MoMjKE&BDZPW3+781~eh1w)_csXzUlb3Wo!v2F@%$6B5m2XiVf0K5&0L&DNE`Dlb!QN>(Q&?VqQTE#& zoa9u&s6yCEMl_N7j-mcb?Kus$mN8$wSCLzNJsw|?^S4Lar%T&f@J=LAz*gf>I*Y4d zy-T&_)qi8W72OPRSWtW%GvB1oVV$$mTIVt*at+og>*R3Nr-2!D*dO8Z-(qx6eM&)r Q|J%l8X?D!CF$jhEuc(ffFj+Uf&$WGgAt02k+7EU?)Mr@S4c=muIXrN7?Y5IP=9~q zmw_k!hT?)GB%CBV8h1?}+iw?=<=EeE?Q;|2qIhl(?j4W+%&B{=qgi{GoBI_fqelC5 zeB7(Y44H1|oxsQ+COFg20{0_J_d_-d@>Du`SSc;H9Q6!o9yk-SLcC1%-z zXc7n~2?&xPLGo|KU0Sv7$g3=d>i<@OKQaMZaFRrDQgAxnjlNdF^=}o(1d&5@NI;a5aQSQhR*^Hg{EzJaar=KlLh?VAgmC`j4`GQln_U zV5bJA6`>QRE9Y~qz8?uKg<@*fpt7X#hz<^lIi@ffgr4k(hJiDz^y4KEx$tv99LAB| zPa(XP#MbXDv6JZIwobTBt}?r{)ZOY2&}6#eEIeTt<{{S4Kftdy4A1)e+9PhjRI_q& zf>Yh`SG}OQBWV3bc-A2w{wBInRS4STfoagO*!Xu{fZOdqwBq%piynEOgugbR`RjwFJc zTCF>ddJTN^@O@K8Th|Nt+hLfM>@RePb(3|>*LWga2A+JwpdCJjCq?_yVv@rYG;q{! zWdOcUKd)2`0#ER~51RTpimrtccc-9O?bqblwU*Kn`J9-M$)kSzv>g1ZmMHnRXn?f* z2Mjo#iO8!q`#wX9M_G8D_h!(c{=6%?eUL4lTxD3J6}}LC!snV!IT+=$kpR4bK{C`T zP2g(pZXQLT!=PUGOQE@vOv~G(@3R)>%fH`7%enGE4y{z6?hCyaxmYpa9S&(3Ljq#aC93Tn5$>WgEhl~}s z#gq(SLtnfvah1}G#bLXKhl!bXw{TYXWO?k(G9uNE0k3_KJLyahDGjmVH^wfUiQ_BL z^wn=8Z4jE>>{4^EA49Gd1HzQrLiukHmy>a)0B2AADyDqMwOim{?}z7lORHGJFroksYr?cT+xan8%oHz}IqU&MV!t=p(mP}*f&IXQ4fo>6trc#xePN5|5!VvMONjMA zllzO(WAL7uqU4XckjN+R3}4fV+Qc~RHWT`3=ewX3L5M(c-UpL>KWp-EX0Tip{eIzh z;*1buJ|wa%F8?F1E%BL`9^Nq3>Ym+mp@kAB{7;eHl`ymft)xxw2HA^Du%;pc%O>8zH2!Dot$nQSfzfUt;a|8wrg+2!#8NG+n&11N#3Fdc^WlB*fV-Rz0mM}*U#b5d`iFe`Y&td7@0v!-6(v#qez^b3 zZ7!U7Fk@xa6(t7GPyUb^e#>|Zj||%xcA6q#O#RT%ez3di9ynh=+568KZ>~s(ssoV; z(VqsgIk2Wil_n!0$6|ZdCQ}8sPpXCu)z;Z8z_x*wFFJVg`Ehncq1f5qti)8&GHnu& z9!>C4UYcKRjY=Vxl0EDRrIlGuGv`dXD%NuXjX1p@%r3;>McPW<#O-)LCLl5_!#!8q zikMJ;e+9bR!lXqZDQan!<**kHwHN}7mHt8t=Qt1ebma#PzfT;xM~sIS(cdYAIWQV- zVY;b9Ej|(Y5ayPam=ZRuGoj-+63#|$dG4}M&8{gWN>?Z1D$oz-30Sr_({&;j&OsL5 z2&*U1=JHV$y-!FeLEi$CGp)KrKuWLf1t-L=3Eh#G)Fb_HDZ-i#MISHMf6j&Z)nAVB zY?$uvso?-oO8LkfTCYG^lH^jhMKNc#--K#z`wKddgN88fZmIYhf=6u5w$N&1w=J-5 zR0$<0cE<6ndnu5Omqiehp4!U!B_1i#(cBk{?O(NzorO3gjr$M*42+MDwMgc5R81va zPRHx2i;}y(=oSe0mQ0J{fPUaQ{b>Z)PmU=4C!8S6LePoZ;O&A4H6@VVeW(#x3+Dqs zs3oY|s8f(?$E?W5U}4hG^oIj*s(m5->bhnKtj`olmTk|DOwnmBbLv+6EqQXgM zz{r`_NpldJ>Mr5%sj633#TM1cVW7`c#NiHQ6w^M4>Ip>n%a^J5K`J9nuWtGk=0#Xd zN10lL8k~G?{Thj~DDqW;WF+Ikuoa5(YBCMR_P)QTf<+9xnz4*A;nF~9c;MJmSK}Aa1 zim_O;s~}8h_Bfo7@8BDdPgNNb^c4K*N)YWf>WTzKoI+JpvTssku7-s)DNAK2QMa^i zXA?Crx$Gl?o8LV-t*Oic!=j#z3kK~pn&dCU3H_w`E^5epd~qU8>hb~}4PKe2SLx{F zNogQX4);3kws!^w<426+rvGr9Oc{3*_MBDO$T1r}*LILjiOlgNJHnA9x$;cxc7OR9 zBMRYl41WHCt=Rb2)}C8X(P{BK2V1#_XR2Ck8yW0)_Qjaq%Jo%bCQWyL5#N)YAtgKHa zGE62m?kx`o;2ECwN;KGOcZ*s;`}oYiatrQ@IC|BaZH(UO7&zSO>*Gv(EHM7DiB?>x zIEfNW4}KcJOm0UGtp7x1s6#sRy#X51z-IB?<1)59>vQpWA%FA1r>9px#e{&pPp!bg z_rQk_?i-T-92n8zOy7)#5ag=1hTm-3m?~2x3E`F<){MH%IS31t0&+O|tPPhG&2~EX zRc?yeN{Y|w^a@}Wdjj58wiEw=#V_qTQ46rCV-aB%ddqH5(agV|WRSk|IK_HR1W-D-u9PjdM> zVwsw#bdOa5T2x?KWt{cC8VP7f{RSN&3PPB#+F5~A+q#>Hb?q!9hi|wscU(J-5b|mo zlrZo)J8UX15`us)_&_J>>7A3_Y=Hm`u2wuLVj~4 z?g%;fXurlaP9VU`DM-A!+yARRe?K?&;Q>|}WqCR2_2_|sBWcznpRTZ*i|m8_@8}^B zqA(4T;r}j{+K*JcA=}3nQ`s3{3Cka zC;#%%HE8+9mB{XFUdIcH_a+7UF8~~KW!>*)D$>Kd2q7hs9RBt`D;@tajX2^D_D}iY zPKK`>ZhgHmR9~rs6V(YJl-XxgxQ_yItU&4Ri{k;Yyi!!jDnm=}MhXq>IGq`6yIh8W zu{(2zJHJW=5or=L)zUiV(Im`_5Xk_B33CC+3_~?@)5SKD5IYD zpkt{RDI)V~^xAy$yX`hgN`+8bvE-xn3hYb@GB?Hl?kj+=E}X-vq&E7hk2SDXH{IW7_P$e5ij7gv7X$p1A@CaSu$UvZ!08P*s&>C4p3C%wMOe^=wY)b-7jA;F`WO{ zF`YPqD!3b^+5F2;_?tG*y2N~o{+eMb@`n+-D0w3tkg}optJ83qs6w(}pPTN&EPX-E z*^AzY_tgQ1)uW85)$NAg+?TOlJ+E&40g5vPY(^r$(pQhyOK;Z8G}fWC2$U@>U2xHZA1c|>0>t- zIGG^#+a68h0Sa}nF)_M;=6h}bo>yGE&pK^1PZgXaIq8dK240RsWNx$8ocIESi?N9U za+VNri85zousJ2sfO5RisNm$!eea#xkk<^#v0xi~q}ui!`m5MRQj9F!Qq#AE zVP>bfhu0DJ-Hyp(oqV?2(q`q*bNx;aS3Tf6>wjbLEf6^06XJ7yH-?#WblJgC(rsMV z(s!foEE~;a>ci{sY7rXLoL2iLgNku%BClgsViYAf5WurnqsM4ckRtUQOSf6lF0;?a zpYD5YC({V+zB7LI+_K*2UCPMjA{UuVo0(;As%C$+_bM~}tQi=lpxF8^`^I3X2F50w z9|_`@Jp7NLt+*i#O3A*?`H2PFGqk2{nZ|QXg^kA5GI$2 z5up8JH}|FCBvS>4;HTCFDrfq7!#kolnxoNqD)TK<{k0Vd_0RN8)}e?Tj~&-pRd+7k*lIjiS&EH0nszIF+S8Y#K;e<(7uRR$zjcSw(9 zIfV7JQZ|e$r@*bnmg;EHCBJ;i2bn zwAb7JG2-Qlm=L4LNsKpeO&%mXMVZ#&6>qsT5+m(O)(*S}n;%euZ1g*rvB|x9$=9>L zkNq^_Lv?udrXBf+oKWTGAjl+>%l<$%B&sM5bhxo~RjoF%w<0z}Z9h=Xsf7J#^4?jb zN@GOvdk?96Ltbv~3BFe6pc?%wIcnudbN-|$y?2YR%V#{4f#T=wQD;-hFX<3CYN5p( zYnHe3^zDmJGs(AbWE^4wilknig1DZhF)xHjrh~1=>y}8apDlNkO~JAfOv(PzGC)Y+ z`L@UN*5JoInsuiY*$$~WT2KQWzH z^-Y?>QmcHJck@kB0T6@)(DuKAp6cL3Ljok=B= zYb&vtk@~fH{i*E5MM%IFD@9J$Z@;^*{#ow^Af+K*I~9n{I8SS&2`e=ikz0Nke9>L0%Q2V}=d!4t;E%8$0Tm0Ohe zY|fRjggWM>^>RatDG9(Yn6t1q7MrtNUn{g&d8gBSPl=2mOOaEn`7Kh75j@<@L`})Z zNrPD%;&;@mNc=Gp0ynbEN9?!0sK~M&zdCFfzd6%PATFxsXEZlYMSCC&5frp2AOuQ# ztX$w&Xqw3b@DYH2k1PPs%s8BO>{IY)adFD+q}!*XdStQcGzJ4}T3$^5)qU*o;%kx8 z3~n)#-81%lvFZJVTS0gH{;oE~Y&!E1-O(KyweC9+R3%mvvw8cI_NBWUJ?THvn$u!+T2L_RzONTzp}Puf$Js5=P#Wt_8ryDjlXP5 zXn#krc4>fNyYE{#yRRllj0b`zbbConS9Z~#1Gs~Ue(U-hb?ucS$~D8RB7to?l$aBS z#)Qs>5<>7|!_sz_Ta=CNMwtI49kpM+AvFZewBMJRyG#q#Ckp{A!IB!Y&AVHlQkF;8 zAk`qyNV_-45;QzWrc5WU^!AgXl?w6a<>rCt!vZwx`cK3>M1Lj7H)m%x=q3PRq;HWe zL_^?Gt>F=Hgu`M^rCAKWqYJxlU?5?4U%QV%mQ)Ia@xqC02@N2!ZK9oagn~QVX975j zxIu^-#-In%8<5|w8+W=pw(T=MA2C*Kd|#TL%HJ1D5W~gS3%3qrJ$NeshMl}?BqMxR zXIV72`HX{!?0mTrhg?%TZGgbm6Z6Knc} zaeD5yKu@W$PHtCqt?`E8IV_5$(X*r4rSasdQo8Q7FCP#H03c)xOMkQxM1sTll4F2g~%zd=f2fiu?|Y;iNiG}`tWzvbUba8h`Jdtmb--dv#pU$+ApW|y1u7ZhNf zIlq+(J&b+vI*T3;PBP)M@A1Nu2fYO1O-j{hncWBoLC^D>9GcB*$x`mxZ1lR+v!zY` zA76%wuH;i@R}S2RjpUh zqAb!YldSi30RZmhN=L|s3>!`!mz)`=LY;>T0-XkwPf97Ko+5e}xE%RC`!?-nN0nqz za>DQSQvJ*r9w<>PTyH4I^IJ5{mICMghGs~Ww-S;x2sWFu^-w)nNtADwO>oy~*nmNy zaUt?B^+s`UK>EBN>C#ImR}$sVch~D0PxBddx)r^1`rkIUtYwmb*XhIM6ZN`4dwc0dg}8&NG?t@`&ox6z^_RLxw^}Ohwl(cBZY|CvdpsJt zy>`Q*oP2?eV%8*g|B9QW4${b%zb8$(g4a=RpxR-;FazqmFe^-e7BUCpm-Ti!jy9Ba zZD+ZYM!9D!l4+Yc=DrZ;EA9&2keVnYTv8587LLgtdiILhvT;;8Ou$`&6^Pw>Vlyp_ z_#9=;JH;>wta^`w%1u^-t$&?SHMiz#W-L??iEr|?Vlqo7275uIkL=HOuK853-Lzfq ze0oEYdXjm9LuW&`yR`5b^Uo`cl6puZZz3;PZh#|uab)hxX?KpS zg`mh&=Cf11Eg`F|?E1hH!qgY+68fD;r#uJQn17hv_C<2p*V-s`-FB6Qs)LDAb>*Itb^_s%((b!vA6qzn4sVVHL1D-|9p;+ux2Vw(9Ji zGOrEnA^JX2m-X^XOk_sd=`;G6HydRk!yXLpOm2BnxNc@YXc`R+Z-bQfcDhwgnLtCM zGHSP^I_@$Dg%6x$Bc@JIeOR@%6l4&t-Jb8xHH*+d+&&1af+1 z^7TlyBY?6UW`8XKFl__r;dU!pzk_Vc&wuc90F;4QgsMy3ej`POE}d|4|J0F5BBv6ox4;&gSYLz0K=HBm31S)p21igo8& z)rj>!XrZk$OQTD}lJhp$W3xxmvk$doafj2@0&AwBQNv4!Fg-9)Kh)rp@ppixah@FX z1+6$j{ZZ{O%sE#d>clN;f6{XvY*(HCyG>*hRZX`0p|m|N_~%-{&~z)Ep?mOF-Bt)c zOw{1)?MNcx?T3zoNAV|*Li25cUtDe;jZXB5GH9Yf@G0-WwVzP)E*B_EHXb=>>2Y&wHBn9{BsMI*cPm!QdSQxj%uh-+zuLN(4yCJF zdMFrnGSeDC+j!SYu4QV*>yglpWj(P9<~J~Re)zV-eC_CS(fFlb?j$740)Kk}l(>)L zLjBty1Y%9H!08YJP&=~OBY)3AF&hwYz<|f1hm%VXJ3_5rdGvhZWbarAIR@M61!4lp zI6e`uOKtB&6kZV*3#BS-Y3jYsr6)%UCL{vkM`7p8mTn*^zWn?yyXJhy+^(UT2M#po zvaHM>UKgOlx@Fp+I*$g$8DX26u{-`=o^^rodgP3|#dEJswq{?Wqxc+mA$y?ifnn;m zXB84sb{|rCDYSbv!LB%5ma`Xmvio1+9-B)W?+a>0O zWFMVqHdn~rsc$sie%3lxWEQ;o@q5EpsMKQ3;Bd7|v{?tTDLZiqG`j89r}QoZZ--hFw5sve+j@u$E}$Vi^p9 z9fA6=c+i}?Bem_abtixGv7zP2)f#Ki*5ex z%1@umhp0Cy`=q0VJM;_ZL-RG8GvQwZJLbh;D~J8x8A3K{F^d@k*x5IetM9elCJQ3W zxNkEuOr}aHam>wZKQryJ9(mtr`eBh@DS^P^^z<2eoe!MV6a)E|tU-`(MMS^{kPFiY z6q@C1Hx2WFEuBBedUhg;d3J%1u!$1EG>?qh_*5U5u*kGLvp#*WEu$W(2s>bv^Xz3k zns`ZDKN#5qC(r3%WI?MJ4+_KanOumo_+12mzUVo7LwWeTC%6gxVt8ytl0V?o*;J-@OmER{`!3J*Clp-dn;X5qN zgY#FvBrgc$vu)~mizvDi+}*9IZxSnrn{w)Wj@X1EO0XG_PWjJOV-;L0Yl!$Yk2 zF#*DY)>3YYN8cuO&kNF==G$BL z^GGRDo^RbK5^J6J6>FuSQ{=l_FDxSGo#(r2sl|{Gycow|-8lB;=0S$H)i!2MBVH*O z|GH9=1vB#gmqTWV{ZVrZPB8hJ-u9oHN=qMtJSR7}lak5~Wp0QgfaFNF2&pn7#2E-L zoSj}jAd7G}!6<_V7xn~|6Vsp_OsbtDi=p}Z*E&D%u~&tHFhl|=bZ9Gky8LU2l5AUv zl1%IQob-Y}-uMY!eQM8!@Z)!y{*d9NaBpD{;&p}piVFEK01I9858~7gnD#==0<`M| z_ibm1u^nfI`7A2!Q_6>?16J(sJ>4AHz|#%mE)vjIOQ-vV#HVVQlYLo(QQ6z7Rblqc z_Hy$EGYw*twy1}!Ak5TDGVN|f)jNlGuDGj61J>A`X6RKHZG%&Q*W=4})q{L=HN?G%Y;1%Ww3eqpVbdgg4ZHQ_=YY`=x7yASmEezaVQKwGZ0&q7^csL=nX@ zPx}>HNKLkXClHl5i*3D5vy>{?n_7=75VA*;VBucL&YSRtCb4J;(r=$1fz!Fn_Hu-xEaS$neBu%(HUW_EiU;z>6n|<{A%gP zloR8`-CAo_AE6rp?WO_AKh9={#IS8?Wz|z3xRZ42&eEY44acawhaWor?{H4*;fCBR zcB1o*RqqvAo{SO#pf6U0#IhGikD6L2tQ%sGtra)sR-s0y$2??Fchv2Gb8jTHw{X+g z=!PlW4-U3JHuY8&4(x06@b+nk5Z)mU-S-rfs>&ukKR7GjYxH;2+fc2`;yF@xeE2tC zr?mnpwVK6N&3@AJ&Uj1;GILL6@cwbeLZ|0*P$;sKD`4H|++ecP^M|Uwv2$%pZHQuX zLI*uD+zGzf644TeyhQtUd?6!7gs0eha+B)buMURuJpQKP+qjTrpFpYwsXpZrzTcCX z<(q-dnW`Y1n%!|z?-1?p|0_7xNC6+c^Z1+!{VwH)u47f!f~o@cgYu(Y)}zt#e3;Zcllzr>wcIp6MLrP$%J z6_DKPzw`3hjxyFbVCke)x9gzx41OjigFEAMtgf|dLgpS>3_arq<>x?zHj&+@f7z#D z03aK<&RIP)%5(0)b;06V`h@z9h0UUgkKbn+SnE9`+3j!Ks*1a;lNuk|6ZCdHje?80W%Kf%X6)5ZYzMiJ{8|&@tGnJRj^$wEt*p&6Wfb3W3CpGCsmTO z3-nQPd#WGlU3XUIfN3Y`Z%%{Oey9}l>-WD z@%XD0dCI{B3a`&j7?kq}?P{(Mce^(aisO%}1HF7d5rX9%{hLQqU~a0_E1#~*hr|;A zKrmB%tFM;&ZJt_?I%ae8Hc3P*4VOVV0)?$^HtT}^k4cgqLX$8uLFo02p)HxB& z^5spo?f|9u*Ie{Kx(qrs{s*lN%@Ru$;sX;^Mqu9j_Vn?P;p^WTUpwjd-zbhl9&$X` z&9bh0H)YWQd;N)7&jr5QN$AfwGTCGwxsgKxHvjUaVln6}Z9(08u2UT5;cc^n|hLdWFV4HvYiXP!GD=+~}cCh)v+Por*_!_0tTIx@`oWZfMEo)ENE zQ{xl?B0nzAEo;1@8D*58^~!i+~vF5B1vE-PqZ*&8b^>hT->-$@L?h9|wq8 zj}5ML%01!)dL1kud>u^2&^Fjju^{lv1;zICXaVf*mKuZ44N2mXQX=vR)m?wKlo%`Y z3{SisC!=!L-IX9q(a?JWk$@+?#E3qX7Y5nbcRaDi20RNjds{Ti(<8#`=zF7T=8>!v z5IPP&FU?8P?oF~73m0>-3bRyq%vv~0>fI7^YE5i@0yLbh-Od9M?}Mkcd@jsj%!=|- z!U;@sRt`N-EPRO=?tizN5(F8h48FO|Ne!)DR$F%9!zer3;st)z*fx%QA4}U6KY2HZ zc}Z?r^qNI`nb#Rh>z_lo$GqEvW|Kqg29*;+V`m6(TwKT#p!~h2{66Bqh#Q+=d)7&K z#H_c4Vg9?Ql8{YXKY)KkQy-@Rd@kcgsf8KCWZG~cxsWkb_5I*&(V+9L*IF-$>_B(V ze;bS*y8$AqL!M+w22Pa@W7^!~W!bYHH@Nd$>|L(|xaG$sl+=?NgFhDs0wN#((4yF) zIZ&o*>f-aqP;Pel1`pWTvrnr2$TPde@I}ogX|!q*m1AcbU8~+OkbedQ-yHF=F-05{n*-ev zr%^JV7W=vxZ(ita+G$8skIjbWZA7Yx1G4FO@5Spvz|xz4KEi7K@RA&I9Wzq~*`WNJ z2)3~^WK)b45XdQT=IMULp*?jd9c~LB1FZnx5ih6&}Yw zF)myPnz8~keJt_To@s7b@ycdVw@}-fb8g2`o_^fhod|y|S>Oxd6DaM??yB8`3DJtU z^f99ot8ZEN+7z2qY!5ft3k_HoupDUwEBId<>Nl@^nFYG zA2iNVaEyF_6kr+E!#7lbDQi$UmgLQg-7c#qDrX0ZMEX?>)AC$stw4v?TRExk01JOp ze~S1Udt5tyMxWb3hq*R(-=XApD$}VMY`1+W^)a62wk>r(P*)LVbb3SgD>f(5iw@1> zn)S@{0f++6(<4`UKJT2UAUu8R%dP$=*)*sEvX<|QlL^BNL9>KaA#{1vX?M%nuW{zb#iK z;((|jsxYc4-n>I5nh1og`};%m@blyAu@;r$5oNDm0L^#wvIidsEgEo&!&6uMSF{YY zWW%`8HX18|-)FYx|B60%U`u@q0yr&dr}Fed3JoFp?ZsIgbRpCsMdq^R0L-#}XeayZ zzHAbGbi{q?5QG5$m1XV;l4q)AOg;1cb76*GN1KsSOVZVa=%ZZah6w&8$|^v)=qupG zUr;Kr?dWsnCDxV~dy8T4v%$>tk~XiL-XEqAmim`g>=;*D`vIZi)++8C!{`Smf1C z!TjFLWz&@7zoQh7@*t(F)&&2RFYcPygA> z02D90$hbZgrzS1L^6JMTNQJe?miu9sFY?23rZQ7M(dGS8J zk@xWT0A0Gm9IRN#3!=!YHEkpu!HDkuHo3K~tb$S#H$_fDcx~%{RP)V?c$7mi;(z<5 z|7&Fa&8#3Dz~ng&=Z)9@O@2rK;wAC!;njcBA^+9VpnroUF~EdKJVlc8zu}TE*+7y$ zTebGz+=`k$;PLeRZbbbXCFug7Ue~Dy+rJ&00ot4+Uo-uiLHP~H+MhL}t^bUtqyuv( zbgUo#jj(i!0p3U~-1_Ce>6aXUdpTcjUH(VVGk~CHeh8lJE93%f9 D;WU>V literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..20aeb23ea44255c9b4f35547ee2e1d569d1b2bd8 GIT binary patch literal 14700 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 D;WU>V literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e9efb66..ec69bd9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -39,7 +39,7 @@ Hauptdatenbank herunterladen Einstellungen öffnen Wählen Sie eine andere Anwendung als „Telefonanwendung“ in den Systemeinstellungen - Wählen Sie Yet Another Call Blocker als „Telefonanwendung“ in den Systemeinstellungen + Wählen Sie Tranquille als „Telefonanwendung“ in den Systemeinstellungen Standard „Telefonanwendung“ Wählen Sie eine andere Anwendung als „Anrufer-ID-Anwendung“ in den Systemeinstellungen Standard „Anrufer-ID-Anwendung“ @@ -72,7 +72,7 @@ Dienste Blockierte Anrufe Eingehende Anrufe - Yet Another Call Blocker + Tranquille Auf der schwarze Liste Infos Name diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index f0ea9fe..9233009 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -35,7 +35,7 @@ Ασφαλής ΜΚΟ Ανεπιθύμητος Σιωπηλός - Yet Another Call Blocker + Tranquille Κατηγορία: %d Δε βρέθηκε Φόρτωση κριτικών (διαδυκτιακά) @@ -178,7 +178,7 @@ Επιλέξτε μια διαφορετική εφαρμογή ως \"Εφαρμογή αναγνώρισης κλήσης/προστασίας από ανεπιθύμητο περιεχόμενο\" στις \"Προεπιλέγμενες εφαρμογές\" στις ρυθμίσεις Προεπιλεγμένη \"Εφαρμογή αναγνώρισης κλήσης/προστασίας από ανεπιθύμητο περιεχόμενο\" Επιλέξτε μια διαφορετική εφαρμογή ως \"Εφαρμογή Τηλέφωνο\" στις \"Προεπιλέγμενες εφαρμογές\" στις ρυθμίσεις - Επιλέξτε \"Yet Another Call Blocker\" ως \"Εφαρμογή Τηλέφωνο\" στις \"Προεπιλεγμένες εφαρμογές\" στις ρυθμίσεις + Επιλέξτε \"Tranquille\" ως \"Εφαρμογή Τηλέφωνο\" στις \"Προεπιλεγμένες εφαρμογές\" στις ρυθμίσεις Ιστοσελίδα του project Αυτή η εφαρμογή είναι αδειοδοτημένη υπό την άδεια AGPL-3.0-μόνο. Υποστήριξη / αναφορά προβλήματος diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 1524119..2346181 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -33,7 +33,7 @@ Donu permeson \"Telefonon\" por vidi lastajn alvokojn Elektu alian programon kiel la \"Programon por Identigi Alvokanton\" en \"Implicitaj programoj\" en sistemaj agordoj Elektu alian programon kiel la \"Telefonan programon\" en \"Implicitaj programoj\" en sistemaj agordoj - Elektu \"Yet Another Call Blocker\" kiel la \"Telefonan programon\" en \"Implicitaj programoj\" en sistemaj agordoj + Elektu \"Tranquille\" kiel la \"Telefonan programon\" en \"Implicitaj programoj\" en sistemaj agordoj Pro manko de permesoj, la jenaj funkcioj eble ne funkcios: Tajpu la telefonnumeron laŭ la aranĝo +LANDO-TELEFONNUMERO (kiel Android montras en via telefonilo). Uzu \"*\" kiel ĵokeron por nul aŭ pli da ciferoj, kaj \"#\" por ekzakte unu cifero. Malplena ŝablono @@ -126,7 +126,7 @@ Financa servo Ŝuldopagigisto Kontakto - Yet Another Call Blocker + Tranquille Sencimigo Laŭ takso Landokodo de recenzoj diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 4cd405b..2abc796 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -82,7 +82,7 @@ Abrir configuración Selecciona una aplicación diferente como «Aplicación de teléfono» en «Aplicaciones predeterminadas» en configuración del sistema Selecciona una aplicación diferente como «Aplicación de identificación de llamadas» en «Aplicaciones predeterminadas» en configuración del sistema - Selecciona «Yet Another Call Blocker» como la «Aplicación de teléfono» en «Aplicaciones predeterminadas» en configuración del sistema + Selecciona «Tranquille» como la «Aplicación de teléfono» en «Aplicaciones predeterminadas» en configuración del sistema «Aplicación de teléfono» predeterminada «Aplicación de identificación de llamadas» predeterminada El bloqueo de llamadas avanzado no funcionara porque la aplicación no es la «Aplicación de identificación de llamadas» diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 6a4be45..7cd0f86 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -5,7 +5,7 @@ Tietokantaa ei ole. Jotta sovellus voi suorittaa suurimman osan toiminnoista, sinun on ladattava tietokanta. Se vie noin 25 Mt liikennettä. Poliittinen Saapuvat puhelut - Yet Another Call Blocker + Tranquille Tämä sovellus on lisensoitu lisenssin AGPL-3.0-only alle. Hanki tukea / ilmoita ongelmasta Käännä sovellus Weblatessa @@ -158,7 +158,7 @@ Anna \"Puhelin\" -oikeus nähdäksesi viimeisimmät puhelut Avaa asetukset Valitse toinen sovellus \"Puhelinsovellukseksi\" Järjestelmäasetusten \"Oletussovellukset\" -kohdasta - Valitse \"Yet Another Call Blocker\" \"Puhelinsovellukseksi\" järjestelmäasetusten \"Oletussovellukset\" -kohdasta + Valitse \"Tranquille\" \"Puhelinsovellukseksi\" järjestelmäasetusten \"Oletussovellukset\" -kohdasta Oletus \"Puhelinsovellus\" Valitse toinen sovellus \"Soittajan tunnus -sovellukseksi\" järjestelmäasetusten \"Oletussovellukset\" -kohdassa Oletus \"Soittajan tunnus -sovellus\" diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b7652d2..f42d84f 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,6 +1,6 @@ - Yet Another Call Blocker + Tranquille Appels entrants Appels bloqués Appels identifiés @@ -186,7 +186,7 @@ Paramètres de notification Ouvrir les paramètres Sélectionnez une autre application comme « Application téléphonique » dans « Applications par défaut » dans les paramètres système - Sélectionnez Yet Another Call Blocker comme « Application téléphonique » dans « Applications par défaut » dans les paramètres système + Sélectionnez Tranquille comme « Application téléphonique » dans « Applications par défaut » dans les paramètres système « Application téléphonique » par défaut « Application d\'identification de l\'appelant » par défaut Sélectionnez une autre application comme « Application d\'identification de l\'appelant » dans « Applications par défaut » dans les paramètres système diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fb1a5f1..088e4e4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -16,7 +16,7 @@ Chiamate conosciute Chiamate bloccate Chiamate in entrata - Yet Another Call Blocker + Tranquille Servizio di monitoraggio Servizi Sei sicuro/a\? @@ -198,7 +198,7 @@ Caricare una recensione renderà visibile il numero a servizi di terze parti. Sei sicuro di volerlo fare con un numero presente tra i tuoi Contatti\? Aggiungi recensione (web) Seleziona una diversa app come «App telefono» in «App predefinite» nelle impostazioni di sistema - Seleziona Yet Another Call Blocker come «App telefono» in «App predefinite» nelle impostazioni di sistema + Seleziona Tranquille come «App telefono» in «App predefinite» nelle impostazioni di sistema App telefono predefinita Seleziona una diversa app \"Caller ID\" tra le app predefinite nelle impostazioni di sistema App \"Caller ID\" predefinita diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8d9a8aa..a16bc12 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -123,7 +123,7 @@ Zadania Zablokowane połączenia Połączenia przychodzące - Yet Another Call Blocker + Tranquille Blokuje połączenia z numerów z negatywną oceną (na podstawie bazy danych tworzonej przez społeczność) Wyświetla powiadomienia dla nieznanych połączeń (ani w kontaktach, ani w bazie danych numerów) Wyświetla powiadomienia dla znanych połączeń (numery w kontaktach) @@ -184,7 +184,7 @@ Logo Ostatnie sprawdzenie aktualizacji: %s Wybierz inną aplikację jako „Aplikacja do obsługi telefonu” w ustawieniach systemowych „Aplikacje domyślne” - Wybierz „Yet Another Call Blocker” jako „Aplikacja do obsługi telefonu” w ustawieniach systemowych „Aplikacje domyślne” + Wybierz „Tranquille” jako „Aplikacja do obsługi telefonu” w ustawieniach systemowych „Aplikacje domyślne” Wybierz inną aplikację jako „Aplikacja do identyfikacji rozmówcy i spamu” w ustawieniach systemowych „Aplikacje domyślne” O aplikacji O aplikacji diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 90af102..f426949 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -22,7 +22,7 @@ Não solicitada Operação de fundo em curso… Informação de bloqueio - Yet Another Call Blocker + Tranquille Redefinir atualizações Padrão numérico Call center @@ -156,7 +156,7 @@ Conceder permissão de \"Telefone\" para ver as chamadas recentes Configurações Selecione um aplicativo diferente como \"aplicativo de Telefone\" em \"aplicativos Padrão\" nas configurações do sistema - Selecione \"Yet Another Call Blocker\" como o \"aplicativo de Telefone\" em \"aplicativos Padrão\" nas configurações do sistema + Selecione \"Tranquille\" como o \"aplicativo de Telefone\" em \"aplicativos Padrão\" nas configurações do sistema \"Aplicativo de Telefone\" padrão Selecione um aplicativo diferente como o \"aplicativo Identificador de Chamadas\" em \"aplicativos padrão\" nas configurações do sistema usando contatos diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 95ac805..a72cd18 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -155,7 +155,7 @@ Conceder permissão de \"Telefone\" para ver as chamadas recentes Abrir Configurações Selecione uma aplicação diferente como \"Aplicação de Telefone\" em \"Aplicações predeterminadas\" nas configurações do sistema - Selecione \"Yet Another Call Blocker\" como \"Aplicação de Telefone\" em \"Aplicações predeterminadas\" nas configurações do sistema + Selecione \"Tranquille\" como \"Aplicação de Telefone\" em \"Aplicações predeterminadas\" nas configurações do sistema «Aplicação de telefone» predeterminada O bloqueio avançado de chamadas não funcionará devido à aplicação não estar definida como o \"Aplicação Identificadora de Chamadas\" Selecione uma aplicação diferente como \"Aplicação Identificadora de Chamadas\" em \"Aplicações predeterminadas\" nas configurações do sistema @@ -209,5 +209,5 @@ Serviços Chamadas bloqueadas Chamadas recebidas - Yet Another Call Blocker + Tranquille \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a34979d..a70c665 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,6 +1,6 @@ - Yet Another Call Blocker + Tranquille Входящие вызовы С нейтральной оценкой Неизвестные (без оценки) @@ -66,7 +66,7 @@ \"Приложение для АОН\" по умолчанию Выберите другое \"приложение для АОН и защиты от спама\" в \"Приложениях по умолчанию\" в настройках системы \"Приложение для звонков\" по умолчанию - Выберите \"Yet Another Call Blocker\" в качестве \"приложения для звонков\" в \"Приложениях по умолчанию\" в настройках системы + Выберите \"Tranquille\" в качестве \"приложения для звонков\" в \"Приложениях по умолчанию\" в настройках системы Выберите другое \"приложение для звонков\" в \"Приложениях по умолчанию\" в настройках системы Открыть Настройки Скачать основную базу номеров diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 37cf2c4..f4d6f62 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -52,7 +52,7 @@ Dovolite »Telefon« za ogled nedavnih klicev Odpri Nastavitve Izberite drugo aplikacijo kot »Telefonska aplikacija« v razdelku »Privzete aplikacije« v sistemskih nastavitvah - V razdelku »Privzete aplikacije« v sistemskih nastavitvah v razdelku »Privzete aplikacije« izberite »Yet Another Call Blocker« + V razdelku »Privzete aplikacije« v sistemskih nastavitvah v razdelku »Privzete aplikacije« izberite »Tranquille« Privzeta \"Telefonska aplikacija\" V razdelku \"Privzete aplikacije\" v sistemskih nastavitvah izberite \"drugo aplikacijo za ID klicatelja\" Privzeta \"aplikacija za identifikacijo klicatelja\" diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 359e4ba..b92c3c9 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -165,7 +165,7 @@ Hizmetler Engellenen aramalar Gelen aramalar - Yet Another Call Blocker + Tranquille %dsn %1$ddk %2$dsn %1$dsa %2$ddk %3$dsn @@ -192,7 +192,7 @@ Hakkında Ayarları Aç Sistem ayarlarındaki \"Öntanımlı uygulamalar\" bölümünde \"Telefon uygulaması\" olarak farklı bir uygulama seçin - Sistem ayarlarındaki \"Öntanımlı uygulamalar\" bölümünde \"Telefon uygulaması\" olarak \"Yet Another Call Blocker\" seçin + Sistem ayarlarındaki \"Öntanımlı uygulamalar\" bölümünde \"Telefon uygulaması\" olarak \"Tranquille\" seçin Öntanımlı \"Telefon uygulaması\" Sistem ayarlarındaki \"Öntanımlı uygulamalar\" bölümünde \"Arayan kimliği uygulaması\" olarak farklı bir uygulama seçin Öntanımlı \"Arayan kimliği uygulaması\" diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9cd3673..8fc2e38 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1,6 +1,6 @@ - Yet Another Call Blocker + Tranquille Вхідні дзвінки З нейтральної оцінкою Невідомі (без оцінки) @@ -158,7 +158,7 @@ Сповіщати про заблоковані виклики Відкрити Налаштування системи Додаток \"Телефон\" за замовчуванням - Оберіть \"Yet Another Call Blocker\" як \"Телефон\" у розділі \"Додатки за замовченням \" системних налуштувань + Оберіть \"Tranquille\" як \"Телефон\" у розділі \"Додатки за замовченням \" системних налуштувань Вибрати все Ви можете випадково пропустити виклик, якщо виклики будуть заблоковані без сповіщень Вимкнути всеодно diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index b1d663b..335bda4 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -157,7 +157,7 @@ Cấp quyền \"Điện thoại\" để xem các cuộc gọi gần đây Mở Cài đặt Chọn một ứng dụng khác làm \"Ứng dụng điện thoại\" trong \"Ứng dụng mặc định\" trong cài đặt hệ thống - Chọn \"Yet Another Call Blocker\" làm \"Ứng dụng điện thoại\" trong \"Ứng dụng mặc định\" trong cài đặt hệ thống + Chọn \"Tranquille\" làm \"Ứng dụng điện thoại\" trong \"Ứng dụng mặc định\" trong cài đặt hệ thống \"Ứng dụng điện thoại\" mặc định Chọn một ứng dụng khác làm \"Ứng dụng ID người gọi\" trong \"Ứng dụng mặc định\" trong cài đặt hệ thống \"Ứng dụng ID người gọi\" mặc định @@ -184,7 +184,7 @@ Không mong muốn Phiền nhiễu Người đòi nợ - Yet Another Call Blocker + Tranquille SMS Lừa đảo Chính trị diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 937284d..5e5174f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - Yet Another Call Blocker + Tranquille Incoming calls Blocked calls @@ -62,7 +62,7 @@ Default \"Caller ID app\" Select a different app as the \"Caller ID app\" in \"Default apps\" in system settings Default \"Phone app\" - Select \"Yet Another Call Blocker\" as the \"Phone app\" in \"Default apps\" in system settings + Select \"Tranquille\" as the \"Phone app\" in \"Default apps\" in system settings Select a different app as the \"Phone app\" in \"Default apps\" in system settings Open Settings diff --git a/app/src/main/res/xml/advanced_preferences.xml b/app/src/main/res/xml/advanced_preferences.xml index 1fd903a..a21ae60 100644 --- a/app/src/main/res/xml/advanced_preferences.xml +++ b/app/src/main/res/xml/advanced_preferences.xml @@ -13,7 +13,7 @@ app:persistent="false" app:title="@string/open_db_management_activity"> diff --git a/app/src/main/res/xml/db_filtering_preferences.xml b/app/src/main/res/xml/db_filtering_preferences.xml index 8628a76..6125a4a 100644 --- a/app/src/main/res/xml/db_filtering_preferences.xml +++ b/app/src/main/res/xml/db_filtering_preferences.xml @@ -31,7 +31,7 @@ app:summary="@string/db_filtering_keep_short_numbers_summary" app:title="@string/db_filtering_keep_short_numbers" /> - - 本应用程序不发送任何可识别的用户信息(除了加载详细评论时,将发送被评论的手机号码) -Yet Another Call Blocker仍在开发中。我们欢迎您的帮助。 +Tranquille仍在开发中。我们欢迎您的帮助。 ''NonFreeNet:''第三方服务不是开源的。 diff --git a/fastlane/metadata/android/zh-CN/short_description.txt b/fastlane/metadata/android/zh-CN/short_description.txt index 45d708c..e69de29 100644 --- a/fastlane/metadata/android/zh-CN/short_description.txt +++ b/fastlane/metadata/android/zh-CN/short_description.txt @@ -1 +0,0 @@ -不费吹灰之力即可拦截不需要的来电 diff --git a/fastlane/metadata/android/zh-CN/title.txt b/fastlane/metadata/android/zh-CN/title.txt index bea2d7a..e69de29 100644 --- a/fastlane/metadata/android/zh-CN/title.txt +++ b/fastlane/metadata/android/zh-CN/title.txt @@ -1 +0,0 @@ -又一个电话拦截器 diff --git a/other/ic_launcher-playstore.png b/other/ic_launcher-playstore.png index 3303a75855522f38e1a20626c2cee9617a9beff4..8653afe354838248d2abc979d16c5b4f0c1356f3 100644 GIT binary patch literal 32661 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 G=o6 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 literal 16764 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 z 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 diff --git a/other/main_icon.svg b/other/main_icon.svg index 8fa1606..4750076 100644 --- a/other/main_icon.svg +++ b/other/main_icon.svg @@ -1,75 +1,19 @@ - -image/svg+xml - - - - - + + + image/svg+xml + + + + + + + + Layer 1 + + + + + + + + \ No newline at end of file diff --git a/other/main_icon_inverse.svg b/other/main_icon_inverse.svg index 28e9dc1..f072c82 100644 --- a/other/main_icon_inverse.svg +++ b/other/main_icon_inverse.svg @@ -1,75 +1,19 @@ - -image/svg+xml - - - - - + + + image/svg+xml + + + + + + + + Layer 1 + + + + + + + + \ No newline at end of file diff --git a/other/playstore-banner.png b/other/playstore-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..000ecde5c4beb25d1b3fd1004a237e6ae889b582 GIT binary patch literal 40111 zcmeFZ^;?u{7dCtk;1Gf!h?Kxcqaa8M5`#)fE8X2C5(2^u27+{VNFymo#~>x$-6GxH z%)B@I+3x)u@B94)-|_s!9LL=ETL zQ1DMWi@|*WfB~}4Bvjw%ZzSO--jN)~q>SHBfVWBDF_Fk19cPcd+H?Kz*!=vk_Bz;i z?!nSl=#_<3MM!oe;gZ)>Nl31xInjqDkl>NPKHxlg09zQF-gt=dFt2d)^f-@?OO6w( zzr1PWR-Knuf9Sk@;jMP4YClSwAKkE3O75(c`B>!`?|G?7!u;{-r_7$@7UlR>-8rk% zB1$*UjG}GX%YJQNMRN3Z)cPwjlqc~She*?pe)aY;FVTgc#SN9mBBL_I?TEfI2|~M+ z^|B<|&J4R#+^m}Yl8yIOd%qe5nPvxR?-V6M{skUoH!wkP*~Yp@;tOA2`)xYxA{edK z>HrIRs$I%@loU#W3BOKSDDY$Bwn@wAW5pZX$|d*Eb%7Zn;)#s=v)vk+b1y66HAEcFs_n$v69R8}x=V4$e7gq`; z!C;4I$oNJDUwHas&{p_MAD9DX!re=gqkE$6r@gsg$No31ffEFPw39ukeKrI1#UHG97^4!>cY_MaU#`vOq7ZS}j)Y!JPDaqnKnX9_^p z<#7wnAUf{I0U_G#IDy*VH0vJkUj!T!FxlS=PC^%uwexrX;O0dGRmvvtN&X()UEU=_6!30;wAQ+Y}5y*$)?cr|ocJ&$jV!ub%%k zKg&}*;}Mq$)NcH{#GR`pzEI>m^=TNRJ&I8qiQ}m9mGXn3Z(`VQVkQW?v3HIF5#+9T zbN@wybLc^%IQzETBY;(Xgh;v!4$D&WO_((oSr?zD-%VlIot=!V?MieNtODMwKmC(w z`UsOX06DL59nbZ#syAoHl5T|iW-Zw=N?b6aU$UXgWVccKi5&6AB?kx27UxvihyTE5 zYA_Bru!fhSLrh|LhBERwk-o@Qy|5`IXa_9BL})CjX%T?jW@r$ zdP(yluWH!79P8~M6ZXcIeq6UjqWZt`QG#IQC&8+G?cq8mBs%)0N!K2Run;4CCEo*d znR`62GrWwsH?2ooyZ2w|_S!Q5J5_P6%I=|$3-MXFEKnJLYSu~!TqzxUe%5-vvv=wp zq@k1kAIlgD11*F0*Xwl%);g_6IA1wo_ifUv$Dhs{6x6L!0^=S(`?den3XG)zY?!NF zcsGGr4*&;+;blRWRe=w^MGad2d1(GA_>h=a*lN6K$A2DTLq7y~EFvIL9ROb=`fIPh=jpML$D;rEW{&ukl^jF(xp7|D0aq5~hrxoF13T59 zKzvd5#4>pF%BDA={%r4wI~uherJ9RPoWPM6Lbc@4Jui9Rv}2lA?p{d5UBGAJN+3>$ zttAOq*rCdx z?EX@C$8S?ScxpLlNYL9Dd{Fg0Lz^hdrp0IYi&;SKZO;3CL~1p>DUwj7XDQM z1*zEag#4u-Hn1B4s*J)PaS6drrSPA1o_d7ZrjOr??nruK*g+)IB8Mm%JVZ6xappB{;CmN7r<#Gcg81Q{m z_Q@zQH{h{r2&gXh;(dGqBgdh8yJ|}H@au3XXT>z1!UN1!6LT3kb}Ex@BB9R^xG5Pg z3f6QVf5E?hq3Gl%K-usf5*mn-8zRLjV@Z99;i_3OoSp1R{3a7DHWwZK)fb{n`asba zzJ_lIWYh;l^fx@C`H%SG$`>YpA;9#z=w{gm_$A(n0;a-Rt%nByt>%#3%@=+Le5LuD z29IWTGxguEM4t4I4G{1w-|K;EGy9VK)4sv?(1Y|gDD|)!{ zUYk7s2;h8u0^bMTVpz{9$}z9$76Z{XRFr_)>OF#waAR;&Oy%nXYP-*<{8`;T zbjLj!cy_te3i!pdElQ-Kaas#_brr=OG{%i5`L9Q5?HScfxh=21SZhNKlV151J3kVh zc!l1%f;_r0&41ejietBk!U%YV3I7TBC9^X>f!Tq(9~ephj*As_6Lh0MdJXAku$zAy zCYKI)2G0&koNs{!L|Yh1;KK(#B=gc?;5MGBB4{&CzL6vlpRvD>48^b;0wMVkFp!By zh+K2bRK?5i2Vo%IBcdFh>IBA|DBg?@czDede|r~s0D=&SryofP4ExCBlE?^wh!E+< z-TfZ!4@&hMr*(DsE{P84Tl7^Y^aJ5BHyNDKrDnQt1o8(hyW z+9e_5eI!Gg9Ep!$2W zoe*iQoGFi&5daEVeHJkSPknJEB|U=UhOSgHVMKeT+!y~1GnzL@cuLwJqaP#rk!c#}FK9s+6ey7q~WtCXLU2dscPdoE*v_^iZ zcv+*9ox>3pV1nV0w=x1jBm_({4bOQ`L#$}0t)OSlx zv!o6j#$hz_9kNfKIyP|VM#iib9f161Ev&`dwIMuYzr^@sJXYWZMZa9?$>=!Qph2ZV zb#-mlTb!S`7KALy4%laH^@)rFd7p5@ID)1|-`7k7c@Zvr2YWATGd zsQh|isxJth54s_ueI7B?mS|h)ttb$e7_s}?iO0S>F<(rWRlz(SA@phOGDNJS^W8^x zcN_JPIOfn8s-nX-(*4K1S|{@7^l;HOSdQtMH}mL`T5i!GH_+iueNmKK0a5;3TzNo& z+u{AmcJ97;SsAfX9P@JG8ztFd)mv|O^CsJ(CkxaDTzVo5Jhr?}$BF4e?Ky6uEsaMpvfePsfyZ^wWvdwYV#AQ)3B$6*8HM;j> zyy3EbZH&cKl=g9+y@=|Om}9tw`((j>XShji$REu?VZJaI7Nf*b5`ifyabhKYqgb9Ei4kGM28{++G_V5LfzQdFE8{cf+ z+g7-|&o_teACy|tPERv%)sAsu+>3Q)-jrsCK2FW+B#pH{#roWmZBeJWKO2xmV1xGT zq-CSThMi@nM?d*laAfr1V{oXxXXmeyt&FfQK%_B{V~8Hf^z2+v`1#@9;|*CQQ2}Z6 ztRUv)ZXognArkhBqI~OK@pkoLREdSk$+YzOo`oPSHNHc^ayQCbzwmN*sFCv_;L(oT zA~8Y;@M{K(yVR6)u~cXVuZ`b07jdG)nU?`$UvORc58;+Z&}q*ZANp8EI!fvpT}sR+^_YDUcvVZ+u~ ze;DwsPIuhAo;k$R2K1@S&|q9uWesMUr~zSylQxnAL&pkJmdr~Uo6)!dn?(;wz zDS=FCCZoxh?Jo!_JXbgZwlSudHg}!N%Q-n#&)}_S;m`VVCV^ByOF!u%xNBafjnX+0 zrIbyFlvfB-UayV<+);^CeGvB6B$Ll?-^{52IoR=#`urRQ1&LOwu+lTmkHI?E-w`7FO?;z8 zl0*X`J2f@p8ctP<2k=Z5qya{gF$@$r^ZRd|>}d+wk|t|^L>^~{akePS8v!D0LqI_& zOTX{6_F8y?H5bIsDa&6&d6h778}WNKOoTpDBqH&;&!a0!{FF->H#ZLymx~nBt#I0S zc6q2UUvF2=Eql==-jpX&C;n9$9&=3|QKggYo~5(Y)7|-a`@ru3Eu}N}CW=BfND9q~ z?gISo4d8b8mqJqKh1l>@Xu@FFsdsjZ437B6XUEFaIo)w|CSSD$3q}pQOFXfXv3aQ# z*r+ZQvAtQdcxa^LCaM&pb+JaA!XBq1Dd?gb2nnUdhPNR26&`w8uI|6uxLcvl*U8%P zD4PRs=rahR1v0Pc4X|9UAoOw`)e^YjP-E5;cp%uJZSy%$!2hyCVP0d~aWoDi*Tv&Q zEZ)@_$*#B8RXRN|GNN(68KKvV%KG%iUk_kF@Xgx-k&~L@*zoL2dap)xAIWu!^PlvI zoFNyU(d&3ApC_=1lQ?R&O6_x|a3r!mXncHk_H$j>bL4H(3p;V=jJFpbetjAJrBQur zZYEm^&+dg~8h`hJ_+oOLMa@PZtY$MY zf`7D4jX%twZvNsu@t(QO5Bs1Hh+!p=CuEcLS#r&h4TwO6O0qO?`_lojc-!VP< zQn6txPNZ{IQs-P=b~*+sUl-}Bw&|bKu@kP*voeySkEc&Pa&Wwj$YAO`*I^sfwwr^U z_4|%F{KLYHo--|;=jPRJPCtM)Ur6fXk8k(7m<()p_Fi4JZ z-{0Ho=oH=CY0@j{v*p$7yY$0AHkg;Muha~^|H6zuw-Iq!1O~+iDWx(k_naXWyUgrEtATnPJpPTQ~YV#?y{K8eJgP4ETw~zsE7x zB}6`#9&;W#p?`^*$5%!*qs3iBsp=AP>Ee} z4^_qT84=b=`(apuU1Wrsuk5|-Q;ogQ?%00L-Z&9RQM}zX{#U7650uN1V0u*DD7F^@ zQI>T+GoU%h6u1F}XELbZ;}l$Sxdqin*oTIqhaR9ftv-n5AP&$`1T>tCZMA*l*QDtk z*@EJkuQ%c9k3}6=N^m&sD z#6k#9WcN*s2!9zEmeZx9y=@l>ic_97idUq*qB*VTX#)Jv53iri>jrDGWk!29GCU8< zF_>aipj*@`YdWs2inR7jreRuoo@51DK<4MCC@JW4UZf`8y*$+$5=msub*hRIhg=^e z3)bnFUUcSqCW59=hEeI}>-Q#%zeW;eM0Jbz?F}D~D>C6m?1;hg`AQ8?kzk(63n27H zQ5bz99&g=kJ`4xbVcya2!I@;P1>8Pe2yyHt4!;t7+vkK!?PC3u66lwX_RuSt8_Hje|9TO&=973BxQX>?J? zopv`5d8saGQb_NT5P_PreDvb^N1U(bK!)apjWKFidfAkwv>p?|@@=;A+v-$fQDfid z4X0^|xh<4S$Ln5~cH>e{xJFEYB`Lb9@YJml%!oMdoL~Q33Q_*58Jw)>&Md_qeR0OR zcKP%D2NTV^yUcfwi#$~);2m$BtkfVaEg*Sl@+qbnktDryCZG$c~Juj2R50D-5 ztH#~sl1`PP8tiy<&*Z-48G_&Z<~8Od4*roe1hxtT&Q~QcOFIj!dWwe?Mgy?l!UPf3 zfvF1BFGOE`o&TltZ9w`GPvpokX3G8ixz_i#1-!l_>$c;<{y7rC4e{NG1`TkI|zI;TFHOvAMbi2k#`p@tTD7>Q?_4$H`b;vM^h@G)re| z1TC`2)kW0^+Z3 zxy)eYy-vH`U-tGvTA^nso8llLGSz#43K)Kr#&`NvMZDt!ybMhIRTH=uKQWN_LqbV+ zX9sLuB{g+SD`-6{_H^vjvd%scq{Su6%-j$B^`mFI^95c zhNXAq^R2HaWe4*Qvr{VaZ2wBz9_=^g&-*}j!k(2arqw0oKHPEJ2ZBB{~2K=8^& z(FfiQBIXbwzu+FD^0zA)P+M;z`Vp8!+ZxIDftp0WQWmn!PfKdM-WKSfPbP0@RW>Z( zQQk@q9wFkvvqkOHjI?O7#k(u-l|>u<(ssBi=gWn*K*6ze4PzDj~t ztZm9(!GuLl1>jR)s*?>y54Y=ID&CmMmXHdDpTyh}c_^;+8tcNM<@*6vbXoV{*frRmWkF`2e*`4e=8Ws)hZsKvaVEhW(-M&LDVOYz;g*^LCoS3w zT%DoUjDZh0Emr=ZwT7;2$tf*%3IL=J(9#KuxhZ3%60YOHn->FQ-CLYmk5E5Ne{4r1 zroO!pJ82MLgkdvct~E7%e?1`w){9&cM_;Tow*Yt(KObAS9_?`h=IuhPGh{;ZIg-wt zDFHd_Aft1C6Qv4+!euKT34H-UgmmJSRi3LB6#k?I6?{^07n>qAC#(x8uR_* zYeP@8y*%=KON+fThMf2)+ht)kz7Gi@p`>O`QI`8chKrqgYqyAMouU>cZ{B^OJcDq{ zU7}-9R7dwp4!QgU@F;kPg|GjmUqMB1?fD@ZszSN;tF(&{1!g{OcyYML`dw2!%0e2|%*V}uH_nt0@3&<#rAB{K42 zWoQ!Uv%^5>yTn3Z^mrF1=#_{>Dkkh20ld*`e~z0L8>ZW(x(<>p>#)qJf4z|z zJZN$Z*=TorOo(-8I}PlD_s*K6!srFCzkJwss8P|mp*3BngBzXry@>R8YLRdc;YTl2 zdDhnXkp}*#F^F5IAZ`uc?v!xe@;bwr<-o{^*~VaM*4V2STPfau-n$g(;NPJHepNGA z-_-jHOHF`-R>CJDQ>9H>By68R79=!O$>N0dg$VhoG%%6Ang6BezA~G%*Sg+{$K8sglWfN#i`<;;d;}tk7!L>!YgPb`!exrMLtNs? zII5$zO76aIAjC0?wJDDGc6&eW)Qg8E7LY$00UZF&NmK$x7OcCWh9IHE->T(P6ODv~ za_<%yWBRbEO?#7QOb=BUh*}BfkVtx;keG$VxZEVC*;$Q_v{P??tg^_3zzZEauv{pH z{?GbTM@3w1U=Ci1HB^Sqrgw`G!OR{rKoVWB8yvDE%cRWG|HdZ}6}CWmY&O9v$BbtWQD<=%RGRaQBPuuX?p~MIg5(e=Y z2&<45n8d<1bmW7AQS_EH)u8t8oUAQ_vjFVH2x;4mQyG2ten#@;13ZtJ(>qvNVCg@! zML)zSL6iuI^BK|Nxn&hpvUyv`3MAe}-)hc`G18d*-j`b}PVXLlB!4M!dK>Nj(`GNJND2RCX5aENyS<^kD!=M2 zkYcc4!~CXShIEI$46fpJzVnI!2SySMTID0fL^U(4!oR>Ft$HV4YWyvk2~fO+>IjRN znRjtR2J{L-8=Tf9WXi9q&x-lr)+@_k&%bR*=1{+DD-ukzeMw4$v~#255}fkRU`?}L zfZ&n7GwQycH&7NB$226`5v$&+(s~FI*{G2(Tb>LWHtn)5Gp%6#cLB`!WfToEtFzt{ zB5?u`n>pKF=_&%_p@*2<8x!{g?fcW{PG>OMQ1~90baEyNTyhNz5386tjo+ighBI}5 z0eJrS7klYKBH1=Rt*Ht@W@-Y|f9AzA=f3Cw6)x{R%v!s_L%=HygQ#e zJ0+!L@a|0C4g1kis1BpvlF7CBc)^OP6XQM` zpWeHn!l0+-t`C?BX{6~AX%9g^ z?~}(fQ~6qa=z--N^9igoMdl0H54VBzK;`rgH0(ZgpEHVBEU~$9#F?$CsKpE1ngQb@ z2cr~7DIEuBv>v8y6DQr|ao8I8{M!c$7J3U5M0Pbda?{!%WCYRUv%Ckld!)YYZXc5i!|Wi)OzV3Y_$vB;{J|#3?3*juBqV z2gx?*-lI}`y-KjCwo#*zE*~Eov9uJ4YapK>=;nG1CvCXphiK^n9sWJ%btpVEcF?5} zgcuFUxYZ^<#AaQ77tmJ@ZBbWcER|qf(T;f``Cb2a#g?9Uku%kMY6?X4F{QyTZN=$Q zOW=b$IxVs6OKbNrq6C51@;Tj)ZdZ#DxjkMIx-xqZiRWVpV$rkCh=C5K;+gC~NFNVK zo30w}>UjpaCmO%!rUnzfS_95*0U|pYZF-p1uxrzdqb>PMY}HOl*co%^Bvv+4R9$7cowlWXS*;NPN3A(3XTI70KB!M zaB*T%t3`Q=2brWQtQ7mz6$WYCby8q@4T5?!|7QxO$_q~f(_uvx9^>Qj;0$Ej~Pmg9oYgbJkW15#_rI(R?RvekA$`AHqnhx<;O zA=%M;1Pi)&OyQuvGt_W;MU~S4QFtfM3pXh=$U$f?g?_aIY9AXcd|ux-hr;#uMo4%4 zh=9d!6ZeFKme;#^;y(EDBUT8Y4If)30T!)`yoYMsK(#Cur5U#w$VC`$4da{~Q5}Cu z#!tmMM)ZucJK~Ja7-TBa7WpdgeNKV>()>y?e2(L9*@?sUu|_{VeObI_RXMJ9HC8#~ zsgMgX?^oTPy_=lJygzN1;;LrGQ(vsp4TV_o1C1Qn%H?N-$$wQuyo`(=eAVLo@-99C zrYsHGrOSuj0$e;zD4ZFqKHMh#7DjtSD4VbShE9SVK$ADvi9+4yI*!k%)JwunKUL`k z*tj3IY?o@hzk_Kpr{c*Fw)>*$hUI`7=hS%X@bP=W3hk0o^~tEfRhqJ?^$=*xm#tX& znv-zWc4st9gq+HAQ(V?{)~zo514_*`H@#I>5Qsc4Lhr=EzvZQ8W4xS$FVLgCr_|iq zGrIe4nMU zH6hvHd6#6><7WpBp3gtPok8-HW+E#~PNIyRn%g4KJLP7*KS$FddttNL^C(xvb-Z38 zeyXCp0I9m2857r!SvI)6x>{Hd;kMP(_jX+*(Q4^}&gIbh2 zaRVkk?}X6ts~JF}+D>1^LI#`3#f9w zM_0uxn;q5EX<^PK)ybUz%^IAG3s%mOvlVFjFUZgaej@s9jPAZk0wmNC>|iP<^|i-C zNX$Dcon&=v0*dMu9d~ICIVA(LS^(v&VNx^Uq;nt7*+?b2Z{I9NqZ+5QWX8-07n_56 z@J{%)3lxjTNa)S8%{{4vugn7p&N znYn=z%7P8|`5>FGLEvd~?CW(y*Py5FP0?3MKs%@K7itdoJTmI|N8XES-MJwya9>i( zf{not<>$|CrRXT8^%T3AtfPuE9&rVMramy1hi^OBtTYh~JX%iyscG7JX^M4ZuXl-r zw)WRSD)CAIu0j1gg&TlcSd8uv0~xD;%+seX6HjyBSvm+mlV9puNJhp#8pzYF zKwp1}+v5X|2b0~5TtTv_+e+9lpLv6tUvo-)Z4|+lk$2U20PmxkT6r)1j2fscFbq`g z)ZQL9B_l*?iy6N}&)jvp`1VxYV>4c(5Lpy)!extn!UNXCX`c#f*Nsdxi3W&*t+@1h zGZpuHj&;GT^d3J2OFeFpzf^HMbFb+*swt!u9*>#P$UdKS@4WBS8N_wtt8a8}CvXv5 ztb2L3eCZa`0oE6(uK7Npvi94k?yXK<6bcG{?vS5$xx;09+vC1?T}nJ_i1;HNZ+Vnc1HNS&k=W(S+8IktJf|7zmobY1)C_TbF&F03*m>t zqsn_~j-qQtE+QWS)z+mra~r(crZsjnU&{;b_BI(}VQSN#Zq;{F0{8V+n3OMU?sEfv z2iBy0Wiz;R!c~TT^6?^HSJdx`@XMWC@!C&WwQ75G^TYXW1D)zdt|t!@I;9eV!gk4g zJ3~i&HXVc~Y8L8*$qh75+ucis+udZ^BkvXQZ@bwY4emc6H4Bw7EV=P0m^qKj6E5-a3XJ;h5>{BCH*& z41z@Hh)kv)NlqeMln~irqkvBW4#0uKUD&X=%jjxtiodE96G91gi4m`Rb3k}p_UuLv zU^?V1EbPpID-!i~HK1E9p+B@58JsF1s6YMSCA|Q&p+S9Ov1oGiEYjwVYVi`HPXNgQ z@q_WOVPUN@g4svCSf(Ti68;t>LCqBoJZh!h*syE!29NEh%U!bTFHftxn^kHdw``^ag(o8N zdZ`p<#w>BploHH_)xHkOI&|HxI*703Fi@evHVk?wblR%LS<)jc1fsfX_DkAKeaAB% zE$$-eJyA3JQ3~EGY>z1Z#X=&(1SSv9Txp_w0UT0r_6hcdHm2PAF%gm}0Fme5?JilG zZ%?YC@sztaiEFRPX1`?ReeF#@FE>8nZw(5E#wq4qTBY>)DV!=}7^a+ep>_0axT?iXVWJH+q962)Lf;4<&N=_d6ArTiwHrQSGDLwz zB6C&sXFAsZyk;*548YK8Dh5Y&=2{ic8J7aYNl)8@+}&Th>U&h@IRH6x7acM2W+`ZL z9zqbi?}W(jeh5kL-D}+?KQa>e_@2!|Iwzlbqd~m$4vhLX9%UB-Y5Qb8ra&;T+(=nx7MxlY^r(z_+W>(o|P)OV&T*AD{lke$3h$ zsPLbkWWP+9zUMu{u29lcPBdV;2YKdYXn4!Y8IBoHSgNR|NgQqQ+<`h+IJ}nzqZJ zT}AytD^~vY!pGFusRS>V$osq9mKN(j?GKEPQ`}M$0Gt;vtT7dBIVwbI?KYtUeGl@q zisaYB^AO*kOiX&v`||mLX=KS0p8!}WKB&C76?1BQ2ww9)laVWezzYU+nYcLOP5Rrl zR4FT~LdETwa~XZ~n;0UJ;nIJ z-aO3xl}ylG<@?|QWenY3SEHh_KACo-=#ME2?{4B)KS{l!2VI=UegiXMDk&sKr#Wdh zqFI-dMzpSu>37^?9|B*$o1>!yB_GrjN>9j(AsbZ|sQ_)X@48@HMUP-7;5)*^!Q&Z$ zxU73>k9qpZ*>$Yk{UGhvO^i<|^sRB_cboHfMMd5%a>k$UE08vH`SKBcLUMt_iC8$` z3@Uu{stO#;@3wcBd)07~6j*l0zlFIMeLPksp?LNp;`_u4nrBovwB~D=+}X{r%uZ_y zfRMKlGa#pJx?N`E;WHxQojESt741$n2#^CrPyjb*Oe+VFl18F*Z;V(e&Vk%qC z5d>ZQA4)Vn2*~7|j6Rq!N`MLtFF+^-@;zu>7Y{}EHk`xkrwNLoynt`)IN|KcEEtI+ zpjP>fThL*~sKjvoAHTat%i76^^Y6&)tf*gp@JHBTLE%pGq47^rqpyroHo;Q@z|sQ8 zfOLw0`sWLQS$NJn!N1VOmHbrtKqBmx5OSWVoD z7?aiEcV0)WBPLh|Q+T1so(&oQt4e}S#sD4OGwHd8CYDaC<*j+GIeraA{?0UWDYvK3 z-vOW|jj+0aHpk_kxvP?Y@!yi9Vpqi;9%#c!*;fl-;MsOfu{2sZaNY zfh&oH-LQ-hnI#pbv@yvhji}e+BL<`o@i?^m7&S1CAG?yKIo%_OQ!z4?C!?-lV$WsI zM)l8F^oP3*gh=klN7-vQ1W@Ep0VKKIXf{8WTS5bg&ZQRPsy)(|FCY=2SZXU$#T z3iGK4deag*G)x)kIV}I|PX-2JG>)q_b)Lv7?AQ*7xQ8yN>+2OOkS(7bG3^p$Tp1SD z7wBXts_tKaaGwHc$&fxvVZ&`vnnk&v0_~yq>?|}nAINeZZ^ljU{SJr@Si)kvb2UJJ zix8P1#e4{cp}$lK;{;7;U?2kD;S-pPIPVter8T-^>S!{?yP!EEU)+HQ7gix%?iyvr z--Upq$vhP?w`URg<=Tg?JUO>xGNR89Op=@ixh6Bx_09*p6y&!{e+@nXud!$9>AYp^ z9CNBGweW(9fr*l}>I(?4~{6LANr-n?3SbT6i> zQ|~1oG29v2z}od4VG$@=21V-{zrC{qjwkaZ#4JeB4>wU~UQ4c@ z=#xO3oO(sR@w*1$2jaE6xZSI$ z&dbQb;-XPG=Er)P-L-hk#jqMDkF}{pz1rcMz0=x@*%S}c)4e@HV0z7Ads?9pWkM}` zqA{Gj_n`K*nf`;bvlm*Addsmv&jEoX>D}kaCx324KxnQ8#_!(785z|B;=KmC&Y48= zEJxr`EvQD(_3!56KRB-CEGYsWDaRC_FHSJkW?P;E;vR{m@;7aykY88TpbVd(zXN|0^+?a7qjP&=Hj`CY>qZZa$g zEDvnT6rYSPyrc*vz&>64` zqH7&+k&*sjB(45LLH_T(karL`N%K2o_EnNyDNc7TBiO~V}99O0jJV9KIkydE}@YiA~*GzBuA zUEF^MmS5YeEciRMZ5Ej{E_IPSc2fG@-X}}AG;0ym=pEWIQ5%kLEdfKb5X3d0ni{l4HwPWmp z7a0oCZ%utMNm81P;1rZTSORhVoe=$JWfEdghr27Ex<-vJv1`FJqU5AP_$a4Wpgmh` zoQ<=)Y<*2SYiZF}rzW#*dKO^IQP@WX$fq?1vGQI|brn^8oBe5PGgN%GPmJ59>Fg0R zINuEp!xyd0*I%VZfB8)+s5&5wc(Tcs2K%fzw0aZfFWc=vreF$z~ttehhLjFQ8qD%+3A{VhL|vh-6Dyj z3mZ2XjS77E|N1W>KGk3kCg-}V{TkC8IP4;Mk+&09nLJLgqr=HRPSDqLg#P5Qpu|D} zH@b}!_P$m(d;jFR_#`0`y8kQe6Mx5-PeZO*SV~X1d{VsK;%d*r?f&xCpsHnqp8#y; zU)vJ}dD>8f*zp$Y93L>igf0u~Hs8c36;U#zOAWg^>$%}nZmik6uiNonZ{Pq6!NB+A zr`?LctPo0zrLgk_SSv}kGr!)jo%BsrOc%5+?vL{ZCfh<_5yhAM_=>aq2Xfwnbd%)P zH<%%q{ji{~BZE>0pCLWB`ZY_RA=Q8OxN~t)==F2npLj5pdAb<)*R=mPbJ z*swAq`KCX3E`tX$mk-XW6M0oW_Sj<^5e(wr--Lj7d(eaZ2Lbid4C{rHFe0L|?f!GR zl`tLtyN1%mkkqr67WZ`D=*ta@Dtp# z$NopXB3J6A{sx<~y24|M=CZg`%y?76!eEMR`0WTg6y486Hy3tz42R}e%>)BD$?Z>o zyEzN;&O&dOLfmZanfkj-{JuC{P`4xL}PuuZ%h(*U-V9I&|R<> z&lqr(K>WwueSUyM!|$^ui6cMof(d;+RKe4AvP?zs#Ho~!MxB16`U27MUeu{`b9%st z6bniPj4c189ppIQm}YzWX(W5bs?Nr(f^v73g?M)K0odgzkWW7uJwezn(GCnxhmCAy z==}pLup@9O<5|h^oH-aa4D=q!Y2o#S1s!v}OTU|k2`^9sc-`v`Tj8uJJ#uam&d_BX zO6xs}JNu{R@Lyr8Orx`fT9Ro>#P_uyksO4Htc9#3I== zZr~86AYf#H%sDHtbJs7dG|cVts+rvA3AG2opG0lw1K0AwzT2kw>HClO7ouql2obO3 zdoLRObvjr0p;^k8YkRCF+AqIe^I0Q}tzD%Q+9__o6pVXl=Of~{oiJQyCI6gw-@cP4 zCDxg2*zX}|$&_x2(O*X#u15THF5Q=?I7^z24k`M1&6gIJM_t>)Lz<`nYpj(cBx`aX z$E58`%vtuY(>LqGVDsTPrhU)sR5j#6$E$@9>67C^poMy4Z_v+PI&-3||JFR2L*R+n z#x4ROl!h6)23opXy%_UG<~Pyp0fReiCO-=%3{aTUDcWxZ_sQSG`SCa0+MrH>51aF! z&Jt@qY;LTbEa}RQedUY=_*jxVXeF7-F^ydR0%cVuOeZFScKt=iu)3ZtYNhzVt zp`}Iv&qFcv!%Q8thg-$>io=m+K~}hdr&P#op;-FBBgKb-Mqj;G^PzrFFZ~XvR)!>E-s= z0(uureMvB49nXjaPd*$AAgw?G9j6fFUbU88z+cpDU5}ohB|CM=jR%Nclh9dmj4ejr914XmLXm2XIz?vmFujlr#|ib+BW&T;%zW z!Go=KgODp<#m|XmgweL>>qN7W0f!2`bUuL*6h>VCp3@@Nes>Q1VspNO zG6^!OWY_q1{Nh)e3dks0_qZd~>{^?V9zo*v_L0YBZIv!G84|~w@@=~la!F2y%$=Fj z3y`*VV7t&5ctZmSdyQ^V@?@w;g;24iOA+&b)4ynZbC`K;Z!my#d_Y(WjT z!`-)+7d1xR+9yjrGk#8l7s8&Lo8wec0uxH{opUQD&H)W9R`!MZv3V!p4EK$y^XMB| zXJPH}MTg&>IsHO;A}sB1QVHivs6TXX^!>hM8bGUK`nw?BbgEg3N{oTd{rbe@p3|U` zMq7YV0Z7X!%)yz}>bXTNLL|E9fkvBf%ja1RBzQJ?$Ia^53r|xaueWe- z3lJg~4)609(t;*6@oh=*E)nuOSbs@f$MgziOR^MF6j`nJDy@gnfUrs26^Mj@T?Rn2 zlUnTf^!B)g0b|K0X$R|rSpL12^!n_Gx^H^X5BmA{>j=iXffWOUJ#}A-nS_#{II#{h z>u*+p_O@XfQ=*9G;+C!k%4+NP>sAgbI(o3c%mX~gaUGG}1doE1SbHoTa zxW?I0(h^HO2e~&Xwqa^fCwWO;0_TpmbN7$SYo}(%#QV%bR*2Y+#pv&@FJ>pej%E(+ zdd}9ZrDXsh%_DG+1B-@K)SHzi`;Ea zp6B0TiXaveWhqP~bJ5Xnc0pCMieAL2Gp&v}yj9f3$d~m<(2q7u``Kr?ON<)Lebko2)hD(nfyzUla zmKEsE+;h*9`{ zgC;gUNGuCorJ;AKHmOu@S&k5TVQ zt6u!eJJRI(C9IC_En+yt=*e^Tn~}tkGy$fU(O&>9%L| z<`lj6)I?K2dGruYf}Hr)O3{7i@SzlY6)xny)TR zgv?5_1DXm0=wRx$bSv9-W+w|;gM(1HT5wt;@8xWybCKAzXAz4K`s8E*QarlvpF6!b zDel_t6anMThZw%PV0pxYv*i5U;Mwwa)V6g@Pn5tKI|XLqg*iZY;FkMj1pQVWoU;8=Hb_U-WlLEa z-MYB4u@bEzzbBy(Sw4oBSp3O*ReZ0K)ATZ^ODv5}I+pW>+^-`P#pc}vTcObD%cd4P zrxx&bXYP!;+UD_Lf{T%ZcC1ZedM{=l9CY}IiBXzX6d1ESl<=o7d&}=dSBp{5V0ATIefCsxP3z4yc`&wx?g7Kd2zZabu+8?a)Pw^MW^^tMuFMpp;V<*gS?&BMeJzkC^bQyza?!jBu#TvLM|NFpW3}NUagJ9r&;{?9Ps+; z@~OS3?eyT?TRDuzEO#k`{P}uChI@YS)E;W|G9DC7J$|;~NEYptPUK?cMDu%&pXr}(tbh&k+k4uz}KNt<{rd?r{9i74z*Oh`p=mpujR9_OdQJL=L7 zy(5kL%Uu--# zcK=lB&KxEG<&d*6Xf9=*mCVLhwfi1OWo_wupSq}y>18F_*Uj^&9Mm z7kohC3r!|GlWXe(hTI{9>k~bc-+IpYV}Ym={g$!&QHTM;tG%}#y2;X?1Z{5P9UnvP zlw6p_%lzG9!c3gv!;1riU+zgF?Yh`RGoLoz{_pc{4^daZ?cwk?GVuWip0l*OccwL- zefP`I!N^8S4_Zy%U9tF8Thb*uD&3qwL#vJ#$i~_-8)aw4 zT_>^GFwCQ8s)af{v}G{r3PQ=X)gtY_|AvTJIj=s|F5j<}#yZc{rW?JM7Ft6MCVA(=uw&Nq1RYH#rDX|+1d|}_`xj(+Izs|+>4aIg(WkpT zlGjiu6WmmWM_E^9EXw^2qxN^$?7@cbe(E6APRE`3-(SU{bsW{ac2!il(p4jr51V}! zHTsNMYAd++{+JK#vT_DDWJqhusR8sSU}h#s5i+jT<9Aa1q%&%etxP=R6cV$2@RaX& z8U1Gim&3MwTmFVA8NZS{=9OmwQgxCY+acb|lg~!4w5H#ik z*IZs##l@dT#)<>pGS)eP#Em&IYx_lU;O4}x`+jrh@BLNVV=!YAJZD_T>!)yr(HQ-S zp-Gn!Wz11-!X}qy1#xdgdqi-@i_`0_oP<;2V8X*zJV(9lI~H zc~^+c2UCPhQaL;}>uY+2y#iH7H#J@@s-t5MKn1wznO;sW8O$i!HIg)!qMPdQiu}$? z>|w_+t@Q*mMC#ZHVx1BVa$&Q9w$Gz0MZMh8&fKWp;7<~e08*j}(R@-1zX}kWnEAw_ z$DOpClm5<0K1TYa4Kg*q1it6aR1DQ4_I)I_C_{@NQ8vDtugzsTiR*=lEGtD8GBW!^ ztmE!^;caKS?@U`%3p9uXS3R1Mv<)fqN<}dNH8Aa*sMTJHk+yc_i1IdJ+ocyAumc;I z;nI8C-=GLmd>-W6Rk83>HWPSc3DjDZ6QBkFx^0bqbuy^OYk#86t2!|+64_xh4m=sD)tyZnq!?Vz<(F0PXO09hoQVqxNIe&+|h`|&) zp??4xM~5qL2nRsRECSoksXgkB4`+cmjny}k!PESkP6t45_|fR;p8&gWN~Z)+8dmgi zuqm*(Eb42p-ooB6VqB<~_oeLLxR{9E4p$Xzu4T2zYy^AZs~;k`*Te!|9bosam{)kQ_Ht9?y?}9xLTUlu`z-gA zGxra^cO|U2^-vwHHpj7i{t;DoOz(<&N#|_^APKj9l2OHDj zZmaKNwQHUq$-^zuBQkuFXZRp!N+Dm2&(26Wq!?BDKdVN<-dx8Zrt@*#X0CImKgv}- zdXXGxZG1}I}3P2ckQQFx+1dpi(iAD9Ki0(YC?Koz(>LBlh+}m1>sT6#Xp14<}Q#n&=fkaafeu zWU=)m7s7M{EmEa*OP+Dh!qJMjC8Lr{8@Gm>E)FT&=kivK7-M0toHpz?2-XkfHftP+=DoitHVg2HR3`R$mDevPrHbf+hqKOq?v%D*r6hnP;b zi5EkH&b>?9MCQmwvBB9CCcG;6WiVf%)U)d8npb_cfp|C5;2@KT+8uW-i^nz44R<}b zE=6W+OXXXzT2WXr@*&%vqM-m{Jv1Gbt0#U`ep~hyF5vqSCc4d@Xa(q7cBC1gT#_p? zMB2Y;26@+qZSbKr`?Z~M&rLlo5;VgM6uCTkmX|G{5O6e%3saiNb-+P>RBNOYr z&?-!}c`miR7hg_Ox|T~ZC@C9rI91+Lz%cI&RBldaI|!~~54;l`f8Bwqn(72Po@Np_ zV$%8ICN2APzbG$`Gy;7$eVu;V5BE;I+x_0UM7DI7+Tl#P3NQVMHT2OADN9a`TCo95 z{F@N#5;^?rx=;UMc-zf09Fa^5m(Jgq=<+`ZAkJK6z}KiJh?JBT2z^hPWD13PXLKem zE&gy3j>mdPV9m;*W_hhePY+65ice)UXEKGJll1WKOFX`R3Q&A#d=H1839x|3_jH)W zTD|x7z}U-g(^m!g5 zTOUdW*c(`9MD+B??($PhBr^xbWH+0?3oK^k=_dVl8rg$OS#^59 zTz-^9)%5}@e&t~<3L0(!*m-qcE79YckrNalW(oWEC-ib*8P7{SY$~F;DjdLX23jQc z)Ew$7>%Akd>Vr6HJcN)0@tVF0PSRktb1`6v;8PSN}M{Bt+wKy?%IsE3Q)#mMWjwM?KuzP!h*D_>sOvo=ZOFHwflT)MxI@s!R|B@#1Ik0bL zbL24`Hvk}|-DoOBU$4Hi2FNypA37LUQ4bgOT3jL-HRyHt4Y+Rgd{*s)C^P#eT0Cr| z4ee^E_++Ot+lSng@~t0@GE<1l98^Oupgon(@#s}1OQBF2f$s4PoP0HjsBbFP``6oz z7`0d6f4Be?vm1Sh**={g;NBhTBHqbUz<3X=$n##D@qX$zF`tBwL>GR5F4l>&?n5j- z?`RZ%y4M`o^YK0h!SDg*QGFMMjj)IhTS$gtoTl@E*P5pC*QJI#%XoEGk)h4|*JR&0 z0AskH9fRiSRdeMDs5Bm>QzRPCy|`MYQ47D7NK*W`tx%`6+X_nUOfjvvh`w%tMa;@tBNV+H8T7+)7+* zve{JQ`{f|tq=aWkR0f-pO7oy@Z0u!nJav$n_$9-*j39Iq6#JseMMob;AxFM_kT^QP zQ$K9clj*e>I}CYWG1Cz4 ztVyCDi+LDn@nIX`@>sDMTK=P{s(TKfH~@_o<*?H4Uqapv{xqz5=ZI^odN!)}s}#*z zcyk(UXf#Y=;;4WdNHnre5924@i>z|y3tr}63`9?-?sN?am$0O@zN%;KlTzV5B@SdM zmOKh3WG)U^L<7BieDh|LaWK)-n5;wOyJA=%{QZAvt5@@^S`Lq$@isZSY}(y zFaUZADyQB(dpWmM{!Q$FHaTc??xETQqGLy@pV?sxpU>JFS~szVO^5Figelh%-yFJ>ZDLR1`9#Tzvl zXa&4X(ZQ$o`h4$=hDLGV1bPC(Emi_Szv1imP(Qyrp5)D~5xrL9^X=8A%-_PaUxy%m zPaH?W>u^g(H#)$SkqdlkOH37)%#&t6VGS$fj?*>$7QYFL+w=*ZDiWc-`xcg=Lxh8! zEIU(tT>K2rDL+C1EnUbwI~AXG>cfTd)C3gUh$zHjYr3lYqz``*%zhfl{j%`8#OK=m zux}U81G_w~T*IFHu)zSon45XP&7CMCW+&t#zhslUM{qHNz(DPch2}!DI&anW0kOKQ z$n2UB2@#ct9<3ifN{dBv+84hddN?TMvxxB*FqRB7)JCO~b~uE(2F=r#3j>MIXk?GuK^ zenyWxCF2!I;2Pt0yz!)7!Oa-Fk+z}Hoq9jw>2cRg)u*D9q*<7ijUka=@;fV}sXGlp z0^O{pLE8VwGzWvv19m1prk5N0!VvDa07 zFP%907a3o~OIVvIO^<9FfqOzfwHA6+((M&gyVe8G;SeI%E zZ#|PP2KhrhLx1yLUyv~3&4*hJwlKmi>@$7b!E1q*3{XZ4+U-E8 zn0={xhzb|2?>xTE+_k??|mnHh0JySEqJFN8$!uOrDM~&7c?ir)IJo zab``B7%+@z+X|3u*Mlzm&KF$0M>czAVRvTpEe^f)Mz6aE#v{CT-8MvK{Qm4{`fm}x zdjJ}1l{|%8J_z>6q*A7UE;FDWExa_fS^5zKkBl#~P;aK)ZdaZq^&eh}EH~^@ka_D@ zQjAjf)N3an+g5mZh3#i(x%|F*yfK=SHLpjICNZmsV0(L7R zH~1DyW>yjs%~syArLTRk;W^wor!CD?PTPR@saafR6OM1DHC6@1uMx{QA^iVRZ%nH6 za*--8`uo@PPfsWW!A@2lvO13A!bn?niPm&hP=v+mGnK2OM`z8IZSVDoXYSLSnbak`uGv27lYLk=dxCASr{? zN}IN0itkOs@1QuIHrN|CjLXjn_dHdZh5Ykkp8CgjFlo};CCiG(h52U zmq^mYNpdSr%{r%ZTuYaAtSk*niTRw>oQ^O%&j4mlUzGJM6>K``Whc#=GO0ygchRc@ zAN`b8eZu*E^EWT)iWQpb^w`_Z(4`Z>$hr)%a)V+zqHsO*MaK_#p{0`AQGP+wp19NG z0z((Q&6N)&PKmKwtED#UeK?uX^N9l#>Vg|Z>l5{X8(#bKE+|!v&Qm3)3}i;_;ajE4 zVYkGaTAl}~w-k*^%iLVJ+v&H|?h`dXHlB9Xr}rH5vW5Olv`LSIx2E9?G$R_mb&D=x zJ0tbF83XvDOWbuS?*lvI_2ZC_4;dFfdyRSKNkpclyQ3ElHfrKomg-oR&MhZ=`8H%^ zP=BRQD6RB*n=R*la1J6UiR;0@4Sy!`90$47-I{=Ax4hmpwbZ6h$2+ zyOB6M(Y^ieI8yP`doL<}mYU4jaVPZ#Ixgdk7wZtGe7OtEy-?Ivu8tpJr^f}}KmS7? z3Q;nE9Dt6-mOBs6Tww<^_;IPDbJtu4N|um0<3ZgWXP?xPPHI;-a;aCL{!yB*`8UtQCB|#){4xUY7fuOENKvnQf-7?H?S0F4!mk6DeQcRM z3tIYQ#pKL)&f+(-SiaN%dpu`(uocqK8GFE(HTQ=Q^XuO_jHKE)C+d(hsu1{G(8g4+ z<;q|W4vlQ^6Q@3t+v{3>Z+%cU`T&PW-Xuf$m#HfdGg__LdOP1W%MX;-`Xne_qEPC5 zlM;CR>j`v*e~KO!no|WOTz)=55%rgPe#8)=+ffxJQeFYA%bQ{U@YMd3)JTK~tQHuT zmkq4^Yz-fm>E4cfp1W<|ax1%Us!;fCY<6X_`=K|T4dhVy zm;1gxAEBddjfO#K1`{;6dPeu{G=o$8$dg8N^ATIg0r(l2+y#zIz<+^C(j2V4wcU~- z27wAs#s84yFy|o%Pp@zD)G$8Lj`RGU$DqM-c}G^VMC2BI!$a=St-{(sYgwZoT?_$@K)ipqi* zbHX{_VR2bUB93}b;w))K?bzbAe@U>XSs?Aqx%)`-4jII3dIg%Mb^N5mqs#T)pF50a zJ)7{83wDhrpTi`-od!)*Nyg(`Hpx|B7#C6(@mo-B1oN9Iiht?+z7UI%_lBi1#5q#J zA3}9k9-lt#y0^15Sx-s3!+u>b=Ze?g3$DO#G}`=dP2<~z_xp`=VfE-_79!;c2dM+Y z=~dTb!WRp&z>x z=!N*p(QXRt?9`+SC9>VXq~9aaht^kT36aaW`#a?SWu!Ko{OsBnh+*h|D&#z=7p5aS z%g&m2&I}etODZs)5sQZtD_OC>lrNIys{x9*mHXJiVFBw^rsWl=8G3I+Baow3>aO*# zGDAdnx?j-^ssZq)P_@oHN)K;jQgH$$OD_w4Y+Xzs84^ob?%qn^EYuhFu=Bd7^_HlH z$3Y$5=}0pY-geaet9T9OQ0)!xHAt0Fkjx{Pz>$rRvKFZ}Ka^Aa!@Lsa4A#(m9T0JR z@aQAq=DgySxpX5qM6JDWzv@4~RIv?pnNsqEI*0!R?A@J7?ejPWiInDJ51347T(>QR z+{fMu4XnKoVNFfhzQ1A*!nZcMj}fXNMiIYB=mdSpmM$QVMxp{cyV-VbRdRn`TW|}? zag?~+JPR?jhJONgk5rWQ|H$#K9Aw15d@OEq6!n{yUjlmg&l63W;b@WF0f@71mx{W^ z=`wKfRLttD2lD_6Gm%=FgO3gsO?oHiAMa3m-0J#XpwjyJFm$R0v}PG5%d?PP?GraUhL1r zLX>==Kw!?m&6ee)^!OF1J&*bnT8B;0*ooJPXiJh1g?*tLE?@Mk+Mi$nk#(}L9~-%7 z(m?-eJO8i!89}AzV=g*!p1-Jc>zU>2E=y6P)Ay;a{2~w4zR=PVuaq> zAI0#rIf(}e&-YK2ln{D2D){e$1zVF23>#2a!G|;0lrQ8j+LpC!tfSfC}Ne@0nD7byl0FN*@mr zd~6%ph|43}zZPP?m|+y{F(Lr_n&(EIo8Ua^aE@&>jsAz(q&K>DTRpxRc41U6JX_K6+JgyZ*V*@b zX_MaJS_D(4L1avf2FMIHF@q!_p<2!LoC&n$V?X(l)9FC`u8@VTt)BE+((qgb%A+|Y zn9^zV5I7@sBvlsA5HWP?O-t`(MQ^88pU1N_08{$AYDmmVx+Eka`B_%0^jX}%5I5-< z(aqMRoDFrj-f>W3RNhN2>?xb=)M=z!3uZV8RIlM@+{Rw2emf9yIwWkp%1n6aQ*UP@ zP5jz^nuld2TQRh95X=U*U%QSTr{W|DI(UW?jX0L2jPTpPthig9U<1|(KjkT%7PZpo zKj4GocZ!yBNI#kA6?k8%M*vE|n|ZmR%PEU)jtl;#)dg8{2P%1S@DVOjQWr(S{f}N{a>TclyGv5dR}5*q9t3IGj2- zwo?SZ&vBvUE5?sTl6mOhd!O^Fy(R6T&I2M1v}8c$9kw^oBRVc*RHyarVX%fnVkPQ#wg0stu!R zsDR_$wF3v3lGJ(RiH-SEQvofG^{kur%Va<#_!er2IXrneRnnk_%N*&t^2tV*7mQhrzm|!QTrOr7q43(SZHc0Zsi#Y96wIxrgOX0xD-+D zt(H^w1wVzIrwJb=u6uRYTOlzI!xu->J=Z>446m_tA4a05kNhen!+VFhL-p}zvl?Qw zjD3G%9hc9!4D+!D$Q+HC1zw!179TB*#)d=LNuPYwkUE=(sgA_uKM*9}eeZJm*kPwx zfV&zhS2=OA8Dkv0dK?<7#YX~Zz>1a<(3hU5cbUna8ej%XI!Fa^E|S7!K@$c#bBz_6 z5muvy)Y@_}3-TbU($nbZVZjlqUY^(z4j1Ct6~?(7?8dti>foH-Te*C=t5m-r^2cG; zppj&u0Ev9DO+e)$k5o7k|DN;ObgnlVO*S>g?9%7`B&hX*98qT~5P`3*afV9=V#F&v zg{(UlA{SzUkV}nTLN9~pq~-_dj%8w1ljp}Mr~%8*#8{ME#ieIg52`W`N?*#lpw1DG zdxM8`-g42-(+c0rbb=S7k1j^!Ap^8}U%HEUxPx_ZFA?z7^4Rk_Qt9(cZ!wjqp#H>~ z;Cd8seK~BocBOJ@z21n{z2oPDQO(*A05U@grqcl3udMzY@=qsiuBf;vJo+Cd{7vF& ze52RwEWLs!@_2h*2J`bUxF$Q}>*xaJ=E)x0i|_)j-qz=}8Gx)T*|=t?G05>_)3=+1 z>!FTXNpvoi_BT^ZjTl8`J~r?5;&{E$^mBGTXu5RV?-AF-0&iU0nKusOa5r~ypdj1- z$=tapyaq0zqjeGAS}0%iO*H=+aejEgDo(Lz21|XJYs%e5qMlftCs|tSX61LBu^E|4 z7@_Q?&6W@HuJXs52>PRIaQ(-fS=pD@I~StVcNWqQbzECW-24jCceMC`E8J><-2$dQ z_e(0HK`x#bV@KmVV_hkhwML;vfv6o*>bi3-dq)Hmwx)xmBKJt-xS1FyJC~8L@ESg{ zx=R0~8IGxSkh;7{bLgzFc=@g;?UngJ!ZJf$PW!~>{w|R%OzI*81sB*(1A;r$+=)%H z`?XQI=_Gy95cHY8J|6{AEa#H)HzuR%#pH0cixv(J#y#))qs4{AuowoPFm>>mqwn@| zP2Xa~cFE9DLR>dUH0lOn2K%u(3iC{a?jaMWjz_Kzc2^T4} z{JT-0CDnGzL>geH=;QY)wBeEOgW1@R@^d_hY3}-iaVHBar%_P8EFJ>SM`h_bM{xrr zA>)Wi_n$*gsXeQ{vhVW=CsZVc#>lQsbj1({VgzM#9oo%Hsv- z3#z$5hVf8qJb9`lP9Sc9lnw5oX^vqt^HuR!nJx@VB;;~q^wV0M4@VB&AJmZni}Adv zk;j%R{X&9m^Kfmt=a8{RJx~IQ+W0+<8M2)qUqb5vit!&`>52v|Y7iU^=ElDzCtP8g1u090mw%1dv z$Q!$G3`(?UKu(S^tsw>H_`hlF|#3XYS)a&Q9@#lXyesW>Ledg3tvPt$H^*tf%54hC0pEvXJ zs#y!_xZ^hbWFt2l*xS{!jAQ{8fhCuHPEQ1;^h|GN3<32dUEJ>60fTKv9jQvK z7`*>{b$dWhD`K%Eu8-T@maQDy!xhlzg_`89CssMleV&K~OBg=7E+TDgnar>*wTXZ^ z;x>kR)4OvvPeGntGcLwxHYGZ3b2 z3h8Q?X@NF}XxO`6f3O3hy?bE&$n16NF^W0MyNd*$8o z-Q)MNxhHnW!rWc8>o0K2#_;>h)K?L?_00TSP;sq!{$eUtUF$CXMGN)hPbh~Sfxgbj za7))Ar`{K7A$6}#4wqxr)4-lamNLy>zOPx)Jn|?kv?*4fwFf>NxxK+wNJYsbX39yX zKpfk09rTiIj5kZ8J{;xVm#X=#IB<=~mV3koY{Vn{qo;UL-)YYRbR1$gVoQuO5~AkM zk%r8#MJX@kLHMz#G;D>7L^JBq<9B;2!VrOTBONASUW?Am6axRrmpB#F+BD~)2)-|b zsUToVfpMA@6(4$&Of2ix57ZO_YUy56c0Zc{c% z=6*bGGWpwOu*C#|itaF;Kqr2v(>}|WdHClj@Q6qfQUy~|tN@sosSa&x0N|YJz1zx< zx91|tPrNe~J>uEDwLrzqV?U>1pF0(}RSyQ>xQaX@5TA}8E8{{cEC^i?k%l`-6T0{s ze@1NSf!S->>D>g&$`g;0Iy)s;UwY*Y!O;1h{oeHI!zgGyi$=zg0Z*6@W$h~>?r6d* z*lD3PvF3#U=EXf5NnCn#K$Zj4vw%mBXm{_}RH6v+l(R`wj~E5HEGPy!Uju!grN_Rj zj=EuGmo}yq;y(1#8kb>#rGinTBe-`+g zpx0wS-KPbdjw|!UDKFfIV{3UlH=6Vv)K6Ti00wC;V`Et zoN8_-5cF8UX1~`ze|ngfUNAl?kDt3rDU^K3%WH~(C`4FE6L(XgrwI zxr0epKZz+)U(dVm>}1Y`6K-u~zY(d|LvBWryCGZq3X*!<$dxK$Xd_Z9OeYde!l!SG zgwui;LN9G=zI+k(;E4b&lwt4SZBt$s4o!Czia=JM?N3EO zc-RmR8q|^3@0bY_Ihzl1htJGSP4I{I`V)6t8?U~%SPYJ@k=k=(^$cF^>Pjn`>oJ*Y zajb~o3@(zF!_RKj#qI0h_0j~+*d&oxE+geKond1FkAh8)DN(r1LeAp-W92mnANM9* zYIekk4958GwAjyyET?5CfW;VEMY9^he22@__@tE%BzQ5h2t~|1MdH0RcBT;Py-6gx^n}H5dXI9iR@k}B@xYlu zD;<1mC=GC+sfYDjB?x|wBcJ42mntJnY(fk09D){L>r%(9A|st+NRws-XwwT%$iMvT zU^&rk;Pylrq1RmFH!>-&zAR zCx(d;lDbnU#1T*4ycr-WYvQ)LA0g~#psyfr05)lI7O^00t@?vzu&oh!g|*r4qzy+C z!L(Rq(vY!2Uy15Ot1A%{n~^IJnEKW(&etTy99g<&p{B?5e-40DiF0UPQdYntTK`*B;uuVW8w@`s-Wj#pnynToeAj9lBLhHg` z-uL98{7Mk6xK(+wdKsy}VdgH%k+KmmBkoDA z5mY4~eo#WTF}%k6Wvj#ahH@vTEwmoKH(1xO2hH?=qLUcK;~)UoN_6A_mM}sAVv1WB z=}AaI|72&cU6AT^^1E$ZW9g;hr}zsVBL-cXK0S9b-cbw-^HMk znk*+PX=dB9HN!o6j2JZoS{}>O>Fd@UVaJ+knzZ1x;#2-sc)NhHVk?*R*P1W$=HY@- zptL>X>7%?0PN~m%784H~T^9KjEuynw@en+!6zC_=1 z#^*3|AEPy@D|0RYuk67sKf1bxErKaM5yi~5v^FJ}b%m+WPb%UM0t)RvzA}Y0A;;Lf zRS`OG!UK5n4te0ZiZ(aTxedXDTF+?&gFeK?g^o8w^3vtr+2?oHEOYCk$5cR%2{E_ zOuM5=8m+!Bg57@NBz142Ris{v?u;-lIl1ZNRNZmP^FBmVu#-O53f!3JxPGuc=!@8) zq3i@}x}X1*lnI6)ad%8@` zfNKy54e6uhv{1QgdSHfMp#^f0R95}mpn*<}!_?Mg*0*k>SZCQ@k=wxO)~U|xzv5}l z@LfVC2!Nr6gg5rG@F;x2D1GKfZJmYeGvGAtb@L`UTWY_%k*eR;yhH4I;Y6P|GJJkL z6GaQh9?9q}Mj>9$wQD)ZuC-n|N~YD@olF(Kp5xn6rKZPmV`5LN1v2p??q+#vLGTdy z9J0$c6)5-CDkq42*maWjhy>@e8-IWuyA~;tpf5lY(qpz?oMY^>G`D|gHzwUzwgJl8 ztQp>rGF5ELoaG>QLdLzxyZI^C>Q!83)M3Zrqf*JnFfY5pr`}-uMEt5Ue0~!+)$3&B z6IKI1Zc90Ri51m+STnyP>wgfdH`xp2i4zVmZ-W)lFo+`r@nTGWIQ$7EhHYE=R7<{5vUrqyeu)M&^f_lF? zb#$>3_9-<_!fEB?l%a*7TmQk}JkRf^y~#mz8S}`dK!$27cpbpCeGkUf zm`Hs7BH`LtCNXlbmP!hrcQc9{hyrV-7@1xLP#A9~h<}O`+SnVrZ+L>7q9Ek#W2Fvb zSx90aXCHBtj{6W2-cFUqYF+`76Nrp};1#6Q`~H{`JUgySExJ z|CtT-EWXHi6eUvo`3DMNTCQ-CEW3#Qu5;oSvqK@LXi~B+AFIAzCAkvDtdXlUL=TUC z@faU>v~bha2TD?}-njUtOi2dtwd_3Do_3l3e$?wfLKh2!e!IpC=;w;3kGoZn0fqS9 zp4fTh)9d{UK|2N6<@1W!an%5C_P8i3N#>bXhXjPIheln~sYAKkZ624mfMtjoNBlFl+Bs(1d%eNhQ=K`$8ixSk*9IqhM`Lz;8MQ*^RA z*;XN3?|zdo(B@?u9d#1PK#AjP(B^y-8~n(#{0z{3h_Bv3cfhfDrjgo}K7dS!235Tvj(le*b1cA1o@aVXIX0QRxpjn~G%02Mp!sJBL75UR=W+JWv zE7KhUC+E<~vaUk!zWR87yh2GGip5XfizCv-sF1=Mq`Tf-XZrg~Q3g;dA<51sI=0}% z=U{>G;QI0J1F6R_CAg_66w?1SKlU=n^&a|i%y}0Q>Vxhrm}q}7m7o*Mte7uw`Jj0B zR^}sILV0{mH^ZPeDs&T*gKS~eDxK~}dVMm~qOKt@>?s?~s*;3|rvWZn|A-ulQyShW zlJ5ZehbiM401L>qWZgHL@vY6dpmKdCh-I!sguBug<@1WP0&&Ws$M2E#y02WoM8#(N zXANB1M2njbL($IBXpYIYPi5?=!5`pTPs z#M%U9(!+NL{cn?Gr+HZD7rXC2bKy$J*E8Yr?u9qs);}+a?|?}86{_zLF2C-sH+#K%*+iji>^0}AEnDGq1+IE%&d*5*Bw z+VbCu4NZIVB$kL3BpWFVc&Z=NrsJqSk;u|A7*ujYk0_AU8xJM`%|Advg?Wqh*w#j& zL$kBqn=@})L!$qzxrhuJLEUx0L+&@~XYc@iTYSHZ%BS_jd>UUUNKnPO&H6 z%HMOHbnbu>Q9usJw%T@4-2Z14`p-_3PcqZWUyhR7+tPRKo(NSZf8uED2~Jf^f=R(2 zCg}s3_@pAz75xLo>g+}>WpA{q{E-1CwCiIJhUd9gtP8dk_fz03{Movt+&R<4b#6!k zJ#al@>lW=?77jsWWXGM?9FWTIvO(V&@<;ksmmu`dTQ!_|A%Fa9IZP#1+Ur2_#0HRS zkRaox*?x+YJJD1)<3n*^tMd|F(%*ai@2msmIxW9%e~vpplfVO0D|v7C#cdkL=YwZtX$x3ay-gbcjZz@X78G60tH*oeHy z@;D^xIb^#iOu1V#yd1?Y>llZR(gQ1ooMEnLc=@2U`QQ8Azy#&y1wXfQC#slKfj{Sd zWh1XW&@4;}c;eH;GTzAZA$XMO++)*ruB=UkZbOX0{-D=j{g{1UIRv%u1c)UB{nmMK zOGA++IepB06<%KQ@4%1FKm(VZ<$1qgQg-~x6~8Ky_Y%Mqhs0Rc$Q@bG99c|UBOcOp zacJ&UKCbtokY96opb#6xAkGSMa@WhqRW24zSbkRyA?A>D z@N}m`1!;cn7_(~BzH z0Q8E|KSEVtv$l`AY+r)X@O}>2zxSkG)Bb^>f7bt-mltTWV2uv_?~gA+sk4g|Bl3UG=8vq}An1D2B*;$s-yh!Kct|AUVIi$4E@j{m~l|3Sz9paTMn|9Kt%g%SVrI{wSO`2XqN;o+h*hhEK%1FZn` O@7^8F+l9BxpZ|aNe6~jb literal 0 HcmV?d00001 diff --git a/settings.gradle.kts b/settings.gradle.kts index 8c19057..cc202cb 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,6 +20,6 @@ dependencyResolutionManagement { } } -rootProject.name = "YetAnotherCallBlocker" +rootProject.name = "Tranquille" include(":app") \ No newline at end of file From 1c1f562683eabd9f4001f82d31196ae9c9da4047 Mon Sep 17 00:00:00 2001 From: Vinetos Date: Sat, 23 Mar 2024 10:44:17 +0100 Subject: [PATCH 3/3] chore: Update changelog to match current version --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e22beb..7a766ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -## [1.0.0] - 2024-03-10 +## [0.0.1] - 2024-03-25 The project has not been updated from the previous maintainer since 2021. As I use this app a lot, I will continue to update and distribute this app.