mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-02 00:17:41 +01:00
Improve device transfer reliability.
This commit is contained in:
committed by
Alex Hart
parent
0c4c280a50
commit
3e9146a6f5
@@ -8,6 +8,7 @@ import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@@ -70,6 +71,8 @@ public abstract class DeviceTransferSetupFragment extends LoggingFragment {
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
|
||||
Group progressGroup = view.findViewById(R.id.device_transfer_setup_fragment_progress_group);
|
||||
Group errorGroup = view.findViewById(R.id.device_transfer_setup_fragment_error_group);
|
||||
View verifyGroup = view.findViewById(R.id.device_transfer_setup_fragment_verify);
|
||||
@@ -274,6 +277,7 @@ public abstract class DeviceTransferSetupFragment extends LoggingFragment {
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
cancelTakingTooLong();
|
||||
EventBus.getDefault().unregister(this);
|
||||
super.onDestroyView();
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.thoughtcrime.securesms.restore.devicetransfer
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.TextView
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.annotation.StringRes
|
||||
@@ -62,6 +63,8 @@ abstract class DeviceTransferFragment : LoggingFragment(R.layout.fragment_device
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
|
||||
binding.deviceTransferFragmentCancel.setOnClickListener {
|
||||
cancelActiveTransfer()
|
||||
}
|
||||
@@ -80,6 +83,7 @@ abstract class DeviceTransferFragment : LoggingFragment(R.layout.fragment_device
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
EventBus.getDefault().unregister(transferModeListener)
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.app.PendingIntent;
|
||||
import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.IBinder;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
@@ -47,6 +48,7 @@ public class DeviceToDeviceTransferService extends Service implements ShutdownCa
|
||||
private DeviceTransferServer server;
|
||||
private DeviceTransferClient client;
|
||||
private PowerManager.WakeLock wakeLock;
|
||||
private WifiManager.WifiLock wifiLock;
|
||||
|
||||
public static void startServer(@NonNull Context context,
|
||||
@NonNull ServerTask serverTask,
|
||||
@@ -121,6 +123,10 @@ public class DeviceToDeviceTransferService extends Service implements ShutdownCa
|
||||
wakeLock.release();
|
||||
}
|
||||
|
||||
if (wifiLock != null && wifiLock.isHeld()) {
|
||||
wifiLock.release();
|
||||
}
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -207,6 +213,17 @@ public class DeviceToDeviceTransferService extends Service implements ShutdownCa
|
||||
if (!wakeLock.isHeld()) {
|
||||
wakeLock.acquire(TimeUnit.HOURS.toMillis(2));
|
||||
}
|
||||
|
||||
if (wifiLock == null) {
|
||||
WifiManager wifiManager = ContextCompat.getSystemService(this, WifiManager.class);
|
||||
if (wifiManager != null) {
|
||||
wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "signal:d2dwifi");
|
||||
}
|
||||
}
|
||||
|
||||
if (wifiLock != null && !wifiLock.isHeld()) {
|
||||
wifiLock.acquire();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateNotification(@NonNull TransferStatus transferStatus) {
|
||||
|
||||
Reference in New Issue
Block a user