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();