package com.andorid.shu.love;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import com.android.FileBrowser.FileActivityHelper;
import com.android.FileBrowser.FileAdapter;
import com.android.FileBrowser.FileInfo;
import com.android.FileBrowser.FileUtil;
import com.android.FileBrowser.Main;
import com.sqlite.DbHelper;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnLongClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.app.ListActivity;
public class LoveReaderActivity extends Activity {
private static Boolean isExit = false;// �����ж��Ƿ��Ƴ�
private static Boolean hasTask = false;
private Context myContext;
private ShelfAdapter mAdapter;
private Button shelf_image_button;
private ListView shelf_list;
private Button buttontt;
int[] size = null;// ��������
private final int SPLASH_DISPLAY_LENGHT = 5000; // �ӳ�����
private String txtPath = "/sdcard/lovereader/���°ٿ�.txt";
private final int MENU_RENAME = Menu.FIRST;
DbHelper db;
List<BookInfo> books;
int realTotalRow;
int bookNumber; // ͼ�������
final String[] font = new String[] { "20", "24", "26", "30", "32", "36",
"40", "46", "50", "56", "60", "66", "70" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// AdManager.init(this,"893693f61b171f26", "fa396d910a218fa7", 30,
// false);
// YoumiOffersManager.init(this, "893693f61b171f26",
// "fa396d910a218fa7");
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.shelf);
// addYoumi();
// �����
// ��AdView.setVisibility(GONE)�������ع��������AdView.setVisibility(VISIBLE)������ʾ���
// new Handler().postDelayed(new Runnable() {
// // Ϊ�˼��ٴ���ʹ������Handler����һ����ʱ�ĵ���
// public void run() {
// Intent i = new Intent(ReaderActivity.this, ReaderActivity.class);
// // ͨ��Intent������������������Main���Activity
// ReaderActivity.this.startActivity(i); // ����Main����
// ReaderActivity.this.finish(); // �ر��Լ����������
// }
// }, SPLASH_DISPLAY_LENGHT);
db = new DbHelper(this);
if (!copyFile()) {
// Toast.makeText(this, "�����鲻���ڣ�", Toast.LENGTH_SHORT).show();
}
myContext = this;
init();
/************** ��ʼ�����ͼ�� *********************/
books = db.getAllBookInfo();// ȡ�����е�ͼ��
bookNumber = books.size();
int count = books.size();
int totalRow = count / 3;
if (count % 3 > 0) {
totalRow = count / 3 + 1;
}
realTotalRow = totalRow;
if (totalRow < 4) {
totalRow = 4;
}
size = new int[totalRow];
/***********************************/
mAdapter = new ShelfAdapter();// new adapter���������
shelf_list.setAdapter(mAdapter);
// ע��ContextView��view��
}
private void init() {
shelf_image_button = (Button) findViewById(R.id.shelf_image_button);
shelf_list = (ListView) findViewById(R.id.shelf_list);
}
public class ShelfAdapter extends BaseAdapter {
public ShelfAdapter() {
}
@Override
public int getCount() {
if (size.length > 3) {
return size.length;
} else {
return 3;
}
}
@Override
public Object getItem(int position) {
return size[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layout_inflater = (LayoutInflater) LoveReaderActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layout_inflater.inflate(R.layout.shelf_list_item,
null);
if (position < realTotalRow) {
int buttonNum = (position + 1) * 3;
if (bookNumber <= 3) {
buttonNum = bookNumber;
}
for (int i = 0; i < buttonNum; i++) {
if (i == 0) {
BookInfo book = books.get(position * 3);
String buttonName = book.bookname;
buttonName = buttonName.substring(0,
buttonName.indexOf("."));
Button button = (Button) layout
.findViewById(R.id.button_1);
button.setVisibility(View.VISIBLE);
button.setText(buttonName);
button.setId(book.id);
button.setOnClickListener(new ButtonOnClick());
button.setOnCreateContextMenuListener(listener);
} else if (i == 1) {
BookInfo book = books.get(position * 3 + 1);
String buttonName = book.bookname;
buttonName = buttonName.substring(0,
buttonName.indexOf("."));
Button button = (Button) layout
.findViewById(R.id.button_2);
button.setVisibility(View.VISIBLE);
button.setText(buttonName);
button.setId(book.id);
button.setOnClickListener(new ButtonOnClick());
button.setOnCreateContextMenuListener(listener);
} else if (i == 2) {
BookInfo book = books.get(position * 3 + 2);
String buttonName = book.bookname;
buttonName = buttonName.substring(0,
buttonName.indexOf("."));
Button button = (Button) layout
.findViewById(R.id.button_3);
button.setVisibility(View.VISIBLE);
button.setText(buttonName);
button.setId(book.id);
button.setOnClickListener(new ButtonOnClick());
button.setOnCreateContextMenuListener(listener);
}
}
bookNumber -= 3;
}
return layout;
}
};
// ��ӳ������
OnCreateContextMenuListener listener = new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// menu.setHeaderTitle(String.valueOf(v.getId()));
menu.add(0, 0, v.getId(), "��ϸ��Ϣ");
menu.add(0, 1, v.getId(), "ɾ������");
}
};
@Override
public boolean onContextItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case 0:
break;
case 1:
Dialog dialog = new AlertDialog.Builder(LoveReaderActivity.this)
.setTitle("��ʾ")
.setMessage("ȷ��Ҫɾ����")
.setPositiveButton("ȷ��",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
BookInfo book = db.getBookInfo(item
.getOrder());
File dest = new File("/sdcard/lovereader/"
+ book.bookname);
db.delete(item.getOrder());
if (dest.exists()) {
dest.delete();
Toast.makeText(myContext, "ɾ���ɹ�",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(myContext, "�����ļ�ɾ��ʧ��",
Toast.LENGTH_SHORT).show();
}
refreshShelf();
}
})
.setNegativeButton("ȡ��",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
}
}).create();// ������ť
dialog.show();
break;
default:
break;
}
return true;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 222) {
String isImport = data.getStringExtra("isImport");
if ("1".equals(isImport)) {
refreshShelf();
}
}
}
// ���¼������
public void refreshShelf() {
/************** ��ʼ�����ͼ�� *********************/
books = db.getAllBookInfo();// ȡ�����е�ͼ��
bookNumber = books.size();
int count = books.size();
int totalRow = count / 3;
if (count % 3 > 0) {
totalRow = count / 3 + 1;
}
realTotalRow = totalRow;
if (totalRow < 4) {
totalRow = 4;
}
size = new int[totalRow];
/***********************************/
mAdapter = new ShelfAdapter();// new adapter���������
shelf_list.setAdapter(mAdapter);
}
public class ButtonOnClick implements OnClickListener {
@Override
public void onClick(View v) {
// switch ( v.getId () ) {
// case 1 :
Intent intent = new Intent();
intent.setClass(LoveReaderActivity.this, BookActivity.class);
intent.putExtra("bookid", String.valueOf(v.getId()));
startActivity(intent);
}
}
public class ButtonOnLongClick implements OnLongClickListener {
@Override
public boolean onLongClick(View v) {
// Toast.makeText(myContext, "�ٰ�һ�κ��˼��˳�Ӧ�ó���",
// Toast.LENGTH_SHORT).show();
return true;
}
}
protected boolean copyFile() {
try {
String dst = txtPath;
File outFile = new File(dst);
if (!outFile.exists()) {
File destDir = new File("/sdcard/lovereader");
if (!destDir.exists()) {
destDir.mkdirs();
}
InputStream inStream = getResources().openRawResource(
R.raw.text);
outFile.createNewFile();
FileOutputStream fs = new FileOutputStream(outFile);
byte[] buffer = new byte[1024 * 1024];// 1MB
int byteread = 0;
while ((byteread = inStream.read(buffer)) != -1) {
fs.write(buffer, 0, byteread);
}
inStream.close();
fs.close();
// db.insert("test.txt", "0","40");
// db.close();
}
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
// ��������
private void addYoumi() {
/*
* //��ʼ�������ͼ AdView adView = new AdView(this, Color.GRAY,
* Color.WHITE,200); FrameLayout.LayoutParams params = new
* FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
* FrameLayout.LayoutParams.WRAP_CONTENT); //���ù����ֵ�λ��(��������Ļ���½�)
* params.gravity=Gravity.BOTTOM|Gravity.RIGHT; //�������ͼ����Activity��
* addContentView(adView, params);
*/
}
Timer tExit = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
isExit = false;
hasTask = true;
}
};
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// pagefactory.createLog();
// System.out.println("TabHost_Index.java onKeyDown");
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (isExit == false) {
isExit = true;
Toast.makeText(this, "�ٰ�һ�κ��˼��˳�Ӧ�ó���", Toast.LENGTH_SHORT)
.show();
if (!hasTask) {
tExit.schedule(task, 2000);
}
} else {
finish();
System.exit(0);
}
}
return false;
}
public boolean onCreateOptionsMenu(Menu menu) {// �����˵�
super.onCreateOptionsMenu(menu);
// ͨ��MenuInflater��XML ʵ����Ϊ Menu Object
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public boolean onOptionsItemSelected(MenuItem item) {// �����˵�
int ID = item.getItemId();
switch (ID) {
case R.id.mainexit:
creatIsExit();
break;
case R.id.addbook:
Intent i = new Intent();
i.setClass(LoveReaderActivity.this, Main.class);
startActivityForResult(i, 222);
// startActivity(new Intent(LoveReaderActivity.this, Main.class));
// finish();
break;
default:
break;
}
return true;
}
private void creatIsExit() {
Dialog dialog = new AlertDialog.Builder(LoveReaderActivity.this)
.setTitle("��ʾ")
.setMessage("�Ƿ�Ҫȷ��LoverReader��")
.setPositiveButton("ȷ��", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// dialog.cancel();
// finish();
LoveReaderActivity.this.finish();
android.os.Process.killProcess(android.os.Process
.myPid());
System.exit(0);
}
})
.setNegativeButton("ȡ��", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).create();// ������ť
dialog.show();
}
}