Snap for 5004953 from cd03bdd9de to qt-release

Change-Id: I3a0d81d7dd5a479e20f2d647c8f0d6b6481575ff
This commit is contained in:
android-build-team Robot
2018-09-12 03:13:21 +00:00
5 changed files with 78 additions and 59 deletions

View File

@@ -61,23 +61,38 @@ public class CardContentProvider extends ContentProvider {
@Override
public Uri insert(Uri uri, ContentValues values) {
final ContentValues[] cvs = {values};
bulkInsert(uri, cvs);
return uri;
}
@Override
public int bulkInsert(Uri uri, ContentValues[] values) {
final StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy();
int numInserted = 0;
final SQLiteDatabase database = mDBHelper.getWritableDatabase();
try {
maybeEnableStrictMode();
final SQLiteDatabase database = mDBHelper.getWritableDatabase();
final String table = getTableFromMatch(uri);
final long ret = database.insert(table, null, values);
if (ret != -1) {
getContext().getContentResolver().notifyChange(uri, null);
} else {
Log.e(TAG, "The CardContentProvider insertion failed! Plase check SQLiteDatabase's "
+ "message.");
database.beginTransaction();
for (ContentValues value : values) {
long ret = database.insert(table, null, value);
if (ret != -1L) {
numInserted++;
} else {
Log.e(TAG, "The row " + value.getAsString(CardDatabaseHelper.CardColumns.NAME)
+ " insertion failed! Please check your data.");
}
}
database.setTransactionSuccessful();
getContext().getContentResolver().notifyChange(uri, null);
} finally {
database.endTransaction();
StrictMode.setThreadPolicy(oldPolicy);
}
return uri;
return numInserted;
}
@Override

View File

@@ -32,11 +32,6 @@ import android.util.IconDrawableFactory;
import android.util.Log;
import android.view.View;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.Utils;
@@ -47,6 +42,11 @@ import com.android.settingslib.applications.ServiceListing;
import java.util.List;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
public abstract class ManagedServiceSettings extends EmptyTextSettings {
private static final String TAG = "ManagedServiceSettings";
private final Config mConfig;
@@ -122,7 +122,7 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings {
// unlikely, as we are iterating over live services.
Log.e(TAG, "can't find package name", e);
}
final String finalTitle = title.toString();
final CharSequence finalTitle = title;
final String summary = service.loadLabel(mPm).toString();
final SwitchPreference pref = new AppSwitchPreference(getPrefContext());
pref.setPersistent(false);
@@ -143,7 +143,11 @@ public abstract class ManagedServiceSettings extends EmptyTextSettings {
}
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final boolean enable = (boolean) newValue;
return setEnabled(cn, finalTitle, enable);
if (finalTitle != null) {
return setEnabled(cn, finalTitle.toString(), enable);
} else {
return setEnabled(cn, null, enable);
}
});
pref.setKey(cn.flattenToString());
screen.addPreference(pref);

View File

@@ -1,5 +1,6 @@
manifest=packages/apps/Settings/AndroidManifest.xml
sdk=NEWEST_SDK
shadows=\
com.android.settings.testutils.shadow.ShadowThreadUtils,\
com.android.settings.testutils.shadow.ShadowXmlUtils
com.android.settingslib.testutils.shadow.ShadowXmlUtils

View File

@@ -72,16 +72,25 @@ public class CardContentProviderTest {
@Test
public void cardData_insert() {
final int cnt_before_instert = getRowCount();
mResolver.insert(mUri, insertOneRow());
final int cnt_after_instert = getRowCount();
final int rowsBeforeInsert = getRowCount();
mResolver.insert(mUri, generateOneRow());
final int rowsAfterInsert = getRowCount();
assertThat(cnt_after_instert - cnt_before_instert).isEqualTo(1);
assertThat(rowsAfterInsert - rowsBeforeInsert).isEqualTo(1);
}
@Test
public void cardData_bulkInsert_twoRows() {
final int rowsBeforeInsert = getRowCount();
mResolver.bulkInsert(mUri, generateTwoRows());
final int rowsAfterInsert = getRowCount();
assertThat(rowsAfterInsert - rowsBeforeInsert).isEqualTo(2);
}
@Test
public void cardData_query() {
mResolver.insert(mUri, insertOneRow());
mResolver.insert(mUri, generateOneRow());
final int count = getRowCount();
assertThat(count).isGreaterThan(0);
@@ -89,24 +98,24 @@ public class CardContentProviderTest {
@Test
public void cardData_delete() {
mResolver.insert(mUri, insertOneRow());
final int del_count = mResolver.delete(mUri, null, null);
mResolver.insert(mUri, generateOneRow());
final int delCount = mResolver.delete(mUri, null, null);
assertThat(del_count).isGreaterThan(0);
assertThat(delCount).isGreaterThan(0);
}
@Test
public void cardData_update() {
mResolver.insert(mUri, insertOneRow());
mResolver.insert(mUri, generateOneRow());
final double updatingScore = 0.87;
final ContentValues values = new ContentValues();
values.put(CardDatabaseHelper.CardColumns.SCORE, updatingScore);
final String strWhere = CardDatabaseHelper.CardColumns.NAME + "=?";
final String[] selectionArgs = {"auto_rotate"};
final int update_count = mResolver.update(mUri, values, strWhere, selectionArgs);
final int updateCount = mResolver.update(mUri, values, strWhere, selectionArgs);
assertThat(update_count).isGreaterThan(0);
assertThat(updateCount).isGreaterThan(0);
final String[] columns = {CardDatabaseHelper.CardColumns.SCORE};
final Cursor cr = mResolver.query(mUri, columns, strWhere, selectionArgs, null);
@@ -122,7 +131,7 @@ public class CardContentProviderTest {
ShadowThreadUtils.setIsMainThread(true);
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", true);
mProvider.insert(mUri, insertOneRow());
mProvider.insert(mUri, generateOneRow());
verify(mProvider).enableStrictMode();
}
@@ -164,7 +173,7 @@ public class CardContentProviderTest {
ShadowThreadUtils.setIsMainThread(false);
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", true);
mProvider.insert(mUri, insertOneRow());
mProvider.insert(mUri, generateOneRow());
verify(mProvider, never()).enableStrictMode();
}
@@ -217,10 +226,10 @@ public class CardContentProviderTest {
mProvider.getTableFromMatch(invalid_Uri);
}
private ContentValues insertOneRow() {
private ContentValues generateOneRow() {
final ContentValues values = new ContentValues();
values.put(CardDatabaseHelper.CardColumns.NAME, "auto_rotate");
values.put(CardDatabaseHelper.CardColumns.TYPE, 0);
values.put(CardDatabaseHelper.CardColumns.TYPE, 1);
values.put(CardDatabaseHelper.CardColumns.SCORE, 0.9);
values.put(CardDatabaseHelper.CardColumns.SLICE_URI,
"content://com.android.settings.slices/action/auto_rotate");
@@ -231,6 +240,24 @@ public class CardContentProviderTest {
return values;
}
private ContentValues[] generateTwoRows() {
final ContentValues[] twoRows = new ContentValues[2];
twoRows[0] = generateOneRow();
final ContentValues values = new ContentValues();
values.put(CardDatabaseHelper.CardColumns.NAME, "toggle_airplane");
values.put(CardDatabaseHelper.CardColumns.TYPE, 1);
values.put(CardDatabaseHelper.CardColumns.SCORE, 0.95);
values.put(CardDatabaseHelper.CardColumns.SLICE_URI,
"content://com.android.settings.slices/action/toggle_airplane");
values.put(CardDatabaseHelper.CardColumns.CATEGORY, 2);
values.put(CardDatabaseHelper.CardColumns.PACKAGE_NAME, "com.android.settings");
values.put(CardDatabaseHelper.CardColumns.APP_VERSION, "1.0.0");
twoRows[1] = values;
return twoRows;
}
private int getRowCount() {
final Cursor cr = mResolver.query(mUri, null, null, null);
final int count = cr.getCount();

View File

@@ -1,28 +0,0 @@
package com.android.settings.testutils.shadow;
import static org.robolectric.shadow.api.Shadow.directlyOn;
import com.android.internal.util.XmlUtils;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.ReflectionHelpers.ClassParameter;
@Implements(XmlUtils.class)
public class ShadowXmlUtils {
@Implementation
public static final int convertValueToInt(CharSequence charSeq, int defaultValue) {
final Class<?> xmlUtilsClass = ReflectionHelpers.loadClass(
Robolectric.class.getClassLoader(), "com.android.internal.util.XmlUtils");
try {
return directlyOn(xmlUtilsClass, "convertValueToInt",
ClassParameter.from(CharSequence.class, charSeq),
ClassParameter.from(int.class, new Integer(defaultValue)));
} catch (NumberFormatException e) {
return defaultValue;
}
}
}