Fix incall incons states
|
@ -2,6 +2,8 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_pressed="true"
|
<item android:state_pressed="true"
|
||||||
android:drawable="@drawable/micro_off_over" />
|
android:drawable="@drawable/micro_off_over" />
|
||||||
|
<item android:state_enabled="false"
|
||||||
|
android:drawable="@drawable/micro_off_disabled" />
|
||||||
<item
|
<item
|
||||||
android:drawable="@drawable/micro_off_default" />
|
android:drawable="@drawable/micro_off_default" />
|
||||||
</selector>
|
</selector>
|
||||||
|
|
BIN
res/drawable/micro_off_disabled.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
|
@ -2,6 +2,8 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_pressed="true"
|
<item android:state_pressed="true"
|
||||||
android:drawable="@drawable/micro_on_over" />
|
android:drawable="@drawable/micro_on_over" />
|
||||||
|
<item android:state_enabled="false"
|
||||||
|
android:drawable="@drawable/micro_on_disabled" />
|
||||||
<item
|
<item
|
||||||
android:drawable="@drawable/micro_on_default" />
|
android:drawable="@drawable/micro_on_default" />
|
||||||
</selector>
|
</selector>
|
||||||
|
|
BIN
res/drawable/micro_on_disabled.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
res/drawable/options_default.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
res/drawable/options_disabled.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
res/drawable/options_over.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
|
@ -2,6 +2,8 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_pressed="true"
|
<item android:state_pressed="true"
|
||||||
android:drawable="@drawable/speaker_off_over" />
|
android:drawable="@drawable/speaker_off_over" />
|
||||||
|
<item android:state_enabled="false"
|
||||||
|
android:drawable="@drawable/speaker_off_disabled" />
|
||||||
<item
|
<item
|
||||||
android:drawable="@drawable/speaker_off_default" />
|
android:drawable="@drawable/speaker_off_default" />
|
||||||
</selector>
|
</selector>
|
||||||
|
|
BIN
res/drawable/speaker_off_disabled.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
|
@ -2,6 +2,8 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_pressed="true"
|
<item android:state_pressed="true"
|
||||||
android:drawable="@drawable/speaker_on_over" />
|
android:drawable="@drawable/speaker_on_over" />
|
||||||
|
<item android:state_enabled="false"
|
||||||
|
android:drawable="@drawable/speaker_on_disabled" />
|
||||||
<item
|
<item
|
||||||
android:drawable="@drawable/speaker_on_default" />
|
android:drawable="@drawable/speaker_on_default" />
|
||||||
</selector>
|
</selector>
|
||||||
|
|
BIN
res/drawable/speaker_on_disabled.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
|
@ -2,6 +2,8 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_pressed="true"
|
<item android:state_pressed="true"
|
||||||
android:drawable="@drawable/video_off_over" />
|
android:drawable="@drawable/video_off_over" />
|
||||||
|
<item android:state_enabled="false"
|
||||||
|
android:drawable="@drawable/video_off_disabled" />
|
||||||
<item
|
<item
|
||||||
android:drawable="@drawable/video_off_default" />
|
android:drawable="@drawable/video_off_default" />
|
||||||
</selector>
|
</selector>
|
||||||
|
|
BIN
res/drawable/video_off_disabled.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
|
@ -2,6 +2,8 @@
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_pressed="true"
|
<item android:state_pressed="true"
|
||||||
android:drawable="@drawable/video_on_over" />
|
android:drawable="@drawable/video_on_over" />
|
||||||
|
<item android:state_enabled="false"
|
||||||
|
android:drawable="@drawable/video_on_disabled" />
|
||||||
<item
|
<item
|
||||||
android:drawable="@drawable/video_on_default" />
|
android:drawable="@drawable/video_on_default" />
|
||||||
</selector>
|
</selector>
|
||||||
|
|
BIN
res/drawable/video_on_disabled.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
|
@ -56,7 +56,7 @@
|
||||||
android:id="@+id/micro"
|
android:id="@+id/micro"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:src="@drawable/micro_off"
|
android:src="@drawable/micro_on"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
android:layout_weight="0.25"/>
|
android:layout_weight="0.25"/>
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
private StatusFragment status;
|
private StatusFragment status;
|
||||||
private AudioCallFragment audioCallFragment;
|
private AudioCallFragment audioCallFragment;
|
||||||
private VideoCallFragment videoCallFragment;
|
private VideoCallFragment videoCallFragment;
|
||||||
private boolean isSpeakerEnabled, isMicMuted, isVideoEnabled;
|
private boolean isSpeakerEnabled = false, isMicMuted = false, isVideoEnabled = false;
|
||||||
private LinearLayout mControlsLayout;
|
private LinearLayout mControlsLayout;
|
||||||
|
|
||||||
static final boolean isInstanciated() {
|
static final boolean isInstanciated() {
|
||||||
|
@ -82,10 +82,6 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
isSpeakerEnabled = LinphoneManager.getInstance().isSpeakerOn();
|
|
||||||
isMicMuted = LinphoneManager.getLc().isMicMuted();
|
|
||||||
isVideoEnabled = getIntent().getBooleanExtra("VideoEnabled", false);
|
|
||||||
initUI();
|
initUI();
|
||||||
|
|
||||||
Fragment callFragment;
|
Fragment callFragment;
|
||||||
|
@ -108,33 +104,61 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
private void initUI() {
|
private void initUI() {
|
||||||
video = (ImageView) findViewById(R.id.video);
|
video = (ImageView) findViewById(R.id.video);
|
||||||
video.setOnClickListener(this);
|
video.setOnClickListener(this);
|
||||||
|
video.setEnabled(false);
|
||||||
micro = (ImageView) findViewById(R.id.micro);
|
micro = (ImageView) findViewById(R.id.micro);
|
||||||
micro.setOnClickListener(this);
|
micro.setOnClickListener(this);
|
||||||
|
micro.setEnabled(false);
|
||||||
speaker = (ImageView) findViewById(R.id.speaker);
|
speaker = (ImageView) findViewById(R.id.speaker);
|
||||||
speaker.setOnClickListener(this);
|
speaker.setOnClickListener(this);
|
||||||
|
speaker.setEnabled(false);
|
||||||
addCall = (ImageView) findViewById(R.id.addCall);
|
addCall = (ImageView) findViewById(R.id.addCall);
|
||||||
addCall.setOnClickListener(this);
|
addCall.setOnClickListener(this);
|
||||||
|
addCall.setEnabled(false);
|
||||||
pause = (ImageView) findViewById(R.id.pause);
|
pause = (ImageView) findViewById(R.id.pause);
|
||||||
pause.setOnClickListener(this);
|
pause.setOnClickListener(this);
|
||||||
|
pause.setEnabled(false);
|
||||||
hangUp = (ImageView) findViewById(R.id.hangUp);
|
hangUp = (ImageView) findViewById(R.id.hangUp);
|
||||||
hangUp.setOnClickListener(this);
|
hangUp.setOnClickListener(this);
|
||||||
dialer = (ImageView) findViewById(R.id.dialer);
|
dialer = (ImageView) findViewById(R.id.dialer);
|
||||||
dialer.setOnClickListener(this);
|
dialer.setOnClickListener(this);
|
||||||
|
dialer.setEnabled(false);
|
||||||
|
|
||||||
switchCamera = (ImageView) findViewById(R.id.switchCamera);
|
switchCamera = (ImageView) findViewById(R.id.switchCamera);
|
||||||
switchCamera.setOnClickListener(this);
|
switchCamera.setOnClickListener(this);
|
||||||
|
|
||||||
mControlsLayout = (LinearLayout) findViewById(R.id.menu);
|
mControlsLayout = (LinearLayout) findViewById(R.id.menu);
|
||||||
|
}
|
||||||
if (isVideoEnabled) {
|
|
||||||
video.setImageResource(R.drawable.video_off);
|
private void enableAndRefreshInCallActions() {
|
||||||
}
|
mHandler.post(new Runnable() {
|
||||||
if (isSpeakerEnabled) {
|
@Override
|
||||||
speaker.setImageResource(R.drawable.speaker_off_over);
|
public void run() {
|
||||||
}
|
video.setEnabled(true);
|
||||||
if (isMicMuted) {
|
micro.setEnabled(true);
|
||||||
micro.setImageResource(R.drawable.micro_on);
|
speaker.setEnabled(true);
|
||||||
}
|
addCall.setEnabled(true);
|
||||||
|
pause.setEnabled(true);
|
||||||
|
dialer.setEnabled(true);
|
||||||
|
|
||||||
|
if (isVideoEnabled) {
|
||||||
|
video.setImageResource(R.drawable.video_on);
|
||||||
|
} else {
|
||||||
|
video.setImageResource(R.drawable.video_off);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isSpeakerEnabled) {
|
||||||
|
speaker.setImageResource(R.drawable.speaker_on);
|
||||||
|
} else {
|
||||||
|
speaker.setImageResource(R.drawable.speaker_off);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isMicMuted) {
|
||||||
|
micro.setImageResource(R.drawable.micro_off);
|
||||||
|
} else {
|
||||||
|
micro.setImageResource(R.drawable.micro_on);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateStatusFragment(StatusFragment statusFragment) {
|
public void updateStatusFragment(StatusFragment statusFragment) {
|
||||||
|
@ -216,7 +240,11 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
|
|
||||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||||
transaction.replace(R.id.fragmentContainer, audioCallFragment);
|
transaction.replace(R.id.fragmentContainer, audioCallFragment);
|
||||||
transaction.commit();
|
try {
|
||||||
|
transaction.commitAllowingStateLoss();
|
||||||
|
} catch (Exception e) {
|
||||||
|
transaction.commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void replaceFragmentAudioByVideo() {
|
private void replaceFragmentAudioByVideo() {
|
||||||
|
@ -225,7 +253,11 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
|
|
||||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||||
transaction.replace(R.id.fragmentContainer, videoCallFragment);
|
transaction.replace(R.id.fragmentContainer, videoCallFragment);
|
||||||
transaction.commitAllowingStateLoss();
|
try {
|
||||||
|
transaction.commitAllowingStateLoss();
|
||||||
|
} catch (Exception e) {
|
||||||
|
transaction.commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toogleMicro() {
|
private void toogleMicro() {
|
||||||
|
@ -233,9 +265,9 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
isMicMuted = !isMicMuted;
|
isMicMuted = !isMicMuted;
|
||||||
lc.muteMic(isMicMuted);
|
lc.muteMic(isMicMuted);
|
||||||
if (isMicMuted) {
|
if (isMicMuted) {
|
||||||
micro.setImageResource(R.drawable.micro_on);
|
|
||||||
} else {
|
|
||||||
micro.setImageResource(R.drawable.micro_off);
|
micro.setImageResource(R.drawable.micro_off);
|
||||||
|
} else {
|
||||||
|
micro.setImageResource(R.drawable.micro_on);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,10 +275,10 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
isSpeakerEnabled = !isSpeakerEnabled;
|
isSpeakerEnabled = !isSpeakerEnabled;
|
||||||
if (isSpeakerEnabled) {
|
if (isSpeakerEnabled) {
|
||||||
LinphoneManager.getInstance().routeAudioToSpeaker();
|
LinphoneManager.getInstance().routeAudioToSpeaker();
|
||||||
speaker.setImageResource(R.drawable.speaker_off);
|
speaker.setImageResource(R.drawable.speaker_on);
|
||||||
} else {
|
} else {
|
||||||
LinphoneManager.getInstance().routeAudioToReceiver();
|
LinphoneManager.getInstance().routeAudioToReceiver();
|
||||||
speaker.setImageResource(R.drawable.speaker_on);
|
speaker.setImageResource(R.drawable.speaker_off);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,12 +401,16 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state == State.StreamsRunning) {
|
if (state == State.StreamsRunning) {
|
||||||
boolean isVideoEnabledInCall = call.getCurrentParamsCopy().getVideoEnabled();
|
boolean isVideoEnabledInCall = call.getCurrentParamsCopy().getVideoEnabled();
|
||||||
if (isVideoEnabledInCall != isVideoEnabled) {
|
if (isVideoEnabledInCall != isVideoEnabled) {
|
||||||
isVideoEnabled = isVideoEnabledInCall;
|
isVideoEnabled = isVideoEnabledInCall;
|
||||||
switchVideo(isVideoEnabled);
|
switchVideo(isVideoEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isMicMuted = LinphoneManager.getLc().isMicMuted();
|
||||||
|
isSpeakerEnabled = LinphoneManager.getLc().isSpeakerEnabled();
|
||||||
|
enableAndRefreshInCallActions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|