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) {