diff options
-rw-r--r-- | res/layout/device_admin_add.xml | 98 | ||||
-rw-r--r-- | src/com/android/settings/DeviceAdminAdd.java | 42 |
2 files changed, 102 insertions, 38 deletions
diff --git a/res/layout/device_admin_add.xml b/res/layout/device_admin_add.xml index f560331..f3ba59e 100644 --- a/res/layout/device_admin_add.xml +++ b/res/layout/device_admin_add.xml @@ -20,30 +20,32 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:background="@*android:drawable/title_bar_medium"> + <TextView android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="?android:attr/textColorPrimary" + android:shadowColor="?android:attr/colorBackground" + android:shadowRadius="2" /> + </LinearLayout> + <ScrollView android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - android:orientation="vertical"> + android:layout_height="0dip" + android:layout_weight="1.0" + android:gravity="top"> <LinearLayout android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_weight="1" + android:layout_height="wrap_content" android:orientation="vertical"> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:background="@*android:drawable/title_bar_medium"> - <TextView android:id="@+id/title" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:gravity="center" - android:textAppearance="?android:attr/textAppearanceLarge" - android:textColor="?android:attr/textColorPrimary" - android:shadowColor="?android:attr/colorBackground" - android:shadowRadius="2" /> - </LinearLayout> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" @@ -66,28 +68,49 @@ android:singleLine="true" android:ellipsize="marquee" /> </LinearLayout> - <TextView android:id="@+id/admin_warning" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="10dip" /> - <LinearLayout android:id="@+id/admin_policies" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:paddingLeft="16dip" - android:paddingRight="12dip" /> - <TextView android:id="@+id/admin_description" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:padding="10dip" /> - <TextView android:id="@+id/add_msg" + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="1" - android:padding="10dip" /> + android:orientation="vertical"> + <TextView android:id="@+id/admin_description" + android:layout_width="fill_parent" + android:layout_height="0dip" + android:layout_weight="0" + android:padding="0dip" /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:gravity="center_vertical"> + <ImageView android:id="@+id/add_msg_expander" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_vertical" /> + <TextView android:id="@+id/add_msg" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:padding="10dip" /> + </LinearLayout> + + <TextView android:id="@+id/admin_warning" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:padding="10dip" /> + <LinearLayout android:id="@+id/admin_policies" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:orientation="vertical" + android:paddingLeft="16dip" + android:paddingRight="12dip" /> + </LinearLayout> + </LinearLayout> </ScrollView> + <LinearLayout style="@android:style/ButtonBar" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -114,4 +137,5 @@ android:layout_height="0dip" android:layout_weight="1" /> </LinearLayout> + </LinearLayout> diff --git a/src/com/android/settings/DeviceAdminAdd.java b/src/com/android/settings/DeviceAdminAdd.java index 4760277..005196e 100644 --- a/src/com/android/settings/DeviceAdminAdd.java +++ b/src/com/android/settings/DeviceAdminAdd.java @@ -35,9 +35,12 @@ import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.os.RemoteCallback; +import android.text.TextUtils.TruncateAt; import android.util.Log; +import android.view.Display; import android.view.View; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.AppSecurityPermissions; import android.widget.Button; import android.widget.ImageView; @@ -50,6 +53,10 @@ public class DeviceAdminAdd extends Activity { static final String TAG = "DeviceAdminAdd"; static final int DIALOG_WARNING = 1; + + private static final int MAX_ADD_MSG_LINES_PORTRAIT = 5; + private static final int MAX_ADD_MSG_LINES_LANDSCAPE = 2; + private static final int MAX_ADD_MSG_LINES = 15; Handler mHandler; @@ -62,6 +69,7 @@ public class DeviceAdminAdd extends Activity { TextView mAdminName; TextView mAdminDescription; TextView mAddMsg; + boolean mAddMsgEllipsized = true; TextView mAdminWarning; ViewGroup mAdminPolicies; Button mActionButton; @@ -138,7 +146,17 @@ public class DeviceAdminAdd extends Activity { mAdminIcon = (ImageView)findViewById(R.id.admin_icon); mAdminName = (TextView)findViewById(R.id.admin_name); mAdminDescription = (TextView)findViewById(R.id.admin_description); + mAddMsg = (TextView)findViewById(R.id.add_msg); + mAddMsg.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + toggleMessageEllipsis(v); + } + }); + + // toggleMessageEllipsis also handles initial layout: + toggleMessageEllipsis(mAddMsg); + mAdminWarning = (TextView)findViewById(R.id.admin_warning); mAdminPolicies = (ViewGroup)findViewById(R.id.admin_policies); mCancelButton = (Button)findViewById(R.id.cancel_button); @@ -280,5 +298,27 @@ public class DeviceAdminAdd extends Activity { mAdding = true; } } - + + + void toggleMessageEllipsis(View v) { + TextView tv = (TextView) v; + + mAddMsgEllipsized = ! mAddMsgEllipsized; + tv.setEllipsize(mAddMsgEllipsized ? TruncateAt.END : null); + tv.setMaxLines(mAddMsgEllipsized ? getEllipsizedLines() : MAX_ADD_MSG_LINES); + + ImageView iv = (ImageView) findViewById(R.id.add_msg_expander); + iv.setImageResource(mAddMsgEllipsized ? + com.android.internal.R.drawable.expander_ic_minimized : + com.android.internal.R.drawable.expander_ic_maximized); + } + + int getEllipsizedLines() { + Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)) + .getDefaultDisplay(); + + return d.getHeight() > d.getWidth() ? + MAX_ADD_MSG_LINES_PORTRAIT : MAX_ADD_MSG_LINES_LANDSCAPE; + } + } |