mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Create SettingsFragment
This commit is contained in:
parent
6d080889ff
commit
0fe7a05731
12 changed files with 134 additions and 16 deletions
|
|
@ -72,7 +72,7 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".SettingsActivity"
|
android:name=".settings.SettingsActivity"
|
||||||
android:label="@string/title_activity_settings"
|
android:label="@string/title_activity_settings"
|
||||||
/>
|
/>
|
||||||
<activity
|
<activity
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import java.net.HttpURLConnection;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
import in.yuvi.http.fluent.Http;
|
import in.yuvi.http.fluent.Http;
|
||||||
|
|
||||||
public class EventLog {
|
public class EventLog {
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ import javax.xml.transform.TransformerFactoryConfigurationError;
|
||||||
import javax.xml.transform.dom.DOMSource;
|
import javax.xml.transform.dom.DOMSource;
|
||||||
import javax.xml.transform.stream.StreamResult;
|
import javax.xml.transform.stream.StreamResult;
|
||||||
|
|
||||||
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
||||||
private static final String TAG = Utils.class.getName();
|
private static final String TAG = Utils.class.getName();
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import fr.free.nrw.commons.BuildConfig;
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.EventLog;
|
import fr.free.nrw.commons.EventLog;
|
||||||
import fr.free.nrw.commons.Media;
|
import fr.free.nrw.commons.Media;
|
||||||
import fr.free.nrw.commons.Prefs;
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
|
|
||||||
public class Contribution extends Media {
|
public class Contribution extends Media {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import fr.free.nrw.commons.AboutActivity;
|
||||||
import fr.free.nrw.commons.BuildConfig;
|
import fr.free.nrw.commons.BuildConfig;
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.SettingsActivity;
|
import fr.free.nrw.commons.settings.SettingsActivity;
|
||||||
import fr.free.nrw.commons.nearby.NearbyActivity;
|
import fr.free.nrw.commons.nearby.NearbyActivity;
|
||||||
|
|
||||||
import static android.app.Activity.RESULT_OK;
|
import static android.app.Activity.RESULT_OK;
|
||||||
|
|
|
||||||
16
app/src/main/java/fr/free/nrw/commons/settings/Prefs.java
Normal file
16
app/src/main/java/fr/free/nrw/commons/settings/Prefs.java
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
package fr.free.nrw.commons.settings;
|
||||||
|
|
||||||
|
public class Prefs {
|
||||||
|
public static String GLOBAL_PREFS = "fr.free.nrw.commons.preferences";
|
||||||
|
|
||||||
|
public static String TRACKING_ENABLED = "eventLogging";
|
||||||
|
public static final String DEFAULT_LICENSE = "defaultLicense";
|
||||||
|
|
||||||
|
public static class Licenses {
|
||||||
|
public static final String CC_BY_SA_3 = "CC BY-SA";
|
||||||
|
public static final String CC_BY_3 = "CC BY";
|
||||||
|
public static final String CC_BY_SA_4 = "CC BY-SA 4.0";
|
||||||
|
public static final String CC_BY_4 = "CC BY 4.0";
|
||||||
|
public static final String CC0 = "CC0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package fr.free.nrw.commons.settings;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.preference.PreferenceActivity;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
import android.support.v7.app.AppCompatDelegate;
|
||||||
|
|
||||||
|
import fr.free.nrw.commons.R;
|
||||||
|
|
||||||
|
public class SettingsActivity extends PreferenceActivity {
|
||||||
|
private AppCompatDelegate settingsDelegate;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
// Check prefs on every activity starts
|
||||||
|
if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",true)) {
|
||||||
|
setTheme(R.style.DarkAppTheme);
|
||||||
|
} else {
|
||||||
|
setTheme(R.style.LightAppTheme);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display the fragment as the main content.
|
||||||
|
getFragmentManager().beginTransaction()
|
||||||
|
.replace(android.R.id.content, new SettingsFragment()).commit();
|
||||||
|
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get an action bar
|
||||||
|
@Override
|
||||||
|
protected void onPostCreate(Bundle savedInstanceState) {
|
||||||
|
super.onPostCreate(savedInstanceState);
|
||||||
|
if (settingsDelegate == null) {
|
||||||
|
settingsDelegate = AppCompatDelegate.create(this, null);
|
||||||
|
}
|
||||||
|
settingsDelegate.onPostCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package fr.free.nrw.commons.settings;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.preference.CheckBoxPreference;
|
||||||
|
import android.preference.ListPreference;
|
||||||
|
import android.preference.Preference;
|
||||||
|
import android.preference.PreferenceFragment;
|
||||||
|
|
||||||
|
import fr.free.nrw.commons.R;
|
||||||
|
import fr.free.nrw.commons.Utils;
|
||||||
|
|
||||||
|
public class SettingsFragment extends PreferenceFragment {
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
// Load the preferences from an XML resource
|
||||||
|
addPreferencesFromResource(R.xml.preferences);
|
||||||
|
|
||||||
|
// Update spinner to show selected value as summary
|
||||||
|
ListPreference licensePreference = (ListPreference) findPreference(Prefs.DEFAULT_LICENSE);
|
||||||
|
licensePreference.setSummary(Utils.licenseNameFor(licensePreference.getValue()));
|
||||||
|
licensePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
preference.setSummary(Utils.licenseNameFor((String) newValue));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
CheckBoxPreference themePreference = (CheckBoxPreference) findPreference("theme");
|
||||||
|
themePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
getActivity().recreate();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -34,7 +34,7 @@ import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
import butterknife.OnItemSelected;
|
import butterknife.OnItemSelected;
|
||||||
import butterknife.OnTouch;
|
import butterknife.OnTouch;
|
||||||
import fr.free.nrw.commons.Prefs;
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import java.util.Date;
|
||||||
|
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.HandlerService;
|
import fr.free.nrw.commons.HandlerService;
|
||||||
import fr.free.nrw.commons.Prefs;
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
import fr.free.nrw.commons.contributions.Contribution;
|
import fr.free.nrw.commons.contributions.Contribution;
|
||||||
|
|
||||||
|
|
|
||||||
17
app/src/main/res/values/arrays.xml
Normal file
17
app/src/main/res/values/arrays.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<array name="pref_defaultLicense_entries">
|
||||||
|
<item>@string/license_name_cc0</item>
|
||||||
|
<item>@string/license_name_cc_by</item>
|
||||||
|
<item>@string/license_name_cc_by_four</item>
|
||||||
|
<item>@string/license_name_cc_by_sa</item>
|
||||||
|
<item>@string/license_name_cc_by_sa_four</item>
|
||||||
|
</array>
|
||||||
|
<array name="pref_defaultLicense_values">
|
||||||
|
<item>@string/license_name_cc0</item>
|
||||||
|
<item>@string/license_name_cc_by_3_0</item>
|
||||||
|
<item>@string/license_name_cc_by_4_0</item>
|
||||||
|
<item>@string/license_name_cc_by_sa_3_0</item>
|
||||||
|
<item>@string/license_name_cc_by_sa_4_0</item>
|
||||||
|
</array>
|
||||||
|
</resources>
|
||||||
|
|
@ -1,23 +1,22 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<PreferenceScreen
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:key="defaultLicense"
|
android:key="defaultLicense"
|
||||||
android:title="@string/preference_license"
|
android:title="@string/preference_license"
|
||||||
android:defaultValue="CC BY-SA"
|
android:entries="@array/pref_defaultLicense_entries"
|
||||||
|
android:entryValues="@array/pref_defaultLicense_values"
|
||||||
|
android:defaultValue="@string/license_name_cc_by_sa_4_0"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
|
android:key="allowGps"
|
||||||
android:title="@string/allow_gps"
|
android:title="@string/allow_gps"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:summary="@string/allow_gps_summary"
|
android:summary="@string/allow_gps_summary"
|
||||||
android:key="allowGps" />
|
/>
|
||||||
|
|
||||||
<Preference android:title="@string/become_a_tester_title"
|
|
||||||
android:summary="@string/become_a_tester_description">
|
|
||||||
<intent android:action="android.intent.action.VIEW"
|
|
||||||
android:data="@string/beta_opt_in_link" />
|
|
||||||
</Preference>
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/preference_theme"
|
android:title="@string/preference_theme"
|
||||||
|
|
@ -25,5 +24,10 @@
|
||||||
android:summary="@string/preference_theme_summary"
|
android:summary="@string/preference_theme_summary"
|
||||||
android:key="theme" />
|
android:key="theme" />
|
||||||
|
|
||||||
|
<Preference android:title="@string/become_a_tester_title"
|
||||||
|
android:summary="@string/become_a_tester_description">
|
||||||
|
<intent android:action="android.intent.action.VIEW"
|
||||||
|
android:data="@string/beta_opt_in_link" />
|
||||||
|
</Preference>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue