package netposa.npm;
import java.util.ArrayList;
import java.util.List;
import netposa.network.Communication;
import netposa.network.NetOperation;
import netposa.player.PlayView;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class Login<HanderTestActivty> extends Activity {
/** Called when the activity is first created. */
private AutoCompleteTextView act_username;
private AutoCompleteTextView act_uri;
private EditText et_password;
private Button b_login;
private Button b_exit;
private ArrayList<String> usernames;
private List<UserInfo> userlist;
private CheckBox cb_remember;
private ArrayList<String> urilist;
private ArrayList<String> openurilist;
private AutoCompleteTextView act_openuri;
private Handler mainhandler;
private Communication c;
private ProgressDialog pd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//
Window w=getWindow();
w.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
w.requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
b_login=(Button)findViewById(R.id.login);
b_exit=(Button)findViewById(R.id.exit);
act_uri=(AutoCompleteTextView)findViewById(R.id.act_uri);
act_username=(AutoCompleteTextView)findViewById(R.id.ACT_username);
et_password=(EditText)findViewById(R.id.ET_password);
cb_remember=(CheckBox)findViewById(R.id.cb_remember);
mainhandler=new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==NetOperation.WEBLOGIN){
String tmp=(String)msg.obj;
pd.dismiss();
if("null".equals(tmp)){
Toast.makeText(Login.this, ",", Toast.LENGTH_SHORT).show();
}else if("false".equals(tmp))
{
Toast.makeText(Login.this, "", Toast.LENGTH_SHORT).show();
}else if("true".equals(tmp))
{
//
Intent intent=new Intent();
intent.setClass(Login.this, Home.class);
Bundle bundle=new Bundle();
bundle.putString("uri", act_uri.getText().toString());
bundle.putString("username", act_username.getText().toString());
intent.putExtras(bundle);
startActivity(intent);
// NPM.this.finish();
}
}
}
};
b_login.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//
saveInfo();
getInfo();
setAutoComplete();
pd=new ProgressDialog(Login.this);
pd.setCancelable(false);
pd.setTitle(R.string.login);
pd.setMessage("..");
pd.setButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
c.cancel(true);
pd.dismiss();
}
});
c=new Communication(mainhandler);
c.execute(Integer.toString(NetOperation.WEBLOGIN),
act_uri.getText().toString(),
act_username.getText().toString(),
et_password.getText().toString());
pd.show();
// String tmp=NetOperation.webLogin(act_uri.getText().toString(),act_username.getText().toString(),et_password.getText().toString());
// if("null".equals(tmp)){
//
// Toast.makeText(NPM.this, ",", Toast.LENGTH_SHORT).show();
//
// }else if("false".equals(tmp))
// {
// Toast.makeText(NPM.this, "", Toast.LENGTH_SHORT).show();
//
// }else if("true".equals(tmp))
// {
// //
// Intent intent=new Intent();
// intent.setClass(NPM.this, VideoPage.class);
//
// Bundle bundle=new Bundle();
// bundle.putString("uri", act_uri.getText().toString());
// bundle.putString("username", act_username.getText().toString());
// intent.putExtras(bundle);
// startActivity(intent);
// // NPM.this.finish();
// }
}
});
b_exit.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog();
}});
//,
String now=getInfo();
if(now!=""){
String [] nows=now.split(",");
act_uri.setText(nows[0]);
act_username.setText(nows[1]);
boolean rb=Boolean.parseBoolean(nows[3]);
if(rb){
et_password.setText(nows[2]);
}
cb_remember.setChecked(rb);
}
setAutoComplete();
}
// Menu item Ids
public static final int mSRC_ID = Menu.FIRST;
public static final int HELP_ID = Menu.FIRST + 1;
public static final int ABOUT_ID = Menu.FIRST + 2;
private static final String PREF_USERINFO = "UserInfo";
private static final String PREF_URI = "URI";
private static final String PREF_NOW = "Now";
private static final String PREF_OPENURI = "OpenUri";
private static final String PREF_OPENURINOW = "OpenUriNow";
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, mSRC_ID, 0, R.string.msrc).setIcon(android.R.drawable.ic_menu_slideshow);
menu.add(0, HELP_ID, 1, R.string.help).setIcon(android.R.drawable.ic_menu_help);
menu.add(0, ABOUT_ID, 1, R.string.about).setIcon(android.R.drawable.ic_menu_info_details);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case mSRC_ID:
{
open();
return true;
}
case HELP_ID:
{
help();
return true;
}
case ABOUT_ID:
{
about();
return true;
}
}
return super.onOptionsItemSelected(item);
}
private void about() {
// TODO Auto-generated method stub
LayoutInflater factory = LayoutInflater.from(this);
final View aboutview = factory.inflate(R.layout.about, null);
new AlertDialog.Builder(this).
setTitle(R.string.about)
.setView(aboutview)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
private void help() {
// TODO Auto-generated method stub
new AlertDialog.Builder(this).
setTitle(R.string.help)
.setMessage("...")
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
private void open() {
// TODO Auto-generated method stub
LayoutInflater factory = LayoutInflater.from(this);
final View openview = factory.inflate(R.layout.open, null);
act_openuri = (AutoCompleteTextView)openview.findViewById(R.id.act_openuri);
new AlertDialog.Builder(this).
setTitle(R.string.open)
.setView(openview)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(Login.this, PlayView.class);
Bundle bundle=new Bundle();
bundle.putString("playuri", act_openuri.getText().toString());
bundle.putString("uri", "");
bundle.putString("name", act_openuri.getText().toString());
bundle.putString("code", "");
intent.putExtras(bundle);
saveOpenURI();
startActivity(intent);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
setOpenAutoComplete();
}
private void setOpenAutoComplete() {
// TODO Auto-generated method stub
act_openuri.setText(getOpenURI());
ArrayAdapter<String> adapt=new ArrayAdapter<String>(this
, android.R.layout.simple_dropdown_item_1line,openurilist);
act_openuri.setAdapter(adapt);
}
private String getOpenURI() {
// TODO Auto-generated method stub
SharedPreferences settings=this.getPreferences(Activity.MODE_PRIVATE);
String uriss = settings.getString(PREF_OPENURI, "");//
openurilist=new ArrayList<String>();//AutoCompleteTextView
if(uriss!=""){
if(uriss.contains(",")){
String[] uris=uriss.split(",");
for(String uri:uris)
{
openurilist.add(uri);
}
}else{
openurilist.add(uriss);
}
}
return settings.getString(PREF_OPENURINOW, "rtsp://");
}
private void saveOpenURI() {
// TODO Auto-generated method stub
checkOpenURI();
SharedPreferences settings=this.getPreferences(Activity.MODE_PRIVATE);
String uris = "";
for(String muri : openurilist){
if(uris==""){
uris=muri;
}else{
uris+=","+muri;
}
}
Editor editor=settings.edit();
//
editor.putString(PREF_OPENURI, uris);
editor.putString(PREF_OPENURINOW, act_openuri.getText().toString());
editor.commit();
}
private void checkOpenURI() {
// TODO Auto-generated method stub
String uname=act_openuri.getText().toString().trim();
int position=-1;
for(int i=0;i<openurilist.size();i++){
if(openurilist.get(i).equals(uname)){
position=i;
break;
}
}
if(position==-1){//
openurilist.add(uname);
}
}
private void dialog() {
AlertDialog.Builder builder = new Builder(this);
builder.setMessage(R.string.quitanswer);
builder.setTitle(R.string.alert);
builder.setPositiveButton(R.string.ok,
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});
builder.setNegativeButton(R.string.cancel,
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
dialog();
return false;
}
return false;
}
private void setAutoComplete()
{
//uri
ArrayAdapter<String> adapt=new ArrayAdapter<String>(this
, android.R.layout.simple_dropdown_item_1line,urilist);
act_uri.setAdapter(adapt);
//
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this
, android.R.layout.simple_dropdown_item_1line, usernames);
act_username.setAdapter(adapter);
act_username.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String name=act_username.getText().toString().trim();
for(UserInfo user : userlist){//
if(user.name.equals(name)){
String pwd=user.pwd;
boolean bl=user.isRemember;
et_password.setText(pwd);
cb_remember.setChecked(bl);
return;
}
}
}
});
}
private String getInfo()
{
SharedPreferences settings=this.getPreferences(Activity.MODE_PRIVATE);
String uriss = settings.getString(PREF_URI, "");//uri
urilist=new ArrayList<String>();//AutoCompleteTextView
if(uriss!=""){
if(uriss.contains(",")){
String[] uris=uriss.split(",");
for(String uri:uris)
{
urilist.add(uri);
}
}else{
urilist.add(uriss);
}
}
String userinfos = settings.getString(PREF_USERINFO, "");//
usernames=new ArrayList<String>();//AutoCompleteTextView
userlist=new ArrayList<UserInfo>();//
if(userinfos!=""){
if(userinfos.contains(",")){
String[] users=userinfos.split(",");
for(String str : users){
UserInfo u = new UserInfo();
String[] user=str.split("/");
u.name=user[0];
if(user[1].equals(" "))
{
u.pwd=null;
}else {
u.pwd=user[1];
}
u.isRemember=Boolean.parseBoolean(user[2]);
usernames.add(user[0]);
userlist.add(u);
}
}else{
UserInfo u = new UserInfo();
String[] user=userinfos.split("/");
u.name=user[0];
u.pwd=user[1];
u.isRemember=Boolean.parseBoolean(user[2]);
usernames.add(user[0]);
userlist.add(u);
}
}
return settings.getString(PREF_NOW, "");
}
private void check(){
//uri
String uuri=act_uri.getText().toString().trim();
int position1=-1;
for(int i=0;i<urilist.size();i++){
if(urilist.get(i).equals(uuri)){
position1=i;
break;
}
}
if(position1==-1){//
urilist.add(uuri);
}
//userinfo
String uname=act_username.getText().toString().trim();
String pwd=et_password.getText().toString().trim();
boolean bl=cb_remember.isChecked();
int position=-1;
for(int i=0;i<userlist.size();i++){
if(userlist.get(i).name.equals(uname)){
position=i;
break;
}
}
if(position>=0){//
userlist.remove(position);
}
UserInfo u=new UserInfo();
u.name=uname;
u.pwd=pwd;
u.isRemember=bl;
userlist.add(u);
}
private void saveInfo(){
check();//
SharedPreferences settings=this.getPreferences(Activity.MODE_PRIVATE);
String userinfos = "";
for(UserInfo user : userlist){
//list
String uname=user.name;
String pwd=user.pwd;
String userinfo;
if(user.isRemember){
userinfo=uname+"/"+pwd+"/true";
}else{
userinfo=uname+"/ /false";
}
if(userinfos==""){
userinfos=userinfo;
}else{
userinfos+=","+userinfo;
}
}
String uris = "";
for(String muri : urilist){
//urilist
if(uris==""){
uris=muri;
}else{
uris+=","+muri;
}
}
String uri_now=act_uri.getText().toString();
String username_now=act_username.getText().toString();
String password_now;
boolean rb=cb_remember.isChecked();
if(rb){
password_now=et_password.getText().toString();
}else {
password_now=" ";
}
String now=uri_now+","+username_now+","+password_now+","+rb;
Editor editor=settings.edit();
//
editor.putString(PREF_USERINFO, userinfos);
editor.putString(PREF_URI, uris);
editor.putString(PREF_NOW, now);
editor.commit();
//
}
}
|