mirror of
https://github.com/ankidroid/Anki-Android.git
synced 2024-09-20 20:03:05 +02:00
Add setting to disable access to the AnkiDroid ContentProvider
Fixes #3717
This commit is contained in:
parent
a4b312c760
commit
e2152a16e3
@ -21,9 +21,11 @@
|
||||
package com.ichi2.anki;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
@ -374,10 +376,11 @@ public class Preferences extends AppCompatPreferenceActivity implements Preferen
|
||||
Preference pref = screen.findPreference(key);
|
||||
// Handle special cases
|
||||
switch (key) {
|
||||
case "timeoutAnswer":
|
||||
case "timeoutAnswer": {
|
||||
CheckBoxPreference keepScreenOn = (CheckBoxPreference) screen.findPreference("keepScreenOn");
|
||||
keepScreenOn.setChecked(((CheckBoxPreference) pref).isChecked());
|
||||
break;
|
||||
}
|
||||
case LANGUAGE:
|
||||
closePreferences();
|
||||
break;
|
||||
@ -420,24 +423,27 @@ public class Preferences extends AppCompatPreferenceActivity implements Preferen
|
||||
mCol.getConf().put("addToCur", ((ListPreference) pref).getValue().equals("0"));
|
||||
mCol.setMod();
|
||||
break;
|
||||
case "dayOffset":
|
||||
case "dayOffset": {
|
||||
int hours = ((SeekBarPreference) pref).getValue();
|
||||
Calendar date = new GregorianCalendar();
|
||||
date.set(Calendar.HOUR_OF_DAY, hours);
|
||||
mCol.setCrt(date.getTimeInMillis() / 1000);
|
||||
mCol.setMod();
|
||||
break;
|
||||
case "minimumCardsDueForNotification":
|
||||
}
|
||||
case "minimumCardsDueForNotification": {
|
||||
ListPreference listpref = (ListPreference) screen.findPreference("minimumCardsDueForNotification");
|
||||
if (listpref != null) {
|
||||
updateNotificationPreference(listpref);
|
||||
}
|
||||
break;
|
||||
case "reportErrorMode":
|
||||
}
|
||||
case "reportErrorMode": {
|
||||
String value = prefs.getString("reportErrorMode", "");
|
||||
AnkiDroidApp.getInstance().setAcraReportingMode(value);
|
||||
break;
|
||||
case "syncAccount":
|
||||
}
|
||||
case "syncAccount": {
|
||||
SharedPreferences preferences = AnkiDroidApp.getSharedPrefs(getBaseContext());
|
||||
String username = preferences.getString("username", "");
|
||||
Preference syncAccount = screen.findPreference("syncAccount");
|
||||
@ -449,6 +455,21 @@ public class Preferences extends AppCompatPreferenceActivity implements Preferen
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "providerEnabled": {
|
||||
ComponentName providerName = new ComponentName(this, "com.ichi2.anki.provider.CardContentProvider");
|
||||
PackageManager pm = getPackageManager();
|
||||
int state;
|
||||
if (((CheckBoxPreference) pref).isChecked()) {
|
||||
state = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||
Timber.i("AnkiDroid ContentProvider enabled by user");
|
||||
} else {
|
||||
state = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
|
||||
Timber.i("AnkiDroid ContentProvider disabled by user");
|
||||
}
|
||||
pm.setComponentEnabledSetting(providerName, state, PackageManager.DONT_KILL_APP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Update the summary text to reflect new value
|
||||
updateSummary(pref);
|
||||
|
@ -136,6 +136,8 @@
|
||||
<string name="filter_google_translate">From Google Translate</string>
|
||||
<string name="filter_google_translate_summ">Just save source word and translation</string>
|
||||
<string name="convert_fen_text_summ">Draw chessboard from Forsyth–Edwards Notation. The notation must be enclosed in [fen][/fen] tags.</string>
|
||||
<string name="enable_api_title">Enable AnkiDroid API</string>
|
||||
<string name="enable_api_summary">Let other apps connect to AnkiDroid and read / write data without your intervention</string>
|
||||
|
||||
<!-- studyoptions -->
|
||||
<string name="studyoptions_limit_select_tags">Select tags</string>
|
||||
|
@ -68,6 +68,11 @@
|
||||
<PreferenceCategory
|
||||
android:key="category_plugins"
|
||||
android:title="@string/pref_cat_plugins" >
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="providerEnabled"
|
||||
android:summary="@string/enable_api_summary"
|
||||
android:title="@string/enable_api_title"/>
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="tts"
|
||||
|
Loading…
Reference in New Issue
Block a user