1 // Copyright 2011 Google Inc. All Rights Reserved.
2 
3 package com.android.settings.deviceinfo;
4 
5 import android.content.Context;
6 import android.os.Environment.UserEnvironment;
7 import android.os.UserHandle;
8 import android.util.AttributeSet;
9 import android.view.ViewDebug;
10 import android.widget.CheckBox;
11 import android.widget.Checkable;
12 import android.widget.RelativeLayout;
13 import android.widget.TextView;
14 
15 import com.android.settings.R;
16 
17 /**
18  * Handles display of a single row entry on Settings --> Storage --> Misc Files screen
19  */
20 public class FileItemInfoLayout extends RelativeLayout implements Checkable {
21     private TextView mFileNameView;
22     private TextView mFileSizeView;
23     private CheckBox mCheckbox;
24 
25     private static final int sLengthExternalStorageDirPrefix = new UserEnvironment(
26             UserHandle.myUserId()).getExternalStorageDirectory().getAbsolutePath().length() + 1;
27 
FileItemInfoLayout(Context context)28     public FileItemInfoLayout(Context context) {
29         this(context, null);
30     }
31 
FileItemInfoLayout(Context context, AttributeSet attrs)32     public FileItemInfoLayout(Context context, AttributeSet attrs) {
33         this(context, attrs, 0);
34     }
35 
FileItemInfoLayout(Context context, AttributeSet attrs, int defStyle)36     public FileItemInfoLayout(Context context, AttributeSet attrs, int defStyle) {
37         super(context, attrs, defStyle);
38     }
39 
toggle()40     public void toggle() {
41         setChecked(!mCheckbox.isChecked());
42     }
43 
44     /* (non-Javadoc)
45      * @see android.view.View#onFinishInflate()
46      */
47     @Override
onFinishInflate()48     protected void onFinishInflate() {
49         super.onFinishInflate();
50         mFileNameView = (TextView) findViewById(R.id.misc_filename);
51         mFileSizeView = (TextView) findViewById(R.id.misc_filesize);
52         mCheckbox = (CheckBox) findViewById(R.id.misc_checkbox);
53     }
54 
setFileName(String fileName)55     public void setFileName(String fileName) {
56         mFileNameView.setText(fileName.substring(sLengthExternalStorageDirPrefix));
57     }
58 
setFileSize(String filesize)59     public void setFileSize(String filesize) {
60         mFileSizeView.setText(filesize);
61     }
62 
63     @ViewDebug.ExportedProperty
isChecked()64     public boolean isChecked() {
65         return mCheckbox.isChecked();
66     }
67 
getCheckBox()68     public CheckBox getCheckBox() {
69         return mCheckbox;
70     }
71 
72     /**
73      * <p>Changes the checked state of this text view.</p>
74      *
75      * @param checked true to check the text, false to uncheck it
76      */
setChecked(boolean checked)77     public void setChecked(boolean checked) {
78         mCheckbox.setChecked(checked);
79     }
80 }