mirror of https://github.com/M66B/FairEmail.git
Moved data saver
This commit is contained in:
parent
f78f3e502d
commit
76a6dad91b
|
@ -31,18 +31,15 @@ import android.content.DialogInterface;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.AssetFileDescriptor;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.media.Ringtone;
|
||||
import android.media.RingtoneManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
|
@ -68,7 +65,6 @@ import androidx.recyclerview.widget.DividerItemDecoration;
|
|||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.google.android.material.textfield.TextInputLayout;
|
||||
|
||||
import org.json.JSONArray;
|
||||
|
@ -106,7 +102,6 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
private ActionBarDrawerToggle drawerToggle;
|
||||
private ConstraintLayout drawerContainer;
|
||||
private RecyclerView rvMenu;
|
||||
private Snackbar sbDataSaver;
|
||||
|
||||
private boolean hasAccount;
|
||||
private String password;
|
||||
|
@ -252,20 +247,6 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
|
||||
adapter.set(menus);
|
||||
|
||||
sbDataSaver = Snackbar.make(view, R.string.title_setup_data, Snackbar.LENGTH_INDEFINITE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
final Intent settings = new Intent(
|
||||
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS,
|
||||
Uri.parse("package:" + BuildConfig.APPLICATION_ID));
|
||||
if (settings.resolveActivity(getPackageManager()) != null)
|
||||
sbDataSaver.setAction(R.string.title_setup_manage, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
startActivity(settings);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
getSupportFragmentManager().addOnBackStackChangedListener(this);
|
||||
|
||||
if (getSupportFragmentManager().getFragments().size() == 0) {
|
||||
|
@ -320,16 +301,6 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
iff.addAction(ACTION_EDIT_ACCOUNT);
|
||||
iff.addAction(ACTION_EDIT_IDENTITY);
|
||||
lbm.registerReceiver(receiver, iff);
|
||||
|
||||
// https://developer.android.com/training/basics/network-ops/data-saver.html
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
if (cm != null) {
|
||||
int status = cm.getRestrictBackgroundStatus();
|
||||
if (status == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED)
|
||||
sbDataSaver.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -337,9 +308,6 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
super.onPause();
|
||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
|
||||
lbm.unregisterReceiver(receiver);
|
||||
|
||||
if (sbDataSaver.isShown())
|
||||
sbDataSaver.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -28,6 +28,8 @@ import android.content.Intent;
|
|||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.PowerManager;
|
||||
|
@ -73,9 +75,12 @@ public class FragmentSetup extends FragmentBase {
|
|||
private Button btnDoze;
|
||||
private Button btnBattery;
|
||||
|
||||
private Button btnDataSaver;
|
||||
|
||||
private Button btnInbox;
|
||||
|
||||
private Group grpWelcome;
|
||||
private Group grpDataSaver;
|
||||
|
||||
private int textColorPrimary;
|
||||
private int colorWarning;
|
||||
|
@ -117,9 +122,12 @@ public class FragmentSetup extends FragmentBase {
|
|||
btnDoze = view.findViewById(R.id.btnDoze);
|
||||
btnBattery = view.findViewById(R.id.btnBattery);
|
||||
|
||||
btnDataSaver = view.findViewById(R.id.btnDataSaver);
|
||||
|
||||
btnInbox = view.findViewById(R.id.btnInbox);
|
||||
|
||||
grpWelcome = view.findViewById(R.id.grpWelcome);
|
||||
grpDataSaver = view.findViewById(R.id.grpDataSaver);
|
||||
|
||||
PackageManager pm = getContext().getPackageManager();
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
|
@ -191,6 +199,20 @@ public class FragmentSetup extends FragmentBase {
|
|||
}
|
||||
});
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
final Intent settings = new Intent(
|
||||
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS,
|
||||
Uri.parse("package:" + BuildConfig.APPLICATION_ID));
|
||||
|
||||
btnDataSaver.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
startActivity(settings);
|
||||
}
|
||||
});
|
||||
btnDataSaver.setEnabled(settings.resolveActivity(pm) != null);
|
||||
}
|
||||
|
||||
btnInbox.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -219,6 +241,7 @@ public class FragmentSetup extends FragmentBase {
|
|||
|
||||
boolean welcome = prefs.getBoolean("welcome", true);
|
||||
grpWelcome.setVisibility(welcome ? View.VISIBLE : View.GONE);
|
||||
grpDataSaver.setVisibility(View.GONE);
|
||||
|
||||
int[] grantResults = new int[permissions.length];
|
||||
for (int i = 0; i < permissions.length; i++)
|
||||
|
@ -349,6 +372,17 @@ public class FragmentSetup extends FragmentBase {
|
|||
tvDozeDone.setText(ignoring ? R.string.title_setup_done : R.string.title_setup_to_do);
|
||||
tvDozeDone.setTextColor(ignoring ? textColorPrimary : colorWarning);
|
||||
tvDozeDone.setCompoundDrawablesWithIntrinsicBounds(ignoring ? check : null, null, null, null);
|
||||
|
||||
// https://developer.android.com/training/basics/network-ops/data-saver.html
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
if (cm != null) {
|
||||
int status = cm.getRestrictBackgroundStatus();
|
||||
grpDataSaver.setVisibility(
|
||||
status == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED
|
||||
? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -451,6 +451,29 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnDoze" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDataSaver"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/title_setup_data"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
android:textColor="?attr/colorWarning"
|
||||
android:textIsSelectable="true"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnBattery" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnDataSaver"
|
||||
style="?android:attr/buttonStyleSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="0dp"
|
||||
android:minHeight="0dp"
|
||||
android:text="@string/title_setup_manage"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvDataSaver" />
|
||||
|
||||
<!-- inbox -->
|
||||
|
||||
<View
|
||||
|
@ -460,7 +483,7 @@
|
|||
android:layout_marginTop="12dp"
|
||||
android:background="?attr/colorSeparator"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnBattery" />
|
||||
app:layout_constraintTop_toBottomOf="@id/btnDataSaver" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/five"
|
||||
|
@ -499,8 +522,13 @@
|
|||
android:id="@+id/grpWelcome"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:constraint_referenced_ids="
|
||||
tvWelcome,ibWelcome,vSeparatorWelcome" />
|
||||
app:constraint_referenced_ids="tvWelcome,ibWelcome,vSeparatorWelcome" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/grpDataSaver"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:constraint_referenced_ids="tvDataSaver,btnDataSaver" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</ScrollView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue