mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-27 20:15:21 +00:00
feat: finish share log dialog
This commit is contained in:
parent
a295cc384c
commit
c21a75c880
@ -124,6 +124,7 @@ public class ApplicationContext extends Application implements DependencyInjecto
|
|||||||
public SignalCommunicationModule communicationModule;
|
public SignalCommunicationModule communicationModule;
|
||||||
private Job firebaseInstanceIdJob;
|
private Job firebaseInstanceIdJob;
|
||||||
private Handler conversationListNotificationHandler;
|
private Handler conversationListNotificationHandler;
|
||||||
|
private PersistentLogger persistentLogger;
|
||||||
|
|
||||||
private volatile boolean isAppVisible;
|
private volatile boolean isAppVisible;
|
||||||
|
|
||||||
@ -135,6 +136,10 @@ public class ApplicationContext extends Application implements DependencyInjecto
|
|||||||
return this.conversationListNotificationHandler;
|
return this.conversationListNotificationHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PersistentLogger getPersistentLogger() {
|
||||||
|
return this.persistentLogger;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
@ -277,7 +282,10 @@ public class ApplicationContext extends Application implements DependencyInjecto
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initializeLogging() {
|
private void initializeLogging() {
|
||||||
Log.initialize(new AndroidLogger(), new PersistentLogger(this));
|
if (persistentLogger == null) {
|
||||||
|
persistentLogger = new PersistentLogger(this);
|
||||||
|
}
|
||||||
|
Log.initialize(new AndroidLogger(), persistentLogger);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeCrashHandling() {
|
private void initializeCrashHandling() {
|
||||||
|
@ -1,14 +1,20 @@
|
|||||||
package org.thoughtcrime.securesms.preferences
|
package org.thoughtcrime.securesms.preferences
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Build
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import kotlinx.android.synthetic.main.dialog_share_logs.view.*
|
import kotlinx.android.synthetic.main.dialog_share_logs.view.*
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import network.loki.messenger.BuildConfig
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
|
import org.thoughtcrime.securesms.ApplicationContext
|
||||||
import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog
|
import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog
|
||||||
|
import org.thoughtcrime.securesms.providers.BlobProvider
|
||||||
|
|
||||||
class ShareLogsDialog : BaseDialog() {
|
class ShareLogsDialog : BaseDialog() {
|
||||||
|
|
||||||
@ -31,7 +37,28 @@ class ShareLogsDialog : BaseDialog() {
|
|||||||
private fun shareLogs() {
|
private fun shareLogs() {
|
||||||
shareJob?.cancel()
|
shareJob?.cancel()
|
||||||
shareJob = lifecycleScope.launch(Dispatchers.IO) {
|
shareJob = lifecycleScope.launch(Dispatchers.IO) {
|
||||||
|
val persistentLogger = ApplicationContext.getInstance(context).persistentLogger
|
||||||
|
try {
|
||||||
|
val logs = persistentLogger.logs.get()
|
||||||
|
val fileName = "${Build.MANUFACTURER}-${Build.DEVICE}-API${Build.VERSION.SDK_INT}-v${BuildConfig.VERSION_NAME}.log"
|
||||||
|
val logUri = BlobProvider().forData(logs.toByteArray())
|
||||||
|
.withFileName(fileName)
|
||||||
|
.withMimeType("text/plain")
|
||||||
|
.createForSingleSessionOnDisk(requireContext(),null)
|
||||||
|
|
||||||
|
val shareIntent = Intent().apply {
|
||||||
|
action = Intent.ACTION_SEND
|
||||||
|
putExtra(Intent.EXTRA_STREAM, logUri)
|
||||||
|
type = "text/plain"
|
||||||
|
}
|
||||||
|
|
||||||
|
dismiss()
|
||||||
|
|
||||||
|
startActivity(Intent.createChooser(shareIntent, getString(R.string.share)))
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Toast.makeText(context,"Error saving logs", Toast.LENGTH_LONG).show()
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,10 +42,10 @@
|
|||||||
android:text="@string/cancel" />
|
android:text="@string/cancel" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
style="@style/Widget.Session.Button.Dialog"
|
style="@style/Widget.Session.Button.Dialog.Unimportant"
|
||||||
android:id="@+id/shareButton"
|
android:id="@+id/shareButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="@dimen/small_button_height"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_marginStart="@dimen/medium_spacing"
|
android:layout_marginStart="@dimen/medium_spacing"
|
||||||
android:text="@string/share" />
|
android:text="@string/share" />
|
||||||
|
Loading…
Reference in New Issue
Block a user