Go to home on back key.

This commit is contained in:
Guillaume Beraudo 2011-03-18 10:45:25 +01:00
parent 1cbb4e265a
commit 427b252651

View file

@ -15,18 +15,19 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
package org.linphone; package org.linphone;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import org.linphone.ui.AddVideoButton;
import org.linphone.ui.HangCallButton; import org.linphone.ui.HangCallButton;
import android.app.Activity; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.TextView; import android.widget.TextView;
@ -48,10 +49,10 @@ public class IncallActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.incall_view); setContentView(R.layout.incall_view);
numpad = findViewById(R.id.incallDialer); numpad = findViewById(R.id.incallDialer);
buttonsZone = findViewById(R.id.incallButtonsZone); buttonsZone = findViewById(R.id.incallButtonsZone);
numpadClose = findViewById(R.id.incallNumpadClose); numpadClose = findViewById(R.id.incallNumpadClose);
numpadClose.setOnClickListener(this); numpadClose.setOnClickListener(this);
@ -60,7 +61,7 @@ public class IncallActivity extends Activity implements OnClickListener {
hangButton = (HangCallButton) findViewById(R.id.incallHang); hangButton = (HangCallButton) findViewById(R.id.incallHang);
hangButton.setOnClickListener(this); hangButton.setOnClickListener(this);
TextView contact = (TextView) findViewById(R.id.incallContactName); TextView contact = (TextView) findViewById(R.id.incallContactName);
if (getIntent().getExtras() != null) { if (getIntent().getExtras() != null) {
contact.setText(getIntent().getExtras().getCharSequence(CONTACT_KEY)); contact.setText(getIntent().getExtras().getCharSequence(CONTACT_KEY));
@ -69,9 +70,6 @@ public class IncallActivity extends Activity implements OnClickListener {
} }
elapsedTime = (TextView) findViewById(R.id.incallElapsedTime); elapsedTime = (TextView) findViewById(R.id.incallElapsedTime);
AddVideoButton addVideoButton = (AddVideoButton) findViewById(R.id.AddVideo);
addVideoButton.setOnAlreadyInVideoCallListener(DialerActivity.instance());
} }
public void onClick(View v) { public void onClick(View v) {
@ -88,26 +86,25 @@ public class IncallActivity extends Activity implements OnClickListener {
finish(); finish();
} }
} }
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
task = new TimerTask() { task = new TimerTask() {
@Override @Override
public void run() { public void run() {
if (LinphoneManager.getLc().isIncall()) { if (!LinphoneManager.getLc().isIncall()) return;
final int duration = LinphoneManager.getLc().getCurrentCall().getDuration();
if (duration != 0) { final int duration = LinphoneManager.getLc().getCurrentCall().getDuration();
handler.post(new Runnable() { if (duration == 0) return;
public void run() {
elapsedTime.setText(String.valueOf(duration)); handler.post(new Runnable() {
} public void run() {
}); elapsedTime.setText(String.valueOf(duration));
} }
} });
} }
}; };
@ -117,11 +114,36 @@ public class IncallActivity extends Activity implements OnClickListener {
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
if (task != null) { if (task != null) {
task.cancel(); task.cancel();
task = null; task = null;
} }
} }
// Go to home on Back key
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
// Tell the framework to start tracking this event.
numpad.getKeyDispatcherState().startTracking(event, this);
return true;
} else if (event.getAction() == KeyEvent.ACTION_UP) {
numpad.getKeyDispatcherState().handleUpEvent(event);
if (event.isTracking() && !event.isCanceled()) {
startActivity(new Intent()
.setAction(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_HOME));
return true;
}
}
return super.dispatchKeyEvent(event);
} else {
return super.dispatchKeyEvent(event);
}
}
} }