Merge "Protect against invalid authority in account sync pref." into pi-dev am: 2c15909bfc
am: 2e49b6fdac
Change-Id: I124cedfa18452ce936690b380d4d9b35f5c457f9
This commit is contained in:
@@ -194,25 +194,24 @@ public class AccountSyncSettings extends AccountPreferenceBase {
|
||||
} else {
|
||||
item.setup(account, authority, packageName, uid);
|
||||
}
|
||||
final PackageManager packageManager = getPackageManager();
|
||||
item.setPersistent(false);
|
||||
final ProviderInfo providerInfo = getPackageManager().resolveContentProviderAsUser(
|
||||
final ProviderInfo providerInfo = packageManager.resolveContentProviderAsUser(
|
||||
authority, 0, mUserHandle.getIdentifier());
|
||||
if (providerInfo == null) {
|
||||
return;
|
||||
}
|
||||
CharSequence providerLabel = providerInfo.loadLabel(getPackageManager());
|
||||
final CharSequence providerLabel = providerInfo.loadLabel(packageManager);
|
||||
if (TextUtils.isEmpty(providerLabel)) {
|
||||
Log.e(TAG, "Provider needs a label for authority '" + authority + "'");
|
||||
return;
|
||||
}
|
||||
String title = getString(R.string.sync_item_title, providerLabel);
|
||||
item.setTitle(title);
|
||||
item.setTitle(providerLabel);
|
||||
item.setKey(authority);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
|
||||
MenuItem syncNow = menu.add(0, MENU_SYNC_NOW_ID, 0,
|
||||
getString(R.string.sync_menu_sync_now))
|
||||
.setIcon(R.drawable.ic_menu_refresh_holo_dark);
|
||||
|
@@ -21,6 +21,7 @@ import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.PreferenceViewHolder;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -64,6 +65,7 @@ public class SyncStateSwitchPreference extends SwitchPreference {
|
||||
mAuthority = authority;
|
||||
mPackageName = packageName;
|
||||
mUid = uid;
|
||||
setVisible(!TextUtils.isEmpty(mAuthority));
|
||||
notifyChanged();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user