mirror of
https://github.com/etesync/android
synced 2025-05-07 17:39:12 +00:00
lint optimizations
* permissions: declare AUTHENTICATE_ACCOUNTS, GET_ACCOUNTS and MANAGE_ACCOUNTS only until SDK level 22 * minor optimizations and bug fixes
This commit is contained in:
parent
290ce7ad80
commit
9555c066bd
@ -15,29 +15,21 @@
|
|||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
|
||||||
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
|
|
||||||
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
|
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
|
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
|
||||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||||
|
|
||||||
<!-- legacy permissions -->
|
<!-- account management permissions not required for own accounts since API level 22 -->
|
||||||
<uses-permission
|
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" android:maxSdkVersion="22"/>
|
||||||
android:name="android.permission.AUTHENTICATE_ACCOUNTS"
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" android:maxSdkVersion="22"/>
|
||||||
android:maxSdkVersion="22"
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" android:maxSdkVersion="22"/>
|
||||||
tools:ignore="UnusedAttribute"/>
|
|
||||||
<!--
|
<!--
|
||||||
for writing external log files; permission only required for SDK <= 18 because since then,
|
for writing external log files; permission only required for SDK <= 18 because since then,
|
||||||
writing to app-private directory doesn't require extra permissions
|
writing to app-private directory doesn't require extra permissions
|
||||||
-->
|
-->
|
||||||
<uses-permission
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18"/>
|
||||||
android:name="android.permission.READ_EXTERNAL_STORAGE"
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18"/>
|
||||||
android:maxSdkVersion="18"
|
|
||||||
tools:ignore="UnusedAttribute"/>
|
|
||||||
<uses-permission
|
|
||||||
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
|
||||||
android:maxSdkVersion="18"
|
|
||||||
tools:ignore="UnusedAttribute"/>
|
|
||||||
|
|
||||||
<!-- other permissions -->
|
<!-- other permissions -->
|
||||||
<!-- android.permission-group.CONTACTS -->
|
<!-- android.permission-group.CONTACTS -->
|
||||||
|
@ -12,7 +12,6 @@ import android.accounts.AccountManager;
|
|||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ContentProviderClient;
|
import android.content.ContentProviderClient;
|
||||||
@ -22,15 +21,13 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.PeriodicSync;
|
import android.content.PeriodicSync;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.CalendarContract;
|
import android.provider.CalendarContract;
|
||||||
import android.provider.ContactsContract;
|
import android.provider.ContactsContract;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
import android.support.v7.app.NotificationCompat;
|
import android.support.v7.app.NotificationCompat;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
@ -131,7 +128,7 @@ public class AccountSettings {
|
|||||||
PendingIntent.FLAG_CANCEL_CURRENT))
|
PendingIntent.FLAG_CANCEL_CURRENT))
|
||||||
.setLocalOnly(true)
|
.setLocalOnly(true)
|
||||||
.build();
|
.build();
|
||||||
NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
|
NotificationManagerCompat nm = NotificationManagerCompat.from(context);
|
||||||
nm.notify(Constants.NOTIFICATION_ACCOUNT_SETTINGS_UPDATED, notify);
|
nm.notify(Constants.NOTIFICATION_ACCOUNT_SETTINGS_UPDATED, notify);
|
||||||
|
|
||||||
update(version);
|
update(version);
|
||||||
@ -432,7 +429,7 @@ public class AccountSettings {
|
|||||||
public static class AppUpdatedReceiver extends BroadcastReceiver {
|
public static class AppUpdatedReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressLint("UnsafeProtectedBroadcastReceiver")
|
@SuppressLint("UnsafeProtectedBroadcastReceiver,MissingPermission")
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
App.log.info("DAVdroid was updated, checking for AccountSettings version");
|
App.log.info("DAVdroid was updated, checking for AccountSettings version");
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
package at.bitfire.davdroid;
|
package at.bitfire.davdroid;
|
||||||
|
|
||||||
|
import android.accounts.AccountManager;
|
||||||
import android.accounts.OnAccountsUpdateListener;
|
import android.accounts.OnAccountsUpdateListener;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -22,6 +23,7 @@ public class AccountsChangedReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
if (AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION.equals(intent.getAction())) {
|
||||||
Intent serviceIntent = new Intent(context, DavService.class);
|
Intent serviceIntent = new Intent(context, DavService.class);
|
||||||
serviceIntent.setAction(DavService.ACTION_ACCOUNTS_UPDATED);
|
serviceIntent.setAction(DavService.ACTION_ACCOUNTS_UPDATED);
|
||||||
context.startService(serviceIntent);
|
context.startService(serviceIntent);
|
||||||
@ -29,6 +31,7 @@ public class AccountsChangedReceiver extends BroadcastReceiver {
|
|||||||
for (OnAccountsUpdateListener listener : listeners)
|
for (OnAccountsUpdateListener listener : listeners)
|
||||||
listener.onAccountsUpdated(null);
|
listener.onAccountsUpdated(null);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void registerListener(OnAccountsUpdateListener listener, boolean callImmediately) {
|
public static void registerListener(OnAccountsUpdateListener listener, boolean callImmediately) {
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
|
@ -10,7 +10,6 @@ package at.bitfire.davdroid;
|
|||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -20,6 +19,7 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
import android.support.v7.app.NotificationCompat;
|
import android.support.v7.app.NotificationCompat;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ public class App extends Application {
|
|||||||
// add logcat handler
|
// add logcat handler
|
||||||
log.addHandler(LogcatHandler.INSTANCE);
|
log.addHandler(LogcatHandler.INSTANCE);
|
||||||
|
|
||||||
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
|
NotificationManagerCompat nm = NotificationManagerCompat.from(this);
|
||||||
// log to external file according to preferences
|
// log to external file according to preferences
|
||||||
if (logToFile) {
|
if (logToFile) {
|
||||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
|
||||||
|
@ -10,8 +10,8 @@ package at.bitfire.davdroid;
|
|||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
@ -19,11 +19,11 @@ import android.content.Intent;
|
|||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.database.DatabaseUtils;
|
import android.database.DatabaseUtils;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
import android.support.v7.app.NotificationCompat;
|
import android.support.v7.app.NotificationCompat;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
@ -140,6 +140,7 @@ public class DavService extends Service {
|
|||||||
which actually do the work
|
which actually do the work
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@SuppressLint("MissingPermission")
|
||||||
void cleanupAccounts() {
|
void cleanupAccounts() {
|
||||||
App.log.info("Cleaning up orphaned accounts");
|
App.log.info("Cleaning up orphaned accounts");
|
||||||
|
|
||||||
@ -309,7 +310,7 @@ public class DavService extends Service {
|
|||||||
if (account != null)
|
if (account != null)
|
||||||
debugIntent.putExtra(DebugInfoActivity.KEY_ACCOUNT, account);
|
debugIntent.putExtra(DebugInfoActivity.KEY_ACCOUNT, account);
|
||||||
|
|
||||||
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
|
NotificationManagerCompat nm = NotificationManagerCompat.from(DavService.this);
|
||||||
Notification notify = new NotificationCompat.Builder(DavService.this)
|
Notification notify = new NotificationCompat.Builder(DavService.this)
|
||||||
.setSmallIcon(R.drawable.ic_error_light)
|
.setSmallIcon(R.drawable.ic_error_light)
|
||||||
.setLargeIcon(App.getLauncherBitmap(DavService.this))
|
.setLargeIcon(App.getLauncherBitmap(DavService.this))
|
||||||
|
@ -175,7 +175,7 @@ public class LocalAddressBook extends AndroidAddressBook implements LocalCollect
|
|||||||
|
|
||||||
// SYNC STATE
|
// SYNC STATE
|
||||||
|
|
||||||
@SuppressWarnings("Recycle")
|
@SuppressWarnings("ParcelClassLoader,Recycle")
|
||||||
protected void readSyncState() throws ContactsStorageException {
|
protected void readSyncState() throws ContactsStorageException {
|
||||||
@Cleanup("recycle") Parcel parcel = Parcel.obtain();
|
@Cleanup("recycle") Parcel parcel = Parcel.obtain();
|
||||||
byte[] raw = getSyncState();
|
byte[] raw = getSyncState();
|
||||||
|
@ -21,18 +21,18 @@ import android.os.IBinder;
|
|||||||
import at.bitfire.davdroid.ui.setup.LoginActivity;
|
import at.bitfire.davdroid.ui.setup.LoginActivity;
|
||||||
|
|
||||||
public class AccountAuthenticatorService extends Service {
|
public class AccountAuthenticatorService extends Service {
|
||||||
private static AccountAuthenticator accountAuthenticator;
|
|
||||||
|
|
||||||
private AccountAuthenticator getAuthenticator() {
|
private AccountAuthenticator accountAuthenticator;
|
||||||
if (accountAuthenticator != null)
|
|
||||||
return accountAuthenticator;
|
@Override
|
||||||
return accountAuthenticator = new AccountAuthenticator(this);
|
public void onCreate() {
|
||||||
|
accountAuthenticator = new AccountAuthenticator(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBinder onBind(Intent intent) {
|
public IBinder onBind(Intent intent) {
|
||||||
if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT))
|
if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT))
|
||||||
return getAuthenticator().getIBinder();
|
return accountAuthenticator.getIBinder();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,5 +84,6 @@ public class AccountAuthenticatorService extends Service {
|
|||||||
public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
|
public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import android.os.IBinder;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import android.support.v4.app.NotificationCompat;
|
||||||
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
@ -77,9 +78,8 @@ public abstract class SyncAdapterService extends Service {
|
|||||||
.setContentText(getContext().getString(R.string.sync_error_permissions_text))
|
.setContentText(getContext().getString(R.string.sync_error_permissions_text))
|
||||||
.setContentIntent(PendingIntent.getActivity(getContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT))
|
.setContentIntent(PendingIntent.getActivity(getContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT))
|
||||||
.setCategory(NotificationCompat.CATEGORY_ERROR)
|
.setCategory(NotificationCompat.CATEGORY_ERROR)
|
||||||
.setLocalOnly(true)
|
|
||||||
.build();
|
.build();
|
||||||
NotificationManager nm = (NotificationManager)getContext().getSystemService(NOTIFICATION_SERVICE);
|
NotificationManagerCompat nm = NotificationManagerCompat.from(getContext());
|
||||||
nm.notify(Constants.NOTIFICATION_PERMISSIONS, notify);
|
nm.notify(Constants.NOTIFICATION_PERMISSIONS, notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,15 +9,14 @@ package at.bitfire.davdroid.syncadapter;
|
|||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SyncResult;
|
import android.content.SyncResult;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
import android.support.v7.app.NotificationCompat;
|
import android.support.v7.app.NotificationCompat;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
@ -69,7 +68,7 @@ abstract public class SyncManager {
|
|||||||
SYNC_PHASE_POST_PROCESSING = 10,
|
SYNC_PHASE_POST_PROCESSING = 10,
|
||||||
SYNC_PHASE_SAVE_SYNC_STATE = 11;
|
SYNC_PHASE_SAVE_SYNC_STATE = 11;
|
||||||
|
|
||||||
protected final NotificationManager notificationManager;
|
protected final NotificationManagerCompat notificationManager;
|
||||||
protected final String uniqueCollectionId;
|
protected final String uniqueCollectionId;
|
||||||
|
|
||||||
protected final Context context;
|
protected final Context context;
|
||||||
@ -113,7 +112,7 @@ abstract public class SyncManager {
|
|||||||
|
|
||||||
// dismiss previous error notifications
|
// dismiss previous error notifications
|
||||||
this.uniqueCollectionId = uniqueCollectionId;
|
this.uniqueCollectionId = uniqueCollectionId;
|
||||||
notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
|
notificationManager = NotificationManagerCompat.from(context);
|
||||||
notificationManager.cancel(uniqueCollectionId, notificationId());
|
notificationManager.cancel(uniqueCollectionId, notificationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,8 +232,7 @@ abstract public class SyncManager {
|
|||||||
.setLargeIcon(App.getLauncherBitmap(context))
|
.setLargeIcon(App.getLauncherBitmap(context))
|
||||||
.setContentTitle(getSyncErrorTitle())
|
.setContentTitle(getSyncErrorTitle())
|
||||||
.setContentIntent(PendingIntent.getActivity(context, 0, detailsIntent, PendingIntent.FLAG_CANCEL_CURRENT))
|
.setContentIntent(PendingIntent.getActivity(context, 0, detailsIntent, PendingIntent.FLAG_CANCEL_CURRENT))
|
||||||
.setCategory(NotificationCompat.CATEGORY_ERROR)
|
.setCategory(NotificationCompat.CATEGORY_ERROR);
|
||||||
.setLocalOnly(true);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String[] phases = context.getResources().getStringArray(R.array.sync_error_phases);
|
String[] phases = context.getResources().getStringArray(R.array.sync_error_phases);
|
||||||
|
@ -11,6 +11,7 @@ package at.bitfire.davdroid.ui;
|
|||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
import android.accounts.OnAccountsUpdateListener;
|
import android.accounts.OnAccountsUpdateListener;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@ -103,6 +104,7 @@ public class AccountListFragment extends ListFragment implements LoaderManager.L
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SuppressLint("MissingPermission")
|
||||||
public Account[] loadInBackground() {
|
public Account[] loadInBackground() {
|
||||||
return accountManager.getAccountsByType(Constants.ACCOUNT_TYPE);
|
return accountManager.getAccountsByType(Constants.ACCOUNT_TYPE);
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ package at.bitfire.davdroid.ui;
|
|||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.LoaderManager;
|
import android.app.LoaderManager;
|
||||||
import android.content.AsyncTaskLoader;
|
import android.content.AsyncTaskLoader;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
@ -144,6 +145,7 @@ public class DebugInfoActivity extends AppCompatActivity implements LoaderManage
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SuppressLint("MissingPermission")
|
||||||
public String loadInBackground() {
|
public String loadInBackground() {
|
||||||
Throwable throwable = null;
|
Throwable throwable = null;
|
||||||
String logs = null,
|
String logs = null,
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
package at.bitfire.davdroid.ui;
|
package at.bitfire.davdroid.ui;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
|
import android.support.v4.app.NotificationManagerCompat;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ public class PermissionsActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!noCalendarPermissions && !noContactsPermissions && !noTaskPermissions) {
|
if (!noCalendarPermissions && !noContactsPermissions && !noTaskPermissions) {
|
||||||
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
|
NotificationManagerCompat nm = NotificationManagerCompat.from(this);
|
||||||
nm.cancel(Constants.NOTIFICATION_PERMISSIONS);
|
nm.cancel(Constants.NOTIFICATION_PERMISSIONS);
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
package at.bitfire.davdroid.ui;
|
package at.bitfire.davdroid.ui;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.annotation.TargetApi;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
@ -88,6 +90,8 @@ public class StartupDialogFragment extends DialogFragment {
|
|||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
|
@TargetApi(Build.VERSION_CODES.M)
|
||||||
|
@SuppressLint("BatteryLife")
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
setCancelable(false);
|
setCancelable(false);
|
||||||
|
|
||||||
|
@ -13,6 +13,5 @@
|
|||||||
<dimen name="fab_margin">16dp</dimen>
|
<dimen name="fab_margin">16dp</dimen>
|
||||||
|
|
||||||
<dimen name="nav_header_vertical_spacing">16dp</dimen>
|
<dimen name="nav_header_vertical_spacing">16dp</dimen>
|
||||||
<dimen name="nav_header_height">160dp</dimen>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
@ -75,7 +75,7 @@
|
|||||||
<string name="app_settings_security">Security</string>
|
<string name="app_settings_security">Security</string>
|
||||||
<string name="app_settings_distrust_system_certs">Distrust system certificates</string>
|
<string name="app_settings_distrust_system_certs">Distrust system certificates</string>
|
||||||
<string name="app_settings_distrust_system_certs_on">System and user-added CAs won\'t be trusted</string>
|
<string name="app_settings_distrust_system_certs_on">System and user-added CAs won\'t be trusted</string>
|
||||||
<string name="app_settings_distrust_system_certs_off">System and user-added CAs will be trusted</string>
|
<string name="app_settings_distrust_system_certs_off">System and user-added CAs will be trusted (recommended)</string>
|
||||||
<string name="app_settings_reset_certificates">Reset (un)trusted certificates</string>
|
<string name="app_settings_reset_certificates">Reset (un)trusted certificates</string>
|
||||||
<string name="app_settings_reset_certificates_summary">Resets trust of all custom certificates</string>
|
<string name="app_settings_reset_certificates_summary">Resets trust of all custom certificates</string>
|
||||||
<string name="app_settings_reset_certificates_success">All custom certificates have been cleared</string>
|
<string name="app_settings_reset_certificates_success">All custom certificates have been cleared</string>
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit c342cbd81185d7f6bd2cd25eea55bd0ecf94c1cc
|
Subproject commit ec4e75dc9141e97aff250116120b631e0046a962
|
Loading…
Reference in New Issue
Block a user