/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.PhotoAlbumsAdapter; import com.galaxy.meetup.client.android.PhotosHomeGridLoader; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.analytics.OzViews; import com.galaxy.meetup.client.android.content.EsPeopleData; import com.galaxy.meetup.client.android.service.EsService; import com.galaxy.meetup.client.android.service.EsServiceListener; import com.galaxy.meetup.client.android.ui.activity.ProfileActivity; import com.galaxy.meetup.client.android.ui.view.ColumnGridView; import com.galaxy.meetup.client.android.ui.view.HostActionBar; import com.galaxy.meetup.client.util.ScreenMetrics; /** * * @author sihai * */ public class HostedAlbumsFragment extends HostedEsFragment implements LoaderCallbacks, OnClickListener { private PhotoAlbumsAdapter mAdapter; private String mAuthkey; private boolean mControlPrimarySpinner; private int mCurrentSpinnerPosition; private final EsServiceListener mEsListener = new EsServiceListener() { public final void onGetAlbumListComplete(int i) { if(mOlderReqId != null && mOlderReqId.intValue() == i) { mOlderReqId = null; updateView(getView()); } } public final void onPhotosHomeComplete(int i) { if(mOlderReqId != null && mOlderReqId.intValue() == i) { mOlderReqId = null; updateView(getView()); } } }; private Bundle mExtras; private String mGaiaId; private String mPersonId; private boolean mPhotosHome; private int mPickerMode; private boolean mShowLocalCameraAlbum; private String mUserName; public HostedAlbumsFragment() { mControlPrimarySpinner = true; } private void updateView(View view) { Cursor cursor = mAdapter.getCursor(); boolean flag; boolean flag1; if(cursor != null && cursor.getCount() > 0) flag = true; else flag = false; if(mOlderReqId != null || cursor == null) flag1 = true; else flag1 = false; if(flag1 && !flag) showEmptyViewProgress(view); else if(flag) showContent(view); else showEmptyView(view, getString(R.string.no_albums)); updateSpinner(); } public final OzViews getViewForLogging() { return OzViews.ALBUMS_OF_USER; } protected final boolean isEmpty() { return mAdapter.isEmpty(); } protected final boolean needsAsyncData() { return true; } public final void onActivityResult(int i, int j, Intent intent) { if(1 == i) { if(j != 0) { getActivity().setResult(j, intent); getActivity().finish(); } } } public void onClick(View view) { Cursor cursor = (Cursor)mAdapter.getItem(((Integer)view.getTag()).intValue()); if(cursor != null) { String s; String s1; Object obj; String s2; String s3; String s4; int i; Intents.PhotosIntentBuilder photosintentbuilder; if(cursor.isNull(8)) s = getResources().getString(R.string.photos_home_unknown_label); else s = cursor.getString(8); if(cursor.isNull(5)) s1 = null; else s1 = cursor.getString(5); if(cursor.isNull(4)) obj = null; else obj = cursor.getString(4); if(cursor.isNull(6)) s2 = null; else s2 = cursor.getString(6); if(cursor.isNull(7)) s3 = null; else s3 = cursor.getString(7); if(!TextUtils.equals(((CharSequence) (obj)), "photos_of_me")) s4 = null; else s4 = mGaiaId; i = mExtras.getInt("photo_picker_mode", 0); photosintentbuilder = Intents.newPhotosActivityIntentBuilder(getActivity()).setAccount(mAccount).setAlbumName(s).setAlbumId(s1).setGaiaId(s2).setStreamId(s3).setPhotoOfUserId(s4).setAlbumType(((String) (obj))).setAuthkey(mAuthkey); if(i != 0) { Integer integer; Integer integer1; if(mExtras.containsKey("photo_picker_crop_mode")) integer = Integer.valueOf(mExtras.getInt("photo_picker_crop_mode")); else integer = null; if(mExtras.containsKey("photo_picker_title")) integer1 = Integer.valueOf(mExtras.getInt("photo_picker_title")); else integer1 = null; photosintentbuilder.setPhotoPickerMode(Integer.valueOf(i)).setPhotoPickerTitleResourceId(integer1).setCropMode(integer); startActivityForResult(photosintentbuilder.build(), 1); } else { startActivity(photosintentbuilder.build()); } } } public final void onCreate(Bundle bundle) { super.onCreate(bundle); if(bundle != null) { mExtras = new Bundle(); mExtras.putAll(bundle.getBundle("com.google.android.apps.plus.PhotosHomeFragment.INTENT")); mUserName = bundle.getString("com.google.android.apps.plus.PhotosHomeFragment.USER_NAME"); } else { mExtras = getArguments(); } mPersonId = mExtras.getString("person_id"); mGaiaId = EsPeopleData.extractGaiaId(mPersonId); mPhotosHome = mExtras.getBoolean("photos_home", false); mShowLocalCameraAlbum = mExtras.getBoolean("photos_show_camera_album", false); mPickerMode = mExtras.getInt("photo_picker_mode", 0); mAuthkey = mExtras.getString("auth_key"); if(mPickerMode != 0) invalidateActionBar(); } public final Loader onCreateLoader(int i, Bundle bundle) { return new PhotosHomeGridLoader(getActivity(), mAccount, mGaiaId, mUserName, mPhotosHome, mShowLocalCameraAlbum); } public final View onCreateView(LayoutInflater layoutinflater, ViewGroup viewgroup, Bundle bundle) { View view = layoutinflater.inflate(R.layout.photo_home_view, viewgroup, false); ColumnGridView columngridview = (ColumnGridView)view.findViewById(R.id.grid); ScreenMetrics screenmetrics = ScreenMetrics.getInstance(getActivity()); int i; if(screenmetrics.screenDisplayType == 0) i = 1; else i = 2; columngridview.setColumnCount(i); columngridview.setItemMargin(screenmetrics.itemMargin); columngridview.setPadding(screenmetrics.itemMargin, screenmetrics.itemMargin, screenmetrics.itemMargin, screenmetrics.itemMargin); mAdapter = new PhotoAlbumsAdapter(getActivity(), null, columngridview, this); columngridview.setAdapter(mAdapter); getLoaderManager().initLoader(0, null, this); columngridview.setOnClickListener(this); setupEmptyView(view, R.string.no_albums); updateView(view); return view; } public final void onLoadFinished(Loader loader, Object obj) { Cursor cursor = (Cursor)obj; mAdapter.swapCursor(cursor); updateView(getView()); onAsyncData(); } public final void onLoaderReset(Loader loader) { } public final void onPause() { super.onPause(); EsService.unregisterListener(mEsListener); } protected final void onPrepareActionBar(HostActionBar hostactionbar) { if(mControlPrimarySpinner) if(mPickerMode == 0) { android.widget.ArrayAdapter arrayadapter = ProfileActivity.createSpinnerAdapter(getActivity()); mCurrentSpinnerPosition = 1; hostactionbar.showPrimarySpinner(arrayadapter, mCurrentSpinnerPosition); } else { hostactionbar.showTitle(R.string.photo_picker_photos_home_label); } hostactionbar.showRefreshButton(); hostactionbar.showProgressIndicator(); } public final void onPrimarySpinnerSelectionChange(int i) { if(!mControlPrimarySpinner || mCurrentSpinnerPosition == i) { return; } if(0 == i) { startActivity(Intents.getHostedProfileIntent(getActivity(), mAccount, mPersonId, null, 0)); } mCurrentSpinnerPosition = i; return; } public final void onResume() { super.onResume(); EsService.registerListener(mEsListener); } public final void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); if(mExtras != null) { bundle.putParcelable("com.google.android.apps.plus.PhotosHomeFragment.INTENT", mExtras); bundle.putString("com.google.android.apps.plus.PhotosHomeFragment.USER_NAME", mUserName); } } public final void refresh() { super.refresh(); if(mOlderReqId == null) { if(mPhotosHome) mOlderReqId = Integer.valueOf(EsService.getPhotosHome(getActivity(), mAccount, mAuthkey)); else mOlderReqId = Integer.valueOf(EsService.getAlbumList(getActivity(), mAccount, mGaiaId)); updateView(getView()); } } public final void relinquishPrimarySpinner() { mControlPrimarySpinner = false; } }