Android Open Source - downtown Main Activity






From Project

Back to project page downtown.

License

The source code is released under:

GNU General Public License

If you think the Android project downtown listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.dklisiaris.downtown;
/* ww w  . ja va  2 s .c  o m*/
//import gr.futurearts.greekguide.actionbar.ActionBar;

import java.util.ArrayList;
import org.dklisiaris.downtown.R;
import org.dklisiaris.downtown.adapters.CustomStringAdapter;
import org.dklisiaris.downtown.adapters.CustomSuggestionsAdapter;
import org.dklisiaris.downtown.db.Category;
import org.dklisiaris.downtown.db.DBHandler;
import org.dklisiaris.downtown.helper.ImageLoader;
import org.dklisiaris.downtown.maps.Nearby;
import org.dklisiaris.downtown.widgets.AspectRatioImageView;

import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends ActionBarActivity implements SearchView.OnQueryTextListener{
  
    static final int IMG_CHANGE_DELAY = 2300;
    SearchView searchView;
    MenuItem searchMenuItem;
    ListView list;
    CustomStringAdapter adapter;
    Handler imgChanger;
    ArrayList<String> imgFilenames;
    ImageLoader iLoader;
    int imgID=0;
    
    private DBHandler db;
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_general, menu);
        
        // Get the SearchView and set the searchable configuration
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menu_search));
        // Assumes current activity is the searchable activity
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
        //Create the search view
        //searchView = new SearchView(getSupportActionBar().getThemedContext());
        searchView.setQueryHint(getString(R.string.query_hint));
        searchView.setOnQueryTextListener(this);
        searchView.setSuggestionsAdapter(new CustomSuggestionsAdapter(this, searchManager.getSearchableInfo(getComponentName()), searchView));
        //searchView.setIconified(true);
        
        AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
        searchText.setHintTextColor(getResources().getColor(R.color.white));
        searchMenuItem = menu.findItem(R.id.menu_search);
        searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean queryTextFocused) {
                if(!queryTextFocused) {
                  MenuItemCompat.collapseActionView(searchMenuItem);
                    searchView.setQuery("", false);
                }
            }
        });
        //searchView.setSubmitButtonEnabled(true);
    //SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
    //SearchableInfo info = searchManager.getSearchableInfo(getComponentName());

        return true;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.toMainHome:
          Toast.makeText(getApplicationContext(),getString(R.string.this_is_home), Toast.LENGTH_SHORT).show();
          return true;
        case R.id.favourites:
          Intent favIntent = new Intent(this,FavsActivity.class);
          favIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          favIntent.putExtra("caller","Main");
          startActivity(favIntent);
          //finish();
          return true;  
        case R.id.FreeEntry:
          Intent i = new Intent(this,MoreActivity.class);
          i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          i.putExtra("title","entry");
          startActivity(i);
          //finish();
          return true; 
        case R.id.MoreInfo:
          Intent mi = new Intent(this,MoreActivity.class);
          mi.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          mi.putExtra("title","info");
          startActivity(mi);
          return true;
        case R.id.Contact:
          Intent ci = new Intent(this,MoreActivity.class);
          ci.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          ci.putExtra("title","contact");
          startActivity(ci);
          return true;   
        default:
            return super.onOptionsItemSelected(item);
        }
    }    
    
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getSupportActionBar().setDisplayHomeAsUpEnabled(false);     
       
        final ArrayList<Category> listCategs;
        
        db = DBHandler.getInstance(this);
               
        imgFilenames = db.getBanners(0);
        iLoader = new ImageLoader(this);
        
        /* imgID is used by runnable thread to show the next banner
         * runnable uses a mod opearation to access the array in circular way
         * so we start with the last id in order to show the first banner in first increment
         */       
        imgID = imgFilenames.size()-1;
               
        listCategs = db.getCategories("cat_parent_id is null");
        View header_view = View.inflate(this, R.layout.img_header, null);
        Button btn_nearby = (Button)header_view.findViewById(R.id.btn_nearby);
        
        btn_nearby.setOnClickListener(new OnClickListener() {           
          public void onClick(View v){
            if(isNetworkAvailable()){
              Intent i = new Intent(getApplicationContext(), Nearby.class);
              //Intent i = new Intent(getApplicationContext(), TestActivity.class);              
                startActivity(i);
            }
            else Toast.makeText(getApplicationContext(), getString(R.string.no_internet), Toast.LENGTH_LONG).show();
            
          }    
    });
        
        
        list=(ListView)findViewById(R.id.list);

        list.addHeaderView(header_view);
        // Getting adapter by passing xml data ArrayList
        adapter=new CustomStringAdapter(this, listCategs);
        list.setAdapter(adapter);
        
        imgChanger = new Handler();
        //startRepeatingTask();
        
    list.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        if (!(view.findViewById(R.id.title) == null)) {        
          // selected item         
          TextView tv = (TextView)view.findViewById(R.id.title);
          String product = tv.getText().toString();
          String catID=(String)view.getTag(); 
          // Launching new Activity on selecting single List Item
          
          //Intent i = new Intent(getApplicationContext(), Tabs.class);
          Intent i = new Intent(getApplicationContext(), SubcatsAndFilters.class);
          
          GlobalData state = ((GlobalData)getApplicationContext());
          state.setCategory(product);
          state.setCatID(catID);
          // sending data to new activity
          //i.putExtra("product", product);
          startActivity(i);
        }
      }
    });        
 
  }
  
  @Override public void onStop(){super.onStop(); stopRepeatingTask();}
  @Override public void onResume(){super.onResume(); stopRepeatingTask(); startRepeatingTask();  }
  
  Runnable m_statusChecker = new Runnable()
  {
       @Override 
       public void run() {
            //change the images in a circular array way           
           imgID=((imgID+1)%imgFilenames.size());
           
           AspectRatioImageView imageView = (AspectRatioImageView) findViewById(R.id.imageHead);

          // load image
          Drawable d = iLoader.loadImage(imgFilenames.get(imgID));
          if(d!=null)imageView.setImageDrawable(d);
      
      imgChanger.postDelayed(m_statusChecker, IMG_CHANGE_DELAY);
       }
  };

  void startRepeatingTask()
  {
      m_statusChecker.run(); 
  }

  void stopRepeatingTask()
  {
    imgChanger.removeCallbacks(m_statusChecker);
  }

    @Override
    public boolean onQueryTextSubmit(String query) {
        //Toast.makeText(this, "You searched for: " + query, Toast.LENGTH_LONG).show();
      if (query.length()<3){
        Toast t = Toast.makeText(this, getString(R.string.char_limit), Toast.LENGTH_LONG);
        t.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
        t.show();
      }else{      
        Intent sIntent = new Intent(this,SearchActivity.class);
        sIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        sIntent.putExtra("query",query);
        //searchView.setIconified(true);
        MenuItemCompat.collapseActionView(searchMenuItem);
        startActivity(sIntent);
      }
      //finish();      
        return true;
    }
 

  @Override
  public boolean onQueryTextChange(String newText) {
    return false;
  }
  
  
  private boolean isNetworkAvailable() {
      ConnectivityManager connectivityManager 
            = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
      return activeNetworkInfo != null && activeNetworkInfo.isConnected();
  }
  
  
}




Java Source Code List

com.google.maps.android.BuildConfig.java
com.google.maps.android.BuildConfig.java
com.google.maps.android.MarkerManager.java
com.google.maps.android.MathUtil.java
com.google.maps.android.PolyUtil.java
com.google.maps.android.SphericalUtil.java
com.google.maps.android.clustering.ClusterItem.java
com.google.maps.android.clustering.ClusterManager.java
com.google.maps.android.clustering.Cluster.java
com.google.maps.android.clustering.algo.Algorithm.java
com.google.maps.android.clustering.algo.GridBasedAlgorithm.java
com.google.maps.android.clustering.algo.NonHierarchicalDistanceBasedAlgorithm.java
com.google.maps.android.clustering.algo.PreCachingAlgorithmDecorator.java
com.google.maps.android.clustering.algo.StaticCluster.java
com.google.maps.android.clustering.view.ClusterRenderer.java
com.google.maps.android.clustering.view.DefaultClusterRenderer.java
com.google.maps.android.geometry.Bounds.java
com.google.maps.android.geometry.Point.java
com.google.maps.android.projection.Point.java
com.google.maps.android.projection.SphericalMercatorProjection.java
com.google.maps.android.quadtree.PointQuadTree.java
com.google.maps.android.ui.BubbleIconFactory.java
com.google.maps.android.ui.IconGenerator.java
com.google.maps.android.ui.RotationLayout.java
com.google.maps.android.ui.SquareTextView.java
com.sothree.slidinguppanel.SlidingUpPanelLayout.java
com.sothree.slidinguppanel.library.BuildConfig.java
com.sothree.slidinguppanel.library.BuildConfig.java
org.dklisiaris.downtown.Addresses.java
org.dklisiaris.downtown.BuildConfig.java
org.dklisiaris.downtown.FavsActivity.java
org.dklisiaris.downtown.GlobalData.java
org.dklisiaris.downtown.Intro.java
org.dklisiaris.downtown.MainActivity.java
org.dklisiaris.downtown.Manifest.java
org.dklisiaris.downtown.MapActivity.java
org.dklisiaris.downtown.MoreActivity.java
org.dklisiaris.downtown.Products.java
org.dklisiaris.downtown.SearchActivity.java
org.dklisiaris.downtown.Search.java
org.dklisiaris.downtown.SingleListItem.java
org.dklisiaris.downtown.Subcategories.java
org.dklisiaris.downtown.SubcatsAndFilters.java
org.dklisiaris.downtown.Tabs.java
org.dklisiaris.downtown.TestActivity.java
org.dklisiaris.downtown.WebViewActivity.java
org.dklisiaris.downtown.Websites.java
org.dklisiaris.downtown.actionbar.ActionBar.java
org.dklisiaris.downtown.actionbar.ScrollingTextView.java
org.dklisiaris.downtown.adapters.AddressFilterAdapter.java
org.dklisiaris.downtown.adapters.CustomAdapter.java
org.dklisiaris.downtown.adapters.CustomStringAdapter.java
org.dklisiaris.downtown.adapters.CustomSuggestionsAdapter.java
org.dklisiaris.downtown.adapters.MultiSelectionAdapter.java
org.dklisiaris.downtown.adapters.SubcatsAdapter.java
org.dklisiaris.downtown.db.Banner.java
org.dklisiaris.downtown.db.Category.java
org.dklisiaris.downtown.db.Company.java
org.dklisiaris.downtown.db.DBHandler.java
org.dklisiaris.downtown.db.DBInterface.java
org.dklisiaris.downtown.db.Image.java
org.dklisiaris.downtown.db.InitData.java
org.dklisiaris.downtown.db.Keyword.java
org.dklisiaris.downtown.db.Mapping.java
org.dklisiaris.downtown.db.Product.java
org.dklisiaris.downtown.db.QueryBuilder.java
org.dklisiaris.downtown.downloader.DownloadTask.java
org.dklisiaris.downtown.downloader.NotificationHelper.java
org.dklisiaris.downtown.helper.AccessAssets.java
org.dklisiaris.downtown.helper.AlertDialogManager.java
org.dklisiaris.downtown.helper.ConnectionDetector.java
org.dklisiaris.downtown.helper.FileCache.java
org.dklisiaris.downtown.helper.ImageLoader.java
org.dklisiaris.downtown.helper.InfoHelper.java
org.dklisiaris.downtown.helper.KeyboardUtil.java
org.dklisiaris.downtown.helper.MemoryCache.java
org.dklisiaris.downtown.helper.ShareHelper.java
org.dklisiaris.downtown.helper.UpdateConfirmDialog.java
org.dklisiaris.downtown.helper.UpdateHelper.java
org.dklisiaris.downtown.helper.Utils.java
org.dklisiaris.downtown.helper.XMLParser.java
org.dklisiaris.downtown.maps.AbstractMapActivity.java
org.dklisiaris.downtown.maps.CompanyMarker.java
org.dklisiaris.downtown.maps.DirectionsInfo.java
org.dklisiaris.downtown.maps.GMapV2Direction.java
org.dklisiaris.downtown.maps.Nearby.java
org.dklisiaris.downtown.maps.PopupAdapter.java
org.dklisiaris.downtown.providers.KeywordContract.java
org.dklisiaris.downtown.providers.KeywordProvider.java
org.dklisiaris.downtown.widgets.AspectRatioImageView.java
org.dklisiaris.downtown.widgets.CheckableRelativeLayout.java
org.dklisiaris.downtown.widgets.CustomScrollView.java
org.dklisiaris.downtown.widgets.FlipAnimator.java
org.dklisiaris.downtown.widgets.InertCheckBox.java
org.dklisiaris.downtown.widgets.MultiSpinner.java