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
This commit is contained in:
@@ -49,6 +49,7 @@ import android.util.Log;
|
|||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.AppSecurityPermissions;
|
import android.widget.AppSecurityPermissions;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
@@ -245,11 +246,32 @@ public class DeviceAdminAdd extends Activity {
|
|||||||
|
|
||||||
mAddMsg = (TextView)findViewById(R.id.add_msg);
|
mAddMsg = (TextView)findViewById(R.id.add_msg);
|
||||||
mAddMsgExpander = (ImageView) findViewById(R.id.add_msg_expander);
|
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) {
|
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 also handles initial layout:
|
||||||
toggleMessageEllipsis(mAddMsg);
|
toggleMessageEllipsis(mAddMsg);
|
||||||
|
Reference in New Issue
Block a user