mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-28 04:25:18 +00:00
commit
1b585efc90
@ -6,6 +6,7 @@ buildscript {
|
|||||||
ext.kovenant_version = "3.3.0"
|
ext.kovenant_version = "3.3.0"
|
||||||
ext.identicon_version = "v11"
|
ext.identicon_version = "v11"
|
||||||
ext.rss_parser_version = "2.0.4"
|
ext.rss_parser_version = "2.0.4"
|
||||||
|
ext.mixpanel_version = "5.+"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
@ -184,6 +185,7 @@ dependencies {
|
|||||||
implementation "nl.komponents.kovenant:kovenant:$kovenant_version"
|
implementation "nl.komponents.kovenant:kovenant:$kovenant_version"
|
||||||
implementation "com.github.lelloman:android-identicons:$identicon_version"
|
implementation "com.github.lelloman:android-identicons:$identicon_version"
|
||||||
implementation "com.prof.rssparser:rssparser:$rss_parser_version"
|
implementation "com.prof.rssparser:rssparser:$rss_parser_version"
|
||||||
|
implementation "com.mixpanel.android:mixpanel-android:$mixpanel_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
def canonicalVersionCode = 12
|
def canonicalVersionCode = 12
|
||||||
|
@ -27,6 +27,7 @@ import android.support.annotation.NonNull;
|
|||||||
import android.support.multidex.MultiDexApplication;
|
import android.support.multidex.MultiDexApplication;
|
||||||
|
|
||||||
import com.google.android.gms.security.ProviderInstaller;
|
import com.google.android.gms.security.ProviderInstaller;
|
||||||
|
import com.mixpanel.android.mpmetrics.MixpanelAPI;
|
||||||
|
|
||||||
import org.conscrypt.Conscrypt;
|
import org.conscrypt.Conscrypt;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -85,15 +86,18 @@ import org.whispersystems.signalservice.loki.api.LokiLongPoller;
|
|||||||
import org.whispersystems.signalservice.loki.api.LokiP2PAPI;
|
import org.whispersystems.signalservice.loki.api.LokiP2PAPI;
|
||||||
import org.whispersystems.signalservice.loki.api.LokiP2PAPIDelegate;
|
import org.whispersystems.signalservice.loki.api.LokiP2PAPIDelegate;
|
||||||
import org.whispersystems.signalservice.loki.api.LokiRSSFeed;
|
import org.whispersystems.signalservice.loki.api.LokiRSSFeed;
|
||||||
|
import org.whispersystems.signalservice.loki.utilities.Analytics;
|
||||||
|
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import dagger.ObjectGraph;
|
import dagger.ObjectGraph;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
|
import kotlin.jvm.functions.Function1;
|
||||||
import network.loki.messenger.BuildConfig;
|
import network.loki.messenger.BuildConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -122,6 +126,7 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
|
|||||||
private LokiRSSFeedPoller lokiNewsFeedPoller = null;
|
private LokiRSSFeedPoller lokiNewsFeedPoller = null;
|
||||||
private LokiRSSFeedPoller lokiMessengerUpdatesFeedPoller = null;
|
private LokiRSSFeedPoller lokiMessengerUpdatesFeedPoller = null;
|
||||||
public SignalCommunicationModule communicationModule;
|
public SignalCommunicationModule communicationModule;
|
||||||
|
public MixpanelAPI mixpanel;
|
||||||
|
|
||||||
private volatile boolean isAppVisible;
|
private volatile boolean isAppVisible;
|
||||||
|
|
||||||
@ -154,6 +159,15 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
|
|||||||
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
|
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
|
||||||
// Loki - Set up P2P API if needed
|
// Loki - Set up P2P API if needed
|
||||||
setUpP2PAPI();
|
setUpP2PAPI();
|
||||||
|
// Loki - Set up beta analytics
|
||||||
|
mixpanel = MixpanelAPI.getInstance(this, "59040b6707e5a1725f3fb6730fefca92");
|
||||||
|
Analytics.Companion.getShared().trackImplementation = (Function1<String, Unit>) event -> {
|
||||||
|
HashMap<String, Object> properties = new HashMap();
|
||||||
|
String configuration = BuildConfig.DEBUG ? "debug" : "production";
|
||||||
|
properties.put("configuration", configuration);
|
||||||
|
mixpanel.trackMap(event, properties);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -226,6 +226,7 @@ import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
|
|||||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||||
import org.whispersystems.signalservice.loki.messaging.LokiMessageFriendRequestStatus;
|
import org.whispersystems.signalservice.loki.messaging.LokiMessageFriendRequestStatus;
|
||||||
import org.whispersystems.signalservice.loki.messaging.LokiThreadFriendRequestStatus;
|
import org.whispersystems.signalservice.loki.messaging.LokiThreadFriendRequestStatus;
|
||||||
|
import org.whispersystems.signalservice.loki.utilities.Analytics;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@ -392,6 +393,16 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (this.recipient.isGroupRecipient()) {
|
||||||
|
if (this.recipient.getName().equals("Loki Public Chat")) {
|
||||||
|
Analytics.Companion.getShared().track("Loki Public Chat Opened");
|
||||||
|
} else {
|
||||||
|
Analytics.Companion.getShared().track("RSS Feed Opened");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Analytics.Companion.getShared().track("Conversation Opened");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.qr.ScanListener
|
|||||||
import org.thoughtcrime.securesms.recipients.Recipient
|
import org.thoughtcrime.securesms.recipients.Recipient
|
||||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||||
|
import org.whispersystems.signalservice.loki.utilities.Analytics
|
||||||
import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation
|
import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation
|
||||||
|
|
||||||
class NewConversationActivity : PassphraseRequiredActionBarActivity(), ScanListener {
|
class NewConversationActivity : PassphraseRequiredActionBarActivity(), ScanListener {
|
||||||
@ -60,6 +61,7 @@ class NewConversationActivity : PassphraseRequiredActionBarActivity(), ScanListe
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onQrDataFound(hexEncodedPublicKey: String) {
|
override fun onQrDataFound(hexEncodedPublicKey: String) {
|
||||||
|
Analytics.shared.track("QR Code Scanned")
|
||||||
startNewConversationIfPossible(hexEncodedPublicKey)
|
startNewConversationIfPossible(hexEncodedPublicKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,6 +77,7 @@ class NewConversationActivity : PassphraseRequiredActionBarActivity(), ScanListe
|
|||||||
val existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(contact)
|
val existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(contact)
|
||||||
intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, existingThread)
|
intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, existingThread)
|
||||||
intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT)
|
intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT)
|
||||||
|
Analytics.shared.track("New Conversation Started")
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences
|
|||||||
import org.whispersystems.curve25519.Curve25519
|
import org.whispersystems.curve25519.Curve25519
|
||||||
import org.whispersystems.libsignal.util.KeyHelper
|
import org.whispersystems.libsignal.util.KeyHelper
|
||||||
import org.whispersystems.signalservice.loki.crypto.MnemonicCodec
|
import org.whispersystems.signalservice.loki.crypto.MnemonicCodec
|
||||||
|
import org.whispersystems.signalservice.loki.utilities.Analytics
|
||||||
import org.whispersystems.signalservice.loki.utilities.hexEncodedPublicKey
|
import org.whispersystems.signalservice.loki.utilities.hexEncodedPublicKey
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
@ -162,6 +163,10 @@ class SeedActivity : BaseActionBarActivity() {
|
|||||||
val application = ApplicationContext.getInstance(this)
|
val application = ApplicationContext.getInstance(this)
|
||||||
application.setUpP2PAPI()
|
application.setUpP2PAPI()
|
||||||
application.startLongPollingIfNeeded()
|
application.startLongPollingIfNeeded()
|
||||||
|
when (mode) {
|
||||||
|
Mode.Register -> Analytics.shared.track("Seed Created")
|
||||||
|
Mode.Restore -> Analytics.shared.track("Seed Restored")
|
||||||
|
}
|
||||||
startActivity(Intent(this, ConversationListActivity::class.java))
|
startActivity(Intent(this, ConversationListActivity::class.java))
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user