Search in sources :

Example 41 with ContentResolver

use of android.content.ContentResolver in project platform_frameworks_base by android.

the class ConnectivityServiceTest method testAvoidBadWifiSetting.

@SmallTest
public void testAvoidBadWifiSetting() throws Exception {
    final ContentResolver cr = mServiceContext.getContentResolver();
    final WrappedMultinetworkPolicyTracker tracker = mService.getMultinetworkPolicyTracker();
    final String settingName = Settings.Global.NETWORK_AVOID_BAD_WIFI;
    tracker.configRestrictsAvoidBadWifi = false;
    String[] values = new String[] { null, "0", "1" };
    for (int i = 0; i < values.length; i++) {
        Settings.Global.putInt(cr, settingName, 1);
        tracker.reevaluate();
        mService.waitForIdle();
        String msg = String.format("config=false, setting=%s", values[i]);
        assertTrue(mService.avoidBadWifi());
        assertFalse(msg, tracker.shouldNotifyWifiUnvalidated());
    }
    tracker.configRestrictsAvoidBadWifi = true;
    Settings.Global.putInt(cr, settingName, 0);
    tracker.reevaluate();
    mService.waitForIdle();
    assertFalse(mService.avoidBadWifi());
    assertFalse(tracker.shouldNotifyWifiUnvalidated());
    Settings.Global.putInt(cr, settingName, 1);
    tracker.reevaluate();
    mService.waitForIdle();
    assertTrue(mService.avoidBadWifi());
    assertFalse(tracker.shouldNotifyWifiUnvalidated());
    Settings.Global.putString(cr, settingName, null);
    tracker.reevaluate();
    mService.waitForIdle();
    assertFalse(mService.avoidBadWifi());
    assertTrue(tracker.shouldNotifyWifiUnvalidated());
}
Also used : ContentResolver(android.content.ContentResolver) MockContentResolver(android.test.mock.MockContentResolver) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 42 with ContentResolver

use of android.content.ContentResolver in project platform_frameworks_base by android.

the class ConnectivityServiceTest method testAvoidBadWifi.

@SmallTest
public void testAvoidBadWifi() throws Exception {
    final ContentResolver cr = mServiceContext.getContentResolver();
    final WrappedMultinetworkPolicyTracker tracker = mService.getMultinetworkPolicyTracker();
    // Pretend we're on a carrier that restricts switching away from bad wifi.
    tracker.configRestrictsAvoidBadWifi = true;
    // File a request for cell to ensure it doesn't go down.
    final TestNetworkCallback cellNetworkCallback = new TestNetworkCallback();
    final NetworkRequest cellRequest = new NetworkRequest.Builder().addTransportType(TRANSPORT_CELLULAR).build();
    mCm.requestNetwork(cellRequest, cellNetworkCallback);
    TestNetworkCallback defaultCallback = new TestNetworkCallback();
    mCm.registerDefaultNetworkCallback(defaultCallback);
    NetworkRequest validatedWifiRequest = new NetworkRequest.Builder().addTransportType(TRANSPORT_WIFI).addCapability(NET_CAPABILITY_VALIDATED).build();
    TestNetworkCallback validatedWifiCallback = new TestNetworkCallback();
    mCm.registerNetworkCallback(validatedWifiRequest, validatedWifiCallback);
    Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 0);
    tracker.reevaluate();
    // Bring up validated cell.
    mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
    mCellNetworkAgent.connect(true);
    cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
    defaultCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
    Network cellNetwork = mCellNetworkAgent.getNetwork();
    // Bring up validated wifi.
    mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
    mWiFiNetworkAgent.connect(true);
    defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
    validatedWifiCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
    validatedWifiCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
    Network wifiNetwork = mWiFiNetworkAgent.getNetwork();
    // Fail validation on wifi.
    mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 599;
    mCm.reportNetworkConnectivity(wifiNetwork, false);
    defaultCallback.expectCapabilitiesWithout(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
    validatedWifiCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
    // Because avoid bad wifi is off, we don't switch to cellular.
    defaultCallback.assertNoCallback();
    assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(NET_CAPABILITY_VALIDATED));
    assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(NET_CAPABILITY_VALIDATED));
    assertEquals(mCm.getActiveNetwork(), wifiNetwork);
    // Simulate switching to a carrier that does not restrict avoiding bad wifi, and expect
    // that we switch back to cell.
    tracker.configRestrictsAvoidBadWifi = false;
    tracker.reevaluate();
    defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
    assertEquals(mCm.getActiveNetwork(), cellNetwork);
    // Switch back to a restrictive carrier.
    tracker.configRestrictsAvoidBadWifi = true;
    tracker.reevaluate();
    defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
    assertEquals(mCm.getActiveNetwork(), wifiNetwork);
    // Simulate the user selecting "switch" on the dialog, and check that we switch to cell.
    mCm.setAvoidUnvalidated(wifiNetwork);
    defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
    assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(NET_CAPABILITY_VALIDATED));
    assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(NET_CAPABILITY_VALIDATED));
    assertEquals(mCm.getActiveNetwork(), cellNetwork);
    // Disconnect and reconnect wifi to clear the one-time switch above.
    mWiFiNetworkAgent.disconnect();
    mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
    mWiFiNetworkAgent.connect(true);
    defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
    validatedWifiCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
    validatedWifiCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
    wifiNetwork = mWiFiNetworkAgent.getNetwork();
    // Fail validation on wifi and expect the dialog to appear.
    mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 599;
    mCm.reportNetworkConnectivity(wifiNetwork, false);
    defaultCallback.expectCapabilitiesWithout(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
    validatedWifiCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
    // Simulate the user selecting "switch" and checking the don't ask again checkbox.
    Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 1);
    tracker.reevaluate();
    // We now switch to cell.
    defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
    assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(NET_CAPABILITY_VALIDATED));
    assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(NET_CAPABILITY_VALIDATED));
    assertEquals(mCm.getActiveNetwork(), cellNetwork);
    // Simulate the user turning the cellular fallback setting off and then on.
    // We switch to wifi and then to cell.
    Settings.Global.putString(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, null);
    tracker.reevaluate();
    defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
    assertEquals(mCm.getActiveNetwork(), wifiNetwork);
    Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 1);
    tracker.reevaluate();
    defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
    assertEquals(mCm.getActiveNetwork(), cellNetwork);
    // If cell goes down, we switch to wifi.
    mCellNetworkAgent.disconnect();
    defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
    defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
    validatedWifiCallback.assertNoCallback();
    mCm.unregisterNetworkCallback(cellNetworkCallback);
    mCm.unregisterNetworkCallback(validatedWifiCallback);
    mCm.unregisterNetworkCallback(defaultCallback);
}
Also used : Network(android.net.Network) NetworkRequest(android.net.NetworkRequest) ContentResolver(android.content.ContentResolver) MockContentResolver(android.test.mock.MockContentResolver) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 43 with ContentResolver

use of android.content.ContentResolver in project platform_packages_apps_launcher by android.

the class InstallShortcutReceiver method findEmptyCell.

private static boolean findEmptyCell(Context context, int[] xy, int screen) {
    final int xCount = Launcher.NUMBER_CELLS_X;
    final int yCount = Launcher.NUMBER_CELLS_Y;
    boolean[][] occupied = new boolean[xCount][yCount];
    final ContentResolver cr = context.getContentResolver();
    Cursor c = cr.query(LauncherSettings.Favorites.CONTENT_URI, new String[] { LauncherSettings.Favorites.CELLX, LauncherSettings.Favorites.CELLY, LauncherSettings.Favorites.SPANX, LauncherSettings.Favorites.SPANY }, LauncherSettings.Favorites.SCREEN + "=?", new String[] { String.valueOf(screen) }, null);
    final int cellXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLX);
    final int cellYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLY);
    final int spanXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SPANX);
    final int spanYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SPANY);
    try {
        while (c.moveToNext()) {
            int cellX = c.getInt(cellXIndex);
            int cellY = c.getInt(cellYIndex);
            int spanX = c.getInt(spanXIndex);
            int spanY = c.getInt(spanYIndex);
            for (int x = cellX; x < cellX + spanX && x < xCount; x++) {
                for (int y = cellY; y < cellY + spanY && y < yCount; y++) {
                    occupied[x][y] = true;
                }
            }
        }
    } catch (Exception e) {
        return false;
    } finally {
        c.close();
    }
    return CellLayout.findVacantCell(xy, 1, 1, xCount, yCount, occupied);
}
Also used : Cursor(android.database.Cursor) ContentResolver(android.content.ContentResolver)

Example 44 with ContentResolver

use of android.content.ContentResolver in project platform_packages_apps_launcher by android.

the class LauncherModel method shortcutExists.

/**
     * Returns true if the shortcuts already exists in the database.
     * we identify a shortcut by its title and intent.
     */
static boolean shortcutExists(Context context, String title, Intent intent) {
    final ContentResolver cr = context.getContentResolver();
    Cursor c = cr.query(LauncherSettings.Favorites.CONTENT_URI, new String[] { "title", "intent" }, "title=? and intent=?", new String[] { title, intent.toUri(0) }, null);
    boolean result = false;
    try {
        result = c.moveToFirst();
    } finally {
        c.close();
    }
    return result;
}
Also used : Cursor(android.database.Cursor) ContentResolver(android.content.ContentResolver)

Example 45 with ContentResolver

use of android.content.ContentResolver in project platform_packages_apps_launcher by android.

the class LauncherModel method updateItemInDatabase.

/**
     * Update an item to the database in a specified container.
     */
static void updateItemInDatabase(Context context, ItemInfo item) {
    final ContentValues values = new ContentValues();
    final ContentResolver cr = context.getContentResolver();
    item.onAddToDatabase(values);
    cr.update(LauncherSettings.Favorites.getContentUri(item.id, false), values, null, null);
}
Also used : ContentValues(android.content.ContentValues) ContentResolver(android.content.ContentResolver)

Aggregations

ContentResolver (android.content.ContentResolver)1198 Uri (android.net.Uri)243 Cursor (android.database.Cursor)196 ContentValues (android.content.ContentValues)116 Intent (android.content.Intent)94 RemoteException (android.os.RemoteException)67 IOException (java.io.IOException)62 Context (android.content.Context)58 ArrayList (java.util.ArrayList)50 File (java.io.File)48 Resources (android.content.res.Resources)46 ComponentName (android.content.ComponentName)44 MediumTest (android.test.suitebuilder.annotation.MediumTest)37 PreferenceScreen (android.support.v7.preference.PreferenceScreen)35 Bitmap (android.graphics.Bitmap)33 ContentObserver (android.database.ContentObserver)28 FileNotFoundException (java.io.FileNotFoundException)28 PendingIntent (android.app.PendingIntent)25 MockContentResolver (android.test.mock.MockContentResolver)25 AssetFileDescriptor (android.content.res.AssetFileDescriptor)24