Refactoring

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

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

@ -29,7 +29,6 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.IntentSender; import android.content.IntentSender;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager; import android.content.pm.ShortcutManager;
import android.content.res.Configuration; import android.content.res.Configuration;
@ -89,7 +88,6 @@ import javax.net.ssl.HttpsURLConnection;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.documentfile.provider.DocumentFile; import androidx.documentfile.provider.DocumentFile;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -734,8 +732,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
List<ShortcutInfo> shortcuts = new ArrayList<>(); List<ShortcutInfo> shortcuts = new ArrayList<>();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) if (hasPermission(Manifest.permission.READ_CONTACTS)) {
== PackageManager.PERMISSION_GRANTED) {
Cursor cursor = null; Cursor cursor = null;
try { try {
// https://developer.android.com/guide/topics/providers/contacts-provider#ObsoleteData // 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.appcompat.widget.PopupMenu;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
@ -2480,8 +2479,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
this.date = prefs.getBoolean("date", true); this.date = prefs.getBoolean("date", true);
this.threading = prefs.getBoolean("threading", true); this.threading = prefs.getBoolean("threading", true);
this.contacts = (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) this.contacts = Helper.hasPermission(context, Manifest.permission.READ_CONTACTS);
== PackageManager.PERMISSION_GRANTED);
this.search = (context.getPackageManager().getComponentEnabledSetting( this.search = (context.getPackageManager().getComponentEnabledSetting(
new ComponentName(context, ActivitySearch.class)) == new ComponentName(context, ActivitySearch.class)) ==
PackageManager.COMPONENT_ENABLED_STATE_ENABLED); PackageManager.COMPONENT_ENABLED_STATE_ENABLED);

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

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

@ -136,4 +136,11 @@ public class FragmentBase extends Fragment {
Bundle args = getArguments(); Bundle args = getArguments();
return (args != null && args.getBoolean("pane")); 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.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.cursoradapter.widget.SimpleCursorAdapter; import androidx.cursoradapter.widget.SimpleCursorAdapter;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
@ -398,8 +397,7 @@ public class FragmentCompose extends FragmentBase {
getActivity().invalidateOptionsMenu(); getActivity().invalidateOptionsMenu();
Helper.setViewsEnabled(view, false); Helper.setViewsEnabled(view, false);
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS) if (Helper.hasPermission(getContext(), Manifest.permission.READ_CONTACTS)) {
== PackageManager.PERMISSION_GRANTED) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter( SimpleCursorAdapter adapter = new SimpleCursorAdapter(
getContext(), getContext(),
android.R.layout.simple_list_item_2, android.R.layout.simple_list_item_2,

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

@ -90,6 +90,7 @@ import javax.mail.internet.InternetAddress;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.browser.customtabs.CustomTabsIntent; import androidx.browser.customtabs.CustomTabsIntent;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner; 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) { static void view(Context context, LifecycleOwner owner, Intent intent) {
Uri uri = intent.getData(); Uri uri = intent.getData();
if ("http".equals(uri.getScheme()) || "https".equals(uri.getScheme())) if ("http".equals(uri.getScheme()) || "https".equals(uri.getScheme()))

Loading…
Cancel
Save