Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modified Team Section #28

Merged
merged 1 commit into from
Mar 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ dependencies {
// Splash Screen Animation
implementation 'com.airbnb.android:lottie:3.7.0'

//Shimmer Effect
implementation 'com.facebook.shimmer:shimmer:0.5.0'

// Kotlin Core
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.6.0'
Expand Down
79 changes: 49 additions & 30 deletions app/src/main/java/com/vs/meetly/DevsActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,69 @@ package com.vs.meetly

import android.net.Uri
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabsIntent
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.activity_meeting_filter.*
import androidx.recyclerview.widget.LinearLayoutManager
import com.facebook.shimmer.ShimmerFrameLayout
import com.vs.meetly.adapters.TeamAdapter
import com.vs.meetly.adapters.itemclicked
import com.vs.meetly.retrofit.TeamAPI
import kotlinx.android.synthetic.main.activity_devs.*
import kotlinx.android.synthetic.main.activity_meeting_filter.topAppBar
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory


class DevsActivity : AppCompatActivity() {
const val BASE_URL = "https://githubcapi.herokuapp.com/"
class DevsActivity : AppCompatActivity() , itemclicked {
lateinit var mAdapter:TeamAdapter
lateinit var linearlayoutmanager:LinearLayoutManager
lateinit var shimmerframelayout:ShimmerFrameLayout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_devs)

loadImage()

shimmerframelayout = findViewById(R.id.shimmer)
shimmerframelayout.startShimmer()
recyclerview.setHasFixedSize(true)
linearlayoutmanager = LinearLayoutManager(this)
recyclerview.layoutManager=linearlayoutmanager
getMyData()
topAppBar.setNavigationOnClickListener {
finish()
}
}

private fun loadImage() {
val vdp = findViewById<ImageView>(R.id.vdp) as ImageView
val sdp = findViewById<ImageView>(R.id.sdp) as ImageView

// TODO: Change to dev images at last!

val url_vdp = "https://avatars.githubusercontent.com/u/77713888?v=4"

val url_sdp = "https://avatars.githubusercontent.com/u/65854432?v=4"

Glide.with(vdp).load(url_vdp).circleCrop().into(vdp)
Glide.with(sdp).load(url_sdp).circleCrop().into(sdp)
private fun getMyData() {
val retrofitBuilder = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.build()
.create(TeamAPI::class.java)
val retrofitData = retrofitBuilder.getData()
retrofitData.enqueue(object : Callback<HashMap<String,Map<String,String>>?> {
override fun onResponse(call: Call<HashMap<String,Map<String,String>>?>,
response: Response<HashMap<String,Map<String,String>>?>) {
shimmerframelayout.stopShimmer()
shimmerframelayout.visibility= View.GONE
recyclerview.visibility=View.VISIBLE
val responseBody = response.body()!!
val valuelist = ArrayList(responseBody.values)
mAdapter= TeamAdapter(this@DevsActivity,baseContext, valuelist)
mAdapter.notifyDataSetChanged()
recyclerview.adapter=mAdapter
}
override fun onFailure(call: Call<HashMap<String,Map<String,String>>?>, t: Throwable) {
Log.d("DevsActivity","onFAILURE"+t.message)
}
})
}

fun iVclick(view: View) {
var url=""
when(view.id){
R.id.viVgithub->{ url="https://github.com/vigneshshettyin" }
R.id.viVgmail->{url="mailto:vigneshshetty.in@gmail.com" }
R.id.viVlinkedin->{url="https://www.linkedin.com/in/vigneshshettyin/"}
R.id.siVgithub->{url="https://github.com/Xfinity-bot" }
R.id.siVgmail->{url="mailto:sriganesh7334@gmail.com" }
R.id.siVlinkedin->{url="https://www.linkedin.com/in/sriganesh-rao-1b6a921a5/"}
}
override fun onitemclicked(datamap: Map<String, String>) {
val url = datamap.get("profile_url")
val builder = CustomTabsIntent.Builder()
val CustomTabsIntent = builder.build()
CustomTabsIntent.launchUrl(this, Uri.parse(url))
Expand Down
47 changes: 47 additions & 0 deletions app/src/main/java/com/vs/meetly/adapters/TeamAdapter.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.vs.meetly.adapters

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.vs.meetly.R
import com.vs.meetly.adapters.TeamAdapter.*
private lateinit var itemview: View
class TeamAdapter (private val listener:itemclicked,val context:Context,val userList:ArrayList<Map<String,String>>):
RecyclerView.Adapter<ViewHolder>() {
class ViewHolder(itemview:View):RecyclerView.ViewHolder(itemview) {
val name:TextView = itemview.findViewById(R.id.name)
val image:ImageView = itemview.findViewById(R.id.dp)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
itemview = LayoutInflater.from(parent.context).inflate(R.layout.list_item,parent,false)
return ViewHolder(itemview)
}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val temp = userList[position]
if(temp.get("name")==null){
holder.name.text=temp.get("username")
}else{
holder.name.text=temp.get("name").toString()
}
Glide.with(holder.itemView.context).load(temp.get("image")).circleCrop().into(holder.image)
itemview.setOnClickListener{
listener.onitemclicked(userList[position])
}
}

override fun getItemCount(): Int {
return userList.size
}
}
interface itemclicked{
fun onitemclicked(datamap: Map<String, String>)
}


8 changes: 8 additions & 0 deletions app/src/main/java/com/vs/meetly/modals/Team.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.vs.meetly.modals

data class Team(
val image:String="",
val name:String="",
val profile_url:String="",
val username:String
)
9 changes: 9 additions & 0 deletions app/src/main/java/com/vs/meetly/retrofit/TeamAPI.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.vs.meetly.retrofit

import retrofit2.Call
import retrofit2.http.GET

interface TeamAPI {
@GET("get-meetly-data/")
fun getData():Call<HashMap<String,Map<String,String>>>
}
Loading