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"
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"
android:layout_height="0dip"
android:layout_weight="1" />
</LinearLayout>
+
</LinearLayout>
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;
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;
TextView mAdminName;
TextView mAdminDescription;
TextView mAddMsg;
+ boolean mAddMsgEllipsized = true;
TextView mAdminWarning;
ViewGroup mAdminPolicies;
Button mActionButton;
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);
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;
+ }
+
}