/*
* Copyright 2012-2014 eBay Software Foundation and selendroid committers.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package io.selendroid.testapp;
import io.selendroid.testapp.domain.User;
import io.selendroid.testapp.services.UserService;
import io.selendroid.testapp.services.impl.UserServiceImpl;
import io.selendroid.testapp.utils.MyServiceConection;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
/**
* Demo project to verify NativeAndroidDriver actions.
*
* @author ddary
*
*/
public class RegisterUserActivity extends Activity {
private static String TAG = "selendroid-demoapp";
private static final int DIALOG_ALERT = 11;
private UserService userService = null;
private ServiceConnection con = new MyServiceConection();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate");
setContentView(io.selendroid.testapp.R.layout.register_user);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(io.selendroid.testapp.R.layout.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case io.selendroid.testapp.R.id.menu_home:
startActivity(new Intent(getApplicationContext(), HomeScreenActivity.class));
return true;
case io.selendroid.testapp.R.id.menu_web_view:
startActivity(new Intent(getApplicationContext(), WebViewActivity.class));
return true;
case io.selendroid.testapp.R.id.menu_multiple_web_views:
startActivity(new Intent(getApplicationContext(), MultipleWebViewsActivity.class));
return true;
case io.selendroid.testapp.R.id.menu_settings:
showDialog(DIALOG_ALERT);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onResume() {
Intent intent = new Intent(this, UserServiceImpl.class);
bindService(intent, con, BIND_AUTO_CREATE);
super.onResume();
}
@Override
protected void onPause() {
unbindService(con);
super.onPause();
}
public void registerUser(View view) {
Intent nextScreen = new Intent(getApplicationContext(), VerifyUserActivity.class);
String username =
((EditText) findViewById(io.selendroid.testapp.R.id.inputUsername)).getText().toString();
String email =
((EditText) findViewById(io.selendroid.testapp.R.id.inputEmail)).getText().toString();
String password =
((EditText) findViewById(io.selendroid.testapp.R.id.inputPassword)).getText().toString();
String name =
((EditText) findViewById(io.selendroid.testapp.R.id.inputName)).getText().toString();
boolean acceptAdds =
((CheckBox) findViewById(io.selendroid.testapp.R.id.input_adds)).isChecked();
String preferedProgrammingLanguge =
((Spinner) findViewById(io.selendroid.testapp.R.id.input_preferedProgrammingLanguage))
.getSelectedItem().toString();
User user = new User(username, password);
user.setEmail(email);
user.setName(name);
user.setAcceptAdds(acceptAdds);
user.setPreferedProgrammingLanguge(preferedProgrammingLanguge);
nextScreen.putExtra("user", user);
startActivity(nextScreen);
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_ALERT:
// Create out AlterDialog
Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Personal data will be stored to improve the product.\n\nDo you agree?");
builder.setCancelable(true);
builder.setPositiveButton("I don't", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
RegisterUserActivity.this.finish();
}
});
builder.setNegativeButton("I agree", null);
AlertDialog dialog = builder.create();
dialog.show();
}
return super.onCreateDialog(id);
}
}