summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout/device_admin_add.xml98
-rw-r--r--src/com/android/settings/DeviceAdminAdd.java42
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;
+ }
+
}