diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7f5a082..0e2ac4b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,6 +33,11 @@ android:screenOrientation="portrait" android:name=".issuelist.IssueListActivity_" /> + + diff --git a/app/src/main/java/br/com/luisfernandez/github/client/http/GitHubService.java b/app/src/main/java/br/com/luisfernandez/github/client/http/GitHubService.java index 85314b1..7240f76 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/http/GitHubService.java +++ b/app/src/main/java/br/com/luisfernandez/github/client/http/GitHubService.java @@ -3,6 +3,7 @@ import java.util.List; import br.com.luisfernandez.github.client.http.annotations.URL; +import br.com.luisfernandez.github.client.pojo.ContributorResponse; import br.com.luisfernandez.github.client.pojo.IssueResponse; import br.com.luisfernandez.github.client.pojo.PullRequestResponse; import br.com.luisfernandez.github.client.pojo.RepoListResponse; @@ -25,4 +26,7 @@ public interface GitHubService @GET("/repos/{owner}/{repoName}/issues") Observable> listIssues(@Path("owner") String owner, @Path("repoName") String repoName); + + @GET("/repos/{owner}/{repoName}/contributors") + Observable> listContributors(@Path("owner") String owner, @Path("repoName") String repoName); } diff --git a/app/src/main/java/br/com/luisfernandez/github/client/koin/ModelModule.kt b/app/src/main/java/br/com/luisfernandez/github/client/koin/ModelModule.kt index 001a183..fd2b1d7 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/koin/ModelModule.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/koin/ModelModule.kt @@ -1,9 +1,11 @@ package br.com.luisfernandez.github.client.koin -import br.com.luisfernandez.github.client.issuelist.IssueListModel -import br.com.luisfernandez.github.client.issuelist.IssueListModelImpl -import br.com.luisfernandez.github.client.pullrequest.PullRequestModel -import br.com.luisfernandez.github.client.pullrequest.PullRequestModelImpl +import br.com.luisfernandez.github.client.repodetails.contributorslist.ContributorsListModel +import br.com.luisfernandez.github.client.repodetails.contributorslist.ContributorsListModelImpl +import br.com.luisfernandez.github.client.repodetails.issuelist.IssueListModel +import br.com.luisfernandez.github.client.repodetails.issuelist.IssueListModelImpl +import br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestModel +import br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestModelImpl import br.com.luisfernandez.github.client.repolist.RepoListModel import br.com.luisfernandez.github.client.repolist.RepoListModelImpl import org.koin.dsl.module.module @@ -27,4 +29,10 @@ val modelModule = module { get() ) } + + single { + ContributorsListModelImpl( + get() + ) + } } \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/koin/PresenterModule.kt b/app/src/main/java/br/com/luisfernandez/github/client/koin/PresenterModule.kt index 351922c..93d955b 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/koin/PresenterModule.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/koin/PresenterModule.kt @@ -1,7 +1,5 @@ package br.com.luisfernandez.github.client.koin -import br.com.luisfernandez.github.client.pullrequest.PullRequestPresenter -import br.com.luisfernandez.github.client.pullrequest.PullRequestPresenterImpl import br.com.luisfernandez.github.client.repolist.RepoListPresenter import br.com.luisfernandez.github.client.repolist.RepoListPresenterImpl import org.koin.dsl.module.module @@ -10,8 +8,4 @@ val presenterModule = module { single { RepoListPresenterImpl(get()) } - - single { - PullRequestPresenterImpl(get()) - } } diff --git a/app/src/main/java/br/com/luisfernandez/github/client/koin/ViewModelModule.kt b/app/src/main/java/br/com/luisfernandez/github/client/koin/ViewModelModule.kt index 0ecf3d6..a10ea56 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/koin/ViewModelModule.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/koin/ViewModelModule.kt @@ -2,8 +2,9 @@ package br.com.luisfernandez.github.client.koin -import br.com.luisfernandez.github.client.issuelist.IssueListViewModel -import br.com.luisfernandez.github.client.pullrequest.PullRequestViewModel +import br.com.luisfernandez.github.client.repodetails.contributorslist.ContributorsListViewModel +import br.com.luisfernandez.github.client.repodetails.issuelist.IssueListViewModel +import br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestViewModel import br.com.luisfernandez.github.client.repolist.RepoListViewModel import org.koin.android.viewmodel.ext.koin.viewModel import org.koin.dsl.module.module @@ -28,4 +29,10 @@ val viewModelModule = module { ) } + viewModel { + ContributorsListViewModel( + get() + ) + } + } \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pojo/ContributorResponse.kt b/app/src/main/java/br/com/luisfernandez/github/client/pojo/ContributorResponse.kt new file mode 100644 index 0000000..86d937e --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/pojo/ContributorResponse.kt @@ -0,0 +1,9 @@ +package br.com.luisfernandez.github.client.pojo + +import com.google.gson.annotations.SerializedName + +data class ContributorResponse( + @SerializedName("login") val login: String, + @SerializedName("avatar_url") val avatar_url: String, + @SerializedName("contributions") val contributions: String +) \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestPresenter.kt b/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestPresenter.kt deleted file mode 100644 index 2c48931..0000000 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestPresenter.kt +++ /dev/null @@ -1,9 +0,0 @@ -package br.com.luisfernandez.github.client.pullrequest - -/** - * Created by luisfernandez on 12/05/18. - */ -interface PullRequestPresenter { - fun loadPullRequestList(owner: String, repoName: String) - fun inject(pullRequestView: PullRequestListView) -} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestPresenterImpl.kt b/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestPresenterImpl.kt deleted file mode 100644 index 4919f77..0000000 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestPresenterImpl.kt +++ /dev/null @@ -1,36 +0,0 @@ -package br.com.luisfernandez.github.client.pullrequest - -import br.com.luisfernandez.github.client.http.CallbackWrapper -import br.com.luisfernandez.github.client.http.model.GitHubErrorBody -import br.com.luisfernandez.github.client.http.model.ServerError -import br.com.luisfernandez.github.client.pojo.PullRequestResponse -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.schedulers.Schedulers - -class PullRequestPresenterImpl ( - private val pullRequestModel: PullRequestModel -) : PullRequestPresenter -{ - - private lateinit var view: PullRequestListView - - override fun inject(view: PullRequestListView) { - this.view = view - } - - override fun loadPullRequestList(owner: String, repoName: String) { - pullRequestModel - .loadPullRequestList(owner, repoName) - .subscribeOn(Schedulers.newThread()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribeWith(object: CallbackWrapper, GitHubErrorBody>(GitHubErrorBody::class.java) { - override fun onError(error: ServerError) { - view.handleError(error) - } - - override fun onSuccess(pullRequestList: List) { - view.showContent(pullRequestList) - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/BranchesFragment.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/BranchesFragment.kt new file mode 100644 index 0000000..204ec0e --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/BranchesFragment.kt @@ -0,0 +1,21 @@ +package br.com.luisfernandez.github.client.repodetails + + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +import br.com.luisfernandez.github.client.R + +class BranchesFragment : Fragment() { + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View? { + + return inflater.inflate(R.layout.fragment_branches, container, false) + } + + +} diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/CommitsFragment.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/CommitsFragment.kt new file mode 100644 index 0000000..fc7122b --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/CommitsFragment.kt @@ -0,0 +1,21 @@ +package br.com.luisfernandez.github.client.repodetails + + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +import br.com.luisfernandez.github.client.R + +class CommitsFragment : Fragment() { + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View? { + + return inflater.inflate(R.layout.fragment_commits, container, false) + } + + +} diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/RepoDetailsActivity.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/RepoDetailsActivity.kt new file mode 100644 index 0000000..61fcfbe --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/RepoDetailsActivity.kt @@ -0,0 +1,45 @@ +package br.com.luisfernandez.github.client.repodetails + +import android.annotation.SuppressLint +import android.support.v7.app.AppCompatActivity +import br.com.luisfernandez.github.client.R +import kotlinx.android.synthetic.main.activity_repo_details.* +import org.androidannotations.annotations.AfterViews +import org.androidannotations.annotations.EActivity +import org.androidannotations.annotations.Extra + +@SuppressLint("Registered") +@EActivity(R.layout.activity_repo_details) +class RepoDetailsActivity : AppCompatActivity() { + + @Extra + lateinit var owner: String + + @Extra + lateinit var repoName: String + + @AfterViews + fun afterViews() { + this.configToolbar() + + val fragmentAdapter = RepoDetailsPagerAdapter(this, supportFragmentManager, owner, repoName) + viewPagerRepoDetail.adapter = fragmentAdapter + + tabLayoutRepoDetail.setupWithViewPager(viewPagerRepoDetail) + } + + private fun configToolbar() { + setSupportActionBar(toolbar) + supportActionBar?.let { + title = repoName + supportActionBar?.setDisplayHomeAsUpEnabled(true) + supportActionBar?.setDisplayShowHomeEnabled(true) + supportActionBar?.setDisplayShowTitleEnabled(true) + } + } + + override fun onSupportNavigateUp(): Boolean { + onBackPressed() + return true + } +} diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/RepoDetailsPagerAdapter.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/RepoDetailsPagerAdapter.kt new file mode 100644 index 0000000..6a43d4e --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/RepoDetailsPagerAdapter.kt @@ -0,0 +1,60 @@ +package br.com.luisfernandez.github.client.repodetails + +import android.content.Context +import android.os.Bundle +import android.support.v4.app.Fragment +import android.support.v4.app.FragmentManager +import android.support.v4.app.FragmentPagerAdapter +import br.com.luisfernandez.github.client.R +import br.com.luisfernandez.github.client.repodetails.contributorslist.ContributorsListFragment +import br.com.luisfernandez.github.client.repodetails.issuelist.IssuesListFragment +import br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestListFragment + +class RepoDetailsPagerAdapter(private val context: Context, fm: FragmentManager, owner: String, repoName: String): + FragmentPagerAdapter(fm) { + + companion object { + const val OWNER = "OWNER" + const val REPONAME = "REPONAME" + } + + val owner = owner + val repoName = repoName + + override fun getCount(): Int { + return 5 + } + + override fun getItem(position: Int): Fragment { + val bundle = Bundle() + bundle.putString(OWNER, owner) + bundle.putString(REPONAME, repoName) + + var fragment = when(position) { + 0 -> PullRequestListFragment() + 1 -> IssuesListFragment() + 2 -> CommitsFragment() + 3 -> ContributorsListFragment() + 4 -> BranchesFragment() + + else -> PullRequestListFragment() + } + + fragment.arguments = bundle + + return fragment + } + + override fun getPageTitle(position: Int): CharSequence? { + return when(position){ + 0 -> context.getString(R.string.titlePullRequestsTab) + 1 -> context.getString(R.string.titleIssuesTab) + 2 -> context.getString(R.string.titleCommitsTab) + 3 -> context.getString(R.string.titleContributorsTab) + 4 -> context.getString(R.string.titleBranchesTab) + + else -> context.getString(R.string.titlePullRequestsTab) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListAdapter.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListAdapter.kt new file mode 100644 index 0000000..ad481ef --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListAdapter.kt @@ -0,0 +1,43 @@ +package br.com.luisfernandez.github.client.repodetails.contributorslist + +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import br.com.luisfernandez.github.client.R +import br.com.luisfernandez.github.client.misc.ImageLoader +import br.com.luisfernandez.github.client.pojo.ContributorResponse +import kotlinx.android.synthetic.main.item_contributors_list.view.* +import java.util.* + +/** + * Created by luisfernandez on 12/05/18. + */ +class ContributorsListAdapter( + private val contributorsList: ArrayList = ArrayList() +) : RecyclerView.Adapter() +{ + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ContributorViewHolder { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_contributors_list, parent, false) + return ContributorViewHolder(view) + } + + override fun getItemCount(): Int { + return contributorsList.size + } + + override fun onBindViewHolder(holder: ContributorViewHolder, position: Int) { + val item = contributorsList[position] + + holder.textContributorName.text = item.login + holder.textContributions.text = item.contributions + + ImageLoader.loadImage(item.avatar_url, holder.imageContributor) + } + + class ContributorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + var imageContributor = itemView.imageContributor!! + var textContributorName = itemView.textContributorName!! + var textContributions = itemView.textContributions!! + } +} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListFragment.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListFragment.kt new file mode 100644 index 0000000..28b6cec --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListFragment.kt @@ -0,0 +1,122 @@ +package br.com.luisfernandez.github.client.repodetails.contributorslist + +import android.arch.lifecycle.Observer +import android.os.Bundle +import android.support.v4.app.Fragment +import android.support.v7.widget.LinearLayoutManager +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import br.com.luisfernandez.github.client.R +import br.com.luisfernandez.github.client.extensions.setGone +import br.com.luisfernandez.github.client.extensions.setVisible +import br.com.luisfernandez.github.client.http.model.GitHubErrorBody +import br.com.luisfernandez.github.client.http.model.ServerError +import br.com.luisfernandez.github.client.pojo.ContributorResponse +import br.com.luisfernandez.github.client.pojo.IssueResponse +import br.com.luisfernandez.github.client.repodetails.RepoDetailsPagerAdapter.Companion.OWNER +import br.com.luisfernandez.github.client.repodetails.RepoDetailsPagerAdapter.Companion.REPONAME +import kotlinx.android.synthetic.main.fragment_issues_list.* +import kotlinx.android.synthetic.main.view_state_empty.* +import kotlinx.android.synthetic.main.view_state_error.* +import kotlinx.android.synthetic.main.view_state_loading.* +import org.koin.android.viewmodel.ext.android.viewModel + +class ContributorsListFragment : Fragment(), ContributorsListView { + + lateinit var owner: String + lateinit var repoName: String + val viewModel by viewModel() + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + + val rootView = inflater.inflate(R.layout.fragment_contributors_list, container, false) + + val recyclerView = rootView.findViewById(R.id.recyclerView) as RecyclerView + + recyclerView.layoutManager = LinearLayoutManager(rootView.context) + recyclerView.setHasFixedSize(true) + + setupArguments() + + setupViewModel() + + viewModel.loadContributorsList(owner, repoName) + + return rootView + + } + + private fun setupArguments() { + owner = arguments!!.getString(OWNER) + repoName = arguments!!.getString(REPONAME) + } + + private fun setupViewModel() { + viewModel.contributorsList.observe(this, Observer { + issueList -> + showContent(issueList!!) + }) + + viewModel.serverError.observe(this, Observer { + serverError -> + handleError(serverError!!) + }) + } + + override fun handleError(serverError: ServerError) { + this.showErrorState() + + if (serverError.errorBody != null) { + textErrorMessage.text = serverError.errorBody!!.message + } else { + textErrorMessage.text = serverError.errorMessage + } + + buttonRetry.setOnClickListener { _ -> + showLoading() + viewModel.loadContributorsList(owner, repoName) + } + } + + private fun showErrorState() { + layoutProgress.setGone() + layoutEmpty.setGone() + layoutError.setVisible() + recyclerView.setGone() + } + + override fun showLoading() { + layoutProgress.setVisible() + layoutEmpty.setGone() + layoutError.setGone() + recyclerView.setGone() + } + + override fun showEmpty() { + layoutProgress.setGone() + layoutEmpty.setVisible() + layoutError.setGone() + recyclerView.setGone() + } + + override fun showContent(content: List) { + if (content.isEmpty()) { + showEmpty() + } else { + layoutProgress.setGone() + layoutEmpty.setGone() + layoutError.setGone() + recyclerView.setVisible() + + recyclerView.adapter = this.getContributorListAdapter(content) + } + } + + private fun getContributorListAdapter(content: List): ContributorsListAdapter { + return ContributorsListAdapter( + content as ArrayList + ) + } +} diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListModel.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListModel.kt new file mode 100644 index 0000000..b12323e --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListModel.kt @@ -0,0 +1,11 @@ +package br.com.luisfernandez.github.client.repodetails.contributorslist + +import br.com.luisfernandez.github.client.pojo.ContributorResponse +import io.reactivex.Observable + +/** + * Created by luisfernandez on 12/05/18. + */ +interface ContributorsListModel { + fun loadContributorsList(owner: String, repoName: String): Observable> +} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListModelImpl.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListModelImpl.kt new file mode 100644 index 0000000..75c01bf --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListModelImpl.kt @@ -0,0 +1,18 @@ +package br.com.luisfernandez.github.client.repodetails.contributorslist + +import br.com.luisfernandez.github.client.http.GitHubService +import br.com.luisfernandez.github.client.pojo.ContributorResponse +import io.reactivex.Observable + +class ContributorsListModelImpl ( + private val gitHubService: GitHubService +) : ContributorsListModel +{ + override fun loadContributorsList(owner: String, repoName: String): Observable> { + return gitHubService + .listContributors(owner, repoName) + .map { contributorList -> + contributorList + } + } +} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListView.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListView.kt new file mode 100644 index 0000000..b926755 --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListView.kt @@ -0,0 +1,11 @@ +package br.com.luisfernandez.github.client.repodetails.contributorslist + +import br.com.luisfernandez.github.client.http.model.GitHubErrorBody +import br.com.luisfernandez.github.client.mvp.LoadContentView +import br.com.luisfernandez.github.client.pojo.ContributorResponse + + +/** + * Created by luisfernandez on 11/05/18. + */ +interface ContributorsListView : LoadContentView, GitHubErrorBody> \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListViewModel.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListViewModel.kt new file mode 100644 index 0000000..79a3fe5 --- /dev/null +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/contributorslist/ContributorsListViewModel.kt @@ -0,0 +1,35 @@ +package br.com.luisfernandez.github.client.repodetails.contributorslist + +import android.arch.lifecycle.MutableLiveData +import android.arch.lifecycle.ViewModel +import br.com.luisfernandez.github.client.http.CallbackWrapper +import br.com.luisfernandez.github.client.http.model.GitHubErrorBody +import br.com.luisfernandez.github.client.http.model.ServerError +import br.com.luisfernandez.github.client.pojo.ContributorResponse +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers + +class ContributorsListViewModel ( + private val contributorsListModel: ContributorsListModel +) : ViewModel() +{ + + val contributorsList = MutableLiveData>() + val serverError = MutableLiveData>() + + fun loadContributorsList(owner: String, repoName: String) { + contributorsListModel + .loadContributorsList(owner, repoName) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(object: CallbackWrapper, GitHubErrorBody>(GitHubErrorBody::class.java) { + override fun onError(error: ServerError) { + serverError.postValue(error) + } + + override fun onSuccess(listContributors: List) { + contributorsList.postValue(listContributors) + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListAdapter.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListAdapter.kt similarity index 96% rename from app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListAdapter.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListAdapter.kt index 145f1d5..5a0e58c 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListAdapter.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListAdapter.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.issuelist +package br.com.luisfernandez.github.client.repodetails.issuelist import android.support.v7.widget.RecyclerView import android.view.LayoutInflater diff --git a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListModel.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListModel.kt similarity index 79% rename from app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListModel.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListModel.kt index bf28b06..76ac5c5 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListModel.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListModel.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.issuelist +package br.com.luisfernandez.github.client.repodetails.issuelist import br.com.luisfernandez.github.client.pojo.IssueResponse import io.reactivex.Observable diff --git a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListModelImpl.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListModelImpl.kt similarity index 88% rename from app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListModelImpl.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListModelImpl.kt index f47063d..48a3cf0 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListModelImpl.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListModelImpl.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.issuelist +package br.com.luisfernandez.github.client.repodetails.issuelist import br.com.luisfernandez.github.client.http.GitHubService import br.com.luisfernandez.github.client.pojo.IssueResponse diff --git a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListView.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListView.kt similarity index 83% rename from app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListView.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListView.kt index 6ddda1a..bf9c886 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListView.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListView.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.issuelist +package br.com.luisfernandez.github.client.repodetails.issuelist import br.com.luisfernandez.github.client.http.model.GitHubErrorBody import br.com.luisfernandez.github.client.mvp.LoadContentView diff --git a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListViewModel.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListViewModel.kt similarity index 95% rename from app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListViewModel.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListViewModel.kt index 50147c5..2498ee6 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListViewModel.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssueListViewModel.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.issuelist +package br.com.luisfernandez.github.client.repodetails.issuelist import android.arch.lifecycle.MutableLiveData import android.arch.lifecycle.ViewModel diff --git a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListActivity.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssuesListFragment.kt similarity index 71% rename from app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListActivity.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssuesListFragment.kt index eab0573..8b64d56 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/issuelist/IssueListActivity.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/issuelist/IssuesListFragment.kt @@ -1,48 +1,55 @@ -package br.com.luisfernandez.github.client.issuelist +package br.com.luisfernandez.github.client.repodetails.issuelist -import android.annotation.SuppressLint import android.arch.lifecycle.Observer -import android.support.v7.app.AppCompatActivity +import android.os.Bundle +import android.support.v4.app.Fragment import android.support.v7.widget.LinearLayoutManager +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import br.com.luisfernandez.github.client.R import br.com.luisfernandez.github.client.extensions.setGone import br.com.luisfernandez.github.client.extensions.setVisible import br.com.luisfernandez.github.client.http.model.GitHubErrorBody import br.com.luisfernandez.github.client.http.model.ServerError import br.com.luisfernandez.github.client.pojo.IssueResponse -import kotlinx.android.synthetic.main.activity_list.* +import br.com.luisfernandez.github.client.repodetails.RepoDetailsPagerAdapter.Companion.OWNER +import br.com.luisfernandez.github.client.repodetails.RepoDetailsPagerAdapter.Companion.REPONAME +import kotlinx.android.synthetic.main.fragment_issues_list.* import kotlinx.android.synthetic.main.view_state_empty.* import kotlinx.android.synthetic.main.view_state_error.* import kotlinx.android.synthetic.main.view_state_loading.* -import org.androidannotations.annotations.AfterViews -import org.androidannotations.annotations.EActivity -import org.androidannotations.annotations.Extra import org.koin.android.viewmodel.ext.android.viewModel -@SuppressLint("Registered") -@EActivity(R.layout.activity_issues_list) -class IssueListActivity : AppCompatActivity(), IssueListView { +class IssuesListFragment : Fragment(), IssueListView { - @Extra lateinit var owner: String - - @Extra lateinit var repoName: String - val viewModel by viewModel() - @AfterViews - fun afterViews() { - this.configToolbar() + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val layoutManager = LinearLayoutManager(this) + val rootView = inflater.inflate(R.layout.fragment_issues_list, container, false) - recyclerView.layoutManager = layoutManager + val recyclerView = rootView.findViewById(R.id.recyclerView) as RecyclerView + + recyclerView.layoutManager = LinearLayoutManager(rootView.context) recyclerView.setHasFixedSize(true) + setupArguments() + setupViewModel() viewModel.loadIssueList(owner, repoName) + + return rootView + + } + + private fun setupArguments() { + owner = arguments!!.getString(OWNER) + repoName = arguments!!.getString(REPONAME) } private fun setupViewModel() { @@ -57,21 +64,6 @@ class IssueListActivity : AppCompatActivity(), IssueListView { }) } - private fun configToolbar() { - setSupportActionBar(toolbar) - supportActionBar?.let { - title = repoName - supportActionBar?.setDisplayHomeAsUpEnabled(true) - supportActionBar?.setDisplayShowHomeEnabled(true) - supportActionBar?.setDisplayShowTitleEnabled(true) - } - } - - override fun onSupportNavigateUp(): Boolean { - onBackPressed() - return true - } - override fun handleError(serverError: ServerError) { this.showErrorState() diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListAdapter.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListAdapter.kt similarity index 75% rename from app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListAdapter.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListAdapter.kt index 2d87858..0fafa9b 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListAdapter.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListAdapter.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.pullrequest +package br.com.luisfernandez.github.client.repodetails.pullrequest import android.support.v7.widget.RecyclerView import android.view.LayoutInflater @@ -18,18 +18,18 @@ import java.util.* class PullRequestListAdapter( private val pullRequestList: ArrayList = ArrayList(), private val onItemClickListener: OnItemClickListener -) : RecyclerView.Adapter() +) : RecyclerView.Adapter() { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PullRequestViewHolder { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestListAdapter.PullRequestViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_pull_request_list, parent, false) - return PullRequestViewHolder(view) + return br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestListAdapter.PullRequestViewHolder(view) } override fun getItemCount(): Int { return pullRequestList.size } - override fun onBindViewHolder(holder: PullRequestViewHolder, position: Int) { + override fun onBindViewHolder(holder: br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestListAdapter.PullRequestViewHolder, position: Int) { val item = pullRequestList[position] diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListActivity.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListFragment.kt similarity index 73% rename from app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListActivity.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListFragment.kt index 5b1b519..259159c 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListActivity.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListFragment.kt @@ -1,57 +1,64 @@ -package br.com.luisfernandez.github.client.pullrequest +package br.com.luisfernandez.github.client.repodetails.pullrequest -import android.annotation.SuppressLint import android.arch.lifecycle.Observer import android.content.Intent import android.net.Uri -import android.support.v7.app.AppCompatActivity +import android.os.Bundle +import android.support.v4.app.Fragment import android.support.v7.widget.LinearLayoutManager +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import br.com.luisfernandez.github.client.OnItemClickListener import br.com.luisfernandez.github.client.R import br.com.luisfernandez.github.client.extensions.setGone import br.com.luisfernandez.github.client.extensions.setVisible -import br.com.luisfernandez.github.client.http.model.ServerError import br.com.luisfernandez.github.client.http.model.GitHubErrorBody +import br.com.luisfernandez.github.client.http.model.ServerError import br.com.luisfernandez.github.client.pojo.PullRequestResponse -import kotlinx.android.synthetic.main.activity_list.* +import br.com.luisfernandez.github.client.repodetails.RepoDetailsPagerAdapter.Companion.OWNER +import br.com.luisfernandez.github.client.repodetails.RepoDetailsPagerAdapter.Companion.REPONAME +import kotlinx.android.synthetic.main.fragment_issues_list.* import kotlinx.android.synthetic.main.view_state_empty.* import kotlinx.android.synthetic.main.view_state_error.* import kotlinx.android.synthetic.main.view_state_loading.* -import org.androidannotations.annotations.AfterViews -import org.androidannotations.annotations.EActivity -import org.androidannotations.annotations.Extra import org.koin.android.viewmodel.ext.android.viewModel -@SuppressLint("Registered") -@EActivity(R.layout.activity_pull_request_list) -class PullRequestListActivity : AppCompatActivity(), PullRequestListView { +class PullRequestListFragment : Fragment(), PullRequestListView { - @Extra lateinit var owner: String - - @Extra lateinit var repoName: String - val viewModel by viewModel() - @AfterViews - fun afterViews() { - this.configToolbar() + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val layoutManager = LinearLayoutManager(this) + val rootView = inflater.inflate(R.layout.fragment_pull_request_list, container, false) - recyclerView.layoutManager = layoutManager + val recyclerView = rootView.findViewById(R.id.recyclerView) as RecyclerView + + recyclerView.layoutManager = LinearLayoutManager(rootView.context) recyclerView.setHasFixedSize(true) -// + + setupArguments() + setupViewModel() viewModel.loadPullRequestList(owner, repoName) + + return rootView + + } + + private fun setupArguments() { + owner = arguments!!.getString(OWNER) + repoName = arguments!!.getString(REPONAME) } private fun setupViewModel() { viewModel.listPullRequest.observe(this, Observer { - listPullRequest -> - showContent(listPullRequest!!) + issueList -> + showContent(issueList!!) }) viewModel.serverError.observe(this, Observer { @@ -60,21 +67,6 @@ class PullRequestListActivity : AppCompatActivity(), PullRequestListView { }) } - private fun configToolbar() { - setSupportActionBar(toolbar) - supportActionBar?.let { - title = repoName - supportActionBar?.setDisplayHomeAsUpEnabled(true) - supportActionBar?.setDisplayShowHomeEnabled(true) - supportActionBar?.setDisplayShowTitleEnabled(true) - } - } - - override fun onSupportNavigateUp(): Boolean { - onBackPressed() - return true - } - override fun handleError(serverError: ServerError) { this.showErrorState() diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListView.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListView.kt similarity index 83% rename from app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListView.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListView.kt index 04b620b..d431c94 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestListView.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestListView.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.pullrequest +package br.com.luisfernandez.github.client.repodetails.pullrequest import br.com.luisfernandez.github.client.http.model.GitHubErrorBody import br.com.luisfernandez.github.client.mvp.LoadContentView diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestModel.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestModel.kt similarity index 80% rename from app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestModel.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestModel.kt index b5fe021..12f4fc6 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestModel.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestModel.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.pullrequest +package br.com.luisfernandez.github.client.repodetails.pullrequest import br.com.luisfernandez.github.client.pojo.PullRequestResponse import io.reactivex.Observable diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestModelImpl.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestModelImpl.kt similarity index 78% rename from app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestModelImpl.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestModelImpl.kt index 380b04e..52ba316 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestModelImpl.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestModelImpl.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.pullrequest +package br.com.luisfernandez.github.client.repodetails.pullrequest import br.com.luisfernandez.github.client.http.GitHubService import br.com.luisfernandez.github.client.pojo.PullRequestResponse @@ -6,7 +6,7 @@ import io.reactivex.Observable class PullRequestModelImpl ( private val gitHubService: GitHubService -) : PullRequestModel +) : br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestModel { override fun loadPullRequestList(owner: String, repoName: String): Observable> { return gitHubService diff --git a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestViewModel.kt b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestViewModel.kt similarity index 88% rename from app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestViewModel.kt rename to app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestViewModel.kt index e47256e..f23296f 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/pullrequest/PullRequestViewModel.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repodetails/pullrequest/PullRequestViewModel.kt @@ -1,4 +1,4 @@ -package br.com.luisfernandez.github.client.pullrequest +package br.com.luisfernandez.github.client.repodetails.pullrequest import android.arch.lifecycle.MutableLiveData import android.arch.lifecycle.ViewModel @@ -10,7 +10,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers class PullRequestViewModel ( - private val pullRequestModel: PullRequestModel + private val pullRequestModel: br.com.luisfernandez.github.client.repodetails.pullrequest.PullRequestModel ) : ViewModel() { diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListActivity.kt b/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListActivity.kt index 7862933..9e551a1 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListActivity.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListActivity.kt @@ -12,9 +12,8 @@ import br.com.luisfernandez.github.client.extensions.setGone import br.com.luisfernandez.github.client.extensions.setVisible import br.com.luisfernandez.github.client.http.model.GitHubErrorBody import br.com.luisfernandez.github.client.http.model.ServerError -import br.com.luisfernandez.github.client.issuelist.IssueListActivity_ import br.com.luisfernandez.github.client.pojo.Repo -import br.com.luisfernandez.github.client.pullrequest.PullRequestListActivity_ +import br.com.luisfernandez.github.client.repodetails.RepoDetailsActivity_ import com.crashlytics.android.answers.Answers import com.crashlytics.android.answers.SearchEvent import com.miguelcatalan.materialsearchview.MaterialSearchView @@ -24,7 +23,6 @@ import kotlinx.android.synthetic.main.view_state_error.* import kotlinx.android.synthetic.main.view_state_loading.* import org.androidannotations.annotations.AfterViews import org.androidannotations.annotations.EActivity -import org.koin.android.ext.android.inject import org.koin.android.viewmodel.ext.android.viewModel @@ -120,23 +118,14 @@ class RepoListActivity : AppCompatActivity(), RepoListView { private fun getRepoListAdapter(): RepoListAdapter { return RepoListAdapter( getOnItemClickListener(), - getOnLoadMoreContentClickListener(), - getOnIssueClickListener() + getOnLoadMoreContentClickListener() ) } private fun getOnItemClickListener(): OnItemClickListener { return object : OnItemClickListener { override fun onItemClick(type: Repo) { - goToPullRequestActivity(type) - } - } - } - - private fun getOnIssueClickListener(): OnItemClickListener { - return object : OnItemClickListener { - override fun onItemClick(type: Repo) { - goToIssueListActivity(type) + goToRepoDetailsActivity(type) } } } @@ -149,16 +138,8 @@ class RepoListActivity : AppCompatActivity(), RepoListView { } } - private fun goToPullRequestActivity(type: Repo) { - PullRequestListActivity_ - .intent(this@RepoListActivity) - .owner(type.owner.login) - .repoName(type.name) - .start() - } - - private fun goToIssueListActivity(type: Repo) { - IssueListActivity_ + private fun goToRepoDetailsActivity(type: Repo) { + RepoDetailsActivity_ .intent(this@RepoListActivity) .owner(type.owner.login) .repoName(type.name) diff --git a/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListAdapter.kt b/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListAdapter.kt index c5d85fe..9572f80 100644 --- a/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListAdapter.kt +++ b/app/src/main/java/br/com/luisfernandez/github/client/repolist/RepoListAdapter.kt @@ -18,8 +18,7 @@ import kotlin.collections.ArrayList */ class RepoListAdapter( private val onItemClickListener: OnItemClickListener, - private val onRetryClickListener: OnItemClickListener, - private val onIssueClickListener: OnItemClickListener + private val onRetryClickListener: OnItemClickListener ) : RecyclerView.Adapter() { companion object { @@ -76,10 +75,6 @@ class RepoListAdapter( viewHolder.itemView.setOnClickListener { _ -> onItemClickListener.onItemClick(repo) } - - viewHolder.textIssuesCount.setOnClickListener { _ -> - onIssueClickListener.onItemClick(repo) - } } ERROR_FOOTER -> { val errorFooterHolder = viewHolder as ErrorFooterViewHolder diff --git a/app/src/main/res/layout/activity_repo_details.xml b/app/src/main/res/layout/activity_repo_details.xml new file mode 100644 index 0000000..46f8ff9 --- /dev/null +++ b/app/src/main/res/layout/activity_repo_details.xml @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_branches.xml b/app/src/main/res/layout/fragment_branches.xml new file mode 100644 index 0000000..20a29b3 --- /dev/null +++ b/app/src/main/res/layout/fragment_branches.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_commits.xml b/app/src/main/res/layout/fragment_commits.xml new file mode 100644 index 0000000..8be10b1 --- /dev/null +++ b/app/src/main/res/layout/fragment_commits.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_pull_request_list.xml b/app/src/main/res/layout/fragment_contributors_list.xml similarity index 66% rename from app/src/main/res/layout/activity_pull_request_list.xml rename to app/src/main/res/layout/fragment_contributors_list.xml index 9c199fd..281fa33 100644 --- a/app/src/main/res/layout/activity_pull_request_list.xml +++ b/app/src/main/res/layout/fragment_contributors_list.xml @@ -1,15 +1,9 @@ - - + xmlns:tools="http://schemas.android.com/tools" + android:animateLayoutChanges="true" + tools:context=".repodetails.contributorslist.ContributorsListFragment"> + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_issues_list.xml b/app/src/main/res/layout/fragment_pull_request_list.xml similarity index 70% rename from app/src/main/res/layout/activity_issues_list.xml rename to app/src/main/res/layout/fragment_pull_request_list.xml index 9c199fd..0f7d91d 100644 --- a/app/src/main/res/layout/activity_issues_list.xml +++ b/app/src/main/res/layout/fragment_pull_request_list.xml @@ -3,14 +3,6 @@ android:layout_height="match_parent" android:animateLayoutChanges="true"> - - + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2781954..fe1531d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,4 +8,9 @@ "Ohh no!\n%s is an invalid language\nPlease query a valid language ;)" TRY AGAIN + PullRequests + Issues + Commits + Contributors + Branches