diff options
author | Fyodor Kupolov <fkupolov@google.com> | 2015-05-29 11:17:32 -0700 |
---|---|---|
committer | Fyodor Kupolov <fkupolov@google.com> | 2015-05-29 11:21:42 -0700 |
commit | 1c8600b0c8f63bcb373202109c4b8c3465858132 (patch) | |
tree | 6ac2cbcb6d47b0a281bd2e85e58d2eb0088ec5ff /src/com/android/settings/DeviceAdminAdd.java | |
parent | 7c3b9f28b5b547fcdfb78d9e24f4d9b694c91c28 (diff) | |
download | packages_apps_Settings-1c8600b0c8f63bcb373202109c4b8c3465858132.zip packages_apps_Settings-1c8600b0c8f63bcb373202109c4b8c3465858132.tar.gz packages_apps_Settings-1c8600b0c8f63bcb373202109c4b8c3465858132.tar.bz2 |
Hide the collapse/expand icon if text fits the screen
Icon should be hidden if explanation text fits the screen, otherwise user
should be able to click the image to collapse/expand the text.
Bug: 20554398
Change-Id: I7fb06be6e6c195a5c1bcac504f4af2d67ef4211e
Diffstat (limited to 'src/com/android/settings/DeviceAdminAdd.java')
-rw-r--r-- | src/com/android/settings/DeviceAdminAdd.java | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java index 83b222b..bcd247e 100644 --- a/src/com/android/settings/DeviceAdminAdd.java +++ b/src/com/android/settings/DeviceAdminAdd.java @@ -49,6 +49,7 @@ import android.util.Log; import android.view.Display; import android.view.View; import android.view.ViewGroup; +import android.view.ViewTreeObserver; import android.view.WindowManager; import android.widget.AppSecurityPermissions; import android.widget.Button; @@ -245,11 +246,32 @@ public class DeviceAdminAdd extends Activity { mAddMsg = (TextView)findViewById(R.id.add_msg); mAddMsgExpander = (ImageView) findViewById(R.id.add_msg_expander); - mAddMsg.setOnClickListener(new View.OnClickListener() { + final View.OnClickListener onClickListener = new View.OnClickListener() { + @Override public void onClick(View v) { - toggleMessageEllipsis(v); + toggleMessageEllipsis(mAddMsg); } - }); + }; + mAddMsgExpander.setOnClickListener(onClickListener); + mAddMsg.setOnClickListener(onClickListener); + + // Determine whether the message can be collapsed - getLineCount() gives the correct + // number of lines only after a layout pass. + mAddMsg.getViewTreeObserver().addOnGlobalLayoutListener( + new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + final int maxLines = getEllipsizedLines(); + // hide the icon if number of visible lines does not exceed maxLines + boolean hideMsgExpander = mAddMsg.getLineCount() <= maxLines; + mAddMsgExpander.setVisibility(hideMsgExpander ? View.GONE : View.VISIBLE); + if (hideMsgExpander) { + mAddMsg.setOnClickListener(null); + ((View)mAddMsgExpander.getParent()).invalidate(); + } + mAddMsg.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + }); // toggleMessageEllipsis also handles initial layout: toggleMessageEllipsis(mAddMsg); |