FulltextSearchResult.java :  » Database-Persistance » cheatdatabase-android » com » cheatdatabase » android » Android Open Source

Android Open Source » Database Persistance » cheatdatabase android 
cheatdatabase android » com » cheatdatabase » android » FulltextSearchResult.java
package com.cheatdatabase.android;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.cheatdatabase.android.pojo.Cheat;
import com.cheatdatabase.android.tools.GetDataFromWeb;
import com.cheatdatabase.android.tools.Tools;

/**
 * Anzeige der Suchresultate bei einer Volltext-Suche.
 * 
 * @author erbsland
 */
public class FulltextSearchResult extends ListActivity implements OnItemClickListener {

  private CheatAdapter mAdapter;
  private final int HOME = 0;
  public final static String SEARCHRESULT_FILENAME = "fulltext_searchform_searchresult";
  private ConnectivityManager cm;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fulltextsearchresult);
    setTitle(R.string.fulltext_search_results);

    // Internet-Verbindungs Check
    cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    ListView list = (ListView) findViewById(android.R.id.list);
    mAdapter = new CheatAdapter(this);

    String resultString = null;

    try {
      FileInputStream fIn = openFileInput(SEARCHRESULT_FILENAME);
      DataInputStream in = new DataInputStream(fIn);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      // Read file with UTF-8
      resultString = br.readLine();
    } catch (IOException ioe) {
      ioe.printStackTrace();
    }

    if (cm.getActiveNetworkInfo() != null) {
      Cheat[] cheats = GetDataFromWeb.fulltextSearchConvertJSONStringToCheatArrayOffline(resultString);

      for (int i = 0; i < cheats.length; i++) {
        // GameSystem-Namen holen
        cheats[i].setSystemName(Tools.getSystemNameById(this, cheats[i].getSystemId()));

        mAdapter.add(cheats[i]);
      }

      list.setAdapter(mAdapter);
      list.setOnItemClickListener(this);
    } else {
      Toast.makeText(this, R.string.no_internet, Toast.LENGTH_SHORT).show();
    }
  }

  /**
   * Aufbau vom Android-Men
   */
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, HOME, 0, R.string.goto_main_screen);
    return true;
  }

  /**
   * Handles item selections
   */
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case HOME:
      goHome();
      return true;
    }
    return false;
  }

  private void goHome() {
    Intent explicitIntent = new Intent(FulltextSearchResult.this, CheatDatabaseAndroid.class);
    startActivity(explicitIntent);
  }

  class CheatAdapter extends ArrayAdapter<Cheat> {
    public CheatAdapter(Context context) {
      super(context, 0);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View v = LayoutInflater.from(getContext()).inflate(R.layout.fulltextsearchitem, null);
      Cheat cheat = getItem(position);

      TextView tvGameName = (TextView) v.findViewById(R.id.tvGameName);
      TextView tvCheatTitle = (TextView) v.findViewById(R.id.tvCheatTitle);
      TextView tvCheatText = (TextView) v.findViewById(R.id.tvCheatText);

      if (tvGameName != null) {
        tvGameName.setText(cheat.getGameName() + " (" + cheat.getSystemName() + ")");
      }

      if (tvCheatTitle != null) {
        String styledTitle = cheat.getCheatTitle();
        tvCheatTitle.setText(Html.fromHtml(styledTitle), TextView.BufferType.SPANNABLE);
      }

      if (tvCheatText != null) {
        String styledText = cheat.getCheatText();
        styledText = styledText.replaceAll("</th><th>", " - ");
        styledText = styledText.replaceAll("</td><td>", " - ");
        styledText = styledText.replaceAll("</tr>", "<br>");

        tvCheatText.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
      }

      return v;
    }
  }

  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Cheat cheat = mAdapter.getItem(position);

    Intent explicitIntent = new Intent(FulltextSearchResult.this, CheatView.class);
    explicitIntent.putExtra("cheatId", cheat.getCheatId());

    // FIXME hier nocheine schnere lsung finden
    // Farbcodes mit weiss ersetzen
    String neutralCheatTitle = cheat.getCheatTitle();
    neutralCheatTitle = neutralCheatTitle.replaceAll("<font color=\"#6699ff\">", "");
    neutralCheatTitle = neutralCheatTitle.replaceAll("<font color=\"#ff6666\">", "");
    neutralCheatTitle = neutralCheatTitle.replaceAll("</font>", "");

    explicitIntent.putExtra("cheatTitle", neutralCheatTitle);
    explicitIntent.putExtra("gameName", cheat.getGameName());
    explicitIntent.putExtra("systemName", cheat.getSystemName());
    explicitIntent.putExtra("systemId", cheat.getSystemId());
    explicitIntent.putExtra("gameId", cheat.getGameId());

    startActivity(explicitIntent);
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.