Add option to change primary DB download URL

This commit is contained in:
xynngh 2020-09-06 18:01:27 +04:00
parent 9834bb4449
commit ab5d19e777
7 changed files with 24 additions and 2 deletions

View File

@ -44,7 +44,7 @@ dependencies {
implementation 'org.conscrypt:conscrypt-android:2.4.0'
//noinspection GradleDependency: 3.12.* is the latest version compatible with Android <5
implementation 'com.squareup.okhttp3:okhttp:3.12.12'
implementation 'com.gitlab.xynngh:LibPhoneNumberInfo:fd60ad9583'
implementation 'com.gitlab.xynngh:LibPhoneNumberInfo:5b0b9fcbee'
implementation 'org.apache.commons:commons-csv:1.8'
implementation 'androidx.appcompat:appcompat:1.2.0'

View File

@ -2,6 +2,7 @@ package dummydomain.yetanothercallblocker;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
public class GenericSettings {
@ -53,6 +54,12 @@ public class GenericSettings {
return pref.getString(key, defValue);
}
public String getNonEmptyString(String key, String defValue) {
String value = getString(key);
if (TextUtils.isEmpty(value)) value = defValue;
return value;
}
public void setString(String key, String value) {
pref.edit().putString(key, value).apply();
}

View File

@ -10,6 +10,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import dummydomain.yetanothercallblocker.data.CountryHelper;
import dummydomain.yetanothercallblocker.sia.model.database.DbManager;
public class Settings extends GenericSettings {
@ -27,6 +28,7 @@ public class Settings extends GenericSettings {
public static final String PREF_LAST_UPDATE_CHECK_TIME = "lastUpdateCheckTime";
public static final String PREF_COUNTRY_CODE_OVERRIDE = "countryCodeOverride";
public static final String PREF_COUNTRY_CODE_FOR_REVIEWS_OVERRIDE = "countryCodeForReviewsOverride";
public static final String PREF_DATABASE_DOWNLOAD_URL = "databaseDownloadUrl";
public static final String PREF_SAVE_CRASHES_TO_EXTERNAL_STORAGE = "saveCrashesToExternalStorage";
public static final String PREF_SAVE_LOGCAT_ON_CRASH = "saveLogcatOnCrash";
@ -207,6 +209,14 @@ public class Settings extends GenericSettings {
setString(PREF_COUNTRY_CODE_FOR_REVIEWS_OVERRIDE, code);
}
public String getDatabaseDownloadUrl() {
return getNonEmptyString(PREF_DATABASE_DOWNLOAD_URL, DbManager.DEFAULT_URL);
}
public void setDatabaseDownloadUrl(String url) {
setString(PREF_DATABASE_DOWNLOAD_URL, url);
}
public String getCountryCode() {
String override = getCountryCodeOverride();
if (!TextUtils.isEmpty(override)) return override.toUpperCase();

View File

@ -88,7 +88,7 @@ public class TaskService extends IntentService {
postStickyEvent(sticky);
try {
YacbHolder.getDbManager().downloadMainDb();
YacbHolder.getDbManager().downloadMainDb(App.getSettings().getDatabaseDownloadUrl());
YacbHolder.getCommunityDatabase().reload();
YacbHolder.getFeaturedDatabase().reload();
YacbHolder.getSiaMetadata().reload();

View File

@ -109,6 +109,7 @@
<string name="country_code_for_reviews_override">Код страны для отзывов</string>
<string name="country_code_for_reviews_override_summary">Код страны, используемый для запроса онлайн-отзывов. Предназначен для представления страны звонящего. Оставьте пустым для автоопределения</string>
<string name="country_code_incorrect_format">Некорректный формат кода страны. Значение не обновлено</string>
<string name="database_download_url">URL для загрузки основной базы</string>
<string name="settings_category_debugging">Отладка</string>
<string name="save_crashes_to_external_storage">Сохранять отчёты в общее хранилище</string>
<string name="save_crashes_to_external_storage_summary">Сохранять отчёты об ошибках и логи в общее хранилище. В противном случае отчёты сохраняются в личную папку приложения. Отчёты могут содержать конфиденциальные данные (номера телефонов, имена контактов). Другие приложения с разрешением на доступ к хранилищу могут иметь доступ к этим данным в общем хранилище</string>

View File

@ -124,6 +124,7 @@
<string name="country_code_for_reviews_override">Country code for reviews</string>
<string name="country_code_for_reviews_override_summary">Country code used in requests for online reviews. Meant to represent the country of the caller. Leave empty for auto-detection</string>
<string name="country_code_incorrect_format">Incorrect country code format. Value is not updated</string>
<string name="database_download_url">Primary DB download URL</string>
<string name="settings_category_debugging">Debugging</string>
<string name="save_crashes_to_external_storage">Save reports to public storage</string>
<string name="save_crashes_to_external_storage_summary">Save crash reports and logs to public storage, otherwise crash reports are saved to a private app folder. The reports may contain sensitive data (phone numbers, contact names). Other apps with storage permission may have access to this data in public storage</string>

View File

@ -88,6 +88,9 @@
app:summary="@string/country_code_for_reviews_override_summary"
app:title="@string/country_code_for_reviews_override" />
</PreferenceCategory>
<EditTextPreference
app:key="databaseDownloadUrl"
app:title="@string/database_download_url" />
<PreferenceCategory
app:key="categoryDebugging"
app:title="@string/settings_category_debugging">