summaryrefslogtreecommitdiff
path: root/src/de/blinkt/openvpn/FileSelectLayout.java
blob: d7bcc47510768e40f2b325861be6fd03d7239a18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package de.blinkt.openvpn;

import de.blinkt.openvpn.core.X509Utils;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;


public class FileSelectLayout extends LinearLayout implements OnClickListener {

	private TextView mDataView;
	private String mData;
	private Fragment mFragment;
	private int mTaskId;
	private Button mSelectButton;
	private boolean mBase64Encode;
	private String mTitle;
	private boolean mShowClear;
	private TextView mDataDetails;

	public FileSelectLayout( Context context,AttributeSet attrset) {
		super(context,attrset);
		inflate(getContext(), R.layout.file_select, this);

		TypedArray ta = context.obtainStyledAttributes(attrset,R.styleable.FileSelectLayout);

		mTitle = ta.getString(R.styleable.FileSelectLayout_title);

		TextView tview = (TextView) findViewById(R.id.file_title);
		tview.setText(mTitle);

		mDataView = (TextView) findViewById(R.id.file_selected_item);
		mDataDetails = (TextView) findViewById(R.id.file_selected_description);
		mSelectButton = (Button) findViewById(R.id.file_select_button);
		mSelectButton.setOnClickListener(this);

		ta.recycle();
	}

	public void setFragment(Fragment fragment, int i)
	{
		mTaskId = i;
		mFragment = fragment;
	}

	public void getCertificateFileDialog() {
		Intent startFC = new Intent(getContext(),FileSelect.class);
		startFC.putExtra(FileSelect.START_DATA, mData);
		startFC.putExtra(FileSelect.WINDOW_TITLE,mTitle);
		if(mBase64Encode)
			startFC.putExtra(FileSelect.DO_BASE64_ENCODE, true);
		if(mShowClear)
			startFC.putExtra(FileSelect.SHOW_CLEAR_BUTTON, true);
		mFragment.startActivityForResult(startFC,mTaskId);
	}


	public String getData() {
		return mData;
	}

	public void setData(String data) {
		mData = data;
		if(data==null) { 
			mDataView.setText(mFragment.getString(R.string.no_data));
			mDataDetails.setText("");
		}else {
			if(mData.startsWith(VpnProfile.INLINE_TAG))
				mDataView.setText(R.string.inline_file_data);
			else
				mDataView.setText(data);
			mDataDetails.setText(X509Utils.getCertificateFriendlyName(data));
		}

	}

	@Override
	public void onClick(View v) {
		if(v == mSelectButton) {
			getCertificateFileDialog();
		}
	}

	public void setBase64Encode() {
		mBase64Encode =true;
	}

	public void setShowClear() {
		mShowClear=true;
	}

}