summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DeviceAdminAdd.java
diff options
context:
space:
mode:
authorFyodor Kupolov <fkupolov@google.com>2015-05-29 11:17:32 -0700
committerFyodor Kupolov <fkupolov@google.com>2015-05-29 11:21:42 -0700
commit1c8600b0c8f63bcb373202109c4b8c3465858132 (patch)
tree6ac2cbcb6d47b0a281bd2e85e58d2eb0088ec5ff /src/com/android/settings/DeviceAdminAdd.java
parent7c3b9f28b5b547fcdfb78d9e24f4d9b694c91c28 (diff)
downloadpackages_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.java28
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);