/*******************************************************************************
* Copyright 2011, 2012, 2013 fanfou.com, Xiaoke, Zhang
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*******************************************************************************/
package com.fanfou.app.opensource;
import java.io.File;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.fanfou.app.opensource.adapter.DraftsCursorAdaper;
import com.fanfou.app.opensource.api.bean.Draft;
import com.fanfou.app.opensource.db.Contents.DraftInfo;
import com.fanfou.app.opensource.dialog.ConfirmDialog;
import com.fanfou.app.opensource.service.Constants;
import com.fanfou.app.opensource.service.QueueService;
import com.fanfou.app.opensource.ui.ActionBar;
import com.fanfou.app.opensource.ui.ActionBar.AbstractAction;
import com.fanfou.app.opensource.util.CommonHelper;
import com.fanfou.app.opensource.util.StringHelper;
/**
* @author mcxiaoke
* @version 1.0 2011.10.27
* @version 1.1 2011.10.28
* @version 1.2 2011.11.11
*
*/
public class DraftsPage extends BaseActivity implements OnItemClickListener {
private class SendAllAction extends AbstractAction {
public SendAllAction() {
super(R.drawable.ic_sendall);
}
@Override
public void performAction(final View view) {
doSendAll();
}
}
private ActionBar mBar;
private ListView mListView;
private Cursor mCursor;
private DraftsCursorAdaper mAdapter;
private void doSendAll() {
final ConfirmDialog dialog = new ConfirmDialog(this, "发送所有",
"确定发送所有草稿吗?");
dialog.setClickListener(new ConfirmDialog.AbstractClickHandler() {
@Override
public void onButton1Click() {
startTaskQueueService();
onMenuHomeClick();
}
});
dialog.show();
}
@Override
protected int getPageType() {
return BaseActivity.PAGE_DRAFTS;
}
private void goWritePage(final Draft draft) {
if (draft == null) {
return;
}
final Intent intent = new Intent(this, WritePage.class);
intent.putExtra(Constants.EXTRA_TYPE, draft.type);
intent.putExtra(Constants.EXTRA_TEXT, draft.text);
intent.putExtra(Constants.EXTRA_ID, draft.id);
intent.putExtra(Constants.EXTRA_IN_REPLY_TO_ID, draft.replyTo);
if (!StringHelper.isEmpty(draft.filePath)) {
intent.putExtra(Constants.EXTRA_DATA, new File(draft.filePath));
}
startActivity(intent);
finish();
}
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setLayout();
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
super.onCreateOptionsMenu(menu);
final MenuItem clear = menu.add(0, BaseActivity.MENU_ID_CLEAR,
BaseActivity.MENU_ID_CLEAR, "清空草稿");
clear.setIcon(R.drawable.ic_menu_clear);
return true;
}
@Override
public void onItemClick(final AdapterView<?> parent, final View view,
final int position, final long id) {
final Cursor c = (Cursor) parent.getItemAtPosition(position);
if (c != null) {
final Draft draft = Draft.parse(c);
goWritePage(draft);
}
}
private void onMenuClearClick() {
getContentResolver().delete(DraftInfo.CONTENT_URI, null, null);
this.mCursor.requery();
CommonHelper.notify(this, "草稿箱已清空");
finish();
}
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
final int id = item.getItemId();
switch (id) {
case MENU_ID_CLEAR:
onMenuClearClick();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void setActionBar() {
this.mBar = (ActionBar) findViewById(R.id.actionbar);
this.mBar.setTitle("草稿箱");
this.mBar.setRightAction(new SendAllAction());
}
private void setLayout() {
setContentView(R.layout.list_drafts);
setActionBar();
setListView();
}
private void setListView() {
this.mCursor = managedQuery(DraftInfo.CONTENT_URI, DraftInfo.COLUMNS,
null, null, null);
if (this.mCursor.getCount() == 0) {
this.mBar.setRightActionEnabled(false);
}
this.mAdapter = new DraftsCursorAdaper(this, this.mCursor);
this.mListView = (ListView) findViewById(R.id.list);
this.mListView.setAdapter(this.mAdapter);
this.mListView.setOnItemClickListener(this);
}
private void startTaskQueueService() {
QueueService.start(this);
}
}