Android Open Source - downtown Products






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;
/*  w  w  w.  j  a va2 s.co  m*/

import java.util.ArrayList;
import org.dklisiaris.downtown.R;
import org.dklisiaris.downtown.adapters.CustomAdapter;
import org.dklisiaris.downtown.adapters.CustomSuggestionsAdapter;
import org.dklisiaris.downtown.db.Company;
import org.dklisiaris.downtown.db.DBHandler;
import org.dklisiaris.downtown.helper.ImageLoader;
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.os.AsyncTask;
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.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class Products extends ActionBarActivity implements SearchView.OnQueryTextListener{

    SearchView searchView;
    MenuItem searchMenuItem;

    ListView list;
    CustomAdapter adapter;
    DBHandler db;
    String catID,company,col,subcatID=null,keywordID;
    boolean withWebsiteOnly = false;
    ArrayList<String> areas;
    static final int CATEGORY_BASED = 0;
    static final int KEYWORD_BASED = 1;
    int queryMode = CATEGORY_BASED;

    static final int IMG_CHANGE_DELAY = 2500;
    Handler imgChanger=null;
    ArrayList<String> imgFilenames=null;
    ImageLoader iLoader;
    int imgID=0;


    @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);
                }
            }
        });
        return true;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.tab_list);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        Intent i = getIntent();

        String source = i.getStringExtra("source");
        if(source!=null && source.equals("suggestions")){
            keywordID = i.getStringExtra("keywordID");
            queryMode = KEYWORD_BASED;
        }
        else if(source!=null && source.equals("subcats")){
            // getting attached intent data

            subcatID = i.getStringExtra("subcatID");
            catID = i.getStringExtra("catID");
            company = i.getStringExtra("company");
            col = i.getStringExtra("col");
            withWebsiteOnly = i.getBooleanExtra("withWebsiteOnly", false);
            areas = i.getStringArrayListExtra("areas");
            queryMode = CATEGORY_BASED;
        }

        db = DBHandler.getInstance(this);
        iLoader = new ImageLoader(this);

        new CompaniesTask().execute();


    }

    @Override public void onStop(){super.onStop(); if(imgChanger!=null)stopRepeatingTask();}
    @Override public void onResume(){super.onResume(); if(imgChanger!=null)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.com_banner);

            // 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 onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                onBackPressed();
                return true;
            case R.id.toMainHome:
                Intent upIntent = new Intent(this,MainActivity.class);
                upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(upIntent);
                finish();
                return true;
            case R.id.favourites:
                Intent favIntent = new Intent(this,FavsActivity.class);
                favIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                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 boolean onQueryTextSubmit(String query) {
        if (query.length()<3){
            Toast t = Toast.makeText(this, "???????????? ??????????? 3 ????????????", 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);
        }
        return true;
    }


    @Override
    public boolean onQueryTextChange(String newText) {
        // TODO Auto-generated method stub
        return false;
    }

    protected class CompaniesTask extends AsyncTask<String, Integer, ArrayList<Company>> {
        ArrayList<Company> cmps;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            setSupportProgressBarIndeterminateVisibility(true);

        }

        protected ArrayList<Company> doInBackground(String... query) {
            String where;
            ArrayList<Company> comps = null;
            switch(queryMode){
                case CATEGORY_BASED:
                    if(col.equals("co_subcategory") && subcatID != null){
                        //subCatID=db.getSubcatIDbyName(catID, company);
                        //where="co_category='"+catID+"' and co_subcategory like '"+subcatID+"' or co_subcategory like '%,"+subcatID+",%' or co_subcategory like '%,"+subcatID+"' or co_subcategory like '"+subcatID+",%'";
                        comps = db.getCompaniesFiltered(subcatID,withWebsiteOnly,areas);
            
            /* Getting the appropriate banners */
                        imgFilenames = db.getBanners(Integer.parseInt(subcatID));
                        imgID = imgFilenames.size()-1;
                    }
                    else{
                        where="co_category='"+catID+"' and "+col+"='"+company+"'";
                        comps = db.getCompaniesWhere(where);
                    }
                    break;
                case KEYWORD_BASED:
                    comps = db.getCompaniesByKeywordId(keywordID);
                    break;
                default:
                    throw new IllegalArgumentException("Unsupported Query Mode");
            }




            ((GlobalData)getApplicationContext()).setSelected_companies(comps);
            return comps;
        }


        protected void onPostExecute(ArrayList<Company> comps) {

            list=(ListView)findViewById(R.id.list);
            View header_view = View.inflate(getApplicationContext(), R.layout.products_header, null);
            TextView hv = ((TextView)header_view.findViewById(R.id.numProds));
            hv.setText(Integer.toString(comps.size()));
            list.addHeaderView(header_view);

            adapter = new CustomAdapter(getApplicationContext());
            adapter.setSubcatID(subcatID);
            adapter.setData(comps);
            list.setAdapter(adapter);
            //Log.d("Debug","gets Here");
            if(subcatID!=null)Log.d("--- This is subcatID ---",subcatID);
            setSupportProgressBarIndeterminateVisibility(false);
          
          /* Starting the banner show if there are any banners */
            if(imgFilenames!=null && imgFilenames.size()>0){
                imgChanger = new Handler();
                startRepeatingTask();
            }
            else{
                imgChanger = null;
            }

            list.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    // selected item
                    if((TextView)view.findViewById(R.id.name)!=null){
                        TextView tv = (TextView)view.findViewById(R.id.name);
                        String product = tv.getText().toString();
                        // Launching new Activity on selecting single List Item
                        Intent i = new Intent(getApplicationContext(), SingleListItem.class);
                        // sending data to new activity
                        i.putExtra("product", product);
                        if(subcatID!=null)i.putExtra("subcatID", Integer.parseInt(subcatID));
                        i.putExtra("pos",position-1);
                        startActivity(i);
                    }
                }
            });
        }
    }
}




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