Search in sources :

Example 26 with Loader

use of android.support.v4.content.Loader in project enroscar by stanfy.

the class LoaderSetTest method shouldWaitFor3Requests.

@Ignore
@Test
public void shouldWaitFor3Requests() throws Throwable {
    // enqueue
    getWebServer().enqueue(new MockResponse().setBody("R1"));
    getWebServer().enqueue(new MockResponse().setBody("R2"));
    getWebServer().enqueue(new MockResponse().setBody("R3"));
    final URL url = getWebServer().getUrl("/");
    final Fragment fragment = createFragment();
    final LoaderManager loaderManager = fragment.getLoaderManager();
    assertThat(loaderManager).isNotNull();
    final CountDownLatch waiter = new CountDownLatch(1);
    // describe loader
    final LoaderSet set = LoaderSet.build(getApplication()).withManager(loaderManager).withCallbacks(new LoaderSet.SetCallbacksAdapter<ResponseData<String>>() {

        @Override
        public Loader<ResponseData<String>> onCreateLoader(final int id, final Bundle args) {
            return new MyRequestBuilder<String>(getApplication()) {
            }.setUrl(url.toString()).setFormat("string").getLoader();
        }
    }, 1).withCallbacks(new LoaderSet.SetCallbacksAdapter<ResponseData<String>>() {

        @Override
        public Loader<ResponseData<String>> onCreateLoader(final int id, final Bundle args) {
            return new MyRequestBuilder<String>(getApplication()) {
            }.setUrl(url.toString()).setFormat("string").getLoader();
        }
    }, 2, 3).create();
    final LoaderSet.LoaderSetCallback callbacks = new LoaderSet.LoaderSetCallback() {

        @Override
        public void onLoadFinished(final Object[] data) {
            Log.i("ChainTest", Arrays.toString(data));
            waiter.countDown();
        }
    };
    set.init(null, callbacks);
    // TODO finish it
    waitAndAssert(new Waiter<Object[]>() {

        @Override
        public Object[] waitForData() {
            try {
                waiter.await(2, TimeUnit.SECONDS);
                return LoaderSetAccess.getResults(set);
            } catch (final InterruptedException e) {
                return null;
            }
        }
    }, new Asserter<Object[]>() {

        @SuppressWarnings("unchecked")
        @Override
        public void makeAssertions(final Object[] data) throws Exception {
            assertThat(data.length).isEqualTo(3);
            assertThat(((ResponseData<String>) data[0]).getModel()).isEqualTo("R1");
            assertThat(((ResponseData<String>) data[1]).getModel()).isEqualTo("R2");
            assertThat(((ResponseData<String>) data[2]).getModel()).isEqualTo("R3");
        }
    });
}
Also used : Loader(android.support.v4.content.Loader) Fragment(android.support.v4.app.Fragment) URL(java.net.URL) MockResponse(com.squareup.okhttp.mockwebserver.MockResponse) Bundle(android.os.Bundle) ResponseData(com.stanfy.enroscar.content.loader.ResponseData) CountDownLatch(java.util.concurrent.CountDownLatch) LoaderManager(android.support.v4.app.LoaderManager) LoaderSet(com.stanfy.enroscar.content.loader.LoaderSet) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 27 with Loader

use of android.support.v4.content.Loader in project platform_frameworks_base by android.

the class DirectoryFragment method onActivityCreated.

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    final Context context = getActivity();
    final State state = getDisplayState();
    // Read arguments when object created for the first time.
    // Restore state if fragment recreated.
    Bundle args = savedInstanceState == null ? getArguments() : savedInstanceState;
    mRoot = args.getParcelable(Shared.EXTRA_ROOT);
    mDocument = args.getParcelable(Shared.EXTRA_DOC);
    mStateKey = buildStateKey(mRoot, mDocument);
    mQuery = args.getString(Shared.EXTRA_QUERY);
    mType = args.getInt(Shared.EXTRA_TYPE);
    final Selection selection = args.getParcelable(Shared.EXTRA_SELECTION);
    mSelection = selection != null ? selection : new Selection();
    mSearchMode = args.getBoolean(Shared.EXTRA_SEARCH_MODE);
    mIconHelper = new IconHelper(context, MODE_GRID);
    mAdapter = new SectionBreakDocumentsAdapterWrapper(this, new ModelBackedDocumentsAdapter(this, mIconHelper));
    mRecView.setAdapter(mAdapter);
    // Switch Access Accessibility API needs an {@link AccessibilityDelegate} to know the proper
    // route when user selects an UI element. It usually guesses this if the element has an
    // {@link OnClickListener}, but since we do not have one for itemView, we will need to
    // manually route it to the right behavior. RecyclerView has its own AccessibilityDelegate,
    // and routes it to its LayoutManager; so we must override the LayoutManager's accessibility
    // methods to route clicks correctly.
    mLayout = new GridLayoutManager(getContext(), mColumnCount) {

        @Override
        public void onInitializeAccessibilityNodeInfoForItem(RecyclerView.Recycler recycler, RecyclerView.State state, View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfoForItem(recycler, state, host, info);
            info.addAction(AccessibilityActionCompat.ACTION_CLICK);
        }

        @Override
        public boolean performAccessibilityActionForItem(RecyclerView.Recycler recycler, RecyclerView.State state, View view, int action, Bundle args) {
            // We are only handling click events; route all other to default implementation
            if (action == AccessibilityNodeInfoCompat.ACTION_CLICK) {
                RecyclerView.ViewHolder vh = mRecView.getChildViewHolder(view);
                if (vh instanceof DocumentHolder) {
                    DocumentHolder dh = (DocumentHolder) vh;
                    if (dh.mEventListener != null) {
                        dh.mEventListener.onActivate(dh);
                        return true;
                    }
                }
            }
            return super.performAccessibilityActionForItem(recycler, state, view, action, args);
        }
    };
    SpanSizeLookup lookup = mAdapter.createSpanSizeLookup();
    if (lookup != null) {
        mLayout.setSpanSizeLookup(lookup);
    }
    mRecView.setLayoutManager(mLayout);
    mGestureDetector = new ListeningGestureDetector(this.getContext(), mDragHelper, new GestureListener());
    mRecView.addOnItemTouchListener(mGestureDetector);
    // TODO: instead of inserting the view into the constructor, extract listener-creation code
    // and set the listener on the view after the fact.  Then the view doesn't need to be passed
    // into the selection manager.
    mSelectionManager = new MultiSelectManager(mRecView, mAdapter, state.allowMultiple ? MultiSelectManager.MODE_MULTIPLE : MultiSelectManager.MODE_SINGLE, null);
    mSelectionManager.addCallback(new SelectionModeListener());
    mModel = new Model();
    mModel.addUpdateListener(mAdapter);
    mModel.addUpdateListener(mModelUpdateListener);
    // Make sure this is done after the RecyclerView is set up.
    mFocusManager = new FocusManager(context, mRecView, mModel);
    mTuner = FragmentTuner.pick(getContext(), state);
    mClipper = new DocumentClipper(context);
    final ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    boolean svelte = am.isLowRamDevice() && (mType == TYPE_RECENT_OPEN);
    mIconHelper.setThumbnailsEnabled(!svelte);
    // Kick off loader at least once
    getLoaderManager().restartLoader(LOADER_ID, null, this);
}
Also used : Selection(com.android.documentsui.dirlist.MultiSelectManager.Selection) ActivityManager(android.app.ActivityManager) ViewHolder(android.support.v7.widget.RecyclerView.ViewHolder) Context(android.content.Context) Bundle(android.os.Bundle) AccessibilityNodeInfoCompat(android.support.v4.view.accessibility.AccessibilityNodeInfoCompat) ImageView(android.widget.ImageView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) TextView(android.widget.TextView) Recycler(android.support.v7.widget.RecyclerView.Recycler) Point(android.graphics.Point) SpanSizeLookup(android.support.v7.widget.GridLayoutManager.SpanSizeLookup) DocumentClipper(com.android.documentsui.DocumentClipper) GridLayoutManager(android.support.v7.widget.GridLayoutManager) State(com.android.documentsui.State) RecyclerView(android.support.v7.widget.RecyclerView)

Example 28 with Loader

use of android.support.v4.content.Loader in project AndroidForiOS by smbarne.

the class TripListFragment method onViewCreated.

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    mViewHolder.populate(view);
    mTripArrayAdapter = new TripArrayAdapter(getActivity());
    mViewHolder.tripListView.setAdapter(mTripArrayAdapter);
    mViewHolder.tripListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (mListener != null) {
                mListener.onTripSelected(mTripArrayAdapter.getItem(position));
            }
        }
    });
    getLoaderManager().initLoader(0, savedInstanceState, new LoaderManager.LoaderCallbacks<TripList>() {

        @Override
        public Loader<TripList> onCreateLoader(int id, Bundle args) {
            return new DataManager.SubwayLineLoader(getActivity(), mLineType);
        }

        @Override
        public void onLoadFinished(Loader<TripList> loader, TripList data) {
            setTripList(data);
            if (mViewHolder != null) {
                int displayIndex = mViewHolder.viewFlipper.indexOfChild(mViewHolder.tripListView);
                mViewHolder.viewFlipper.setDisplayedChild(displayIndex);
            }
        }

        @Override
        public void onLoaderReset(Loader<TripList> loader) {
        }
    }).forceLoad();
}
Also used : Bundle(android.os.Bundle) TripList(com.example.androidforios.app.data.model.TripList) Loader(android.support.v4.content.Loader) View(android.view.View) AdapterView(android.widget.AdapterView) ListView(android.widget.ListView) AdapterView(android.widget.AdapterView) TripArrayAdapter(com.example.androidforios.app.adapters.TripArrayAdapter)

Example 29 with Loader

use of android.support.v4.content.Loader in project WordPress-Android by wordpress-mobile.

the class MediaBrowserActivity method getRealPathFromContentURI.

private String getRealPathFromContentURI(Uri contentUri) {
    if (contentUri == null)
        return null;
    String[] proj = { android.provider.MediaStore.Images.Media.DATA };
    CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
    Cursor cursor = loader.loadInBackground();
    if (cursor == null)
        return null;
    int column_index = cursor.getColumnIndex(proj[0]);
    if (column_index == -1) {
        cursor.close();
        return null;
    }
    String path;
    if (cursor.moveToFirst()) {
        path = cursor.getString(column_index);
    } else {
        path = null;
    }
    cursor.close();
    return path;
}
Also used : CursorLoader(android.support.v4.content.CursorLoader) Cursor(android.database.Cursor) SuppressLint(android.annotation.SuppressLint)

Example 30 with Loader

use of android.support.v4.content.Loader in project WordPress-Android by wordpress-mobile.

the class MeFragment method getRealPathFromContentURI.

private String getRealPathFromContentURI(Uri contentUri) {
    if (contentUri == null)
        return null;
    String[] proj = { MediaStore.Images.Media.DATA };
    CursorLoader loader = new CursorLoader(getActivity(), contentUri, proj, null, null, null);
    Cursor cursor = loader.loadInBackground();
    if (cursor == null)
        return null;
    int column_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
    if (column_index == -1) {
        cursor.close();
        return null;
    }
    String path;
    if (cursor.moveToFirst()) {
        path = cursor.getString(column_index);
    } else {
        path = null;
    }
    cursor.close();
    return path;
}
Also used : CursorLoader(android.support.v4.content.CursorLoader) Cursor(android.database.Cursor)

Aggregations

Bundle (android.os.Bundle)16 Fragment (android.support.v4.app.Fragment)16 CursorLoader (android.support.v4.content.CursorLoader)11 View (android.view.View)7 Context (android.content.Context)6 Parcelable (android.os.Parcelable)6 RecyclerView (android.support.v7.widget.RecyclerView)6 ImageView (android.widget.ImageView)6 TextView (android.widget.TextView)6 ActivityManager (android.app.ActivityManager)5 Point (android.graphics.Point)5 AccessibilityNodeInfoCompat (android.support.v4.view.accessibility.AccessibilityNodeInfoCompat)5 GridLayoutManager (android.support.v7.widget.GridLayoutManager)5 SpanSizeLookup (android.support.v7.widget.GridLayoutManager.SpanSizeLookup)5 Recycler (android.support.v7.widget.RecyclerView.Recycler)5 ViewHolder (android.support.v7.widget.RecyclerView.ViewHolder)5 DocumentClipper (com.android.documentsui.DocumentClipper)5 State (com.android.documentsui.State)5 Selection (com.android.documentsui.dirlist.MultiSelectManager.Selection)5 Cursor (android.database.Cursor)4