Skip to content

Commit

Permalink
Merge pull request #25 from iamyajat/master
Browse files Browse the repository at this point in the history
feat: community page
  • Loading branch information
iamyajat authored Feb 4, 2023
2 parents 6b27e11 + 69a6694 commit 3bafa79
Show file tree
Hide file tree
Showing 40 changed files with 948 additions and 130 deletions.
1 change: 0 additions & 1 deletion .idea/gradle.xml

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

4 changes: 3 additions & 1 deletion .idea/misc.xml

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

28 changes: 15 additions & 13 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ android {
storePassword keystoreProperties['storePassword']
}
}
compileSdkVersion 31
compileSdkVersion 33
buildToolsVersion "30.0.3"

defaultConfig {
applicationId "com.dscvit.vitty"
minSdkVersion 24
targetSdkVersion 31
versionCode 32
versionName "1.4.0"
targetSdkVersion 33
versionCode 34
versionName "2.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.release
}
Expand All @@ -55,14 +55,16 @@ android {
dependencies {

// Android Stuff
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0'
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
Expand All @@ -76,10 +78,10 @@ dependencies {
implementation 'com.google.android.gms:play-services-auth:19.2.0'

// Firestore
implementation 'com.google.firebase:firebase-firestore:24.0.0'
implementation 'com.google.firebase:firebase-firestore:24.2.0'

// FCM
implementation 'com.google.firebase:firebase-messaging:23.0.0'
implementation 'com.google.firebase:firebase-messaging:23.0.6'

// Remote Config
implementation 'com.google.firebase:firebase-config-ktx'
Expand Down
11 changes: 3 additions & 8 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -80,22 +80,17 @@
android:resource="@xml/next_class_widget_info" />
</receiver>

<activity
android:name=".activity.InstructionsActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.InstructionsActivity" />
<activity
android:name=".activity.AuthActivity"
android:exported="true"
android:screenOrientation="portrait">
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.ScheduleActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.HomeActivity" />

<receiver
android:name=".receiver.DeviceBootReceiver"
Expand Down
28 changes: 28 additions & 0 deletions app/src/main/java/com/dscvit/vitty/activity/HomeActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.dscvit.vitty.activity

import android.os.Bundle
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.FragmentActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.setupWithNavController
import com.dscvit.vitty.R
import com.dscvit.vitty.databinding.ActivityHomeBinding
import com.google.android.material.bottomnavigation.BottomNavigationView

class HomeActivity : FragmentActivity() {

private lateinit var binding: ActivityHomeBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_home)

val navView: BottomNavigationView = binding.navView

val navController = findNavController(R.id.nav_host_fragment_activity_main)

navView.setupWithNavController(navController)
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class InstructionsActivity : AppCompatActivity() {
}
if (prefs.getInt(TIMETABLE_AVAILABLE, 0) == 1) {
setAlarm()
val intent = Intent(this, ScheduleActivity::class.java)
val intent = Intent(this, HomeActivity::class.java)
startActivity(intent)
finish()
}
Expand Down Expand Up @@ -164,7 +164,7 @@ class InstructionsActivity : AppCompatActivity() {
pmIntent.action = Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
startActivity(pmIntent)
} else {
val intent = Intent(this, ScheduleActivity::class.java)
val intent = Intent(this, HomeActivity::class.java)
startActivity(intent)
finish()
}
Expand Down
3 changes: 1 addition & 2 deletions app/src/main/java/com/dscvit/vitty/adapter/DayAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@ package com.dscvit.vitty.adapter

import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.dscvit.vitty.ui.schedule.DayFragment

class DayAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {
class DayAdapter(fa: Fragment) : FragmentStateAdapter(fa) {
private val numPages = 7

override fun getItemCount(): Int = numPages
Expand Down
39 changes: 31 additions & 8 deletions app/src/main/java/com/dscvit/vitty/adapter/PeriodAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import com.dscvit.vitty.databinding.CardPeriodBinding
import com.dscvit.vitty.model.PeriodDetails
import com.dscvit.vitty.util.Effects.vibrateOnClick
import com.dscvit.vitty.util.RemoteConfigUtils
import com.dscvit.vitty.util.UtilFunctions.copyItem
import com.dscvit.vitty.util.VITMap
import java.text.SimpleDateFormat
import java.util.Calendar
Expand All @@ -32,7 +33,8 @@ class PeriodAdapter(private val dataSet: ArrayList<PeriodDetails>, private val d
val periodTime = binding.periodTime
val classNav = binding.classNav
val classIdOnline = binding.classIdOnline
// val courseCode = binding.courseCode

// val courseCode = binding.courseCode
fun bind(data: PeriodDetails) {
binding.periodDetails = data
}
Expand Down Expand Up @@ -85,8 +87,19 @@ class PeriodAdapter(private val dataSet: ArrayList<PeriodDetails>, private val d
holder.apply {
periodTime.text = "$sTime - $eTime"
activePeriod.visibility = View.INVISIBLE
classNav.setOnClickListener {
VITMap.openClassMap(classNav.context, item.roomNo)
classNav.apply {
setOnClickListener {
VITMap.openClassMap(classNav.context, item.roomNo)
}
setOnLongClickListener {
copyItem(
context,
"Room Number",
"ROOM_NUMBER_ITEM",
item.roomNo
)
true
}
}
}

Expand Down Expand Up @@ -115,12 +128,22 @@ class PeriodAdapter(private val dataSet: ArrayList<PeriodDetails>, private val d

if (isExpanded) previousExpandedPosition = position

holder.itemView.setOnClickListener {
vibrateOnClick(holder.itemView.context)
mExpandedPosition = if (isExpanded) -1 else position
notifyItemChanged(previousExpandedPosition)
notifyItemChanged(position)
holder.itemView.apply {
setOnClickListener {
vibrateOnClick(holder.itemView.context)
mExpandedPosition = if (isExpanded) -1 else position
notifyItemChanged(previousExpandedPosition)
notifyItemChanged(position)
}
setOnLongClickListener {
mExpandedPosition = position
notifyItemChanged(previousExpandedPosition)
notifyItemChanged(position)
true
}
}


}

override fun getItemCount() = dataSet.size
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.dscvit.vitty.ui.community

import android.content.SharedPreferences
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.findNavController
import com.dscvit.vitty.R
import com.dscvit.vitty.databinding.FragmentCommunityBinding
import com.dscvit.vitty.util.Constants

class CommunityFragment : Fragment() {

private var _binding: FragmentCommunityBinding? = null
private lateinit var prefs: SharedPreferences


// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val communityViewModel =
ViewModelProvider(this)[CommunityViewModel::class.java]

_binding = FragmentCommunityBinding.inflate(inflater, container, false)
val root: View = binding.root

prefs = requireContext().getSharedPreferences(Constants.USER_INFO, 0)

binding.communityToolbar.setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) {
R.id.requests -> {
requireView().findNavController()
.navigate(R.id.action_navigation_community_to_navigation_requests)
true
}
else -> {
false
}
}
}

if (!prefs.getBoolean("KRISH", false)) {
binding.krish.visibility = View.GONE
} else {
binding.krish.visibility = View.VISIBLE
}

binding.krish.setOnLongClickListener {
prefs.edit().putBoolean("KRISH", false).apply()
binding.krish.visibility = View.GONE
true
}

return root
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.dscvit.vitty.ui.community

import androidx.lifecycle.ViewModel

class CommunityViewModel : ViewModel() {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.dscvit.vitty.ui.community

import android.content.SharedPreferences
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.dscvit.vitty.R
import com.dscvit.vitty.databinding.FragmentRequestsBinding
import com.dscvit.vitty.util.Constants

class RequestsFragment : Fragment() {

private var _binding: FragmentRequestsBinding? = null

// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
private lateinit var prefs: SharedPreferences


override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val communityViewModel =
ViewModelProvider(this)[CommunityViewModel::class.java]

_binding = FragmentRequestsBinding.inflate(inflater, container, false)
val root: View = binding.root

prefs = requireContext().getSharedPreferences(Constants.USER_INFO, 0)

binding.scheduleToolbar.setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) {
R.id.close -> {
requireActivity().onBackPressed()
true
}
else -> {
false
}
}
}

binding.logout.setOnClickListener {
prefs.edit().putBoolean("KRISH", true).apply()
binding.reqKrish.visibility = View.GONE
}

if (prefs.getBoolean("KRISH", false)) {
binding.reqKrish.visibility = View.GONE
} else {
binding.reqKrish.visibility = View.VISIBLE
}

return root
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
Loading

0 comments on commit 3bafa79

Please sign in to comment.