Implement open group suggestion sheet

This commit is contained in:
Niels Andriesse
2020-02-05 11:29:45 +11:00
parent c50b599ea5
commit f38b7a30a0
11 changed files with 196 additions and 7 deletions

View File

@@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.loaders.DeviceListLoader;
import org.thoughtcrime.securesms.dependencies.InjectableType;
import org.thoughtcrime.securesms.devicelist.Device;
import org.thoughtcrime.securesms.loki.redesign.views.DeviceEditingOptionsBottomSheet;
import org.thoughtcrime.securesms.loki.redesign.dialogs.DeviceEditingOptionsBottomSheet;
import org.thoughtcrime.securesms.loki.redesign.utilities.MnemonicUtilities;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.ViewUtil;

View File

@@ -22,13 +22,16 @@ import android.text.style.ForegroundColorSpan
import android.view.View
import kotlinx.android.synthetic.main.activity_home.*
import network.loki.messenger.R
import nl.komponents.kovenant.ui.successUi
import org.thoughtcrime.securesms.ApplicationContext
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
import org.thoughtcrime.securesms.conversation.ConversationActivity
import org.thoughtcrime.securesms.crypto.ProfileKeyUtil
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.database.ThreadDatabase
import org.thoughtcrime.securesms.database.model.ThreadRecord
import org.thoughtcrime.securesms.loki.getColorWithID
import org.thoughtcrime.securesms.loki.redesign.dialogs.OpenGroupSuggestionBottomSheet
import org.thoughtcrime.securesms.loki.redesign.utilities.push
import org.thoughtcrime.securesms.loki.redesign.utilities.show
import org.thoughtcrime.securesms.loki.redesign.views.ConversationView
@@ -147,6 +150,32 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
if (hasViewedSeed || !isMasterDevice) {
seedReminderView.visibility = View.GONE
}
if (!TextSecurePreferences.getHasSeenOpenGroupSuggestionSheet(this)) {
val bottomSheet = OpenGroupSuggestionBottomSheet()
bottomSheet.onJoinTapped = {
TextSecurePreferences.setHasSeenOpenGroupSuggestionSheet(this)
bottomSheet.dismiss()
// TODO: Duplication of the code in JoinPublicChatActivity
val application = ApplicationContext.getInstance(this)
val channel: Long = 1
val displayName = TextSecurePreferences.getProfileName(this)
val lokiPublicChatAPI = application.lokiPublicChatAPI!!
val url = "https://chat.getsession.org"
application.lokiPublicChatManager.addChat(url, channel).successUi {
lokiPublicChatAPI.getMessages(channel, url)
lokiPublicChatAPI.setDisplayName(displayName, url)
lokiPublicChatAPI.join(channel, url)
val profileKey: ByteArray = ProfileKeyUtil.getProfileKey(this)
val profileUrl: String? = TextSecurePreferences.getProfileAvatarUrl(this)
lokiPublicChatAPI.setProfilePicture(url, profileKey, profileUrl)
}
}
bottomSheet.onDismissTapped = {
TextSecurePreferences.setHasSeenOpenGroupSuggestionSheet(this)
bottomSheet.dismiss()
}
bottomSheet.show(supportFragmentManager, bottomSheet.tag)
}
}
// endregion

View File

@@ -15,11 +15,7 @@ import network.loki.messenger.R
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.devicelist.Device
import org.thoughtcrime.securesms.loki.redesign.views.DeviceEditingOptionsBottomSheet
import org.thoughtcrime.securesms.loki.redesign.dialogs.EditDeviceNameDialog
import org.thoughtcrime.securesms.loki.redesign.dialogs.EditDeviceNameDialogDelegate
import org.thoughtcrime.securesms.loki.redesign.dialogs.LinkDeviceMasterModeDialog
import org.thoughtcrime.securesms.loki.redesign.dialogs.LinkDeviceMasterModeDialogDelegate
import org.thoughtcrime.securesms.loki.redesign.dialogs.*
import org.thoughtcrime.securesms.loki.signAndSendPairingAuthorisationMessage
import org.thoughtcrime.securesms.sms.MessageSender
import org.thoughtcrime.securesms.util.TextSecurePreferences

View File

@@ -1,4 +1,4 @@
package org.thoughtcrime.securesms.loki.redesign.views
package org.thoughtcrime.securesms.loki.redesign.dialogs
import android.os.Bundle
import android.support.design.widget.BottomSheetDialogFragment

View File

@@ -0,0 +1,29 @@
package org.thoughtcrime.securesms.loki.redesign.dialogs
import android.os.Bundle
import android.support.design.widget.BottomSheetDialogFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.fragment_open_group_suggestion_bottom_sheet.*
import network.loki.messenger.R
public class OpenGroupSuggestionBottomSheet : BottomSheetDialogFragment() {
var onJoinTapped: (() -> Unit)? = null
var onDismissTapped: (() -> Unit)? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NORMAL, R.style.SessionBottomSheetDialogTheme)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_open_group_suggestion_bottom_sheet, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
joinButton.setOnClickListener { onJoinTapped?.invoke() }
dismissButton.setOnClickListener { onDismissTapped?.invoke() }
}
}

View File

@@ -1250,6 +1250,14 @@ public class TextSecurePreferences {
public static long getRestorationTime(Context context) {
return getLongPreference(context, "restoration_time", 0);
}
public static boolean getHasSeenOpenGroupSuggestionSheet(Context context) {
return getBooleanPreference(context, "has_seen_open_group_suggestion_sheet", false);
}
public static void setHasSeenOpenGroupSuggestionSheet(Context context) {
setBooleanPreference(context, "has_seen_open_group_suggestion_sheet", true);
}
// endregion
public static void clearAll(Context context) {