Using ViewStub to defer the inflation of GeolocationPermissionsPrompt until we first show it.
This should shave 5% of Browser start up time.
Fix http://b/issue?id=2604295
diff --git a/src/com/android/browser/GeolocationPermissionsPrompt.java b/src/com/android/browser/GeolocationPermissionsPrompt.java
index 982aa89..95c5415 100755
--- a/src/com/android/browser/GeolocationPermissionsPrompt.java
+++ b/src/com/android/browser/GeolocationPermissionsPrompt.java
@@ -46,15 +46,26 @@
public GeolocationPermissionsPrompt(Context context, AttributeSet attrs) {
super(context, attrs);
- LayoutInflater factory = LayoutInflater.from(context);
- factory.inflate(R.layout.geolocation_permissions_prompt, this);
+ }
+ void init() {
mInner = (LinearLayout) findViewById(R.id.inner);
mMessage = (TextView) findViewById(R.id.message);
mShareButton = (Button) findViewById(R.id.share_button);
mDontShareButton = (Button) findViewById(R.id.dont_share_button);
mRemember = (CheckBox) findViewById(R.id.remember);
- setButtonClickListeners();
+
+ final GeolocationPermissionsPrompt me = this;
+ mShareButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ me.handleButtonClick(true);
+ }
+ });
+ mDontShareButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ me.handleButtonClick(false);
+ }
+ });
}
/**
@@ -79,23 +90,6 @@
}
/**
- * Sets the on click listeners for the buttons.
- */
- private void setButtonClickListeners() {
- final GeolocationPermissionsPrompt me = this;
- mShareButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- me.handleButtonClick(true);
- }
- });
- mDontShareButton.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- me.handleButtonClick(false);
- }
- });
- }
-
- /**
* Handles a click on one the buttons by invoking the callback.
*/
private void handleButtonClick(boolean allow) {