diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c74ef8f20..cf252626f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -23,7 +23,7 @@
-
+
+ android:launchMode="singleInstance">
@@ -63,7 +63,7 @@
@@ -81,7 +81,7 @@
+ android:launchMode="singleInstance">
@@ -108,7 +108,7 @@
-
+
diff --git a/res/drawable-land/options_add_default.png b/res/drawable-land/options_add_default.png
index 9da363493..fc32af577 100644
Binary files a/res/drawable-land/options_add_default.png and b/res/drawable-land/options_add_default.png differ
diff --git a/res/drawable-land/options_add_default_alt.png b/res/drawable-land/options_add_default_alt.png
new file mode 100644
index 000000000..88197f7f3
Binary files /dev/null and b/res/drawable-land/options_add_default_alt.png differ
diff --git a/res/drawable-land/options_add_disabled.png b/res/drawable-land/options_add_disabled.png
index bc55521e0..c5d86a2dc 100644
Binary files a/res/drawable-land/options_add_disabled.png and b/res/drawable-land/options_add_disabled.png differ
diff --git a/res/drawable-land/options_add_disabled_alt.png b/res/drawable-land/options_add_disabled_alt.png
new file mode 100644
index 000000000..2e71beb77
Binary files /dev/null and b/res/drawable-land/options_add_disabled_alt.png differ
diff --git a/res/drawable-land/options_add_over.png b/res/drawable-land/options_add_over.png
index d0e991647..fdd0844ba 100644
Binary files a/res/drawable-land/options_add_over.png and b/res/drawable-land/options_add_over.png differ
diff --git a/res/drawable-land/options_add_over_alt.png b/res/drawable-land/options_add_over_alt.png
new file mode 100644
index 000000000..a6172a37d
Binary files /dev/null and b/res/drawable-land/options_add_over_alt.png differ
diff --git a/res/drawable-land/options_default.png b/res/drawable-land/options_default.png
index 7667b014a..50b2331ca 100644
Binary files a/res/drawable-land/options_default.png and b/res/drawable-land/options_default.png differ
diff --git a/res/drawable-land/options_default_alt.png b/res/drawable-land/options_default_alt.png
new file mode 100644
index 000000000..a6772d9aa
Binary files /dev/null and b/res/drawable-land/options_default_alt.png differ
diff --git a/res/drawable-land/options_disabled.png b/res/drawable-land/options_disabled.png
index ba6b19454..feae57610 100644
Binary files a/res/drawable-land/options_disabled.png and b/res/drawable-land/options_disabled.png differ
diff --git a/res/drawable-land/options_disabled_alt.png b/res/drawable-land/options_disabled_alt.png
new file mode 100644
index 000000000..e07a3e04a
Binary files /dev/null and b/res/drawable-land/options_disabled_alt.png differ
diff --git a/res/drawable-land/options_over.png b/res/drawable-land/options_over.png
index 56f739db5..a8a792571 100644
Binary files a/res/drawable-land/options_over.png and b/res/drawable-land/options_over.png differ
diff --git a/res/drawable-land/options_over_alt.png b/res/drawable-land/options_over_alt.png
new file mode 100644
index 000000000..c45d47efe
Binary files /dev/null and b/res/drawable-land/options_over_alt.png differ
diff --git a/res/drawable-land/options_selected.png b/res/drawable-land/options_selected.png
index d25a73d2d..79646f265 100644
Binary files a/res/drawable-land/options_selected.png and b/res/drawable-land/options_selected.png differ
diff --git a/res/drawable-land/options_selected_alt.png b/res/drawable-land/options_selected_alt.png
new file mode 100644
index 000000000..9d9f86154
Binary files /dev/null and b/res/drawable-land/options_selected_alt.png differ
diff --git a/res/drawable-land/options_transfer_default.png b/res/drawable-land/options_transfer_default.png
index 9ba3017f4..fc354333a 100644
Binary files a/res/drawable-land/options_transfer_default.png and b/res/drawable-land/options_transfer_default.png differ
diff --git a/res/drawable-land/options_transfer_disabled.png b/res/drawable-land/options_transfer_disabled.png
index 179f16614..493486e0c 100644
Binary files a/res/drawable-land/options_transfer_disabled.png and b/res/drawable-land/options_transfer_disabled.png differ
diff --git a/res/drawable-land/options_transfer_over.png b/res/drawable-land/options_transfer_over.png
index 1f5950fca..9b8f1c64c 100644
Binary files a/res/drawable-land/options_transfer_over.png and b/res/drawable-land/options_transfer_over.png differ
diff --git a/res/drawable/options_selected_bkgnd.png b/res/drawable/options_selected_bkgnd.png
deleted file mode 100644
index 3a8d51bd3..000000000
Binary files a/res/drawable/options_selected_bkgnd.png and /dev/null differ
diff --git a/res/layout-land/incall.xml b/res/layout-land/incall.xml
index 8f6fb9952..bd34f8a32 100644
--- a/res/layout-land/incall.xml
+++ b/res/layout-land/incall.xml
@@ -1,6 +1,7 @@
diff --git a/res/layout/incall.xml b/res/layout/incall.xml
index ee161c00f..8747f0590 100644
--- a/res/layout/incall.xml
+++ b/res/layout/incall.xml
@@ -1,6 +1,7 @@
diff --git a/res/layout/numpad.xml b/res/layout/numpad.xml
index 8ed3fb8ae..0ee879559 100644
--- a/res/layout/numpad.xml
+++ b/res/layout/numpad.xml
@@ -4,27 +4,27 @@
android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1">
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/src/org/linphone/AudioCallFragment.java b/src/org/linphone/AudioCallFragment.java
index 0924d2f27..4f3b44efd 100644
--- a/src/org/linphone/AudioCallFragment.java
+++ b/src/org/linphone/AudioCallFragment.java
@@ -41,20 +41,20 @@ import android.widget.TextView;
* @author Sylvain Berfini
*/
public class AudioCallFragment extends Fragment {
- private static AudioCallFragment instance;
- private RelativeLayout callsList;
- private LayoutInflater inflater;
- private ViewGroup container;
private static final int rowHeight = 75; // Value set in active_call.xml
private static final int rowImageHeight = 100; // Value set in active_call.xml
private static final int rowThickRatio = 85; // Ratio dependent from the image
private static final int topMargin = (int) ((rowHeight * rowThickRatio) / 100);
private static final int topMarginWithImage = topMargin + rowImageHeight;
+ private RelativeLayout callsList;
+ private LayoutInflater inflater;
+ private ViewGroup container;
+ private InCallActivity inCallActivity;
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- instance = this;
this.inflater = inflater;
this.container = container;
@@ -142,14 +142,20 @@ public class AudioCallFragment extends Fragment {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
- if (InCallActivity.instance() == null) {
+ inCallActivity = (InCallActivity) activity;
+
+ inCallActivity.bindAudioFragment(this);
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ if (inCallActivity == null) {
return;
}
- InCallActivity.instance().bindAudioFragment(this);
-
// Just to be sure we have incall controls
- InCallActivity.instance().setCallControlsVisibleAndRemoveCallbacks();
+ inCallActivity.setCallControlsVisibleAndRemoveCallbacks();
}
@Override
@@ -160,13 +166,6 @@ public class AudioCallFragment extends Fragment {
refreshCallList(getResources());
}
- /**
- * @return null if not ready yet
- */
- public static AudioCallFragment instance() {
- return instance;
- }
-
public void refreshCallList(Resources resources) {
if (callsList == null) {
return;
diff --git a/src/org/linphone/InCallActivity.java b/src/org/linphone/InCallActivity.java
index 749010063..695c2cf1d 100644
--- a/src/org/linphone/InCallActivity.java
+++ b/src/org/linphone/InCallActivity.java
@@ -54,7 +54,6 @@ public class InCallActivity extends FragmentActivity implements
OnClickListener {
private final static int SECONDS_BEFORE_HIDING_CONTROLS = 3000;
- private static InCallActivity instance;
private Handler mHandler = new Handler();
private Handler controlsHandler = new Handler();
private Runnable mControls;
@@ -65,18 +64,9 @@ public class InCallActivity extends FragmentActivity implements
private boolean isSpeakerEnabled = false, isMicMuted = false, isVideoEnabled;
private LinearLayout mControlsLayout;
- static final boolean isInstanciated() {
- return instance != null;
- }
-
- public static final InCallActivity instance() {
- return instance;
- }
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- instance = this;
setContentView(R.layout.incall);
isVideoEnabled = getIntent().getExtras() != null && getIntent().getExtras().getBoolean("VideoEnabled");
@@ -107,7 +97,7 @@ public class InCallActivity extends FragmentActivity implements
switchCamera.setVisibility(View.GONE);
}
callFragment.setArguments(getIntent().getExtras());
- getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, callFragment).commit();
+ getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, callFragment).commitAllowingStateLoss();
}
LinphoneManager.addListener(this);
@@ -567,15 +557,21 @@ public class InCallActivity extends FragmentActivity implements
setCallControlsVisibleAndRemoveCallbacks();
}
}
-
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (LinphoneUtils.onKeyVolumeAdjust(keyCode)) return true;
- if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) return true;
+// if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) return true;
return super.onKeyDown(keyCode, event);
}
public void bindAudioFragment(AudioCallFragment fragment) {
audioCallFragment = fragment;
}
+
+ @Override
+ protected void onDestroy() {
+ LinphoneManager.removeListener(this);
+ super.onDestroy();
+ }
}
diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java
index f4473b7f3..b5cc83547 100644
--- a/src/org/linphone/LinphoneActivity.java
+++ b/src/org/linphone/LinphoneActivity.java
@@ -73,7 +73,9 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene
private static final int SETTINGS_ACTIVITY = 123;
private static final int FIRST_LOGIN_ACTIVITY = 101;
private static final int callActivity = 19;
+
private static LinphoneActivity instance;
+
private StatusFragment statusFragment;
private TextView missedCalls, missedChats;
private ImageView history, contacts, dialer, settings, chat;
diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java
index d11d2b627..6affbed77 100644
--- a/src/org/linphone/LinphoneService.java
+++ b/src/org/linphone/LinphoneService.java
@@ -430,8 +430,6 @@ public final class LinphoneService extends Service implements LinphoneServiceLis
}
}
-
-
@Override
public IBinder onBind(Intent intent) {
return null;
@@ -450,19 +448,10 @@ public final class LinphoneService extends Service implements LinphoneServiceLis
mWifiLock.release();
super.onDestroy();
}
-
private static final LinphoneGuiListener guiListener() {
return null;
- }
-
- private static final LinphoneOnCallStateChangedListener incallListener() {
- return InCallActivity.instance();
- }
-
-
-
-
+ }
public void onDisplayStatus(final String message) {
mHandler.post(new Runnable() {
@@ -488,7 +477,6 @@ public final class LinphoneService extends Service implements LinphoneServiceLis
}
}
-
public void onRegistrationStateChanged(final RegistrationState state,
final String message) {
if (instance == null) {
@@ -545,8 +533,8 @@ public final class LinphoneService extends Service implements LinphoneServiceLis
try {
LinphoneManager.getLc().deferCallUpdate(call);
- if (incallListener() != null)
- incallListener().onCallStateChanged(call, state, message);
+// if (incallListener() != null)
+// incallListener().onCallStateChanged(call, state, message);
} catch (LinphoneCoreException e) {
e.printStackTrace();
}
diff --git a/src/org/linphone/StatusFragment.java b/src/org/linphone/StatusFragment.java
index e88a09aeb..513ad125c 100644
--- a/src/org/linphone/StatusFragment.java
+++ b/src/org/linphone/StatusFragment.java
@@ -48,7 +48,6 @@ import android.widget.TextView;
* @author Sylvain Berfini
*/
public class StatusFragment extends Fragment {
- private static StatusFragment instance;
private Handler mHandler = new Handler();
private Handler refreshHandler = new Handler();
private TextView statusText, exit;
@@ -61,7 +60,6 @@ public class StatusFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- instance = this;
View view = inflater.inflate(R.layout.status, container, false);
statusText = (TextView) view.findViewById(R.id.statusText);
@@ -81,13 +79,6 @@ public class StatusFragment extends Fragment {
return view;
}
-
- /**
- * @return null if not ready yet
- */
- public static StatusFragment instance() {
- return instance;
- }
@Override
public void onAttach(Activity activity) {
diff --git a/src/org/linphone/VideoCallFragment.java b/src/org/linphone/VideoCallFragment.java
index 2b10e8e4c..3005701f3 100644
--- a/src/org/linphone/VideoCallFragment.java
+++ b/src/org/linphone/VideoCallFragment.java
@@ -23,6 +23,7 @@ import org.linphone.mediastream.video.AndroidVideoWindowImpl;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
import android.annotation.TargetApi;
+import android.app.Activity;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
@@ -42,16 +43,15 @@ import android.view.ViewGroup;
*/
@TargetApi(5)
public class VideoCallFragment extends Fragment {
- private static VideoCallFragment instance;
private WakeLock mWakeLock;
private SurfaceView mVideoView;
private SurfaceView mCaptureView;
private AndroidVideoWindowImpl androidVideoWindowImpl;
+ private InCallActivity inCallActivity;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- instance = this;
View view = inflater.inflate(R.layout.video, container, false);
mVideoView = (SurfaceView) view.findViewById(R.id.videoSurface);
@@ -93,7 +93,7 @@ public class VideoCallFragment extends Fragment {
mVideoView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
- InCallActivity.instance().displayVideoCallControlsIfHidden();
+ inCallActivity.displayVideoCallControlsIfHidden();
return false;
}
});
@@ -101,11 +101,10 @@ public class VideoCallFragment extends Fragment {
return view;
}
- /**
- * @return null if not ready yet
- */
- public static VideoCallFragment instance() {
- return instance;
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ inCallActivity = (InCallActivity) activity;
}
private void fixZOrder(SurfaceView video, SurfaceView preview) {