package org.bt.nsestocky.activity;
import java.util.List;
import org.bt.nsestocky.data.Stock;
import org.bt.nsestocky.data.StockDBHelper;
import org.bt.nsestocky.util.StockUtility;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.net.Uri;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
public class BSEStocksActivity extends ExchangeActivity {
@Override
public void loadStocks() {
sa = new StockAdapter(this);
setListAdapter(sa);
if (StockDBHelper.getBSEStocksList().size() > 0)
StockUtility.showShortToast("Stocks Loaded..");
else {
StockUtility.showShortToast("Press Menu->ADD to add new stock");
// openOptionsMenu();
}
}
@Override
protected void validateAndFetchStock(String stock) {
if (stock != null && !"".equals(stock.trim())) {
String code=null;
try{
Long.parseLong(stock);
code = stock;
}catch(Exception e){
}
Stock s = new Stock(stock,code);
int index=-1;
if ((index=StockDBHelper.getBSEStocksList().indexOf(s))!=-1) {
s=StockDBHelper.getBSEStocksList().get(index);
StockUtility.showShortToast("Stock " + s.getCompanyName()
+ " already exists");
} else if (StockUtility.isNetConnected()) {
new FetchStockAsyncTask(stock).execute(null);
showDialog(FETCH_STOCK);
} else {
showNetNotConnected();
}
}
}
@Override
public Object fetchStockinBG(String stock, int position) {
if (position == 0) {
StockUtility.getBSEIndex();
return position;
} else {
Object obj = StockUtility.fetchStockFromBSE(stock);
// Object obj = StockUtility.fetchStockFromAppEng(stock);
// if(obj instanceof List && ((List)obj).size()>0){
// obj = ((List)obj).get(0);
// }
if(position!=-1 && obj instanceof Stock){
StockUtility.updatePortFolioDetails((Stock)obj, (Stock)StockDBHelper.getBSEStocksList().get(position-1));
}
return obj;
}
//
}
@Override
public void showExchangeDetails(StockViewWrapper wrapper) {
Float bseIndex = StockUtility.getPrefs().getFloat(
BSE_INDEX_KEY, 0f);
Float bseChangeIndex = StockUtility.getPrefs().getFloat(
BSE_INDEX_CHG_KEY, 0f);
String ltt = StockUtility.getPrefs().getString(
BSE_INDEX_LTT_KEY, "");
TextView t1 = wrapper.getT1();
TextView t2 = wrapper.getT2();
if (bseIndex != 0) {
t1.setText("Sensex: " + bseIndex);
t2.setText("Change: " + bseChangeIndex + " LTT: " + ltt);
if (bseChangeIndex < 0) {
t1.setTextColor(Color.RED);
} else {
t1.setTextColor(Color.GREEN);
}
} else {
t1.setText("Sensex: <Not available>");
t2.setText("");
}
}
@Override
public Object getStockValue(int position) {
return StockDBHelper.getBSEStocksList().get(position);
}
@Override
public int getStockCount() {
return StockDBHelper.getBSEStocksList().size() + 1;
}
@Override
public void notifyIndexChanged(SharedPreferences sp, String key) {
if (getWindow().isActive()) {
if (key == BSE_INDEX_CHG_KEY) {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("notifying list changed.. BSE");
sa.notifyDataSetChanged();
}
});
}
} else {
System.out.println("Window not active..");
}
}
@Override
public Stock getStockFromPosition() {
Stock stock;
if (selectedPosition == 0) {
stock = new Stock("BSE");
} else {
stock = (Stock) StockDBHelper.getBSEStocksList().get(
selectedPosition - 1);
}
return stock;
}
protected void deleteSelectedStock() {
if (selectedPosition != -1) {
Stock stock = (Stock) StockDBHelper.getBSEStocksList().get(
selectedPosition - 1);
StockUtility.showShortToast("Deleting Stock: " + stock.getCompanyName());
StockDBHelper.deleteBSEStock(stock);
setListAdapter(sa);
sa.notifyDataSetChanged();
// StockUtility.showShortToast("Stock "+stock.getSymbol()+" Deleted");
}
}
public void webSelected(){
String url=null;
if(selectedPosition==0){
url = BSE_MAIN_PAGE;
}else if(selectedPosition>0){
Stock selStock=(Stock) StockDBHelper.getBSEStocksList().get(selectedPosition-1);
// String code=StockUtility.getPrefs().getString(selStock.getSymbol(), null);
// if(code!=null)
url = bseStockPageURL+selStock.getSymbol();
}
if(url!=null){
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
}
}
|