mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
* Fixes #3336 * Donot redact locatio by default * Correction inn default tag save * Use same key across application for managedExifTags * Updated key name to avoid class cast in existing build
This commit is contained in:
parent
f7adbf7b4d
commit
721d2feb45
6 changed files with 32 additions and 5 deletions
|
|
@ -27,6 +27,8 @@ import org.wikipedia.AppAdapter;
|
|||
import org.wikipedia.language.AppLanguageLookUpTable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
|
@ -43,6 +45,7 @@ import fr.free.nrw.commons.di.ApplicationlessInjection;
|
|||
import fr.free.nrw.commons.kvstore.JsonKvStore;
|
||||
import fr.free.nrw.commons.logging.FileLoggingTree;
|
||||
import fr.free.nrw.commons.logging.LogUtils;
|
||||
import fr.free.nrw.commons.settings.Prefs;
|
||||
import fr.free.nrw.commons.upload.FileUtils;
|
||||
import fr.free.nrw.commons.utils.ConfigUtils;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
|
|
@ -133,6 +136,16 @@ public class CommonsApplication extends Application {
|
|||
|
||||
initTimber();
|
||||
|
||||
|
||||
if (!defaultPrefs.getBoolean("has_user_manually_removed_location")) {
|
||||
Set<String> defaultExifTagsSet = defaultPrefs.getStringSet(Prefs.MANAGED_EXIF_TAGS);
|
||||
if (null == defaultExifTagsSet) {
|
||||
defaultExifTagsSet = new HashSet<>();
|
||||
}
|
||||
defaultExifTagsSet.add(getString(R.string.exif_tag_location));
|
||||
defaultPrefs.putStringSet(Prefs.MANAGED_EXIF_TAGS, defaultExifTagsSet);
|
||||
}
|
||||
|
||||
// Set DownsampleEnabled to True to downsample the image in case it's heavy
|
||||
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
|
||||
.setDownsampleEnabled(true)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import android.content.SharedPreferences;
|
|||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
|
|
@ -203,4 +204,11 @@ public class BasicKvStore implements KeyValueStore {
|
|||
_store.unregisterOnSharedPreferenceChangeListener(l);
|
||||
}
|
||||
|
||||
public Set<String> getStringSet(String key){
|
||||
return _store.getStringSet(key, new HashSet<>());
|
||||
}
|
||||
|
||||
public void putStringSet(String key,Set<String> value){
|
||||
_store.edit().putStringSet(key,value).apply();
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@ public class Prefs {
|
|||
public static final String DEFAULT_LICENSE = "defaultLicense";
|
||||
public static final String UPLOADS_SHOWING = "uploadsshowing";
|
||||
public static final String IS_CONTRIBUTION_COUNT_CHANGED = "ccontributionCountChanged";
|
||||
public static final String MANAGED_EXIF_TAGS = "managedExifTags";
|
||||
public static final String MANAGED_EXIF_TAGS = "managed_exif_tags";
|
||||
public static final String KEY_LANGUAGE_VALUE = "languageDescription";
|
||||
|
||||
public static class Licenses {
|
||||
|
|
|
|||
|
|
@ -14,14 +14,18 @@ import android.preference.SwitchPreference;
|
|||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.karumi.dexter.Dexter;
|
||||
import com.karumi.dexter.listener.PermissionGrantedResponse;
|
||||
import com.karumi.dexter.listener.single.BasePermissionListener;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
|
@ -70,10 +74,12 @@ public class SettingsFragment extends PreferenceFragment {
|
|||
return true;
|
||||
});
|
||||
|
||||
MultiSelectListPreference multiSelectListPref = (MultiSelectListPreference) findPreference("manageExifTags");
|
||||
MultiSelectListPreference multiSelectListPref = (MultiSelectListPreference) findPreference(Prefs.MANAGED_EXIF_TAGS);
|
||||
if (multiSelectListPref != null) {
|
||||
multiSelectListPref.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
defaultKvStore.putJson(Prefs.MANAGED_EXIF_TAGS, newValue);
|
||||
if (newValue instanceof HashSet && !((HashSet) newValue).contains(getString(R.string.exif_tag_location))) {
|
||||
defaultKvStore.putBoolean("has_user_manually_removed_location", true);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ public class FileProcessor implements Callback {
|
|||
*/
|
||||
private Set<String> getExifTagsToRedact(Context context) {
|
||||
Type setType = new TypeToken<Set<String>>() {}.getType();
|
||||
Set<String> prefManageEXIFTags = defaultKvStore.getJson(Prefs.MANAGED_EXIF_TAGS, setType);
|
||||
Set<String> prefManageEXIFTags = defaultKvStore.getStringSet(Prefs.MANAGED_EXIF_TAGS);
|
||||
|
||||
Set<String> redactTags = new HashSet<>(Arrays.asList(
|
||||
context.getResources().getStringArray(R.array.pref_exifTag_values)));
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
<fr.free.nrw.commons.ui.LongTitlePreferences.LongTitleMultiSelectListPreference
|
||||
android:entries="@array/pref_exifTag_entries"
|
||||
android:entryValues="@array/pref_exifTag_values"
|
||||
android:key="manageExifTags"
|
||||
android:key="managed_exif_tags"
|
||||
android:title="@string/manage_exif_tags"
|
||||
android:summary="@string/manage_exif_tags_summary"/>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue