121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori// Copyright 2011 Google Inc. All Rights Reserved.
221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noripackage com.android.settings.deviceinfo;
421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
521809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.content.Context;
6fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkeyimport android.os.Environment.UserEnvironment;
7fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkeyimport android.os.UserHandle;
821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.util.AttributeSet;
921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.view.ViewDebug;
1021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.widget.CheckBox;
1121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.widget.Checkable;
1221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.widget.RelativeLayout;
1321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noriimport android.widget.TextView;
1421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
15fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkeyimport com.android.settings.R;
16fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkey
1721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori/**
1821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori * Handles display of a single row entry on Settings --> Storage --> Misc Files screen
1921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori */
2021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Noripublic class FileItemInfoLayout extends RelativeLayout implements Checkable {
2121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    private TextView mFileNameView;
2221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    private TextView mFileSizeView;
2321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    private CheckBox mCheckbox;
24fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkey
25fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkey    private static final int sLengthExternalStorageDirPrefix = new UserEnvironment(
26fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkey            UserHandle.myUserId()).getExternalStorageDirectory().getAbsolutePath().length() + 1;
2721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
2821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public FileItemInfoLayout(Context context) {
2921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        this(context, null);
3021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
3121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
3221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public FileItemInfoLayout(Context context, AttributeSet attrs) {
3321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        this(context, attrs, 0);
3421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
3521809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
3621809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public FileItemInfoLayout(Context context, AttributeSet attrs, int defStyle) {
3721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        super(context, attrs, defStyle);
3821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
3921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
4021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public void toggle() {
4121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        setChecked(!mCheckbox.isChecked());
4221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
4321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
4421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    /* (non-Javadoc)
4521809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori     * @see android.view.View#onFinishInflate()
4621809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori     */
4721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    @Override
4821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    protected void onFinishInflate() {
4921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        super.onFinishInflate();
5021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        mFileNameView = (TextView) findViewById(R.id.misc_filename);
5121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        mFileSizeView = (TextView) findViewById(R.id.misc_filesize);
5221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        mCheckbox = (CheckBox) findViewById(R.id.misc_checkbox);
5321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
5421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
5521809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public void setFileName(String fileName) {
56fda48e39d36dae29a5ab962f232ed26f54abb44fJeff Sharkey        mFileNameView.setText(fileName.substring(sLengthExternalStorageDirPrefix));
5721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
5821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
5921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public void setFileSize(String filesize) {
6021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        mFileSizeView.setText(filesize);
6121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
6221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
6321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    @ViewDebug.ExportedProperty
6421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public boolean isChecked() {
6521809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        return mCheckbox.isChecked();
6621809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
6721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
6821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public CheckBox getCheckBox() {
6921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        return mCheckbox;
7021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
7121809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori
7221809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    /**
7321809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori     * <p>Changes the checked state of this text view.</p>
7421809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori     *
7521809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori     * @param checked true to check the text, false to uncheck it
7621809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori     */
7721809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    public void setChecked(boolean checked) {
7821809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori        mCheckbox.setChecked(checked);
7921809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori    }
8021809740f2fd8fe8df4e300e5d1d15f0ccedbb5fVasu Nori}