Skip to content
Snippets Groups Projects
Commit 39e42593 authored by Adrien Béraud's avatar Adrien Béraud Committed by Guillaume Roguez
Browse files

ui: update account preferences

Tuleap: #102
Change-Id: I89f6a285d84cbc40784963077b92683269f0ce4a
parent 2457c332
Branches
Tags
No related merge requests found
Showing
with 155 additions and 199 deletions
......@@ -113,7 +113,7 @@ as that of the covered work.
android:name=".client.AccountEditionActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppThemeWithoutOverlay" />
android:theme="@style/AppThemeWithoutOverlayCompatNoShadow" />
<activity
android:name=".client.DetailHistoryActivity"
android:label="@string/app_name"
......
/*
* Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
* Copyright (C) 2004-2015 Savoir-faire Linux Inc.
*
* Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
* Alexandre Savard <alexandre.savard@savoirfairelinux.com>
* Adrien Béraud <adrien.beraud@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -17,17 +18,6 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Additional permission under GNU GPL version 3 section 7:
*
* If you modify this program, or any covered work, by linking or
* combining it with the OpenSSL project's OpenSSL library (or a
* modified version of that library), containing parts covered by the
* terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
* grants you additional permission to convey the resulting work.
* Corresponding Source for a non-source form of such a combination
* shall include the source code for the parts of OpenSSL used as well
* as that of the covered work.
*/
package cx.ring.client;
......@@ -41,9 +31,12 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.v13.app.FragmentStatePagerAdapter;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.util.Pair;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
......@@ -55,16 +48,14 @@ import cx.ring.fragments.SecurityAccountFragment;
import cx.ring.model.account.Account;
import cx.ring.service.IDRingService;
import cx.ring.service.LocalService;
import com.astuetz.PagerSlidingTabStrip;
import java.util.ArrayList;
import java.util.Locale;
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import cx.ring.fragments.GeneralAccountFragment;
public class AccountEditionActivity extends Activity implements LocalService.Callbacks, GeneralAccountFragment.Callbacks, AudioManagementFragment.Callbacks,
public class AccountEditionActivity extends AppCompatActivity implements LocalService.Callbacks, GeneralAccountFragment.Callbacks, AudioManagementFragment.Callbacks,
AdvancedAccountFragment.Callbacks, SecurityAccountFragment.Callbacks, NestedSettingsFragment.Callbacks {
private static final String TAG = AccountEditionActivity.class.getSimpleName();
......@@ -96,36 +87,38 @@ public class AccountEditionActivity extends Activity implements LocalService.Cal
mBound = true;
setContentView(R.layout.activity_account_settings);
getActionBar().setDisplayHomeAsUpEnabled(true);
final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setElevation(0);
String account_id = getIntent().getData().getLastPathSegment();
Log.i(TAG, "Service connected " + className.getClassName() + " " + getIntent().getData().toString());
acc_selected = service.getAccount(account_id);
acc_selected.addObserver(mAccountObserver);
getActionBar().setTitle(acc_selected.getAlias());
actionBar.setTitle(acc_selected.getAlias());
ArrayList<Fragment> fragments = new ArrayList<>();
ArrayList<Pair<String, Fragment>> fragments = new ArrayList<>();
if (acc_selected.isIP2IP()) {
fragments.add(new AudioManagementFragment());
fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_audio_tab), new AudioManagementFragment()));
} else {
fragments.add(new GeneralAccountFragment());
fragments.add(new AudioManagementFragment());
fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_basic_tab), new GeneralAccountFragment()));
fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_audio_tab), new AudioManagementFragment()));
if(acc_selected.isSip())
{
fragments.add(new AdvancedAccountFragment());
fragments.add(new SecurityAccountFragment());
fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_advanced_tab), new AdvancedAccountFragment()));
fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_security_tab), new SecurityAccountFragment()));
}
}
ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
final ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
mPreferencesPagerAdapter = new PreferencesPagerAdapter(AccountEditionActivity.this, getFragmentManager(), fragments);
mViewPager.setAdapter(mPreferencesPagerAdapter);
mViewPager.setOffscreenPageLimit(3);
final PagerSlidingTabStrip strip = PagerSlidingTabStrip.class.cast(findViewById(R.id.pager_sliding_strip));
strip.setViewPager(mViewPager);
com.astuetz.PagerSlidingTabStrip mSlidingTabLayout = (com.astuetz.PagerSlidingTabStrip) findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setViewPager(mViewPager);
}
@Override
......@@ -215,7 +208,7 @@ public class AccountEditionActivity extends Activity implements LocalService.Cal
Map<String, String> details = acc_selected.getDetails();
service.getRemoteService().setAccountDetails(acc_selected.getAccountID(), details);
Log.w(TAG, "service.setAccountDetails " + details.get("Account.hostname"));
getActionBar().setTitle(acc_selected.getAlias());;
getSupportActionBar().setTitle(acc_selected.getAlias());;
} catch (RemoteException e) {
e.printStackTrace();
......@@ -263,16 +256,15 @@ public class AccountEditionActivity extends Activity implements LocalService.Cal
return service;
}
public class PreferencesPagerAdapter extends FragmentStatePagerAdapter {
public class PreferencesPagerAdapter extends FragmentPagerAdapter {
Context mContext;
ArrayList<Fragment> fragments;
ArrayList<Pair<String, Fragment>> fragments;
public PreferencesPagerAdapter(Context c, FragmentManager fm, ArrayList<Fragment> items) {
public PreferencesPagerAdapter(Context c, FragmentManager fm, ArrayList<Pair<String, Fragment>> items) {
super(fm);
mContext = c;
fragments = new ArrayList<Fragment>(items);
fragments = items;
}
@Override
......@@ -282,29 +274,12 @@ public class AccountEditionActivity extends Activity implements LocalService.Cal
@Override
public Fragment getItem(int position) {
return fragments.get(position);
return fragments.get(position).second;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
if (acc_selected.isIP2IP()) {
return getString(R.string.account_preferences_audio_tab).toUpperCase(Locale.getDefault());
} else {
return getString(R.string.account_preferences_basic_tab).toUpperCase(Locale.getDefault());
}
case 1:
return getString(R.string.account_preferences_audio_tab).toUpperCase(Locale.getDefault());
case 2:
return getString(R.string.account_preferences_advanced_tab).toUpperCase(Locale.getDefault());
case 3:
return getString(R.string.account_preferences_security_tab).toUpperCase(Locale.getDefault());
default:
Log.e(TAG, "getPreferencePageTitle: unknown tab position " + position);
break;
}
return null;
return fragments.get(position).first;
}
}
......
......@@ -39,9 +39,7 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
......
......@@ -122,7 +122,6 @@ public class AccountsManagementFragment extends Fragment {
this.setHasOptionsMenu(true);
mShortAnimationDuration = getResources().getInteger(android.R.integer.config_mediumAnimTime);
Log.i(TAG, "anim time: " + mShortAnimationDuration);
//getLoaderManager().initLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);
IntentFilter intentFilter = new IntentFilter();
......@@ -416,11 +415,14 @@ public class AccountsManagementFragment extends Fragment {
private void refreshAccountList() {
Log.i(TAG, "refreshAccountList");
mAccountsAdapter.replaceAll(mCallbacks.getService().getAccounts());
LocalService service = mCallbacks.getService();
if (service == null)
return;
mAccountsAdapter.replaceAll(service.getAccounts());
if (mAccountsAdapter.isEmpty()) {
mDnDListView.setEmptyView(getView().findViewById(R.id.empty_account_list));
}
mIP2IPAdapter.replaceAll(mCallbacks.getService().getIP2IPAccount());
mIP2IPAdapter.replaceAll(service.getIP2IPAccount());
Log.i(TAG, "refreshAccountList DONE");
mAccountsAdapter.notifyDataSetChanged();
mIP2IPAdapter.notifyDataSetChanged();
......
......@@ -44,6 +44,7 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceFragment;
import android.preference.SwitchPreference;
import android.util.Log;
import cx.ring.model.account.AccountDetail;
import cx.ring.model.account.AccountDetailAdvanced;
......@@ -113,7 +114,7 @@ public class AdvancedAccountFragment extends PreferenceFragment {
if (!p.isTwoState) {
pref.setSummary(p.mValue);
} else if (pref.getKey().contentEquals(AccountDetailAdvanced.CONFIG_STUN_ENABLE)) {
((CheckBoxPreference) pref).setChecked(p.mValue.contentEquals("true"));
((SwitchPreference) pref).setChecked(p.mValue.contentEquals("true"));
findPreference(AccountDetailAdvanced.CONFIG_STUN_SERVER).setEnabled(p.mValue.contentEquals("true"));
} else if (pref.getKey().contentEquals("Account.publishedSameAsLocal")) {
((CheckBoxPreference) pref).setChecked(p.mValue.contentEquals("true"));
......
......@@ -49,10 +49,9 @@ import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.RemoteException;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceFragment;
import android.preference.SwitchPreference;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
......@@ -67,7 +66,8 @@ import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class AudioManagementFragment extends PreferenceFragment {
public class AudioManagementFragment extends PreferenceFragment
{
static final String TAG = AudioManagementFragment.class.getSimpleName();
protected Callbacks mCallbacks = sDummyCallbacks;
......@@ -235,7 +235,6 @@ public class AudioManagementFragment extends PreferenceFragment {
totalHeight += firstHeight;
}
totalHeight += getView().findViewById(R.id.list_header_title).getMeasuredHeight();
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) llMain.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount()));
llMain.setLayoutParams(params);
......@@ -243,23 +242,22 @@ public class AudioManagementFragment extends PreferenceFragment {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
addPreferencesFromResource(R.xml.account_audio_prefs);
listAdapter = new CodecAdapter(getActivity());
listAdapter.setDataset(codecs);
setPreferenceDetails(mCallbacks.getAccount().getAdvancedDetails());
findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_PATH).setEnabled(
((CheckBoxPreference) findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED)).isChecked());
((SwitchPreference) findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED)).isChecked());
addPreferenceListener(mCallbacks.getAccount().getAdvancedDetails(), changeAudioPreferenceListener);
}
Preference.OnPreferenceChangeListener changeAudioPreferenceListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference instanceof CheckBoxPreference) {
if (preference instanceof SwitchPreference) {
if (preference.getKey().contentEquals(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED))
getPreferenceScreen().findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_PATH).setEnabled((Boolean) newValue);
mCallbacks.getAccount().getAdvancedDetails().setDetailString(preference.getKey(), newValue.toString());
......@@ -296,7 +294,7 @@ public class AudioManagementFragment extends PreferenceFragment {
}
} else {
((CheckBoxPreference) pref).setChecked(p.mValue.contentEquals("true"));
((SwitchPreference) pref).setChecked(p.mValue.contentEquals("true"));
}
} else {
......@@ -305,7 +303,7 @@ public class AudioManagementFragment extends PreferenceFragment {
}
}
private void addPreferenceListener(AccountDetail details, OnPreferenceChangeListener listener) {
private void addPreferenceListener(AccountDetail details, Preference.OnPreferenceChangeListener listener) {
for (AccountDetail.PreferenceEntry p : details.getDetailValues()) {
Log.i(TAG, "addPreferenceListener: pref " + p.mKey + p.mValue);
Preference pref = findPreference(p.mKey);
......@@ -377,14 +375,16 @@ public class AudioManagementFragment extends PreferenceFragment {
entryView = (CodecView) rowView.getTag();
}
if (items.get(pos).isSpeex())
Codec codec = items.get(pos);
if (codec.isSpeex())
entryView.samplerate.setVisibility(View.VISIBLE);
else
entryView.samplerate.setVisibility(View.GONE);
entryView.name.setText(items.get(pos).getName());
entryView.samplerate.setText(items.get(pos).getSampleRate());
entryView.enabled.setChecked(items.get(pos).isEnabled());
entryView.name.setText(codec.getName());
entryView.samplerate.setText(codec.getSampleRate());
entryView.enabled.setChecked(codec.isEnabled());
return rowView;
......
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context=".client.AccountEditionActivity">
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/pager_sliding_strip"
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:layout_alignParentTop="true"
android:textColor="@color/white"
android:background="@color/color_primary_light_shadow"
app:pstsIndicatorColor="@color/color_primary_light"
android:layout_height="48dp"
android:background="@color/color_primary_light"
android:elevation="4dp"
android:textColor="@color/text_color_primary_dark"
app:pstsUnderlineHeight="0dp"
app:pstsShouldExpand="true"
app:pstsUnderlineColor="@color/color_primary_light"
/>
app:paddingStart="20dp"
app:pstsIndicatorHeight="2dp"
app:pstsIndicatorColor="@android:color/white"
app:pstsDividerColor="@android:color/transparent"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/pager_sliding_strip" />
android:layout_below="@id/sliding_tabs"
android:layout_alignParentBottom="true" />
<FrameLayout
android:id="@+id/hidden_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:layout_height="match_parent"
android:layout_alignTop="@+id/pager">
</FrameLayout>
</RelativeLayout>
\ No newline at end of file
......@@ -6,12 +6,13 @@
android:orientation="vertical">
<TextView
style="@style/Subheader"
android:layout_width="match_parent"
android:layout_height="48dp"
android:paddingLeft="72dp"
android:text="Comptes"
style="@style/Subheader"
android:gravity="center_vertical" />
android:gravity="center_vertical"
android:paddingStart="72dp"
android:paddingEnd="72dp"
android:text="@string/normal_accounts_titles" />
<RelativeLayout
android:layout_width="match_parent"
......@@ -25,6 +26,7 @@
android:background="@color/white"
android:choiceMode="multipleChoice"
android:dividerHeight="1px"
android:elevation="2dp"
android:visibility="visible"
dslv:collapsed_height="1px"
dslv:drag_enabled="true"
......@@ -46,8 +48,7 @@
android:text="@string/empty_account_list"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/text_color_secondary"
android:visibility="gone">
</TextView>
android:visibility="gone" />
</RelativeLayout>
......@@ -55,6 +56,7 @@
android:id="@+id/ip2ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white" />
android:background="@color/white"
android:elevation="2dp" />
</LinearLayout>
\ No newline at end of file
......@@ -5,7 +5,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical" >
......@@ -13,34 +13,20 @@
<LinearLayout
android:id="@+id/lv_holder_prefs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp" >
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
<TextView
android:id="@+id/list_header_title"
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:paddingBottom="2dip"
android:paddingLeft="5dp"
android:paddingTop="2dp"
android:text="Codecs" />
<LinearLayout
android:id="@+id/lv_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
......@@ -49,7 +35,6 @@
android:id="@+id/dndlistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:choiceMode="multipleChoice"
android:descendantFocusability="beforeDescendants"
android:dividerHeight="1px"
......@@ -63,6 +48,7 @@
dslv:float_background_color="@color/action_blue"
dslv:remove_enabled="false"
dslv:slide_shuffle_speed="0.3" />
</LinearLayout>
</LinearLayout>
......
......@@ -12,7 +12,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:layout_marginLeft="16dp"
android:src="@drawable/ic_reorder_black_24dp"/>
<TextView
......@@ -20,22 +20,24 @@
android:layout_width="wrap_content"
android:layout_height="?android:attr/listPreferredItemHeight"
android:layout_toRightOf="@+id/drag_handle"
android:layout_marginLeft="4dp"
android:layout_marginLeft="32dp"
android:gravity="center_vertical"
android:textSize="18sp" />
android:textSize="16sp"
android:textColor="@color/text_color_primary"
android:text="H.264" />
<TextView
android:id="@+id/codec_samplerate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/codec_name"
android:layout_alignTop="@+id/codec_name"
android:layout_centerVertical="true"
android:layout_marginLeft="4dp"
android:layout_toRightOf="@+id/codec_name"
android:gravity="center_vertical"
android:textSize="12sp"
android:visibility="gone" />
android:text="32000"
android:textColor="@color/text_color_secondary"
android:layout_marginLeft="16dp"
android:layout_alignBaseline="@+id/codec_name" />
<CheckBox
android:id="@+id/codec_checked"
......@@ -44,6 +46,8 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:clickable="false"
android:focusable="false" />
android:focusable="false"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menuitem_delete"
android:icon="@drawable/ic_delete_white_24dp"
android:showAsAction="ifRoom"
android:title="@string/ab_account_edition_1"/>
android:title="@string/ab_account_edition_1"
app:showAsAction="ifRoom"/>
</menu>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
Copyright (C) 2004-2015 Savoir-faire Linux Inc.
Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -17,19 +18,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Additional permission under GNU GPL version 3 section 7:
If you modify this program, or any covered work, by linking or
combining it with the OpenSSL project's OpenSSL library (or a
modified version of that library), containing parts covered by the
terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
grants you additional permission to convey the resulting work.
Corresponding Source for a non-source form of such a combination
shall include the source code for the parts of OpenSSL used as well
as that of the covered work.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/cx.ring" >
......@@ -79,7 +68,7 @@ as that of the covered work.
android:id="@+id/account_stun_category"
android:title="@string/account_published_address_label" >
<CheckBoxPreference
<SwitchPreference
android:id="@+id/account_stun_enable"
android:key="STUN.enable"
android:persistent="false"
......
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
<?xml version="1.0" encoding="utf-8"?><!--
Copyright (C) 2004-2015 Savoir-faire Linux Inc.
Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -17,17 +17,6 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Additional permission under GNU GPL version 3 section 7:
If you modify this program, or any covered work, by linking or
combining it with the OpenSSL project's OpenSSL library (or a
modified version of that library), containing parts covered by the
terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
grants you additional permission to convey the resulting work.
Corresponding Source for a non-source form of such a combination
shall include the source code for the parts of OpenSSL used as well
as that of the covered work.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
......@@ -45,7 +34,7 @@ as that of the covered work.
<PreferenceCategory
android:id="@+id/audio_ringtone_category"
android:title="@string/account_ringtone_label">
<CheckBoxPreference
<SwitchPreference
android:id="@+id/audio_ringtone"
android:key="Account.ringtoneEnabled"
android:persistent="false"
......@@ -53,10 +42,15 @@ as that of the covered work.
<Preference
android:id="@+id/audio_ringtone_path"
android:key="Account.ringtonePath"
android:enabled="false"
android:key="Account.ringtonePath"
android:persistent="false"
android:title="@string/account_ringtone_path_label" />
</PreferenceCategory>
<PreferenceCategory
android:id="@+id/audio_codecs"
android:title="Codecs">
</PreferenceCategory>
</PreferenceScreen>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment