Refactoring

pull/147/head
M66B 6 years ago
parent 99732b22c3
commit adbfa01b41

@ -22,7 +22,6 @@ package eu.faircode.email;
import android.Manifest;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
@ -34,7 +33,6 @@ import java.util.List;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
abstract class ActivityBase extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
@ -44,8 +42,7 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
protected void onCreate(Bundle savedInstanceState) {
Log.i("Create " + this.getClass().getName() + " version=" + BuildConfig.VERSION_NAME);
this.contacts = (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED);
this.contacts = hasPermission(Manifest.permission.READ_CONTACTS);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String theme = prefs.getString("theme", null);
@ -69,9 +66,7 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
protected void onResume() {
Log.i("Resume " + this.getClass().getName());
boolean contacts = (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED);
boolean contacts = hasPermission(Manifest.permission.READ_CONTACTS);
if (!this.getClass().equals(ActivitySetup.class) && this.contacts != contacts) {
Log.i("Contacts permission=" + contacts);
finish();
@ -119,6 +114,10 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
finish();
}
public boolean hasPermission(String name) {
return Helper.hasPermission(this, name);
}
protected View getVisibleView() {
for (Fragment fragment : getSupportFragmentManager().getFragments())
if (fragment.getUserVisibleHint()) {

@ -29,7 +29,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.content.res.Configuration;
@ -89,7 +88,6 @@ import javax.net.ssl.HttpsURLConnection;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.documentfile.provider.DocumentFile;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
@ -734,8 +732,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
List<ShortcutInfo> shortcuts = new ArrayList<>();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED) {
if (hasPermission(Manifest.permission.READ_CONTACTS)) {
Cursor cursor = null;
try {
// https://developer.android.com/guide/topics/providers/contacts-provider#ObsoleteData

@ -109,7 +109,6 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.PopupMenu;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
@ -2480,8 +2479,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
this.date = prefs.getBoolean("date", true);
this.threading = prefs.getBoolean("threading", true);
this.contacts = (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED);
this.contacts = Helper.hasPermission(context, Manifest.permission.READ_CONTACTS);
this.search = (context.getPackageManager().getComponentEnabledSetting(
new ComponentName(context, ActivitySearch.class)) ==
PackageManager.COMPONENT_ENABLED_STATE_ENABLED);

@ -4,7 +4,6 @@ import android.Manifest;
import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@ -20,8 +19,6 @@ import java.util.Map;
import javax.mail.Address;
import javax.mail.internet.InternetAddress;
import androidx.core.content.ContextCompat;
public class ContactInfo {
private String email;
private Bitmap bitmap;
@ -91,8 +88,7 @@ public class ContactInfo {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED)
if (Helper.hasPermission(context, Manifest.permission.READ_CONTACTS))
try {
Cursor cursor = null;
try {
@ -159,8 +155,7 @@ public class ContactInfo {
return null;
InternetAddress address = (InternetAddress) addresses[0];
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED)
if (!Helper.hasPermission(context, Manifest.permission.READ_CONTACTS))
return null;
try {

@ -78,7 +78,6 @@ import javax.mail.Session;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentTransaction;
import static android.accounts.AccountManager.newChooseAccountIntent;
@ -349,7 +348,7 @@ public class FragmentAccount extends FragmentBase {
if ("com.google".equals(provider.type)) {
String permission = Manifest.permission.GET_ACCOUNTS;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O &&
ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED) {
!Helper.hasPermission(getContext(), permission)) {
Log.i("Requesting " + permission);
requestPermissions(new String[]{permission}, ActivitySetup.REQUEST_PERMISSION);
} else

@ -136,4 +136,11 @@ public class FragmentBase extends Fragment {
Bundle args = getArguments();
return (args != null && args.getBoolean("pane"));
}
boolean hasPermission(String name) {
ActivityBase activity = (ActivityBase) getActivity();
if (activity == null)
return false;
return activity.hasPermission(name);
}
}

@ -124,7 +124,6 @@ import javax.mail.internet.MimeMessage;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.cursoradapter.widget.SimpleCursorAdapter;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
@ -398,8 +397,7 @@ public class FragmentCompose extends FragmentBase {
getActivity().invalidateOptionsMenu();
Helper.setViewsEnabled(view, false);
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED) {
if (Helper.hasPermission(getContext(), Manifest.permission.READ_CONTACTS)) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
getContext(),
android.R.layout.simple_list_item_2,

@ -63,7 +63,6 @@ import javax.mail.Transport;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import static android.accounts.AccountManager.newChooseAccountIntent;
import static android.app.Activity.RESULT_OK;
@ -104,7 +103,7 @@ public class FragmentQuickSetup extends FragmentBase {
public void onClick(View v) {
String permission = Manifest.permission.GET_ACCOUNTS;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O &&
ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED) {
!Helper.hasPermission(getContext(), permission)) {
Log.i("Requesting " + permission);
requestPermissions(new String[]{permission}, ActivitySetup.REQUEST_CHOOSE_ACCOUNT);
} else

@ -90,6 +90,7 @@ import javax.mail.internet.InternetAddress;
import androidx.annotation.NonNull;
import androidx.browser.customtabs.CustomTabsIntent;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
@ -113,6 +114,10 @@ public class Helper {
}
};
static boolean hasPermission(Context context, String name) {
return (ContextCompat.checkSelfPermission(context, name) == PackageManager.PERMISSION_GRANTED);
}
static void view(Context context, LifecycleOwner owner, Intent intent) {
Uri uri = intent.getData();
if ("http".equals(uri.getScheme()) || "https".equals(uri.getScheme()))

Loading…
Cancel
Save