/* * Copyright 2011 Azwan Adli Abdullah * * 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. */ package com.gh4a.fragment; import android.os.Bundle; import android.support.annotation.StringRes; import android.support.v4.content.Loader; import android.support.v7.widget.RecyclerView; import com.gh4a.R; import com.gh4a.activities.RepositoryActivity; import com.gh4a.adapter.RootAdapter; import com.gh4a.adapter.TrendAdapter; import com.gh4a.holder.Trend; import com.gh4a.loader.LoaderResult; import com.gh4a.loader.TrendLoader; import java.util.List; public class TrendingFragment extends ListDataBaseFragment<Trend> implements RootAdapter.OnItemClickListener<Trend> { public static final String TYPE_DAILY = "daily"; public static final String TYPE_WEEKLY = "weekly"; public static final String TYPE_MONTHLY = "monthly"; private String mType; private @StringRes int mStarsTemplate; public static TrendingFragment newInstance(String type) { if (type == null) { return null; } TrendingFragment f = new TrendingFragment(); Bundle args = new Bundle(); args.putString("type", type); switch (type) { case TYPE_DAILY: args.putInt("stars_template", R.string.trend_stars_today); break; case TYPE_WEEKLY: args.putInt("stars_template", R.string.trend_stars_week); break; case TYPE_MONTHLY: args.putInt("stars_template", R.string.trend_stars_month); break; default: throw new IllegalArgumentException(); } f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mType = getArguments().getString("type"); mStarsTemplate = getArguments().getInt("stars_template", 0); } @Override protected RootAdapter<Trend, ? extends RecyclerView.ViewHolder> onCreateAdapter() { TrendAdapter adapter = new TrendAdapter(getActivity(), mStarsTemplate); adapter.setOnItemClickListener(this); return adapter; } @Override protected int getEmptyTextResId() { return R.string.no_trends_found; } @Override public void onItemClick(Trend trend) { String owner = trend.getRepoOwner(); String name = trend.getRepoName(); if (owner != null && name != null) { startActivity(RepositoryActivity.makeIntent(getActivity(), owner, name)); } } @Override public Loader<LoaderResult<List<Trend>>> onCreateLoader() { return new TrendLoader(getActivity(), mType); } }