Telegram - working on show on map
This commit is contained in:
parent
9d37174113
commit
3892f944ac
2 changed files with 35 additions and 0 deletions
|
@ -315,6 +315,7 @@ class MainActivity : AppCompatActivity(), TelegramListener {
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
val chatTitle = chats[position].title
|
val chatTitle = chats[position].title
|
||||||
holder.groupName?.text = chatTitle
|
holder.groupName?.text = chatTitle
|
||||||
|
|
||||||
holder.shareLocationSwitch?.setOnCheckedChangeListener(null)
|
holder.shareLocationSwitch?.setOnCheckedChangeListener(null)
|
||||||
holder.shareLocationSwitch?.isChecked = settings.isSharingLocationToChat(chatTitle)
|
holder.shareLocationSwitch?.isChecked = settings.isSharingLocationToChat(chatTitle)
|
||||||
holder.shareLocationSwitch?.setOnCheckedChangeListener { view, isChecked ->
|
holder.shareLocationSwitch?.setOnCheckedChangeListener { view, isChecked ->
|
||||||
|
@ -329,6 +330,17 @@ class MainActivity : AppCompatActivity(), TelegramListener {
|
||||||
app.shareLocationHelper.stopSharingLocation()
|
app.shareLocationHelper.stopSharingLocation()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
holder.showOnMapSwitch?.setOnCheckedChangeListener(null)
|
||||||
|
holder.showOnMapSwitch?.isChecked = settings.isShowingChatOnMap(chatTitle)
|
||||||
|
holder.showOnMapSwitch?.setOnCheckedChangeListener { view, isChecked ->
|
||||||
|
settings.showChatOnMap(chatTitle, isChecked)
|
||||||
|
if (settings.hasAnyChatToShowOnMap()) {
|
||||||
|
//app.shareLocationHelper.startSharingLocation()
|
||||||
|
} else {
|
||||||
|
//app.shareLocationHelper.stopSharingLocation()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemCount() = chats.size
|
override fun getItemCount() = chats.size
|
||||||
|
|
|
@ -39,10 +39,22 @@ class TelegramSettings(private val app: TelegramApplication) {
|
||||||
return shareLocationChats.contains(chatTitle)
|
return shareLocationChats.contains(chatTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun hasAnyChatToShowOnMap(): Boolean {
|
||||||
|
return showOnMapChats.isNotEmpty()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isShowingChatOnMap(chatTitle: String): Boolean {
|
||||||
|
return showOnMapChats.contains(chatTitle)
|
||||||
|
}
|
||||||
|
|
||||||
fun removeNonexistingChats(presentChatTitles: List<String>) {
|
fun removeNonexistingChats(presentChatTitles: List<String>) {
|
||||||
val shareLocationChats = shareLocationChats.toMutableList()
|
val shareLocationChats = shareLocationChats.toMutableList()
|
||||||
shareLocationChats.intersect(presentChatTitles)
|
shareLocationChats.intersect(presentChatTitles)
|
||||||
this.shareLocationChats = shareLocationChats.toHashSet()
|
this.shareLocationChats = shareLocationChats.toHashSet()
|
||||||
|
|
||||||
|
val showOnMapChats = showOnMapChats.toMutableList()
|
||||||
|
showOnMapChats.intersect(presentChatTitles)
|
||||||
|
this.showOnMapChats = showOnMapChats.toHashSet()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun shareLocationToChat(chatTitle: String, share: Boolean) {
|
fun shareLocationToChat(chatTitle: String, share: Boolean) {
|
||||||
|
@ -55,7 +67,18 @@ class TelegramSettings(private val app: TelegramApplication) {
|
||||||
this.shareLocationChats = shareLocationChats.toHashSet()
|
this.shareLocationChats = shareLocationChats.toHashSet()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun showChatOnMap(chatTitle: String, show: Boolean) {
|
||||||
|
val showOnMapChats = showOnMapChats.toMutableList()
|
||||||
|
if (show) {
|
||||||
|
showOnMapChats.add(chatTitle)
|
||||||
|
} else {
|
||||||
|
showOnMapChats.remove(chatTitle)
|
||||||
|
}
|
||||||
|
this.showOnMapChats = showOnMapChats.toHashSet()
|
||||||
|
}
|
||||||
|
|
||||||
fun getShareLocationChats() = ArrayList(shareLocationChats)
|
fun getShareLocationChats() = ArrayList(shareLocationChats)
|
||||||
|
fun getShowOnMapChats() = ArrayList(showOnMapChats)
|
||||||
|
|
||||||
fun save() {
|
fun save() {
|
||||||
val prefs = app.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE)
|
val prefs = app.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE)
|
||||||
|
|
Loading…
Reference in a new issue