Pages

Monday, 14 March 2016

Android SQLite DB Sample - INSERT, UPDATE, DELETE


Features:   -  Create SQLite DataBase, Tables, Columns
                 -  INSERT  Data
                 -  UPDATE Data
                 -  DELETE Data
                 -  Drop Table IF ALREADY  EXIST

Download

Source on GitHub


Step 1 : Create A class for get-set Contacts:
package com.blogspot.dbh4ck.sqlite_demo_db;
/**
* Created by DB on 08-03-2016.
*/
public class Contact {
// private variables
public int _id;
public String _name;
public String _email;
// public byte[] _image;
public Contact() {
}
// constructor
public Contact(int id, String name, String _email) {
this._id = id;
this._name = name;
this._email = _email;
// this._image = image;
}
public Contact(String valid_name, String valid_email) {
this._name = valid_name;
this._email = valid_email;
// this._image = theImage;
}
// getting ID
public int getID() {
return this._id;
}
// setting id
public void setID(int id) {
this._id = id;
}
// getting name
public String getName() {
return this._name;
}
// setting name
public void setName(String name) {
this._name = name;
}
// getting email
public String getEmail() {
return this._email;
}
// setting email
public void setEmail(String email) {
this._email = email;
}
// getting Image
public void getImage() {
// return this._image;
return;
}
// setting Image
public void setImage(byte[] image) {
// this._image = image;
return;
}
}
view raw Contact.java hosted with ❤ by GitHub


Step 2 : SQL Database Handler class:
package com.blogspot.dbh4ck.sqlite_demo_db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import java.util.ArrayList;
/**
* Created by DB on 08-03-2016.
*/
public class DatabaseHandler extends SQLiteOpenHelper {
// Database Name
private static final String DATABASE_NAME = "ContactsManagerDB";
// Database Version
private static final int DATABASE_VERSION = 1;
// Table Name
private static final String TABLE_CONTACTS = "contacts";
// Table Columns Name
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_EMAIL = "email";
// private static final String KEY_IMAGE = "image";
private final ArrayList<Contact> contact_list = new ArrayList<Contact>();
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public DatabaseHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_EMAIL + " TEXT " + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older Table if already Exist
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
// Create tables again
onCreate(db);
}
// Adding new contact
public void Add_Contact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName()); // Name
values.put(KEY_EMAIL, contact.getEmail()); // Email
// Inserting Row
db.insert(TABLE_CONTACTS, null, values);
db.close(); // Close Database Connection
}
// Getting single contact
Contact Get_Contact(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, KEY_NAME, KEY_EMAIL }, KEY_ID + "=?", new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2));
// return contact
cursor.close();
db.close();
return contact;
}
// Getting All Contacts
public ArrayList<Contact> Get_Contacts() {
try {
contact_list.clear();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contact.setEmail(cursor.getString(2));
// contact.setImage(cursor.getBlob(3));
// Adding contact to list
contact_list.add(contact);
} while (cursor.moveToNext());
}
// return contact list
cursor.close();
db.close();
return contact_list;
} catch (Exception e) {
// TODO: handle exception
Log.e("all_contact", "" + e);
}
return contact_list;
}
// Updating single contact
public int Update_Contact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_EMAIL, contact.getEmail());
// values.put(KEY_IMAGE, contact.getImage());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}
// Deleting single contact
public void Delete_Contact(int id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
new String[] { String.valueOf(id) });
db.close();
}
// Getting contacts Count
public int Get_Total_Contacts() {
String countQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();
// return count
return cursor.getCount();
}
}


Step 3 : For adding new Contacts and Updating existing contacts here's the class:
package com.blogspot.dbh4ck.sqlite_demo_db;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Add_Update_User extends Activity {
// Bitmap theImage;
// ImageView imageDetail;
EditText add_name, add_email;
Button add_save_btn, add_view_all, update_btn, update_view_all;
LinearLayout add_view, update_view;
String valid_email = null, valid_name = null, Toast_msg = null, valid_user_id = "";
int USER_ID, imageId;
DatabaseHandler dbHandler = new DatabaseHandler(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_update_screen);
// set screen
Set_Add_Update_Screen();
// set visibility of view as per activity calls
String called_from = getIntent().getStringExtra("called");
if (called_from.equalsIgnoreCase("add")) {
add_view.setVisibility(View.VISIBLE);
update_view.setVisibility(View.GONE);
} else {
update_view.setVisibility(View.VISIBLE);
add_view.setVisibility(View.GONE);
USER_ID = Integer.parseInt(getIntent().getStringExtra("USER_ID"));
Contact c = dbHandler.Get_Contact(USER_ID);
add_name.setText(c.getName());
add_email.setText(c.getEmail());
// dbHandler.close();
}
add_email.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
Is_Valid_Email(add_email);
}
});
add_name.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
Is_Valid_Person_Name(add_name);
}
});
// imageDetail = (ImageView) findViewById(R.id.imageView);
// Intent intnt = getIntent();
// theImage = (Bitmap) intnt.getParcelableExtra("imagename");
// imageId = intnt.getIntExtra("imageid", 20);
// Log.d("Image ID:****", String.valueOf(imageId));
// imageDetail.setImageBitmap(theImage);
add_save_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// check the value state is null or not
if (valid_name != null && valid_email != null && valid_name.length() != 0 && valid_email.length() != 0) {
dbHandler.Add_Contact(new Contact(valid_name, valid_email));
Toast_msg = "Data Inserted Successfully";
Show_Toast(Toast_msg);
Reset_Text();
}
}
});
update_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
valid_name = add_name.getText().toString();
valid_email = add_email.getText().toString();
// check the value state is null or not
if (valid_name != null && valid_email != null && valid_name.length() != 0 && valid_email.length() != 0) {
dbHandler.Update_Contact(new Contact(USER_ID, valid_name, valid_email));
dbHandler.close();
Toast_msg = "Data Updated Successfully";
Show_Toast(Toast_msg);
Reset_Text();
} else {
Toast_msg = "Sorry some fields are Missing.\nPlease fill up them.";
Show_Toast(Toast_msg);
}
}
});
update_view_all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// After Making necesssary updates we Return to MainActivity
Intent view_user = new Intent(Add_Update_User.this, MainActivity.class);
view_user.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(view_user);
finish();
}
});
add_view_all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent view_user = new Intent(Add_Update_User.this, MainActivity.class);
view_user.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(view_user);
finish();
}
});
}
public void Set_Add_Update_Screen() {
add_name = (EditText) findViewById(R.id.add_name);
add_email = (EditText) findViewById(R.id.add_email);
add_save_btn = (Button) findViewById(R.id.add_save_btn);
update_btn = (Button) findViewById(R.id.update_btn);
add_view_all = (Button) findViewById(R.id.add_view_all);
update_view_all = (Button) findViewById(R.id.update_view_all);
add_view = (LinearLayout) findViewById(R.id.add_view);
update_view = (LinearLayout) findViewById(R.id.update_view);
add_view.setVisibility(View.GONE);
update_view.setVisibility(View.GONE);
}
public void Is_Valid_Email(EditText edt) {
if (edt.getText().toString() == null) {
edt.setError("Invalid Email Address");
valid_email = null;
} else if (isEmailValid(edt.getText().toString()) == false) {
edt.setError("Invalid Email Address");
valid_email = null;
} else {
valid_email = edt.getText().toString();
}
}
boolean isEmailValid(CharSequence email) {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
} // end of email matcher
public void Is_Valid_Person_Name(EditText edt) throws NumberFormatException {
if (edt.getText().toString().length() <= 0) {
edt.setError("Accept Alphabets Only.");
valid_name = null;
} else if (!edt.getText().toString().matches("[a-zA-Z ]+")) {
edt.setError("Only Alphabets Allowed!");
valid_name = null;
} else {
valid_name = edt.getText().toString();
}
}
public void Show_Toast(String msg) {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
public void Reset_Text() {
add_name.getText().clear();
add_email.getText().clear();
}
}


Step 4 : MainActivity:
package com.blogspot.dbh4ck.sqlite_demo_db;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends Activity {
private Boolean exit = false;
Button add_btn;
ListView Contact_listview;
ArrayList<Contact> contact_data = new ArrayList<Contact>();
Contact_Adapter cAdapter;
DatabaseHandler db;
String Toast_msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
Contact_listview = (ListView) findViewById(R.id.list);
Contact_listview.setItemsCanFocus(false);
add_btn = (Button) findViewById(R.id.add_btn);
Set_Referash_Data();
} catch (Exception e) {
// TODO: handle exception
Log.e("some error", "" + e);
}
add_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent add_user = new Intent(MainActivity.this, Add_Update_User.class);
add_user.putExtra("called", "add");
add_user.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(add_user);
finish();
}
});
}
public void Set_Referash_Data() {
contact_data.clear();
db = new DatabaseHandler(this);
ArrayList<Contact> contact_array_from_db = db.Get_Contacts();
for (int i = 0; i < contact_array_from_db.size(); i++) {
int tidno = contact_array_from_db.get(i).getID();
String name = contact_array_from_db.get(i).getName();
String email = contact_array_from_db.get(i).getEmail();
// byte[] image = contact_array_from_db.get(i).getImage();
Contact cnt = new Contact();
cnt.setID(tidno);
cnt.setName(name);
cnt.setEmail(email);
// cnt.setImage(image);
contact_data.add(cnt);
}
db.close();
cAdapter = new Contact_Adapter(MainActivity.this, R.layout.listview_row, contact_data);
Contact_listview.setAdapter(cAdapter);
cAdapter.notifyDataSetChanged();
}
public void Show_Toast(String msg) {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
Set_Referash_Data();
}
@Override
public void onBackPressed()
{
// super.onBackPressed();
if(exit){
finish();
}
else{
Toast.makeText(this, "Press Back Again To Exit" , Toast.LENGTH_SHORT).show();
exit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent dbdito = new Intent(Intent.ACTION_MAIN);
dbdito.addCategory(Intent.CATEGORY_HOME);
dbdito.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dbdito);
}
}, 1000);
}
}
public class Contact_Adapter extends ArrayAdapter<Contact> {
Context context;
int layoutResourceId;
Contact user;
ArrayList<Contact> data = new ArrayList<Contact>();
public Contact_Adapter(Context context, int layoutResourceId, ArrayList<Contact> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
UserHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new UserHolder();
holder.name = (TextView) row.findViewById(R.id.user_name_txt);
holder.email = (TextView) row.findViewById(R.id.user_email_txt);
holder.edit = (Button) row.findViewById(R.id.btn_update);
holder.delete = (Button) row.findViewById(R.id.btn_delete);
row.setTag(holder);
} else {
holder = (UserHolder) row.getTag();
}
user = data.get(position);
holder.edit.setTag(user.getID());
holder.delete.setTag(user.getID());
holder.name.setText(user.getName());
holder.email.setText(user.getEmail());
holder.edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("Edit Button Clicked", "**********");
Intent update_user = new Intent(context, Add_Update_User.class);
update_user.putExtra("called", "update");
update_user.putExtra("USER_ID", v.getTag().toString());
context.startActivity(update_user);
}
});
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
// TODO Auto-generated method stub
// show a message while loader is loading
AlertDialog.Builder adb = new AlertDialog.Builder(context);
adb.setTitle("Delete?");
adb.setMessage("Are you sure you want to delete");
final int user_id = Integer.parseInt(v.getTag().toString());
adb.setNegativeButton("Cancel", null);
adb.setPositiveButton("Ok", new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// MyDataObject.remove(positionToRemove);
DatabaseHandler dBHandler = new DatabaseHandler(context.getApplicationContext());
dBHandler.Delete_Contact(user_id);
Toast.makeText(getApplicationContext(), "Deleted!", Toast.LENGTH_LONG).show();
// MainActivity
MainActivity.this.onResume();
}
});
adb.show();
}
});
return row;
}
class UserHolder {
TextView name;
TextView email;
Button edit;
Button delete;
}
}
}
view raw Main.java hosted with ❤ by GitHub

Wednesday, 2 March 2016

Nimbuzz Android MUC Bot Coded in Java using PURE JAVA SMACK 4.1.4 API



All Available Features in MUC Bot:

- mem user
- kick user
- ban user (ipban user)
- grant mod., admin, owner
- add bot commander
- remove bot commander
- users greeting., etc

Requirements:

- Android 4.0.4 (Ice Cream Sandwich) or Above

Download

Download Full Source Code Available on my Github
STEP 1 : Add following dependencies in app-level build.gradle

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'org.igniterealtime.smack:smack-android:4.1.4'
compile 'org.igniterealtime.smack:smack-tcp:4.1.4'
compile 'org.igniterealtime.smack:smack-extensions:4.1.4'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.android.support:recyclerview-v7:23.1.1'
}

STEP 2 : Create a singleton class for making AbstractXMPPConnection universal throughout app
package example.com.db.nimbuzz_banbot_android_by_db;
import org.jivesoftware.smack.AbstractXMPPConnection;
/**
* Created by DB on 04-02-2016.
*/
public class XMPPLogic {
public static AbstractXMPPConnection connection = null;
private static XMPPLogic ourInstance = null;
public synchronized static XMPPLogic getInstance() {
if(ourInstance == null){
ourInstance = new XMPPLogic();
}
return ourInstance;
}
public AbstractXMPPConnection getConnection()
{
return this.connection;
}
public XMPPLogic() {
}
public void setConnection(AbstractXMPPConnection connection) {
this.connection = connection;
}
}
view raw XMPPLogic.java hosted with ❤ by GitHub


STEP 3 : Create a New Service class for creating xmpp connection to the server and connection Listener to handle connection state & other xmpp basic capabilities on Service Create and run this service in Foregroung as well:
package example.com.db.nimbuzz_banbot_android_by_db;
import android.app.Service;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.util.Log;
import android.widget.Toast;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.ConnectionListener;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Presence;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
import org.jivesoftware.smackx.ping.PingFailedListener;
import org.jivesoftware.smackx.ping.PingManager;
import java.io.IOException;
public class dbXMPPConn extends Service {
private PingManager pingManager;
private static final String TAG = "ConnectXmpp";
private static final String DOMAIN = "nimbuzz.com";
private static final String HOST = "o.nimbuzz.com";
private static final int PORT = 5222;
private String userName ="";
private String passWord = "";
XMPPConnectionListener connectionListener = new XMPPConnectionListener();
public static boolean connected = false;
public static boolean isToasted = true;
public static boolean chat_created = true;
public dbXMPPConn() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
if(intent != null){
userName = intent.getStringExtra("user");
passWord = intent.getStringExtra("pwd");
dbcon.init(userName, passWord);
dbcon.connectConnection();
}
return 0;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
dbcon.disconnectConnection();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
private dbXMPP dbcon = new dbXMPP();
public class dbXMPP{
public void init(final String userName, final String passWord) {
Log.i("dbXMPP", "Initializing!");
XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setUsernameAndPassword(userName, passWord);
configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
configBuilder.setResource("dbanbot-4droid-coded-by-db~");
configBuilder.setServiceName(DOMAIN);
configBuilder.setHost(HOST);
configBuilder.setPort(PORT);
XMPPLogic.connection = new XMPPTCPConnection(configBuilder.build());
XMPPLogic.connection.addConnectionListener(connectionListener);
}
public void connectConnection() {
AsyncTask<Void, Void, Boolean> connectionThread = new AsyncTask<Void, Void, Boolean>() {
@Override
protected Boolean doInBackground(Void... arg0) {
// Create a connection
try {
XMPPLogic.connection.connect();
login();
connected = true;
} catch (IOException e) {
} catch (SmackException e) {
} catch (XMPPException e) {
}
return null;
}
};
connectionThread.execute();
}
public void disconnectConnection() {
new Thread(new Runnable() {
@Override
public void run() {
XMPPLogic.connection.disconnect();
}
}).start();
}
}
private void sendping() throws InterruptedException {
pingManager = PingManager.getInstanceFor(XMPPLogic.connection);
pingManager.setPingInterval(10);
pingManager.registerPingFailedListener(new PingFailedListener() {
@Override
public void pingFailed() {
pingManager.setPingInterval(10);
}
});
}
private boolean loggedin = true;
public void login() {
try {
XMPPLogic.connection.login(userName, passWord);
//connection.login(userName, passWord);
} catch (XMPPException | SmackException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
loggedin = false;
chat_created = false;
}
if (!loggedin)
{
Log.e(TAG, "Unable to login");
disconnect();
loggedin = true;
}
else {
Log.e(TAG, "Logged in");
}
}
private void disconnect() {
if(XMPPLogic.connection != null && XMPPLogic.connection.isConnected()) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
XMPPLogic.connection.disconnect();
Log.e(TAG, "Connection disconnected");
return null;
}
}.execute();
}
}
public void setPresence() throws SmackException.NotConnectedException {
Presence dbpres = new Presence(Presence.Type.available);
dbpres.setMode(Presence.Mode.dnd);
dbpres.setStatus("Nimbuzz Login SMACK XMPP Android Coded By DB~@NC");
XMPPLogic.connection.sendStanza(dbpres);
}
// Connection Listener to check connection state
public class XMPPConnectionListener implements ConnectionListener {
@Override
public void connected(final XMPPConnection connection) {
Log.d("dbXMPP", "Connected!");
connected = true;
if (!connection.isAuthenticated()) {
login();
}
}
@Override
public void connectionClosed() {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Connection Closed!" , Toast.LENGTH_SHORT).show();
}
});
Log.d("dbXMPP", "Connection Closed!");
connected = false;
chat_created = false;
loggedin = false;
}
@Override
public void connectionClosedOnError(Exception arg0) {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Connection Closed On Error", Toast.LENGTH_SHORT).show();
}
});
Log.d("dbXMPP", "ConnectionClosedOn Error!");
connected = false;
chat_created = false;
loggedin = false;
}
@Override
public void reconnectingIn(int arg0) {
Log.d("dbXMPP", "Reconnecting " + arg0);
loggedin = false;
}
@Override
public void reconnectionFailed(Exception arg0) {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Re-Connection Failed", Toast.LENGTH_SHORT).show();
}
});
Log.d("dbXMPP", "ReconnectionFailed!");
connected = false;
chat_created = false;
loggedin = false;
}
@Override
public void reconnectionSuccessful() {
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Re-Connected!", Toast.LENGTH_SHORT).show();
}
});
Log.d("dbXMPP", "ReconnectionSuccessful");
connected = true;
chat_created = false;
loggedin = false;
}
@Override
public void authenticated(XMPPConnection arg0, boolean arg1) {
Log.d("dbXMPP", "Authenticated!");
loggedin = true;
//xmppClient.dbhere();
chat_created = true;
if (isToasted)
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Logged In Successfully", Toast.LENGTH_SHORT).show();
try {
setPresence();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
// conference();
Intent dbint = new Intent(dbXMPPConn.this, BotMainTabActivity.class);
dbint.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dbint);
try {
sendping();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
view raw dbXMPPConn.java hosted with ❤ by GitHub