/**
* Copyright (c) 2010 Michael A. MacDonald
*/
package android.androidVNC;
import com.cgcl.cloudesk.cloudeskmain.screens.act.R;
import android.app.Activity;
import android.app.Dialog;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.MenuItem.OnMenuItemClickListener;
import android.widget.Button;
import android.widget.TextView;
/**
* @author Michael A. MacDonald
*
*/
class IntroTextDialog extends Dialog {
private PackageInfo packageInfo;
private VncDatabase database;
static IntroTextDialog dialog;
static void showIntroTextIfNecessary(Activity context, VncDatabase database)
{
PackageInfo pi;
try
{
pi = context.getPackageManager().getPackageInfo("android.androidVNC", 0);
}
catch (PackageManager.NameNotFoundException nnfe)
{
return;
}
MostRecentBean mr = androidVNC.getMostRecent(database.getReadableDatabase());
if (mr == null || mr.getShowSplashVersion() != pi.versionCode)
{
if (dialog == null)
{
dialog = new IntroTextDialog(context, pi, database);
dialog.show();
}
}
}
/**
* @param context -- Containing dialog
*/
private IntroTextDialog(Activity context, PackageInfo pi, VncDatabase database) {
super(context);
setOwnerActivity(context);
packageInfo = pi;
this.database = database;
}
/* (non-Javadoc)
* @see android.app.Dialog#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intro_dialog);
StringBuilder sb = new StringBuilder(getContext().getResources().getString(R.string.intro_title));
sb.append(" ");
sb.append(packageInfo.versionName);
setTitle(sb);
sb.delete(0, sb.length());
sb.append(getContext().getResources().getString(R.string.intro_text));
sb.append(packageInfo.versionName);
sb.append(getContext().getResources().getString(R.string.intro_version_text));
TextView introTextView = (TextView)findViewById(R.id.textIntroText);
introTextView.setText(Html.fromHtml(sb.toString()));
introTextView.setMovementMethod(LinkMovementMethod.getInstance());
((Button)findViewById(R.id.buttonCloseIntro)).setOnClickListener(new View.OnClickListener() {
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
dismiss();
}
});
((Button)findViewById(R.id.buttonCloseIntroDontShow)).setOnClickListener(new View.OnClickListener() {
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
dontShowAgain();
}
});
}
/* (non-Javadoc)
* @see android.app.Dialog#onCreateOptionsMenu(android.view.Menu)
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getOwnerActivity().getMenuInflater().inflate(R.menu.intro_dialog_menu,menu);
menu.findItem(R.id.itemOpenDoc).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Utils.showDocumentation(getOwnerActivity());
dismiss();
return true;
}
});
menu.findItem(R.id.itemClose).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
dismiss();
return true;
}
});
menu.findItem(R.id.itemDontShowAgain).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
dontShowAgain();
return true;
}
});
return true;
}
private void dontShowAgain()
{
SQLiteDatabase db = database.getWritableDatabase();
MostRecentBean mostRecent = androidVNC.getMostRecent(db);
if (mostRecent != null)
{
mostRecent.setShowSplashVersion(packageInfo.versionCode);
mostRecent.Gen_update(db);
}
dismiss();
}
}