summaryrefslogtreecommitdiffstats
path: root/tests/ActivityTests
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2012-08-14 16:45:30 -0700
committerDianne Hackborn <hackbod@google.com>2012-08-14 16:51:38 -0700
commit756220bd1912535840388a6743830d2e59ad4964 (patch)
treeee97c666d4bb1f015fd3e89463af09c712ce47e4 /tests/ActivityTests
parent863b19bc8fcfa436011781b67a237fcce3cb703a (diff)
downloadframeworks_base-756220bd1912535840388a6743830d2e59ad4964.zip
frameworks_base-756220bd1912535840388a6743830d2e59ad4964.tar.gz
frameworks_base-756220bd1912535840388a6743830d2e59ad4964.tar.bz2
Add API to create new contexts with custom configurations.
This allows you to, say, make a Context whose configuration is set to a different density than the actual density of the device. The main API is Context.createConfigurationContext(). There is also a new API on ContextThemeWrapper that allows you to apply an override context before its resources are retrieved, which addresses some feature requests from developers to be able to customize the context their app is running in. Change-Id: I88364986660088521e24b567e2fda22fb7042819
Diffstat (limited to 'tests/ActivityTests')
-rw-r--r--tests/ActivityTests/src/com/google/android/test/activity/ActivityTestMain.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/ActivityTests/src/com/google/android/test/activity/ActivityTestMain.java b/tests/ActivityTests/src/com/google/android/test/activity/ActivityTestMain.java
index 0ec1f13..0577dbb 100644
--- a/tests/ActivityTests/src/com/google/android/test/activity/ActivityTestMain.java
+++ b/tests/ActivityTests/src/com/google/android/test/activity/ActivityTestMain.java
@@ -40,12 +40,16 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.content.Context;
+import android.content.res.Configuration;
import android.util.Log;
public class ActivityTestMain extends Activity {
static final String TAG = "ActivityTest";
+ static final String KEY_CONFIGURATION = "configuration";
+
ActivityManager mAm;
+ Configuration mOverrideConfig;
class BroadcastResultReceiver extends BroadcastReceiver {
@Override
@@ -111,6 +115,12 @@ public class ActivityTestMain extends Activity {
super.onCreate(savedInstanceState);
mAm = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
+ if (savedInstanceState != null) {
+ mOverrideConfig = savedInstanceState.getParcelable(KEY_CONFIGURATION);
+ if (mOverrideConfig != null) {
+ applyOverrideConfiguration(mOverrideConfig);
+ }
+ }
}
@Override
@@ -182,6 +192,21 @@ public class ActivityTestMain extends Activity {
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;
+ }
+ });
return true;
}
@@ -191,6 +216,14 @@ public class ActivityTestMain extends Activity {
buildUi();
}
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ if (mOverrideConfig != null) {
+ outState.putParcelable(KEY_CONFIGURATION, mOverrideConfig);
+ }
+ }
+
private View scrollWrap(View view) {
ScrollView scroller = new ScrollView(this);
scroller.addView(view, new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT,