Back to project page android_app.
The source code is released under:
Apache License
If you think the Android project android_app listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.example.t_danbubbletea; /*/* w w w .j a v a 2 s. co m*/ ~ ******************************************************************************* ~ Copyright (c) 2013-2014 Daniel Lin, Kamal Chaya, Sean Penney, and Daniel Chuang ~ ~ 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. ~ ***************************************************************************** */ import java.util.concurrent.ExecutionException; import models.ApiConnector; import models.DatabaseTeaInfo; import models.TeaViewFragment; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.example.t_danbubbletea.R; import TabAdapterPackage.GridViewCustomAdapter; import android.app.Fragment; import android.app.FragmentManager; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; public class MySelections extends Fragment { DatabaseTeaInfo teaInfo = new DatabaseTeaInfo(); @SuppressWarnings("unused") private boolean mShowingBack = false; @Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.fragment_tea_selections, container, false); getActivity().setTitle("Tea Selections"); // animation when enter home page rootView.startAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.image_click)); //download the URL's asynchronously (put the info in the teaInfo object) try { teaInfo = new GetTeaInfoTask().execute(new ApiConnector()).get(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } //make the gridview, set its adapter GridView gridView = (GridView)rootView.findViewById(R.id.grid_view_tea_selections); GridViewCustomAdapter gvAdapter = new GridViewCustomAdapter(getActivity(), teaInfo.imageURLs, teaInfo.teaNames); gridView.setAdapter(gvAdapter); //make the on click listeners gridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Fragment newFragment; switch(position) { default: Bundle teaViewArgs = new Bundle(); teaViewArgs.putString("teaName", teaInfo.teaNames.get(position)); teaViewArgs.putString("teaImgUrl", teaInfo.imageURLs.get(position)); teaViewArgs.putString("teaDesc", teaInfo.teaDescriptions.get(position)); newFragment = new TeaViewFragment(); newFragment.setArguments(teaViewArgs); break; } if (newFragment != null) { flipCard(newFragment); } } private void flipCard(Fragment newFragment){ mShowingBack = true; FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().setCustomAnimations( R.anim.card_flip_right_in, R.anim.card_flip_right_out, R.anim.card_flip_left_in, R.anim.card_flip_left_out).replace(R.id.frame_container, newFragment) .addToBackStack(null).commit(); // create new fragment and allow user to go back to previous fragment } }); return rootView; } /* * Asynchronously query database for all the tea tuples, and get the URL's from * the URL field */ private class GetTeaInfoTask extends AsyncTask<ApiConnector,Long,DatabaseTeaInfo> { DatabaseTeaInfo teaInfoFromDb = new DatabaseTeaInfo(); private static final String TAG = "debug tag"; @Override protected DatabaseTeaInfo doInBackground(ApiConnector... arg0) { //Query database to get tuples in json format JSONArray jsonArrayTeas = arg0[0].GetAllTeas(); //iterate through json array and populate database tea info object for (int i = 0; i < jsonArrayTeas.length(); i++) { JSONObject json = null; try { json = jsonArrayTeas.getJSONObject(i); /* * The URL is a little FUBAR'ed when it is returned in JSON * format with weird backslashes and forward slashes. This bit * of code makes everything a forward slash, making it a valid URL. */ String parsedURL = ("http://" + json.getString("imageURL")).replace("\\", ""); teaInfoFromDb.imageURLs.add(i, parsedURL); Log.d(TAG, parsedURL); teaInfoFromDb.teaDescriptions.add(i, json.getString("desc")); teaInfoFromDb.teaNames.add(i, json.getString("name")); } catch (JSONException e) { e.printStackTrace(); } } //return the database teainfo object so image urls can be used by imageloader return teaInfoFromDb; } } }