open-keychain/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java

118 lines
3.9 KiB
Java
Raw Normal View History

2013-09-18 20:02:51 -04:00
/*
2014-04-13 11:27:15 -04:00
* Copyright (C) 2013-2014 Dominik Schürmann <dominik@dominikschuermann.de>
2013-09-18 20:02:51 -04:00
*
* This program 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 3 of the License, or
* (at your option) any later version.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.sufficientlysecure.keychain.ui;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
2013-09-18 20:02:51 -04:00
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
2014-04-11 14:23:46 -04:00
2014-03-13 14:25:01 -04:00
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.ClipboardReflection;
import org.sufficientlysecure.keychain.util.FileHelper;
2013-09-18 20:02:51 -04:00
2013-09-18 20:17:49 -04:00
public class ImportKeysFileFragment extends Fragment {
2013-09-18 20:02:51 -04:00
private ImportKeysActivity mImportActivity;
private View mBrowse;
private View mClipboardButton;
2013-09-18 20:02:51 -04:00
2014-04-11 14:09:01 -04:00
public static final int REQUEST_CODE_FILE = 0x00007003;
2013-09-18 20:02:51 -04:00
/**
* Creates new instance of this fragment
*/
public static ImportKeysFileFragment newInstance() {
2013-09-18 20:17:49 -04:00
ImportKeysFileFragment frag = new ImportKeysFileFragment();
2013-09-18 20:02:51 -04:00
Bundle args = new Bundle();
frag.setArguments(args);
return frag;
}
/**
* Inflate the layout for this fragment
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.import_keys_file_fragment, container, false);
mBrowse = view.findViewById(R.id.import_keys_file_browse);
2013-09-18 20:02:51 -04:00
mBrowse.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// open .asc or .gpg files
// setting it to text/plain prevents Cyanogenmod's file manager from selecting asc
2013-09-18 20:02:51 -04:00
// or gpg types!
FileHelper.openFile(ImportKeysFileFragment.this, Uri.fromFile(Constants.Path.APP_DIR),
2014-04-11 14:09:01 -04:00
"*/*", REQUEST_CODE_FILE);
2013-09-18 20:02:51 -04:00
}
});
mClipboardButton = view.findViewById(R.id.import_clipboard_button);
mClipboardButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CharSequence clipboardText = ClipboardReflection.getClipboardText(getActivity());
String sendText = "";
if (clipboardText != null) {
sendText = clipboardText.toString();
2014-10-05 04:59:52 -04:00
mImportActivity.loadCallback(new ImportKeysListFragment.BytesLoaderState(sendText.getBytes(), null));
}
}
});
2013-09-18 20:02:51 -04:00
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
2013-09-18 20:02:51 -04:00
mImportActivity = (ImportKeysActivity) activity;
2013-09-18 20:02:51 -04:00
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
2014-04-11 14:23:46 -04:00
switch (requestCode) {
2014-04-11 14:09:01 -04:00
case REQUEST_CODE_FILE: {
if (resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
// load data
mImportActivity.loadCallback(new ImportKeysListFragment.BytesLoaderState(null, data.getData()));
2013-09-18 20:02:51 -04:00
}
break;
2013-09-18 20:02:51 -04:00
}
default:
super.onActivityResult(requestCode, resultCode, data);
2013-09-18 20:02:51 -04:00
break;
2013-09-18 20:02:51 -04:00
}
}
}