// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.oliodevices.assist.app.fragments; import android.os.AsyncTask; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AutoCompleteTextView; import android.widget.ImageView; import android.widget.ListView; import butterknife.ButterKnife; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.common.api.PendingResult; import com.google.android.gms.common.api.Status; import com.google.android.gms.location.places.AutocompletePrediction; import com.google.android.gms.location.places.AutocompletePredictionBuffer; import com.google.android.gms.location.places.GeoDataApi; import com.google.android.gms.location.places.Place; import com.google.android.gms.location.places.PlaceBuffer; import com.google.android.gms.location.places.Places; import com.google.android.gms.maps.model.LatLng; import com.olio.data.object.user.Location; import com.olio.data.object.user.LocationBuilder; import com.oliodevices.assist.app.activities.AssistantActivityCallbacks; import com.oliodevices.assist.app.adapters.ContactInfoAdapter; import com.oliodevices.assist.app.api.models.ContactInfo; import com.oliodevices.assist.app.core.Constants; import com.oliodevices.assist.app.core.Utils; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; // Referenced classes of package com.oliodevices.assist.app.fragments: // AssistantBaseFragment public class AssistantContactLocationFragment extends AssistantBaseFragment { private static final String STATE_CONTACT_INFO = "contact_info"; private static final int TIME_TO_WAIT_FOR_RESPONSE_MILLIS = 5000; ImageView mClearInput; private ArrayList mContacts; AutoCompleteTextView mFilter; private AsyncTask mFindContactsTask; private AsyncTask mFindLocationTask; private boolean mIsAlreadyLoaded; private ContactInfoAdapter mListAdapter; ListView mListView; View mProgressView; public AssistantContactLocationFragment() { } private void findLocationForContact(final ContactInfo contact) { final GoogleApiClient apiClient = mCallbacks.getGoogleApiClient(); if (!apiClient.isConnected()) { Utils.showToastMessage(getActivity(), getString(0x7f0601b1)); return; } else { mFindLocationTask = (new AsyncTask() { final AssistantContactLocationFragment this$0; final GoogleApiClient val$apiClient; final ContactInfo val$contact; protected transient Location doInBackground(Void avoid[]) { if (isCancelled()) { return null; } Object obj1 = null; Object obj = null; AutocompletePredictionBuffer autocompletepredictionbuffer = (AutocompletePredictionBuffer)Places.GeoDataApi.getAutocompletePredictions(apiClient, contact.getFormattedAddress(), Constants.GLOBAL_BOUNDS, null).await(5000L, TimeUnit.MILLISECONDS); avoid = obj1; if (autocompletepredictionbuffer.getStatus().isSuccess()) { avoid = obj1; if (autocompletepredictionbuffer.getCount() > 0) { avoid = autocompletepredictionbuffer.get(0).getPlaceId(); PlaceBuffer placebuffer = (PlaceBuffer)Places.GeoDataApi.getPlaceById(apiClient, new String[] { avoid }).await(5000L, TimeUnit.MILLISECONDS); avoid = obj; if (placebuffer.getStatus().isSuccess()) { avoid = obj; if (placebuffer.getCount() > 0) { avoid = placebuffer.get(0); LatLng latlng = avoid.getLatLng(); avoid = LocationBuilder.aLocation().setDisplayName(avoid.getAddress().toString()).setGooglePlaceId(avoid.getId()).setLatitude(latlng.latitude).setLongitude(latlng.longitude).setLocationType(com.olio.data.object.user.Location.LocationType.OTHER).setDisplayAddress(avoid.getAddress().toString()).build(); } } placebuffer.release(); } } autocompletepredictionbuffer.release(); return avoid; } protected volatile Object doInBackground(Object aobj[]) { return doInBackground((Void[])aobj); } protected void onPostExecute(Location location) { label0: { mProgressView.setVisibility(8); if (isAdded()) { if (location == null) { break label0; } mCallbacks.confirmLocation(com.olio.data.object.user.Location.LocationType.OTHER, location); } return; } mCallbacks.showContactLocationWarning(); } protected volatile void onPostExecute(Object obj) { onPostExecute((Location)obj); } protected void onPreExecute() { mProgressView.setVisibility(0); } { this$0 = AssistantContactLocationFragment.this; apiClient = googleapiclient; contact = contactinfo; super(); } }).execute(new Void[0]); return; } } private void initializeView(View view) { mListAdapter = new ContactInfoAdapter(getActivity()); mListView.setAdapter(mListAdapter); mListView.setEmptyView(ButterKnife.findById(view, 0x7f0d00f5)); mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { final AssistantContactLocationFragment this$0; public void onItemClick(AdapterView adapterview, View view1, int i, long l) { hideKeyboard(getActivity()); adapterview = (ContactInfo)mListAdapter.getItem(i); findLocationForContact(adapterview); } { this$0 = AssistantContactLocationFragment.this; super(); } }); mFilter.addTextChangedListener(new TextWatcher() { final AssistantContactLocationFragment this$0; public void afterTextChanged(Editable editable) { } public void beforeTextChanged(CharSequence charsequence, int i, int j, int k) { } public void onTextChanged(CharSequence charsequence, int i, int j, int k) { renderListView(); ImageView imageview = mClearInput; if (charsequence.toString().length() > 0) { i = 0; } else { i = 4; } imageview.setVisibility(i); } { this$0 = AssistantContactLocationFragment.this; super(); } }); } private void renderListView() { ArrayList arraylist = new ArrayList(); String s = mFilter.getText().toString(); int i = 0; while (i < mContacts.size()) { ContactInfo contactinfo = (ContactInfo)mContacts.get(i); if (s.length() == 0) { arraylist.add(contactinfo); } else { String s1 = contactinfo.getName(); if (s1 != null && s1.toLowerCase().contains(s.toLowerCase())) { arraylist.add(contactinfo); } } i++; } mListAdapter.clear(); mListAdapter.addAll(arraylist); } private void retrieveContacts() { mFindContactsTask = (new AsyncTask() { final AssistantContactLocationFragment this$0; protected volatile Object doInBackground(Object aobj[]) { return doInBackground((Void[])aobj); } protected transient ArrayList doInBackground(Void avoid[]) { if (isCancelled()) { return null; } else { return Utils.retrieveContactInfo(getActivity()); } } protected volatile void onPostExecute(Object obj) { onPostExecute((ArrayList)obj); } protected void onPostExecute(ArrayList arraylist) { mContacts = arraylist; renderListView(); } { this$0 = AssistantContactLocationFragment.this; super(); } }).execute(new Void[0]); } public int getStage() { return 5; } public boolean isSkipVisible() { return false; } public void onActivityCreated(Bundle bundle) { super.onActivityCreated(bundle); if (bundle == null && !mIsAlreadyLoaded) { mContacts = new ArrayList(); retrieveContacts(); } else { if (bundle != null) { mContacts = bundle.getParcelableArrayList("contact_info"); } renderListView(); } mIsAlreadyLoaded = true; } public void onCancelSkip() { } public void onClearInput() { mFilter.setText(""); } public void onConfirmSkip() { mCallbacks.finishLocation(); } public View onCreateView(LayoutInflater layoutinflater, ViewGroup viewgroup, Bundle bundle) { layoutinflater = layoutinflater.inflate(0x7f030030, viewgroup, false); ButterKnife.inject(this, layoutinflater); initializeView(layoutinflater); return layoutinflater; } public void onDetach() { if (mFindLocationTask != null) { mFindLocationTask.cancel(true); } if (mFindContactsTask != null) { mFindContactsTask.cancel(true); } super.onDetach(); } public void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); bundle.putParcelableArrayList("contact_info", mContacts); } public void onShowSkipConfirmation() { } /* static ArrayList access$302(AssistantContactLocationFragment assistantcontactlocationfragment, ArrayList arraylist) { assistantcontactlocationfragment.mContacts = arraylist; return arraylist; } */ }