package in.co.praveenkumar.mdroid.dialog; import in.co.praveenkumar.R; import in.co.praveenkumar.mdroid.activity.CourseActivity; import in.co.praveenkumar.mdroid.activity.LoginActivity; import in.co.praveenkumar.mdroid.helper.ImageDecoder; import in.co.praveenkumar.mdroid.helper.SessionSetting; import in.co.praveenkumar.mdroid.model.MoodleContact; import in.co.praveenkumar.mdroid.model.MoodleCourse; import in.co.praveenkumar.mdroid.model.MoodleDiscussion; import in.co.praveenkumar.mdroid.model.MoodleEvent; import in.co.praveenkumar.mdroid.model.MoodleForum; import in.co.praveenkumar.mdroid.model.MoodleMessage; import in.co.praveenkumar.mdroid.model.MoodleModule; import in.co.praveenkumar.mdroid.model.MoodleModuleContent; import in.co.praveenkumar.mdroid.model.MoodlePost; import in.co.praveenkumar.mdroid.model.MoodleSection; import in.co.praveenkumar.mdroid.model.MoodleSiteInfo; import in.co.praveenkumar.mdroid.model.MoodleUser; import in.co.praveenkumar.mdroid.model.MoodleUserCourse; import java.io.File; import android.annotation.TargetApi; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class LogoutDialog extends Dialog implements android.view.View.OnClickListener { Context context; MoodleSiteInfo siteinfo; public LogoutDialog(Context context, long siteid) { super(context); this.context = context; siteinfo = MoodleSiteInfo.findById(MoodleSiteInfo.class, siteid); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.dialog_logout); // Get account info for dialog TextView userfullname = (TextView) findViewById(R.id.dialog_logout_user_fullname); TextView sitename = (TextView) findViewById(R.id.dialog_logout_sitename); ImageView userimage = (ImageView) findViewById(R.id.dialog_logout_user_image); Button confirmbutton = (Button) findViewById(R.id.dialog_logout_confirm); Button cancelbutton = (Button) findViewById(R.id.dialog_logout_cancel); // Set values userfullname.setText(siteinfo.getFullname()); sitename.setText(siteinfo.getSitename()); Bitmap userImage = ImageDecoder .decodeImage(new File(Environment.getExternalStorageDirectory() + "/MDroid/." + siteinfo.getId())); if (userImage != null) userimage.setImageBitmap(userImage); confirmbutton.setOnClickListener(this); cancelbutton.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.dialog_logout_confirm: performLogout(siteinfo.getId()); break; case R.id.dialog_logout_cancel: break; } dismiss(); } public void performLogout(long siteid) { // Delete siteinfo MoodleSiteInfo.deleteAll(MoodleSiteInfo.class, "id = ?", String.valueOf(siteid)); // set a new site from db as current site. The below call will pick a // new site from db as current site SessionSetting session = new SessionSetting(context); // Now delete all other info related to that site MoodleContact.deleteAll(MoodleContact.class, "siteid = ?", String.valueOf(siteid)); MoodleCourse.deleteAll(MoodleCourse.class, "siteid = ?", String.valueOf(siteid)); MoodleDiscussion.deleteAll(MoodleDiscussion.class, "siteid = ?", String.valueOf(siteid)); MoodleEvent.deleteAll(MoodleEvent.class, "siteid = ?", String.valueOf(siteid)); MoodleForum.deleteAll(MoodleForum.class, "siteid = ?", String.valueOf(siteid)); MoodleMessage.deleteAll(MoodleMessage.class, "siteid = ?", String.valueOf(siteid)); MoodleModule.deleteAll(MoodleModule.class, "siteid = ?", String.valueOf(siteid)); MoodleModuleContent.deleteAll(MoodleModuleContent.class, "siteid = ?", String.valueOf(siteid)); MoodlePost.deleteAll(MoodlePost.class, "siteid = ?", String.valueOf(siteid)); MoodleSection.deleteAll(MoodleSection.class, "siteid = ?", String.valueOf(siteid)); MoodleUser.deleteAll(MoodleUser.class, "siteid = ?", String.valueOf(siteid)); MoodleUserCourse.deleteAll(MoodleUserCourse.class, "siteid = ?", String.valueOf(siteid)); Intent i; if (session.getCurrentSiteId() == SessionSetting.NO_SITE_ID) i = new Intent(context, LoginActivity.class); // No more sites in db else i = new Intent(context, CourseActivity.class); // New site from db i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(i); } }