Moved requesting local network permissions to the connection settings tab page

master
M66B 2 weeks ago
parent 1f67426015
commit 7e92183f9a

@ -19,6 +19,7 @@ package eu.faircode.email;
Copyright 2018-2026 by Marcel Bokhorst (M66B)
*/
import android.Manifest;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@ -115,6 +116,7 @@ public class FragmentOptionsConnection extends FragmentBase implements SharedPre
private SwitchCompat swBouncyCastle;
private SwitchCompat swFipsMode;
private ImageButton ibBouncyCastle;
private Button btnLocalNetwork;
private Button btnManage;
private TextView tvNetworkMetered;
private TextView tvNetworkRoaming;
@ -189,6 +191,7 @@ public class FragmentOptionsConnection extends FragmentBase implements SharedPre
swBouncyCastle = view.findViewById(R.id.swBouncyCastle);
swFipsMode = view.findViewById(R.id.swFipsMode);
ibBouncyCastle = view.findViewById(R.id.ibBouncyCastle);
btnLocalNetwork = view.findViewById(R.id.btnLocalNetwork);
btnManage = view.findViewById(R.id.btnManage);
tvNetworkMetered = view.findViewById(R.id.tvNetworkMetered);
@ -509,6 +512,16 @@ public class FragmentOptionsConnection extends FragmentBase implements SharedPre
}
});
btnLocalNetwork.setVisibility(BuildConfig.PLAY_STORE_RELEASE || Build.VERSION.SDK_INT < Build.VERSION_CODES.CINNAMON_BUN
? View.GONE : View.VISIBLE);
btnLocalNetwork.setEnabled(!Helper.hasPermission(getContext(), Manifest.permission.ACCESS_LOCAL_NETWORK));
btnLocalNetwork.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
requestPermissions(new String[]{Manifest.permission.ACCESS_LOCAL_NETWORK}, REQUEST_PERMISSIONS);
}
});
final Intent manage = getIntentConnectivity();
PackageManager pm = getContext().getPackageManager();
btnManage.setVisibility(
@ -769,6 +782,11 @@ public class FragmentOptionsConnection extends FragmentBase implements SharedPre
return super.onOptionsItemSelected(item);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
btnLocalNetwork.setEnabled(!Helper.hasPermission(getContext(), Manifest.permission.ACCESS_LOCAL_NETWORK));
}
private void setOptions() {
try {
if (view == null || getContext() == null)

@ -512,8 +512,6 @@ public class Helper {
permissions.add(Manifest.permission.READ_CONTACTS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
permissions.add(Manifest.permission.POST_NOTIFICATIONS);
if (!BuildConfig.PLAY_STORE_RELEASE)
permissions.add(Manifest.permission.ACCESS_LOCAL_NETWORK);
try {
PackageManager pm = context.getPackageManager();

@ -717,6 +717,18 @@
app:layout_constraintTop_toBottomOf="@id/swFipsMode"
app:srcCompat="@drawable/twotone_info_24" />
<Button
android:id="@+id/btnLocalNetwork"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_security_24"
android:drawablePadding="6dp"
android:text="@string/title_advanced_local_network"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ibBouncyCastle" />
<Button
android:id="@+id/btnManage"
style="?android:attr/buttonStyleSmall"
@ -727,7 +739,7 @@
android:drawablePadding="6dp"
android:text="@string/title_advanced_manage_connectivity"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ibBouncyCastle" />
app:layout_constraintTop_toBottomOf="@id/btnLocalNetwork" />
<TextView
android:id="@+id/tvNetworkMetered"

@ -578,6 +578,7 @@
<string name="title_advanced_http_redirect">Allow connection redirection</string>
<string name="title_advanced_bouncy_castle">Use Bouncy Castle\'s secure socket provider (JSSE)</string>
<string name="title_advanced_fips_mode" translatable="false">FIPS mode</string>
<string name="title_advanced_local_network">Local network permissions</string>
<string name="title_advanced_manage_connectivity">Manage connectivity</string>
<string name="title_advanced_caption_general">General</string>

Loading…
Cancel
Save