diff --git a/res/drawable-land-hdpi/options_add_default.png b/res/drawable-land-hdpi/options_add_default.png
index f85f44628..41606d99d 100644
Binary files a/res/drawable-land-hdpi/options_add_default.png and b/res/drawable-land-hdpi/options_add_default.png differ
diff --git a/res/drawable-land-hdpi/options_add_default_alt.png b/res/drawable-land-hdpi/options_add_default_alt.png
index 2c5af470b..a0cee4151 100644
Binary files a/res/drawable-land-hdpi/options_add_default_alt.png and b/res/drawable-land-hdpi/options_add_default_alt.png differ
diff --git a/res/drawable-land-hdpi/options_add_disabled.png b/res/drawable-land-hdpi/options_add_disabled.png
index 2b9997731..71b166a62 100644
Binary files a/res/drawable-land-hdpi/options_add_disabled.png and b/res/drawable-land-hdpi/options_add_disabled.png differ
diff --git a/res/drawable-land-hdpi/options_add_disabled_alt.png b/res/drawable-land-hdpi/options_add_disabled_alt.png
index 883fd3cca..8d6dbfb39 100644
Binary files a/res/drawable-land-hdpi/options_add_disabled_alt.png and b/res/drawable-land-hdpi/options_add_disabled_alt.png differ
diff --git a/res/drawable-land-hdpi/options_add_over.png b/res/drawable-land-hdpi/options_add_over.png
index eddae5444..e97312e51 100644
Binary files a/res/drawable-land-hdpi/options_add_over.png and b/res/drawable-land-hdpi/options_add_over.png differ
diff --git a/res/drawable-land-hdpi/options_add_over_alt.png b/res/drawable-land-hdpi/options_add_over_alt.png
index df7f46b05..74338a55c 100644
Binary files a/res/drawable-land-hdpi/options_add_over_alt.png and b/res/drawable-land-hdpi/options_add_over_alt.png differ
diff --git a/res/drawable-land-hdpi/options_transfer_default.png b/res/drawable-land-hdpi/options_transfer_default.png
index 3c9ad5cb1..b42022c4f 100644
Binary files a/res/drawable-land-hdpi/options_transfer_default.png and b/res/drawable-land-hdpi/options_transfer_default.png differ
diff --git a/res/drawable-land-hdpi/options_transfer_disabled.png b/res/drawable-land-hdpi/options_transfer_disabled.png
index 95fea9ef3..31462adc6 100644
Binary files a/res/drawable-land-hdpi/options_transfer_disabled.png and b/res/drawable-land-hdpi/options_transfer_disabled.png differ
diff --git a/res/drawable-land-hdpi/options_transfer_over.png b/res/drawable-land-hdpi/options_transfer_over.png
index 4e13b8a6a..6d3ecd1cb 100644
Binary files a/res/drawable-land-hdpi/options_transfer_over.png and b/res/drawable-land-hdpi/options_transfer_over.png differ
diff --git a/res/values-FR/strings.xml b/res/values-FR/strings.xml
index 3f89e1739..6e92666cb 100644
--- a/res/values-FR/strings.xml
+++ b/res/values-FR/strings.xml
@@ -104,6 +104,7 @@
Initier les appels en vidéo
Activer la vidéo
+ Activer les animations
Remplacer + par 00
iLBC peut être indisponible suivant le processeur ARM et la version d\'Android.
Annulateur d\'écho
diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index cea289c94..b673cbae8 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -13,6 +13,7 @@
true
false
false
+ true
false
false
diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml
index ab91ae2b2..9f8c224f6 100644
--- a/res/values/non_localizable_strings.xml
+++ b/res/values/non_localizable_strings.xml
@@ -56,6 +56,7 @@
pref_video_automatically_accept_video_key
pref_video_initiate_call_with_video_key
pref_video_enable_key
+ pref_animation_enable_key
pref_escape_plus_key
pref_echo_cancellation_key
pref_autostart_key
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c7cbfaad7..c78482242 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -136,6 +136,7 @@
Initiate video calls
Enable Video
+ Enable Animations
Replace + by 00
iLBC might be unavailable depending on ARM processor and Android OS version.
Echo cancellation
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 40d0a754e..9cb3258e7 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -1,6 +1,9 @@
+
+
@@ -41,6 +44,11 @@
android:defaultValue="true"
android:title="@string/pref_video_enable_title"
android:key="@string/pref_video_enable_key" />
+
+
contactList, sipContactList;
private Cursor contactCursor, sipContactCursor;
@@ -159,6 +159,8 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
LinphoneManager.getLc().setDeviceRotation(rotation);
mAlwaysChangingPhoneAngle = rotation;
+
+ updateAnimationsState();
}
private void initButtons() {
@@ -255,6 +257,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
case ACCOUNT_SETTINGS:
newFragment = new AccountPreferencesFragment();
break;
+ case ABOUT:
case ABOUT_INSTEAD_OF_CHAT:
case ABOUT_INSTEAD_OF_SETTINGS:
newFragment = new AboutFragment();
@@ -278,6 +281,15 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
}
}
+ private void updateAnimationsState() {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ isAnimationDisabled = getApplicationContext().getResources().getBoolean(R.bool.disable_animations) || !prefs.getBoolean(getString(R.string.pref_animation_enable_key), true);
+ }
+
+ public boolean isAnimationDisabled() {
+ return isAnimationDisabled;
+ }
+
private void changeFragment(Fragment newFragment, FragmentsAvailable newFragmentType, boolean withoutAnimation) {
if (getResources().getBoolean(R.bool.show_statusbar_only_on_dialer)) {
if (newFragmentType == FragmentsAvailable.DIALER) {
@@ -293,7 +305,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
- if (!withoutAnimation && !getResources().getBoolean(R.bool.disable_animations) && currentFragment.shouldAnimate()) {
+ if (!withoutAnimation && !isAnimationDisabled && currentFragment.shouldAnimate()) {
if (newFragmentType.isRightOf(currentFragment)) {
transaction.setCustomAnimations(R.anim.slide_in_right_to_left, R.anim.slide_out_right_to_left, R.anim.slide_in_left_to_right, R.anim.slide_out_left_to_right);
} else {
@@ -344,7 +356,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
ll.setVisibility(View.INVISIBLE);
}
- if (!withoutAnimation && !getResources().getBoolean(R.bool.disable_animations) && currentFragment.shouldAnimate()) {
+ if (!withoutAnimation && !isAnimationDisabled && currentFragment.shouldAnimate()) {
if (newFragmentType.isRightOf(currentFragment)) {
transaction.setCustomAnimations(R.anim.slide_in_right_to_left, R.anim.slide_out_right_to_left, R.anim.slide_in_left_to_right, R.anim.slide_out_left_to_right);
} else {
@@ -445,6 +457,10 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
changeCurrentFragment(FragmentsAvailable.CONTACTS, extras);
}
+ public void displayAbout() {
+ changeCurrentFragment(FragmentsAvailable.ABOUT, null);
+ }
+
public void displayChat(String sipUri) {
LinphoneAddress lAddress = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri);
Uri uri = LinphoneUtils.findUriPictureOfContactAndSetDisplayName(lAddress, getContentResolver());
@@ -592,6 +608,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
public void applyConfigChangesIfNeeded() {
if (nextFragment != FragmentsAvailable.SETTINGS && nextFragment != FragmentsAvailable.ACCOUNT_SETTINGS) {
reloadConfig();
+ updateAnimationsState();
}
}
@@ -709,7 +726,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
if (missedCallsCount > 0) {
missedCalls.setText(missedCallsCount + "");
missedCalls.setVisibility(View.VISIBLE);
- if (!getResources().getBoolean(R.bool.disable_animations)) {
+ if (!isAnimationDisabled) {
missedCalls.startAnimation(AnimationUtils.loadAnimation(LinphoneActivity.this, R.anim.bounce));
}
} else {
@@ -732,7 +749,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
missedChats.setTextSize(20);
}
missedChats.setVisibility(View.VISIBLE);
- if (!getResources().getBoolean(R.bool.disable_animations)) {
+ if (!isAnimationDisabled) {
missedChats.startAnimation(AnimationUtils.loadAnimation(LinphoneActivity.this, R.anim.bounce));
}
} else {
@@ -1087,6 +1104,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
if (currentFragment == FragmentsAvailable.SETTINGS) {
reloadConfig();
+ updateAnimationsState();
}
}
} else if (keyCode == KeyEvent.KEYCODE_MENU && statusFragment != null) {
diff --git a/src/org/linphone/PreferencesFragment.java b/src/org/linphone/PreferencesFragment.java
index e70ecff76..514db658d 100644
--- a/src/org/linphone/PreferencesFragment.java
+++ b/src/org/linphone/PreferencesFragment.java
@@ -71,9 +71,10 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa
private int nbAccounts = 1;
private PreferenceCategory accounts;
- private static final int ACCOUNTS_SETTINGS_ID = 0;
- private static final int WIZARD_SETTINGS_ID = 1;
- private static final int CAMERA_SETTINGS_ID = 5;
+ private static final int ABOUT_SETTINGS_ID = 0;
+ private static final int ACCOUNTS_SETTINGS_ID = 1;
+ private static final int WIZARD_SETTINGS_ID = 2;
+ private static final int CAMERA_SETTINGS_ID = 6;
private static final int WIZARD_INTENT = 1;
public PreferencesFragment() {
@@ -99,6 +100,10 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa
addWizardPreferenceButton();
}
+ if (getResources().getBoolean(R.bool.disable_animations)) {
+ uncheckDisableAndHideCheckbox(R.string.pref_animation_enable_key);
+ }
+
addTransportChecboxesListener();
ecCalibratePref = (CheckBoxPreference) findPreference(pref_echo_canceller_calibration_key);
@@ -174,6 +179,21 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa
Preference enableVideo = findPreference(R.string.pref_video_enable_key);
enableVideo.setLayoutResource(R.layout.hidden);
}
+
+ if (getResources().getBoolean(R.bool.display_about_in_settings)) {
+ getPreferenceScreen().getPreference(ABOUT_SETTINGS_ID).setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ if (LinphoneActivity.isInstanciated()) {
+ LinphoneActivity.instance().displayAbout();
+ return true;
+ }
+ return false;
+ }
+ });
+ } else {
+ getPreferenceScreen().getPreference(ABOUT_SETTINGS_ID).setLayoutResource(R.layout.hidden);
+ }
}
private void hidePreferenceCategory(int key) {