/* * Copyright 2010-2011 Brian Pellin. * * This file is part of KeePassDroid. * * KeePassDroid is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * KeePassDroid is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with KeePassDroid. If not, see <http://www.gnu.org/licenses/>. * */ package com.keepassdroid.view; import android.content.Context; import android.os.Environment; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.RelativeLayout; import android.widget.TextView; import com.android.keepass.R; public class FileNameView extends RelativeLayout { public FileNameView(Context context) { this(context, null); } public FileNameView(Context context, AttributeSet attrs) { super(context, attrs); inflate(context); } private void inflate(Context context) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.file_selection_filename, this); } public void updateExternalStorageWarning() { int warning = -1; String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { warning = R.string.warning_read_only; } else if (!state.equals(Environment.MEDIA_MOUNTED)) { warning = R.string.warning_unmounted; } TextView tv = (TextView) findViewById(R.id.label_warning); TextView label = (TextView) findViewById(R.id.label_open_by_filename); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); if (warning != -1) { tv.setText(warning); tv.setVisibility(VISIBLE); lp.addRule(RelativeLayout.BELOW, R.id.label_warning); } else { tv.setVisibility(INVISIBLE); } label.setLayoutParams(lp); } }