Search in sources :

Example 86 with Configuration

use of android.content.res.Configuration in project android_frameworks_base by DirtyUnicorns.

the class UserUsageStatsService method rolloverStats.

private void rolloverStats(final long currentTimeMillis) {
    final long startTime = SystemClock.elapsedRealtime();
    Slog.i(TAG, mLogPrefix + "Rolling over usage stats");
    // Finish any ongoing events with an END_OF_DAY event. Make a note of which components
    // need a new CONTINUE_PREVIOUS_DAY entry.
    final Configuration previousConfig = mCurrentStats[UsageStatsManager.INTERVAL_DAILY].activeConfiguration;
    ArraySet<String> continuePreviousDay = new ArraySet<>();
    for (IntervalStats stat : mCurrentStats) {
        final int pkgCount = stat.packageStats.size();
        for (int i = 0; i < pkgCount; i++) {
            UsageStats pkgStats = stat.packageStats.valueAt(i);
            if (pkgStats.mLastEvent == UsageEvents.Event.MOVE_TO_FOREGROUND || pkgStats.mLastEvent == UsageEvents.Event.CONTINUE_PREVIOUS_DAY) {
                continuePreviousDay.add(pkgStats.mPackageName);
                stat.update(pkgStats.mPackageName, mDailyExpiryDate.getTimeInMillis() - 1, UsageEvents.Event.END_OF_DAY);
                notifyStatsChanged();
            }
        }
        stat.updateConfigurationStats(null, mDailyExpiryDate.getTimeInMillis() - 1);
    }
    persistActiveStats();
    mDatabase.prune(currentTimeMillis);
    loadActiveStats(currentTimeMillis);
    final int continueCount = continuePreviousDay.size();
    for (int i = 0; i < continueCount; i++) {
        String name = continuePreviousDay.valueAt(i);
        final long beginTime = mCurrentStats[UsageStatsManager.INTERVAL_DAILY].beginTime;
        for (IntervalStats stat : mCurrentStats) {
            stat.update(name, beginTime, UsageEvents.Event.CONTINUE_PREVIOUS_DAY);
            stat.updateConfigurationStats(previousConfig, beginTime);
            notifyStatsChanged();
        }
    }
    persistActiveStats();
    final long totalTime = SystemClock.elapsedRealtime() - startTime;
    Slog.i(TAG, mLogPrefix + "Rolling over usage stats complete. Took " + totalTime + " milliseconds");
}
Also used : ArraySet(android.util.ArraySet) Configuration(android.content.res.Configuration) UsageStats(android.app.usage.UsageStats)

Example 87 with Configuration

use of android.content.res.Configuration in project android_frameworks_base by DirtyUnicorns.

the class SubscriptionManager method getResourcesForSubId.

/**
     * Returns the resources associated with Subscription.
     * @param context Context object
     * @param subId Subscription Id of Subscription who's resources are required
     * @return Resources associated with Subscription.
     * @hide
     */
public static Resources getResourcesForSubId(Context context, int subId) {
    final SubscriptionInfo subInfo = SubscriptionManager.from(context).getActiveSubscriptionInfo(subId);
    Configuration config = context.getResources().getConfiguration();
    Configuration newConfig = new Configuration();
    newConfig.setTo(config);
    if (subInfo != null) {
        newConfig.mcc = subInfo.getMcc();
        newConfig.mnc = subInfo.getMnc();
        if (newConfig.mnc == 0)
            newConfig.mnc = Configuration.MNC_ZERO;
    }
    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    DisplayMetrics newMetrics = new DisplayMetrics();
    newMetrics.setTo(metrics);
    return new Resources(context.getResources().getAssets(), newMetrics, newConfig);
}
Also used : Configuration(android.content.res.Configuration) Resources(android.content.res.Resources) DisplayMetrics(android.util.DisplayMetrics)

Example 88 with Configuration

use of android.content.res.Configuration in project android_frameworks_base by DirtyUnicorns.

the class WindowManagerPermissionTests method testMANAGE_APP_TOKENS.

@SmallTest
public void testMANAGE_APP_TOKENS() {
    try {
        mWm.pauseKeyDispatching(null);
        fail("IWindowManager.pauseKeyDispatching did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.resumeKeyDispatching(null);
        fail("IWindowManager.resumeKeyDispatching did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.setEventDispatching(true);
        fail("IWindowManager.setEventDispatching did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.addWindowToken(null, 0);
        fail("IWindowManager.addWindowToken did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.removeWindowToken(null);
        fail("IWindowManager.removeWindowToken did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.addAppToken(0, null, 0, 0, 0, false, false, 0, 0, false, false, null, Configuration.EMPTY, 0, false, false, 0, -1);
        fail("IWindowManager.addAppToken did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.setAppTask(null, 0, INVALID_STACK_ID, null, null, 0, false);
        fail("IWindowManager.setAppGroupId did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.updateOrientationFromAppTokens(new Configuration(), null);
        fail("IWindowManager.updateOrientationFromAppTokens did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.setAppOrientation(null, 0);
        mWm.addWindowToken(null, 0);
        fail("IWindowManager.setAppOrientation did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.setFocusedApp(null, false);
        fail("IWindowManager.setFocusedApp did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.prepareAppTransition(0, false);
        fail("IWindowManager.prepareAppTransition did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.executeAppTransition();
        fail("IWindowManager.executeAppTransition did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.setAppStartingWindow(null, "foo", 0, null, null, 0, 0, 0, 0, null, false);
        fail("IWindowManager.setAppStartingWindow did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.setAppVisibility(null, false);
        fail("IWindowManager.setAppVisibility did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.startAppFreezingScreen(null, 0);
        fail("IWindowManager.startAppFreezingScreen did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.stopAppFreezingScreen(null, false);
        fail("IWindowManager.stopAppFreezingScreen did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
    try {
        mWm.removeAppToken(null);
        fail("IWindowManager.removeAppToken did not throw SecurityException as" + " expected");
    } catch (SecurityException e) {
    // expected
    } catch (RemoteException e) {
        fail("Unexpected remote exception");
    }
}
Also used : Configuration(android.content.res.Configuration) RemoteException(android.os.RemoteException) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 89 with Configuration

use of android.content.res.Configuration in project android_frameworks_base by DirtyUnicorns.

the class ActivityTestMain method onCreateOptionsMenu.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add("Animate!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            AlertDialog.Builder builder = new AlertDialog.Builder(ActivityTestMain.this, R.style.SlowDialog);
            builder.setTitle("This is a title");
            builder.show();
            return true;
        }
    });
    menu.add("Bind!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, SingleUserService.class);
            ServiceConnection conn = new ServiceConnection() {

                @Override
                public void onServiceConnected(ComponentName name, IBinder service) {
                    Log.i(TAG, "Service connected " + name + " " + service);
                }

                @Override
                public void onServiceDisconnected(ComponentName name) {
                    Log.i(TAG, "Service disconnected " + name);
                }
            };
            if (bindService(intent, conn, Context.BIND_AUTO_CREATE)) {
                mConnections.add(conn);
            } else {
                Toast.makeText(ActivityTestMain.this, "Failed to bind", Toast.LENGTH_LONG).show();
            }
            return true;
        }
    });
    menu.add("Start!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, SingleUserService.class);
            startService(intent);
            return true;
        }
    });
    menu.add("Rebind Isolated!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, IsolatedService.class);
            ServiceConnection conn = new ServiceConnection() {

                @Override
                public void onServiceConnected(ComponentName name, IBinder service) {
                    Log.i(TAG, "Isolated service connected " + name + " " + service);
                }

                @Override
                public void onServiceDisconnected(ComponentName name) {
                    Log.i(TAG, "Isolated service disconnected " + name);
                }
            };
            if (mIsolatedConnection != null) {
                Log.i(TAG, "Unbinding existing service: " + mIsolatedConnection);
                unbindService(mIsolatedConnection);
                mIsolatedConnection = null;
            }
            Log.i(TAG, "Binding new service: " + conn);
            if (bindService(intent, conn, Context.BIND_AUTO_CREATE)) {
                mIsolatedConnection = conn;
            } else {
                Toast.makeText(ActivityTestMain.this, "Failed to bind", Toast.LENGTH_LONG).show();
            }
            return true;
        }
    });
    menu.add("Send!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, SingleUserReceiver.class);
            sendOrderedBroadcast(intent, null, new BroadcastResultReceiver(), null, Activity.RESULT_OK, null, null);
            return true;
        }
    });
    menu.add("Call!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            ContentProviderClient cpl = getContentResolver().acquireContentProviderClient(SingleUserProvider.AUTHORITY);
            Bundle res = null;
            try {
                res = cpl.call("getuser", null, null);
            } catch (RemoteException e) {
            }
            int user = res != null ? res.getInt("user", -1) : -1;
            Toast.makeText(ActivityTestMain.this, "Provider executed as user " + (user >= 0 ? Integer.toString(user) : "unknown"), Toast.LENGTH_LONG).show();
            cpl.release();
            return true;
        }
    });
    menu.add("Send to user 0!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, UserTarget.class);
            sendOrderedBroadcastAsUser(intent, new UserHandle(0), null, new BroadcastResultReceiver(), null, Activity.RESULT_OK, null, null);
            return true;
        }
    });
    menu.add("Send to user " + mSecondUser + "!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, UserTarget.class);
            sendOrderedBroadcastAsUser(intent, new UserHandle(mSecondUser), null, new BroadcastResultReceiver(), null, Activity.RESULT_OK, null, null);
            return true;
        }
    });
    menu.add("Bind to user 0!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, ServiceUserTarget.class);
            ServiceConnection conn = new ServiceConnection() {

                @Override
                public void onServiceConnected(ComponentName name, IBinder service) {
                    Log.i(TAG, "Service connected " + name + " " + service);
                }

                @Override
                public void onServiceDisconnected(ComponentName name) {
                    Log.i(TAG, "Service disconnected " + name);
                }
            };
            if (bindServiceAsUser(intent, conn, Context.BIND_AUTO_CREATE, UserHandle.SYSTEM)) {
                mConnections.add(conn);
            } else {
                Toast.makeText(ActivityTestMain.this, "Failed to bind", Toast.LENGTH_LONG).show();
            }
            return true;
        }
    });
    menu.add("Bind to user " + mSecondUser + "!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(ActivityTestMain.this, ServiceUserTarget.class);
            ServiceConnection conn = new ServiceConnection() {

                @Override
                public void onServiceConnected(ComponentName name, IBinder service) {
                    Log.i(TAG, "Service connected " + name + " " + service);
                }

                @Override
                public void onServiceDisconnected(ComponentName name) {
                    Log.i(TAG, "Service disconnected " + name);
                }
            };
            if (bindServiceAsUser(intent, conn, Context.BIND_AUTO_CREATE, new UserHandle(mSecondUser))) {
                mConnections.add(conn);
            } else {
                Toast.makeText(ActivityTestMain.this, "Failed to bind", Toast.LENGTH_LONG).show();
            }
            return true;
        }
    });
    menu.add("Density!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if (mOverrideConfig == null) {
                mOverrideConfig = new Configuration();
            }
            if (mOverrideConfig.densityDpi == Configuration.DENSITY_DPI_UNDEFINED) {
                mOverrideConfig.densityDpi = (getApplicationContext().getResources().getConfiguration().densityDpi * 2) / 3;
            } else {
                mOverrideConfig.densityDpi = Configuration.DENSITY_DPI_UNDEFINED;
            }
            recreate();
            return true;
        }
    });
    menu.add("HashArray").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            ArrayMapTests.run();
            return true;
        }
    });
    menu.add("Add App Recent").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            addAppRecents(1);
            return true;
        }
    });
    menu.add("Add App 10x Recent").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            addAppRecents(10);
            return true;
        }
    });
    menu.add("Exclude!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            setExclude(true);
            return true;
        }
    });
    menu.add("Include!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            setExclude(false);
            return true;
        }
    });
    menu.add("Open Doc").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            ActivityManager.AppTask task = findDocTask();
            if (task == null) {
                Intent intent = new Intent(ActivityTestMain.this, DocActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS);
                startActivity(intent);
            } else {
                task.moveToFront();
            }
            return true;
        }
    });
    menu.add("Stack Doc").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            ActivityManager.AppTask task = findDocTask();
            if (task != null) {
                ActivityManager.RecentTaskInfo recent = task.getTaskInfo();
                Intent intent = new Intent(ActivityTestMain.this, DocActivity.class);
                if (recent.id >= 0) {
                    // Stack on top.
                    intent.putExtra(DocActivity.LABEL, "Stacked");
                } else {
                    // Start root activity.
                    intent.putExtra(DocActivity.LABEL, "New Root");
                }
                task.startActivity(ActivityTestMain.this, intent, null);
            }
            return true;
        }
    });
    menu.add("Spam!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            scheduleSpam(false);
            return true;
        }
    });
    menu.add("Track time").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, "We are sharing this with you!");
            ActivityOptions options = ActivityOptions.makeBasic();
            Intent receiveIntent = new Intent(ActivityTestMain.this, TrackTimeReceiver.class);
            receiveIntent.putExtra("something", "yeah, this is us!");
            options.requestUsageTimeReport(PendingIntent.getBroadcast(ActivityTestMain.this, 0, receiveIntent, PendingIntent.FLAG_CANCEL_CURRENT));
            startActivity(Intent.createChooser(intent, "Who do you love?"), options.toBundle());
            return true;
        }
    });
    menu.add("Transaction fail").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.putExtra("gulp", new int[1024 * 1024]);
            startActivity(intent);
            return true;
        }
    });
    menu.add("Spam idle alarm").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            scheduleSpamAlarm(0);
            return true;
        }
    });
    menu.add("Ignore battery optimizations").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            Intent intent;
            if (!mPower.isIgnoringBatteryOptimizations(getPackageName())) {
                intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
                intent.setData(Uri.fromParts("package", getPackageName(), null));
            } else {
                intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
            }
            startActivity(intent);
            return true;
        }
    });
    return true;
}
Also used : AlertDialog(android.app.AlertDialog) ServiceConnection(android.content.ServiceConnection) Configuration(android.content.res.Configuration) IBinder(android.os.IBinder) UserHandle(android.os.UserHandle) ComponentName(android.content.ComponentName) ActivityOptions(android.app.ActivityOptions) Bundle(android.os.Bundle) MenuItem(android.view.MenuItem) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) RemoteException(android.os.RemoteException) ContentProviderClient(android.content.ContentProviderClient)

Example 90 with Configuration

use of android.content.res.Configuration in project android_frameworks_base by DirtyUnicorns.

the class ActivityThread method collectComponentCallbacks.

ArrayList<ComponentCallbacks2> collectComponentCallbacks(boolean allActivities, Configuration newConfig) {
    ArrayList<ComponentCallbacks2> callbacks = new ArrayList<ComponentCallbacks2>();
    synchronized (mResourcesManager) {
        final int NAPP = mAllApplications.size();
        for (int i = 0; i < NAPP; i++) {
            callbacks.add(mAllApplications.get(i));
        }
        final int NACT = mActivities.size();
        for (int i = 0; i < NACT; i++) {
            ActivityClientRecord ar = mActivities.valueAt(i);
            Activity a = ar.activity;
            if (a != null) {
                Configuration thisConfig = applyConfigCompatMainThread(mCurDefaultDisplayDpi, newConfig, ar.packageInfo.getCompatibilityInfo());
                if (!ar.activity.mFinished && (allActivities || !ar.paused)) {
                    // If the activity is currently resumed, its configuration
                    // needs to change right now.
                    callbacks.add(a);
                } else if (thisConfig != null) {
                    // configuration.
                    if (DEBUG_CONFIGURATION) {
                        Slog.v(TAG, "Setting activity " + ar.activityInfo.name + " newConfig=" + thisConfig);
                    }
                    ar.newConfig = thisConfig;
                }
            }
        }
        final int NSVC = mServices.size();
        for (int i = 0; i < NSVC; i++) {
            callbacks.add(mServices.valueAt(i));
        }
    }
    synchronized (mProviderMap) {
        final int NPRV = mLocalProviders.size();
        for (int i = 0; i < NPRV; i++) {
            callbacks.add(mLocalProviders.valueAt(i).mLocalProvider);
        }
    }
    return callbacks;
}
Also used : Configuration(android.content.res.Configuration) ArrayList(java.util.ArrayList) ComponentCallbacks2(android.content.ComponentCallbacks2)

Aggregations

Configuration (android.content.res.Configuration)824 RemoteException (android.os.RemoteException)158 Resources (android.content.res.Resources)152 Locale (java.util.Locale)112 DisplayMetrics (android.util.DisplayMetrics)88 Intent (android.content.Intent)76 IOException (java.io.IOException)69 Context (android.content.Context)64 Point (android.graphics.Point)48 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)40 Rect (android.graphics.Rect)37 ArrayList (java.util.ArrayList)37 Test (org.junit.Test)29 AndroidRuntimeException (android.util.AndroidRuntimeException)28 View (android.view.View)27 ComponentName (android.content.ComponentName)25 Bundle (android.os.Bundle)25 IBinder (android.os.IBinder)24 WindowManager (android.view.WindowManager)24 Nullable (android.annotation.Nullable)22