Small UI fixes, debugging sndfile issues
diff --git a/jni/Android.mk b/jni/Android.mk
index 50ee913..551dc54 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -214,22 +214,42 @@
$(MY_LIBSNDFILE)/src/float32.c \
$(MY_LIBSNDFILE)/src/chanmap.c $(MY_LIBSNDFILE)/src/test_endswap.c $(MY_LIBSNDFILE)/src/rf64.c \
$(MY_LIBSNDFILE)/src/sndfile.c $(MY_LIBSNDFILE)/src/htk.c $(MY_LIBSNDFILE)/src/dither.c \
- $(MY_LIBSNDFILE)/src/test_log_printf.c $(MY_LIBSNDFILE)/src/txw.c $(MY_LIBSNDFILE)/src/ms_adpcm.c $(MY_LIBSNDFILE)/src/ima_adpcm.c $(MY_LIBSNDFILE)/src/flac.c $(MY_LIBSNDFILE)/src/aiff.c \
- $(MY_LIBSNDFILE)/src/wav.c $(MY_LIBSNDFILE)/src/macbinary3.c $(MY_LIBSNDFILE)/src/mat4.c $(MY_LIBSNDFILE)/src/pcm.c $(MY_LIBSNDFILE)/src/caf.c \
- $(MY_LIBSNDFILE)/src/audio_detect.c $(MY_LIBSNDFILE)/src/id3.c $(MY_LIBSNDFILE)/src/alaw.c $(MY_LIBSNDFILE)/src/macos.c $(MY_LIBSNDFILE)/src/file_io.c $(MY_LIBSNDFILE)/src/broadcast.c $(MY_LIBSNDFILE)/src/double64.c \
- $(MY_LIBSNDFILE)/src/raw.c $(MY_LIBSNDFILE)/src/test_broadcast_var.c \
- $(MY_LIBSNDFILE)/src/g72x.c $(MY_LIBSNDFILE)/src/command.c $(MY_LIBSNDFILE)/src/chunk.c $(MY_LIBSNDFILE)/src/avr.c $(MY_LIBSNDFILE)/src/sd2.c $(MY_LIBSNDFILE)/src/voc.c $(MY_LIBSNDFILE)/src/test_audio_detect.c \
- $(MY_LIBSNDFILE)/src/mpc2k.c $(MY_LIBSNDFILE)/src/gsm610.c $(MY_LIBSNDFILE)/src/dwd.c \
- $(MY_LIBSNDFILE)/src/interleave.c $(MY_LIBSNDFILE)/src/common.c $(MY_LIBSNDFILE)/src/test_strncpy_crlf.c $(MY_LIBSNDFILE)/src/sds.c $(MY_LIBSNDFILE)/src/pvf.c $(MY_LIBSNDFILE)/src/paf.c $(MY_LIBSNDFILE)/src/au.c \
- $(MY_LIBSNDFILE)/src/test_float.c \
- $(MY_LIBSNDFILE)/src/vox_adpcm.c $(MY_LIBSNDFILE)/src/ulaw.c $(MY_LIBSNDFILE)/src/strings.c $(MY_LIBSNDFILE)/src/svx.c $(MY_LIBSNDFILE)/src/test_conversions.c $(MY_LIBSNDFILE)/src/rx2.c $(MY_LIBSNDFILE)/src/nist.c \
- $(MY_LIBSNDFILE)/src/GSM610/code.c $(MY_LIBSNDFILE)/src/GSM610/gsm_destroy.c \
- $(MY_LIBSNDFILE)/src/GSM610/gsm_decode.c $(MY_LIBSNDFILE)/src/GSM610/short_term.c $(MY_LIBSNDFILE)/src/GSM610/gsm_create.c \
- $(MY_LIBSNDFILE)/src/GSM610/decode.c $(MY_LIBSNDFILE)/src/GSM610/gsm_option.c \
- $(MY_LIBSNDFILE)/src/GSM610/long_term.c $(MY_LIBSNDFILE)/src/GSM610/table.c $(MY_LIBSNDFILE)/src/GSM610/rpe.c $(MY_LIBSNDFILE)/src/GSM610/preprocess.c \
- $(MY_LIBSNDFILE)/src/GSM610/gsm_encode.c $(MY_LIBSNDFILE)/src/GSM610/lpc.c \
- $(MY_LIBSNDFILE)/src/GSM610/add.c $(MY_LIBSNDFILE)/src/dwvw.c $(MY_LIBSNDFILE)/src/wav_w64.c $(MY_LIBSNDFILE)/src/wve.c $(MY_LIBSNDFILE)/src/ogg.c $(MY_LIBSNDFILE)/src/w64.c $(MY_LIBSNDFILE)/src/test_file_io.c \
- $(MY_LIBSNDFILE)/src/ircam.c $(MY_LIBSNDFILE)/src/xi.c $(MY_LIBSNDFILE)/src/ima_oki_adpcm.c
+ $(MY_LIBSNDFILE)/src/test_log_printf.c $(MY_LIBSNDFILE)/src/txw.c \
+ $(MY_LIBSNDFILE)/src/ms_adpcm.c $(MY_LIBSNDFILE)/src/ima_adpcm.c \
+ $(MY_LIBSNDFILE)/src/flac.c $(MY_LIBSNDFILE)/src/aiff.c \
+ $(MY_LIBSNDFILE)/src/wav.c \
+ $(MY_LIBSNDFILE)/src/macbinary3.c \
+ $(MY_LIBSNDFILE)/src/mat4.c \
+ $(MY_LIBSNDFILE)/src/pcm.c \
+ $(MY_LIBSNDFILE)/src/caf.c \
+ $(MY_LIBSNDFILE)/src/audio_detect.c \
+ $(MY_LIBSNDFILE)/src/id3.c \
+ $(MY_LIBSNDFILE)/src/alaw.c $(MY_LIBSNDFILE)/src/macos.c $(MY_LIBSNDFILE)/src/file_io.c $(MY_LIBSNDFILE)/src/broadcast.c \
+ $(MY_LIBSNDFILE)/src/double64.c \
+ $(MY_LIBSNDFILE)/src/raw.c $(MY_LIBSNDFILE)/src/test_broadcast_var.c \
+ $(MY_LIBSNDFILE)/src/g72x.c $(MY_LIBSNDFILE)/src/command.c \
+ $(MY_LIBSNDFILE)/src/chunk.c $(MY_LIBSNDFILE)/src/avr.c \
+ $(MY_LIBSNDFILE)/src/sd2.c $(MY_LIBSNDFILE)/src/voc.c \
+ $(MY_LIBSNDFILE)/src/test_audio_detect.c \
+ $(MY_LIBSNDFILE)/src/mpc2k.c $(MY_LIBSNDFILE)/src/gsm610.c $(MY_LIBSNDFILE)/src/dwd.c \
+ $(MY_LIBSNDFILE)/src/interleave.c $(MY_LIBSNDFILE)/src/common.c \
+ $(MY_LIBSNDFILE)/src/test_strncpy_crlf.c $(MY_LIBSNDFILE)/src/sds.c \
+ $(MY_LIBSNDFILE)/src/pvf.c $(MY_LIBSNDFILE)/src/paf.c \
+ $(MY_LIBSNDFILE)/src/au.c \
+ $(MY_LIBSNDFILE)/src/test_float.c \
+ $(MY_LIBSNDFILE)/src/vox_adpcm.c $(MY_LIBSNDFILE)/src/ulaw.c \
+ $(MY_LIBSNDFILE)/src/strings.c $(MY_LIBSNDFILE)/src/svx.c \
+ $(MY_LIBSNDFILE)/src/test_conversions.c $(MY_LIBSNDFILE)/src/rx2.c \
+ $(MY_LIBSNDFILE)/src/nist.c \
+ $(MY_LIBSNDFILE)/src/GSM610/code.c $(MY_LIBSNDFILE)/src/GSM610/gsm_destroy.c \
+ $(MY_LIBSNDFILE)/src/GSM610/gsm_decode.c $(MY_LIBSNDFILE)/src/GSM610/short_term.c $(MY_LIBSNDFILE)/src/GSM610/gsm_create.c \
+ $(MY_LIBSNDFILE)/src/GSM610/decode.c $(MY_LIBSNDFILE)/src/GSM610/gsm_option.c \
+ $(MY_LIBSNDFILE)/src/GSM610/long_term.c $(MY_LIBSNDFILE)/src/GSM610/table.c $(MY_LIBSNDFILE)/src/GSM610/rpe.c $(MY_LIBSNDFILE)/src/GSM610/preprocess.c \
+ $(MY_LIBSNDFILE)/src/GSM610/gsm_encode.c $(MY_LIBSNDFILE)/src/GSM610/lpc.c \
+ $(MY_LIBSNDFILE)/src/GSM610/add.c $(MY_LIBSNDFILE)/src/dwvw.c \
+ $(MY_LIBSNDFILE)/src/wav_w64.c $(MY_LIBSNDFILE)/src/wve.c $(MY_LIBSNDFILE)/src/ogg.c $(MY_LIBSNDFILE)/src/w64.c \
+ $(MY_LIBSNDFILE)/src/test_file_io.c \
+ $(MY_LIBSNDFILE)/src/ircam.c $(MY_LIBSNDFILE)/src/xi.c $(MY_LIBSNDFILE)/src/ima_oki_adpcm.c
LOCAL_C_INCLUDES += $(APP_PROJECT_PATH)/jni/$(MY_LIBSNDFILE)/src \
diff --git a/res/layout/activity_sflphone_home.xml b/res/layout/activity_sflphone_home.xml
index 042b11b..e7d2dca 100644
--- a/res/layout/activity_sflphone_home.xml
+++ b/res/layout/activity_sflphone_home.xml
@@ -33,7 +33,7 @@
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
- android:layout_height="match_parent" >
+ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res/com.savoirfairelinux.sflphone">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
@@ -66,6 +66,7 @@
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical"
+ app:animateOnClick="true"
app:content="@+id/contacts_frame"
app:handle="@+id/slider_button" >
diff --git a/res/menu/account_creation.xml b/res/menu/account_creation.xml
index 9fc56fd..b412027 100644
--- a/res/menu/account_creation.xml
+++ b/res/menu/account_creation.xml
@@ -3,8 +3,7 @@
<item
android:id="@+id/menuitem_create"
- android:icon="@drawable/ic_checkmark_holo_light"
- android:showAsAction="ifRoom"
- android:title="Create"/>
+ android:showAsAction="always"
+ android:title="@string/ab_account_creation"/>
</menu>
\ No newline at end of file
diff --git a/res/menu/account_edition.xml b/res/menu/account_edition.xml
index 013fd4f..178aa35 100644
--- a/res/menu/account_edition.xml
+++ b/res/menu/account_edition.xml
@@ -3,13 +3,13 @@
<item
android:id="@+id/menuitem_delete"
- android:title="Delete"
+ android:title="@string/ab_account_edition_1"
android:showAsAction="ifRoom"
android:icon="@android:drawable/ic_menu_delete"/>
<item
android:id="@+id/menuitem_edit"
- android:title="Edit"
+ android:title="@string/ab_account_edition_2"
android:showAsAction="ifRoom"
android:icon="@android:drawable/ic_menu_edit"/>
</menu>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 86f71c3..d93d4e5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -40,6 +40,11 @@
<string name="title_section1">Call</string>
<string name="title_section2">History</string>
<string name="title_activity_sflphone_home">SFLphone</string>
+
+ <!-- AB menus -->
+ <string name="ab_account_creation">New Account</string>
+ <string name="ab_account_edition_1">Delete</string>
+ <string name="ab_account_edition_2">Edit</string>
<!-- Left Drawer -->
<!-- Accessibility -->
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
index 9970015..6813e53 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
@@ -91,6 +91,7 @@
initEdition();
getActionBar().setDisplayHomeAsUpEnabled(true);
+
requiredFields = new ArrayList<String>();
requiredFields.add(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS);
@@ -128,11 +129,7 @@
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
-
- Log.i(TAG, "onCreateOptionsMenu: " + mAccountID);
-
inflater.inflate(R.menu.account_edition, menu);
-
return true;
}
@@ -354,7 +351,7 @@
private AlertDialog createCancelDialog() {
Activity ownerActivity = this;
AlertDialog.Builder builder = new AlertDialog.Builder(ownerActivity);
- builder.setMessage("All parameters will be lost").setTitle("Account Creation").setPositiveButton("Ok", new DialogInterface.OnClickListener() {
+ builder.setMessage("Modifications will be lost").setTitle("Account Edition").setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Activity activity = ((Dialog) dialog).getOwnerActivity();
activity.finish();
diff --git a/src/com/savoirfairelinux/sflphone/client/CallActivity.java b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
index 58fb6dc..9c2c0c3 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
@@ -33,6 +33,7 @@
package com.savoirfairelinux.sflphone.client;
+import java.io.File;
import java.util.HashMap;
import android.app.Activity;
@@ -43,6 +44,7 @@
import android.content.ServiceConnection;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Environment;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.v4.widget.SlidingPaneLayout;
@@ -117,7 +119,7 @@
getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment).commit();
fragIsChanging = false;
- } else if(mCurrentCallFragment != null && mCurrentCallFragment.getBubbleView() != null){
+ } else if (mCurrentCallFragment != null && mCurrentCallFragment.getBubbleView() != null) {
mCurrentCallFragment.getBubbleView().restartDrawing();
}
@@ -256,8 +258,8 @@
mCallsFragment.update();
- if(mCurrentCallFragment != null)
- mCurrentCallFragment.changeCallState(callID, newState);
+ if (mCurrentCallFragment != null)
+ mCurrentCallFragment.changeCallState(callID, newState);
try {
HashMap<String, SipCall> callMap = (HashMap<String, SipCall>) service.getCallList();
@@ -290,7 +292,7 @@
@Override
public void onCallSelected(Conference conf) {
- if(mCurrentCallFragment == null || mCurrentCallFragment.getBubbleView() == null){
+ if (mCurrentCallFragment == null || mCurrentCallFragment.getBubbleView() == null) {
return;
}
mCurrentCallFragment.getBubbleView().stopThread();
@@ -410,10 +412,10 @@
public void onRecordCall(SipCall call) {
try {
- // service.setRecordPath(Environment.getExternalStorageDirectory().getAbsolutePath());
- Log.w(TAG, "Recording path" + service.getRecordPath());
- service.setRecordingCall(call.getCallId());
-
+ service.setRecordPath(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator);
+ Log.w(TAG, "Recording path" + service.getRecordPath());
+ service.toggleRecordingCall(call.getCallId());
+
} catch (RemoteException e) {
Log.e(TAG, "Cannot call service method", e);
}
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
index 5902d2f..bfe559a 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
@@ -165,6 +165,8 @@
mContactsFragment.setHandleView((RelativeLayout) findViewById(R.id.slider_button));
mDrawer.setmTrackHandle(findViewById(R.id.handle_title));
+
+
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
@@ -386,7 +388,7 @@
final PagerTabStrip strip = PagerTabStrip.class.cast(mViewPager.findViewById(R.id.pts_main));
strip.setDrawFullUnderline(false);
strip.setTabIndicatorColor(getResources().getColor(R.color.holo_blue_dark));
- strip.setBackgroundColor(getResources().getColor(R.color.lighter_gray));
+ strip.setBackgroundColor(getResources().getColor(R.color.darker_gray));
strip.setNonPrimaryAlpha(0.5f);
strip.setTextSpacing(25);
strip.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
index 1dab612..dd0bad6 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
@@ -119,7 +119,7 @@
finish();
return true;
default:
- return true;
+ return false;
}
}
diff --git a/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java b/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
index 53247d2..d2cd1ae 100644
--- a/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
+++ b/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
@@ -13,6 +13,8 @@
@Override
public void transformPage(View page, float position) {
- page.setRotationY(position * -30);
+ // page.setRotationY(position * -30);
+ final float normalizedposition = Math.abs(Math.abs(position) - 1);
+ page.setAlpha(normalizedposition);
}
}
\ No newline at end of file
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
index d5111c7..af758ef 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
@@ -14,8 +14,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.Toast;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.account.AccountDetail;
@@ -222,24 +220,4 @@
}
- private AlertDialog createCancelDialog() {
- Activity ownerActivity = getActivity();
- AlertDialog.Builder builder = new AlertDialog.Builder(ownerActivity);
- builder.setMessage("All parameters will be lost").setTitle("Account Creation").setPositiveButton("Ok", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- Activity activity = ((Dialog) dialog).getOwnerActivity();
- activity.finish();
- }
- }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- /* Terminate with no action */
- }
- });
-
- AlertDialog alertDialog = builder.create();
- alertDialog.setOwnerActivity(ownerActivity);
-
- return alertDialog;
- }
-
}
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
index 01e5159..cf96191 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
@@ -44,12 +44,13 @@
import android.os.Bundle;
import android.os.RemoteException;
import android.preference.Preference;
-import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
-import android.widget.Toast;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.account.AccountDetail;
@@ -64,7 +65,6 @@
import com.savoirfairelinux.sflphone.model.Account;
import com.savoirfairelinux.sflphone.service.ConfigurationManagerCallback;
import com.savoirfairelinux.sflphone.service.ISipService;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
public class AccountManagementFragment extends PreferenceFragment {
static final String TAG = "AccountManagementFragment";
@@ -104,6 +104,8 @@
Log.i(TAG, "Create Account Management Fragment");
+ this.setHasOptionsMenu(true);
+
/*
* FIXME if service cannot be obtained from SFLPhonePreferenceActivity, then get it from Application
*/
@@ -143,10 +145,10 @@
Log.i(TAG, "Create account settings");
HashMap<String, String> accountDetails = new HashMap<String, String>();
accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
-// if(accountDetails == null){
-// Toast.makeText(getActivity(), "NUUUUL", Toast.LENGTH_SHORT).show();
-// } else
-// Toast.makeText(getActivity(), "OKKKK", Toast.LENGTH_SHORT).show();
+ // if(accountDetails == null){
+ // Toast.makeText(getActivity(), "NUUUUL", Toast.LENGTH_SHORT).show();
+ // } else
+ // Toast.makeText(getActivity(), "OKKKK", Toast.LENGTH_SHORT).show();
createNewAccount(accountDetails);
}
break;
@@ -227,7 +229,7 @@
Preference.OnPreferenceClickListener launchAccountCreationOnClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
- launchAccountCreationActivity(preference);
+ launchAccountCreationActivity(preference);
return true;
}
};
@@ -248,6 +250,25 @@
}
};
+ @Override
+ public void onCreateOptionsMenu(Menu m, MenuInflater inf) {
+ super.onCreateOptionsMenu(m, inf);
+ inf.inflate(R.menu.account_creation, m);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ super.onOptionsItemSelected(item);
+ switch (item.getItemId()) {
+ case R.id.menuitem_create:
+ Intent intent = new Intent().setClass(getActivity(), AccountWizard.class);
+ startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
+ break;
+ }
+
+ return true;
+ }
+
private void launchAccountCreationActivity(Preference preference) {
Log.i(TAG, "Launch account creation activity");
Intent intent = preference.getIntent();
@@ -312,17 +333,12 @@
// mRoot.addPreference(createAccountPreferenceScreen(DEFAULT_ACCOUNT_ID));
// Account list category
- PreferenceCategory accountListCat = new PreferenceCategory(currentContext);
- accountListCat.setTitle(R.string.default_account_category);
- mRoot.addPreference(accountListCat);
-
- Preference createNewAccount = new Preference(currentContext);
- createNewAccount.setTitle("Register Account");
- createNewAccount.setOnPreferenceClickListener(launchAccountCreationOnClick);
- createNewAccount.setIntent(new Intent().setClass(getActivity(), AccountWizard.class));
- mRoot.addPreference(createNewAccount);
+ // PreferenceCategory accountListCat = new PreferenceCategory(currentContext);
+ // accountListCat.setTitle(R.string.default_account_category);
+ // mRoot.addPreference(accountListCat);
ArrayList<String> accountList = getAccountList();
+
for (String s : accountList) {
Preference accountScreen = createAccountPreferenceScreen(s);
mRoot.addPreference(accountScreen);
diff --git a/src/com/savoirfairelinux/sflphone/fragments/CallFragment.java b/src/com/savoirfairelinux/sflphone/fragments/CallFragment.java
index 9276db0..a64f792 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/CallFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/CallFragment.java
@@ -44,6 +44,7 @@
import android.view.SurfaceHolder.Callback;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Toast;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.model.Attractor;
@@ -72,6 +73,8 @@
private SipCall myself;
+ boolean accepted = false;
+
private Bitmap hangup_icon, separate_icon;
private Bitmap call_icon;
@@ -82,7 +85,7 @@
conf = new Conference((Conference) b.getParcelable("conference"));
model = new BubbleModel(getResources().getDisplayMetrics().density);
BUBBLE_SIZE = getResources().getDimension(R.dimen.bubble_size);
- Log.e(TAG,"BUBBLE_SIZE "+BUBBLE_SIZE);
+ Log.e(TAG, "BUBBLE_SIZE " + BUBBLE_SIZE);
}
@@ -292,7 +295,11 @@
model.addAttractor(new Attractor(new PointF(4 * model.width / 5, model.height / 2), ATTRACTOR_SIZE, new Attractor.Callback() {
@Override
public boolean onBubbleSucked(Bubble b) {
- mCallbacks.onCallAccepted(conf.getParticipants().get(0));
+
+ if (!accepted) {
+ mCallbacks.onCallAccepted(conf.getParticipants().get(0));
+ accepted = true;
+ }
return false;
}
}, call_icon));
diff --git a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
index 68998ff..ccc59f8 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
@@ -77,9 +77,7 @@
AccountSelectionAdapter mAccountAdapter;
private Spinner spinnerAccounts;
AccountsReceiver accountReceiver;
-
private Callbacks mCallbacks = sDummyCallbacks;
- // private Spinner spinnerAccounts;
/**
* A dummy implementation of the {@link Callbacks} interface that does nothing. Used only when this fragment is not attached to an activity.
diff --git a/src/com/savoirfairelinux/sflphone/service/ISipService.aidl b/src/com/savoirfairelinux/sflphone/service/ISipService.aidl
index 4d99e42..cd65f2d 100644
--- a/src/com/savoirfairelinux/sflphone/service/ISipService.aidl
+++ b/src/com/savoirfairelinux/sflphone/service/ISipService.aidl
@@ -32,7 +32,7 @@
/* Recording */
void setRecordPath(in String path);
String getRecordPath();
- void setRecordingCall(in String id);
+ boolean toggleRecordingCall(in String id);
boolean startRecordedFilePlayback(in String filepath);
void stopRecordedFilePlayback(in String filepath);
boolean isRecording(in String id);
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index 48fce75..1e2a637 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -231,7 +231,6 @@
System.loadLibrary("samplerate");
System.loadLibrary("codec_ulaw");
System.loadLibrary("codec_alaw");
- System.loadLibrary("codec_g722");
System.loadLibrary("speexresampler");
System.loadLibrary("sflphone");
isPjSipStackStarted = true;
@@ -883,8 +882,7 @@
@Override
protected String doRun() throws SameThreadException {
Log.i(TAG, "SipService.getRecordPath() thread running...");
- // return configurationManager.getRecordPath();
- return "";
+ return configurationManagerJNI.getRecordPath();
}
}
@@ -899,14 +897,23 @@
}
@Override
- public void setRecordingCall(final String id) throws RemoteException {
- getExecutor().execute(new SipRunnable() {
+ public boolean toggleRecordingCall(final String id) throws RemoteException {
+
+ class ToggleRecording extends SipRunnableWithReturn {
+
@Override
- protected void doRun() throws SameThreadException, RemoteException {
- Log.i(TAG, "SipService.setRecordingCall() thread running...");
- callManagerJNI.toggleRecording(id);
+ protected Boolean doRun() throws SameThreadException {
+ Log.i(TAG, "SipService.toggleRecordingCall() thread running...");
+ return callManagerJNI.toggleRecording(id);
}
- });
+ }
+
+ ToggleRecording runInstance = new ToggleRecording();
+ getExecutor().execute(runInstance);
+ while (!runInstance.isDone()) {
+ }
+
+ return (Boolean) runInstance.getVal();
}
@@ -958,8 +965,8 @@
getExecutor().execute(new SipRunnable() {
@Override
protected void doRun() throws SameThreadException, RemoteException {
- Log.i(TAG, "SipService.setRecordingCall() thread running...");
- // configurationManagerJNI.setRecordPath(path);
+ Log.i(TAG, "SipService.setRecordPath() "+path+" thread running...");
+ configurationManagerJNI.setRecordPath(path);
}
});
}
diff --git a/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java b/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
index 9c97489..78c1e9c 100644
--- a/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
+++ b/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
@@ -124,6 +124,7 @@
private final int mMaximumMajorVelocity;
private final int mMaximumAcceleration;
private final int mVelocityUnits;
+ private long pressTime;
/**
* Callback invoked when the drawer is opened.
@@ -334,7 +335,7 @@
// Log.i(TAG, "onInterceptTouchEvent");
if (mLocked) {
- Log.i(TAG, "Locked");
+// Log.i(TAG, "Locked");
return false;
}
@@ -364,16 +365,18 @@
// handle.getHitRect(frame);
if (!mTracking && !frame.contains((int) x, (int) y)) {
- Log.i(TAG, "not tracking and not in frame");
+// Log.i(TAG, "not tracking and not in frame");
return false;
}
if (action == MotionEvent.ACTION_DOWN) {
mTracking = true;
- Log.i(TAG, "action down");
+// Log.i(TAG, "action down");
handle.setPressed(true);
// Must be called before prepareTracking()
prepareContent();
+
+ pressTime = System.currentTimeMillis();
// Must be called after prepareContent()
if (mOnDrawerScrollListener != null) {
@@ -411,6 +414,11 @@
moveHandle((int) (mVertical ? event.getY() : event.getX()) - mTouchDelta);
break;
case MotionEvent.ACTION_UP:
+ if(System.currentTimeMillis() - pressTime <= 100){
+ animateToggle();
+ break;
+ }
+
case MotionEvent.ACTION_CANCEL: {
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(mVelocityUnits);