diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8768ca55c..12b82681c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -83,8 +83,8 @@
-
+ android:configChanges="orientation">
+
diff --git a/res/drawable-land/conference_default.png b/res/drawable-land/conference_default.png
new file mode 100644
index 000000000..c3f3c62b6
Binary files /dev/null and b/res/drawable-land/conference_default.png differ
diff --git a/res/drawable-land/conference_over.png b/res/drawable-land/conference_over.png
new file mode 100644
index 000000000..cb6ff9a91
Binary files /dev/null and b/res/drawable-land/conference_over.png differ
diff --git a/res/drawable-land/dialer_alt_back_default.png b/res/drawable-land/dialer_alt_back_default.png
new file mode 100644
index 000000000..b662db31f
Binary files /dev/null and b/res/drawable-land/dialer_alt_back_default.png differ
diff --git a/res/drawable-land/dialer_alt_back_over.png b/res/drawable-land/dialer_alt_back_over.png
new file mode 100644
index 000000000..50d9d1753
Binary files /dev/null and b/res/drawable-land/dialer_alt_back_over.png differ
diff --git a/res/drawable-land/dialer_alt_default.png b/res/drawable-land/dialer_alt_default.png
new file mode 100644
index 000000000..f1b2d39cf
Binary files /dev/null and b/res/drawable-land/dialer_alt_default.png differ
diff --git a/res/drawable-land/dialer_alt_over.png b/res/drawable-land/dialer_alt_over.png
new file mode 100644
index 000000000..d07a14243
Binary files /dev/null and b/res/drawable-land/dialer_alt_over.png differ
diff --git a/res/drawable-land/hangup_default.png b/res/drawable-land/hangup_default.png
new file mode 100644
index 000000000..e7f49a1c6
Binary files /dev/null and b/res/drawable-land/hangup_default.png differ
diff --git a/res/drawable-land/hangup_over.png b/res/drawable-land/hangup_over.png
new file mode 100644
index 000000000..ffc1fb469
Binary files /dev/null and b/res/drawable-land/hangup_over.png differ
diff --git a/res/drawable-land/micro_off_default.png b/res/drawable-land/micro_off_default.png
new file mode 100644
index 000000000..abb1dcef6
Binary files /dev/null and b/res/drawable-land/micro_off_default.png differ
diff --git a/res/drawable-land/micro_off_disabled.png b/res/drawable-land/micro_off_disabled.png
new file mode 100644
index 000000000..fadfcbafa
Binary files /dev/null and b/res/drawable-land/micro_off_disabled.png differ
diff --git a/res/drawable-land/micro_off_over.png b/res/drawable-land/micro_off_over.png
new file mode 100644
index 000000000..d19bfcad5
Binary files /dev/null and b/res/drawable-land/micro_off_over.png differ
diff --git a/res/drawable-land/micro_on_default.png b/res/drawable-land/micro_on_default.png
new file mode 100644
index 000000000..2a551232d
Binary files /dev/null and b/res/drawable-land/micro_on_default.png differ
diff --git a/res/drawable-land/micro_on_disabled.png b/res/drawable-land/micro_on_disabled.png
new file mode 100644
index 000000000..d3632a238
Binary files /dev/null and b/res/drawable-land/micro_on_disabled.png differ
diff --git a/res/drawable-land/micro_on_over.png b/res/drawable-land/micro_on_over.png
new file mode 100644
index 000000000..bafe54db7
Binary files /dev/null and b/res/drawable-land/micro_on_over.png differ
diff --git a/res/drawable-land/options_add_default.png b/res/drawable-land/options_add_default.png
new file mode 100644
index 000000000..9da363493
Binary files /dev/null and b/res/drawable-land/options_add_default.png differ
diff --git a/res/drawable-land/options_add_disabled.png b/res/drawable-land/options_add_disabled.png
new file mode 100644
index 000000000..bc55521e0
Binary files /dev/null and b/res/drawable-land/options_add_disabled.png differ
diff --git a/res/drawable-land/options_add_over.png b/res/drawable-land/options_add_over.png
new file mode 100644
index 000000000..d0e991647
Binary files /dev/null and b/res/drawable-land/options_add_over.png differ
diff --git a/res/drawable-land/options_default.png b/res/drawable-land/options_default.png
new file mode 100644
index 000000000..7667b014a
Binary files /dev/null and b/res/drawable-land/options_default.png differ
diff --git a/res/drawable-land/options_disabled.png b/res/drawable-land/options_disabled.png
new file mode 100644
index 000000000..ba6b19454
Binary files /dev/null and b/res/drawable-land/options_disabled.png differ
diff --git a/res/drawable-land/options_over.png b/res/drawable-land/options_over.png
new file mode 100644
index 000000000..56f739db5
Binary files /dev/null and b/res/drawable-land/options_over.png differ
diff --git a/res/drawable-land/options_selected.png b/res/drawable-land/options_selected.png
new file mode 100644
index 000000000..d25a73d2d
Binary files /dev/null and b/res/drawable-land/options_selected.png differ
diff --git a/res/drawable-land/options_transfer_default.png b/res/drawable-land/options_transfer_default.png
new file mode 100644
index 000000000..9ba3017f4
Binary files /dev/null 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
new file mode 100644
index 000000000..179f16614
Binary files /dev/null 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
new file mode 100644
index 000000000..1f5950fca
Binary files /dev/null and b/res/drawable-land/options_transfer_over.png differ
diff --git a/res/drawable-land/pause_off_default.png b/res/drawable-land/pause_off_default.png
new file mode 100644
index 000000000..4c73470f8
Binary files /dev/null and b/res/drawable-land/pause_off_default.png differ
diff --git a/res/drawable-land/pause_off_over.png b/res/drawable-land/pause_off_over.png
new file mode 100644
index 000000000..66545c2d4
Binary files /dev/null and b/res/drawable-land/pause_off_over.png differ
diff --git a/res/drawable-land/pause_on_default.png b/res/drawable-land/pause_on_default.png
new file mode 100644
index 000000000..58c98a583
Binary files /dev/null and b/res/drawable-land/pause_on_default.png differ
diff --git a/res/drawable-land/pause_on_over.png b/res/drawable-land/pause_on_over.png
new file mode 100644
index 000000000..37b2875db
Binary files /dev/null and b/res/drawable-land/pause_on_over.png differ
diff --git a/res/drawable-land/speaker_off_default.png b/res/drawable-land/speaker_off_default.png
new file mode 100644
index 000000000..b77b4ef25
Binary files /dev/null and b/res/drawable-land/speaker_off_default.png differ
diff --git a/res/drawable-land/speaker_off_disabled.png b/res/drawable-land/speaker_off_disabled.png
new file mode 100644
index 000000000..4c844e33f
Binary files /dev/null and b/res/drawable-land/speaker_off_disabled.png differ
diff --git a/res/drawable-land/speaker_off_over.png b/res/drawable-land/speaker_off_over.png
new file mode 100644
index 000000000..4049e7b75
Binary files /dev/null and b/res/drawable-land/speaker_off_over.png differ
diff --git a/res/drawable-land/speaker_on_default.png b/res/drawable-land/speaker_on_default.png
new file mode 100644
index 000000000..90f75c124
Binary files /dev/null and b/res/drawable-land/speaker_on_default.png differ
diff --git a/res/drawable-land/speaker_on_disabled.png b/res/drawable-land/speaker_on_disabled.png
new file mode 100644
index 000000000..1235ab82b
Binary files /dev/null and b/res/drawable-land/speaker_on_disabled.png differ
diff --git a/res/drawable-land/speaker_on_over.png b/res/drawable-land/speaker_on_over.png
new file mode 100644
index 000000000..e3ff2f8fd
Binary files /dev/null and b/res/drawable-land/speaker_on_over.png differ
diff --git a/res/drawable-land/statebar_background.png b/res/drawable-land/statebar_background.png
new file mode 100644
index 000000000..26f042d99
Binary files /dev/null and b/res/drawable-land/statebar_background.png differ
diff --git a/res/drawable-land/transfer_default.png b/res/drawable-land/transfer_default.png
new file mode 100644
index 000000000..dc18399b4
Binary files /dev/null and b/res/drawable-land/transfer_default.png differ
diff --git a/res/drawable-land/transfer_over.png b/res/drawable-land/transfer_over.png
new file mode 100644
index 000000000..17740ee06
Binary files /dev/null and b/res/drawable-land/transfer_over.png differ
diff --git a/res/drawable-land/video_off_default.png b/res/drawable-land/video_off_default.png
new file mode 100644
index 000000000..037a41397
Binary files /dev/null and b/res/drawable-land/video_off_default.png differ
diff --git a/res/drawable-land/video_off_disabled.png b/res/drawable-land/video_off_disabled.png
new file mode 100644
index 000000000..80cc968b9
Binary files /dev/null and b/res/drawable-land/video_off_disabled.png differ
diff --git a/res/drawable-land/video_off_over.png b/res/drawable-land/video_off_over.png
new file mode 100644
index 000000000..afdbe9e4e
Binary files /dev/null and b/res/drawable-land/video_off_over.png differ
diff --git a/res/drawable-land/video_on_default.png b/res/drawable-land/video_on_default.png
new file mode 100644
index 000000000..46a88e074
Binary files /dev/null and b/res/drawable-land/video_on_default.png differ
diff --git a/res/drawable-land/video_on_disabled.png b/res/drawable-land/video_on_disabled.png
new file mode 100644
index 000000000..3074faae3
Binary files /dev/null and b/res/drawable-land/video_on_disabled.png differ
diff --git a/res/drawable-land/video_on_over.png b/res/drawable-land/video_on_over.png
new file mode 100644
index 000000000..665973f26
Binary files /dev/null and b/res/drawable-land/video_on_over.png differ
diff --git a/res/layout-land/incall.xml b/res/layout-land/incall.xml
new file mode 100644
index 000000000..956c9636e
--- /dev/null
+++ b/res/layout-land/incall.xml
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/incall.xml b/res/layout/incall.xml
index b7378fde9..19d1f8b34 100644
--- a/res/layout/incall.xml
+++ b/res/layout/incall.xml
@@ -1,192 +1,189 @@
-
-
-
-
-
-
-
-
+ android:layout_height="match_parent" >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ android:layout_weight="0.5"
+ android:orientation="horizontal" >
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/org/linphone/AudioCallFragment.java b/src/org/linphone/AudioCallFragment.java
index b3fa29c3f..33c890dcb 100644
--- a/src/org/linphone/AudioCallFragment.java
+++ b/src/org/linphone/AudioCallFragment.java
@@ -142,12 +142,22 @@ public class AudioCallFragment extends Fragment {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
+ if (InCallActivity.instance() == null) {
+ return;
+ }
+
InCallActivity.instance().bindAudioFragment(this);
// Just to be sure we have incall controls
InCallActivity.instance().setCallControlsVisibleAndRemoveCallbacks();
}
+ @Override
+ public void onDestroy() {
+ instance = null;
+ super.onDestroy();
+ }
+
@Override
public void onResume() {
super.onResume();
diff --git a/src/org/linphone/InCallActivity.java b/src/org/linphone/InCallActivity.java
index 2fa56546b..d11fb0e52 100644
--- a/src/org/linphone/InCallActivity.java
+++ b/src/org/linphone/InCallActivity.java
@@ -76,15 +76,12 @@ public class InCallActivity extends FragmentActivity implements
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.incall);
instance = this;
+ setContentView(R.layout.incall);
isVideoEnabled = getIntent().getExtras() != null && getIntent().getExtras().getBoolean("VideoEnabled");
if (findViewById(R.id.fragmentContainer) != null) {
- if (savedInstanceState != null) {
- return;
- }
initUI();
if (LinphoneManager.getLc().getCallsNb() > 0) {
@@ -112,7 +109,7 @@ public class InCallActivity extends FragmentActivity implements
callFragment.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, callFragment).commit();
}
-
+
LinphoneManager.addListener(this);
}
@@ -497,6 +494,10 @@ public class InCallActivity extends FragmentActivity implements
private boolean isCallRunning(LinphoneCall call)
{
+ if (call == null) {
+ return false;
+ }
+
LinphoneCall.State state = call.getState();
return state == LinphoneCall.State.Connected ||
@@ -507,6 +508,10 @@ public class InCallActivity extends FragmentActivity implements
}
private boolean isCallEstablished(LinphoneCall call) {
+ if (call == null) {
+ return false;
+ }
+
LinphoneCall.State state = call.getState();
return isCallRunning(call) ||
@@ -552,6 +557,12 @@ public class InCallActivity extends FragmentActivity implements
}
}
+ @Override
+ protected void onDestroy() {
+ instance = null;
+ super.onDestroy();
+ }
+
@Override
protected void onResume() {
super.onResume();
@@ -563,13 +574,6 @@ public class InCallActivity extends FragmentActivity implements
}
}
- @Override
- protected void onPause() {
- super.onPause();
-
- setCallControlsVisibleAndRemoveCallbacks();
- }
-
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (LinphoneUtils.onKeyVolumeAdjust(keyCode)) return true;
diff --git a/src/org/linphone/VideoCallFragment.java b/src/org/linphone/VideoCallFragment.java
index 816eda5a3..4cecfb6b4 100644
--- a/src/org/linphone/VideoCallFragment.java
+++ b/src/org/linphone/VideoCallFragment.java
@@ -153,6 +153,8 @@ public class VideoCallFragment extends Fragment {
// Prevent linphone from crashing if correspondent hang up while you are rotating
androidVideoWindowImpl.release();
}
+ instance = null;
+
super.onDestroy();
}
diff --git a/src/org/linphone/setup/SetupActivity.java b/src/org/linphone/setup/SetupActivity.java
index 5cd20b97a..c2fcd99f5 100644
--- a/src/org/linphone/setup/SetupActivity.java
+++ b/src/org/linphone/setup/SetupActivity.java
@@ -127,7 +127,9 @@ public class SetupActivity extends FragmentActivity implements OnClickListener {
public void logIn(String username, String password, String domain) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);
+ if (imm != null) {
+ imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);
+ }
saveCreatedAccount(username, password, domain);
LinphoneManager.getInstance().initializePayloads();