diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-08-28 12:37:09 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-08-28 12:37:09 +0200 |
| commit | 3fe7f69b0c99cb64b0dcbd72f4d46c4ce5961d9f (patch) | |
| tree | 3934d502ade4b8bd6b2a61f27ab1a3665d6d6322 /main | |
| parent | 2e17db77a3358e8b11da126a846d337fa6b1db90 (diff) | |
| parent | d48db1e4b122347cfa6a30e5d97b93afab5f7fb4 (diff) | |
| download | cgeo-3fe7f69b0c99cb64b0dcbd72f4d46c4ce5961d9f.zip cgeo-3fe7f69b0c99cb64b0dcbd72f4d46c4ce5961d9f.tar.gz cgeo-3fe7f69b0c99cb64b0dcbd72f4d46c4ce5961d9f.tar.bz2 | |
Merge branch 'issue-2803' into upstream
Conflicts:
main/res/xml/preferences.xml
Diffstat (limited to 'main')
| -rw-r--r-- | main/AndroidManifest.xml | 3 | ||||
| -rw-r--r-- | main/res/values/preference_keys.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 3 | ||||
| -rw-r--r-- | main/res/xml/preferences.xml | 9 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/activity/AbstractActivity.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/activity/AbstractListActivity.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/activity/ActivityMixin.java | 10 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/CGeoMap.java | 2 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/Settings.java | 13 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/SettingsActivity.java | 9 |
10 files changed, 48 insertions, 6 deletions
diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml index 2d814ba..20db392 100644 --- a/main/AndroidManifest.xml +++ b/main/AndroidManifest.xml @@ -39,7 +39,8 @@ android:backupAgent="cgeo.geocaching.backup.CentralBackupAgent" android:icon="@drawable/cgeo" android:label="@string/app_name" - android:theme="@style/cgeo" > + android:theme="@style/cgeo" + android:hardwareAccelerated="false"> <uses-library android:name="com.google.android.maps" android:required="false" /> diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml index e8840f5..2fe8774 100644 --- a/main/res/values/preference_keys.xml +++ b/main/res/values/preference_keys.xml @@ -180,4 +180,5 @@ <string name="pref_appearance">pref_appearance</string> <string name="pref_changelog_last_checksum">changelog_last_checksum</string> <string name="pref_caches_history">caches_history</string> + <string name="pref_hardware_acceleration">hardware_acceleration</string> </resources> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 32249dd..c4cfb85 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -538,6 +538,9 @@ <string name="init_create_memory_dump">Create memory dump</string> <string name="init_memory_dump">Memory dump</string> <string name="init_memory_dumped">Memory dumped to %s</string> + <string name="init_hardware_acceleration_title">Hardware accelerated rendering</string> + <string name="init_hardware_acceleration_note">Hardware acceleration renders graphical elements faster on the screen. However on some devices the Android operating system contains bugs and some text may appear blurred (notably bold characters). Disable hardware acceleration if this happens to you.</string> + <string name="init_hardware_acceleration">Enable hardware acceleration</string> <string name="settings_open_website">Open website</string> <string name="settings_settings">Settings</string> <string name="settings_information">Information</string> diff --git a/main/res/xml/preferences.xml b/main/res/xml/preferences.xml index 82c8f13..78d79bd 100644 --- a/main/res/xml/preferences.xml +++ b/main/res/xml/preferences.xml @@ -764,6 +764,15 @@ android:key="@string/pref_lowpowermode" android:title="@string/init_low_power_mode" /> </PreferenceCategory> + <PreferenceCategory android:title="@string/init_hardware_acceleration_title"> + <cgeo.geocaching.settings.TextPreference + android:layout="@layout/text_preference" + android:text="@string/init_hardware_acceleration_note" /> + + <CheckBoxPreference + android:key="@string/pref_hardware_acceleration" + android:title="@string/init_hardware_acceleration" /> + </PreferenceCategory> <PreferenceCategory android:title="@string/init_debug_title" > <cgeo.geocaching.settings.TextPreference android:layout="@layout/text_preference" diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java index fbe9aca..603211e 100644 --- a/main/src/cgeo/geocaching/activity/AbstractActivity.java +++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java @@ -146,7 +146,7 @@ public abstract class AbstractActivity extends ActionBarActivity implements IAbs // only needed in some activities, but implemented in super class nonetheless Cookies.restoreCookieStore(Settings.getCookieStore()); - ActivityMixin.keepScreenOn(this, keepScreenOn); + ActivityMixin.onCreate(this, keepScreenOn); } @Override diff --git a/main/src/cgeo/geocaching/activity/AbstractListActivity.java b/main/src/cgeo/geocaching/activity/AbstractListActivity.java index 718dc70..d7482c3 100644 --- a/main/src/cgeo/geocaching/activity/AbstractListActivity.java +++ b/main/src/cgeo/geocaching/activity/AbstractListActivity.java @@ -67,7 +67,7 @@ public abstract class AbstractListActivity extends ActionBarListActivity impleme res = this.getResources(); app = (CgeoApplication) this.getApplication(); - ActivityMixin.keepScreenOn(this, keepScreenOn); + ActivityMixin.onCreate(this, keepScreenOn); } final protected void setTitle(final String title) { diff --git a/main/src/cgeo/geocaching/activity/ActivityMixin.java b/main/src/cgeo/geocaching/activity/ActivityMixin.java index 6bca871..28042b0 100644 --- a/main/src/cgeo/geocaching/activity/ActivityMixin.java +++ b/main/src/cgeo/geocaching/activity/ActivityMixin.java @@ -16,7 +16,9 @@ import android.support.v4.app.TaskStackBuilder; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.Gravity; +import android.view.Window; import android.view.WindowManager; +import android.view.WindowManager.LayoutParams; import android.widget.EditText; import android.widget.Toast; @@ -103,9 +105,13 @@ public final class ActivityMixin { postShowToast(activity, text, Toast.LENGTH_SHORT); } - public static void keepScreenOn(final Activity abstractActivity, final boolean keepScreenOn) { + public static void onCreate(final Activity abstractActivity, final boolean keepScreenOn) { + final Window window = abstractActivity.getWindow(); if (keepScreenOn) { - abstractActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + if (Settings.useHardwareAcceleration()) { + window.setFlags(LayoutParams.FLAG_HARDWARE_ACCELERATED, LayoutParams.FLAG_HARDWARE_ACCELERATED); } } diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java index d64a1d8..0d24cc1 100644 --- a/main/src/cgeo/geocaching/maps/CGeoMap.java +++ b/main/src/cgeo/geocaching/maps/CGeoMap.java @@ -429,7 +429,7 @@ public class CGeoMap extends AbstractMap implements ViewFactory { // reset status noMapTokenShowed = false; - ActivityMixin.keepScreenOn(activity, true); + ActivityMixin.onCreate(activity, true); // set layout diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java index fdcd94f..edc5f21 100644 --- a/main/src/cgeo/geocaching/settings/Settings.java +++ b/main/src/cgeo/geocaching/settings/Settings.java @@ -34,6 +34,7 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.res.Configuration; import android.content.res.Resources; +import android.os.Build; import android.os.Environment; import android.preference.PreferenceManager; @@ -53,6 +54,10 @@ public class Settings { public static final int SHOW_WP_THRESHOLD_MAX = 50; private static final int MAP_SOURCE_DEFAULT = GoogleMapProvider.GOOGLE_MAP_ID.hashCode(); + public static final boolean HW_ACCEL_DISABLED_BY_DEFAULT = + StringUtils.equals(Build.MODEL, "HTC One X") || // HTC One X + StringUtils.equals(Build.MODEL, "GT-I8190"); // Samsung S3 mini + private final static int unitsMetric = 1; // twitter api keys @@ -1033,4 +1038,12 @@ public class Settings { history.add(0, geocode); putString(R.string.pref_caches_history, StringUtils.join(history, HISTORY_SEPARATOR)); } + + public static boolean useHardwareAcceleration() { + return getBoolean(R.string.pref_hardware_acceleration, !HW_ACCEL_DISABLED_BY_DEFAULT); + } + + public static boolean setUseHardwareAcceleration(final boolean useHardwareAcceleration) { + return putBoolean(R.string.pref_hardware_acceleration, useHardwareAcceleration); + } } diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java index 707a530..84cfae8 100644 --- a/main/src/cgeo/geocaching/settings/SettingsActivity.java +++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java @@ -1,5 +1,7 @@ package cgeo.geocaching.settings; +import butterknife.ButterKnife; + import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.DataStore; import cgeo.geocaching.Intents; @@ -130,6 +132,7 @@ public class SettingsActivity extends PreferenceActivity { initServicePreferences(); initNavigationMenuPreferences(); initMaintenanceButtons(); + initHardwareAccelerationPreferences(); for (final int k : new int[] { R.string.pref_username, R.string.pref_password, R.string.pref_pass_vote, R.string.pref_signature, @@ -380,6 +383,12 @@ public class SettingsActivity extends PreferenceActivity { }); } + public void initHardwareAccelerationPreferences() { + // We have to ensure that the preference is initialized so that devices with hardware acceleration disabled + // get the appropriate value. + getPreference(R.string.pref_hardware_acceleration).setDefaultValue(!Settings.HW_ACCEL_DISABLED_BY_DEFAULT); + } + private void initDbLocationPreference() { final Preference p = getPreference(R.string.pref_dbonsdcard); p.setPersistent(false); |
