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) {