UI stuff
This commit is contained in:
@@ -73,7 +73,6 @@ public class AddKeysActivity extends ActionBarActivity implements
|
||||
ImageView mActionSafeSlingerIcon;
|
||||
View mActionQrCode;
|
||||
View mActionNfc;
|
||||
View mActionSearchCloud;
|
||||
|
||||
ProviderHelper mProviderHelper;
|
||||
|
||||
@@ -103,7 +102,6 @@ public class AddKeysActivity extends ActionBarActivity implements
|
||||
PorterDuff.Mode.SRC_IN);
|
||||
mActionQrCode = findViewById(R.id.add_keys_qr_code);
|
||||
mActionNfc = findViewById(R.id.add_keys_nfc);
|
||||
mActionSearchCloud = findViewById(R.id.add_keys_search_cloud);
|
||||
|
||||
mSafeSlingerKeySpinner.setOnKeyChangedListener(new KeySpinner.OnKeyChangedListener() {
|
||||
@Override
|
||||
@@ -135,14 +133,6 @@ public class AddKeysActivity extends ActionBarActivity implements
|
||||
startActivityForResult(intent, REQUEST_CODE_RESULT);
|
||||
}
|
||||
});
|
||||
|
||||
mActionSearchCloud.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
searchCloud();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void startExchange() {
|
||||
@@ -171,12 +161,6 @@ public class AddKeysActivity extends ActionBarActivity implements
|
||||
new IntentIntegrator(this).initiateScan();
|
||||
}
|
||||
|
||||
private void searchCloud() {
|
||||
finish();
|
||||
Intent importIntent = new Intent(this, ImportKeysActivity.class);
|
||||
startActivity(importIntent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
switch (requestCode) {
|
||||
|
||||
@@ -150,12 +150,13 @@ public class ImportKeysActivity extends ActionBarActivity {
|
||||
}
|
||||
|
||||
Bundle serverBundle = null;
|
||||
int showTabOnly = ALL_TABS;
|
||||
int showTabOnly = TAB_CLOUD;
|
||||
if (ACTION_IMPORT_KEY.equals(action)) {
|
||||
/* Keychain's own Actions */
|
||||
|
||||
// display file fragment
|
||||
mViewPager.setCurrentItem(TAB_FILE);
|
||||
showTabOnly = TAB_FILE;
|
||||
mSwitchToTab = TAB_FILE;
|
||||
|
||||
if (dataUri != null) {
|
||||
// action: directly load data
|
||||
@@ -229,6 +230,7 @@ public class ImportKeysActivity extends ActionBarActivity {
|
||||
}
|
||||
} else if (ACTION_IMPORT_KEY_FROM_FILE.equals(action)) {
|
||||
// NOTE: this only displays the appropriate fragment, no actions are taken
|
||||
showTabOnly = TAB_FILE;
|
||||
mSwitchToTab = TAB_FILE;
|
||||
|
||||
// no immediate actions!
|
||||
@@ -243,14 +245,14 @@ public class ImportKeysActivity extends ActionBarActivity {
|
||||
startListFragment(savedInstanceState, null, null, null);
|
||||
} else if (ACTION_IMPORT_KEY_FROM_QR_CODE.equals(action)) {
|
||||
// also exposed in AndroidManifest
|
||||
|
||||
showTabOnly = ALL_TABS;
|
||||
// NOTE: this only displays the appropriate fragment, no actions are taken
|
||||
mSwitchToTab = TAB_QR_CODE;
|
||||
|
||||
// no immediate actions!
|
||||
startListFragment(savedInstanceState, null, null, null);
|
||||
} else if (ACTION_IMPORT_KEY_FROM_NFC.equals(action)) {
|
||||
|
||||
showTabOnly = ALL_TABS;
|
||||
// NOTE: this only displays the appropriate fragment, no actions are taken
|
||||
mSwitchToTab = TAB_QR_CODE;
|
||||
|
||||
@@ -334,32 +336,36 @@ public class ImportKeysActivity extends ActionBarActivity {
|
||||
getSupportFragmentManager().executePendingTransactions();
|
||||
}
|
||||
|
||||
private String getFingerprintFromUri(Uri dataUri) {
|
||||
public static String getFingerprintFromUri(Uri dataUri) {
|
||||
String fingerprint = dataUri.toString().split(":")[1].toLowerCase(Locale.ENGLISH);
|
||||
Log.d(Constants.TAG, "fingerprint: " + fingerprint);
|
||||
return fingerprint;
|
||||
}
|
||||
|
||||
public void loadFromFingerprintUri(Uri dataUri) {
|
||||
String query = "0x" + getFingerprintFromUri(dataUri);
|
||||
public void loadFromFingerprint(String fingerprint) {
|
||||
// String fingerprint = "0x" + getFingerprintFromUri(dataUri);
|
||||
|
||||
// setCurrentItem does not work directly after onResume (from qr code scanner)
|
||||
// see http://stackoverflow.com/q/19316729
|
||||
// so, reset adapter completely!
|
||||
if (mViewPager.getAdapter() != null)
|
||||
mViewPager.setAdapter(null);
|
||||
mViewPager.setAdapter(mTabsAdapter);
|
||||
mViewPager.setCurrentItem(TAB_CLOUD);
|
||||
// if (mViewPager.getAdapter() != null)
|
||||
// mViewPager.setAdapter(null);
|
||||
// mViewPager.setAdapter(mTabsAdapter);
|
||||
// mViewPager.setCurrentItem(TAB_CLOUD);
|
||||
|
||||
ImportKeysCloudFragment f = (ImportKeysCloudFragment)
|
||||
getActiveFragment(mViewPager, TAB_CLOUD);
|
||||
// ImportKeysCloudFragment f = (ImportKeysCloudFragment)
|
||||
// getActiveFragment(mViewPager, TAB_CLOUD);
|
||||
|
||||
// search config
|
||||
Preferences prefs = Preferences.getPreferences(ImportKeysActivity.this);
|
||||
Preferences.CloudSearchPrefs cloudPrefs = new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver());
|
||||
Intent searchIntent = new Intent(this, ImportKeysActivity.class);
|
||||
searchIntent.putExtra(ImportKeysActivity.EXTRA_FINGERPRINT, fingerprint);
|
||||
startActivity(searchIntent);
|
||||
|
||||
// search directly
|
||||
loadCallback(new ImportKeysListFragment.CloudLoaderState(query, cloudPrefs));
|
||||
// // search config
|
||||
// Preferences prefs = Preferences.getPreferences(ImportKeysActivity.this);
|
||||
// Preferences.CloudSearchPrefs cloudPrefs = new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver());
|
||||
//
|
||||
// // search directly
|
||||
// loadCallback(new ImportKeysListFragment.CloudLoaderState(query, cloudPrefs));
|
||||
}
|
||||
|
||||
// http://stackoverflow.com/a/9293207
|
||||
|
||||
@@ -31,8 +31,6 @@ import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.compatibility.ClipboardReflection;
|
||||
import org.sufficientlysecure.keychain.util.FileHelper;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class ImportKeysFileFragment extends Fragment {
|
||||
private ImportKeysActivity mImportActivity;
|
||||
private View mBrowse;
|
||||
@@ -80,12 +78,8 @@ public class ImportKeysFileFragment extends Fragment {
|
||||
String sendText = "";
|
||||
if (clipboardText != null) {
|
||||
sendText = clipboardText.toString();
|
||||
if (sendText.toLowerCase(Locale.ENGLISH).startsWith(Constants.FINGERPRINT_SCHEME)) {
|
||||
mImportActivity.loadFromFingerprintUri(Uri.parse(sendText));
|
||||
return;
|
||||
}
|
||||
mImportActivity.loadCallback(new ImportKeysListFragment.BytesLoaderState(sendText.getBytes(), null));
|
||||
}
|
||||
mImportActivity.loadCallback(new ImportKeysListFragment.BytesLoaderState(sendText.getBytes(), null));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ public class ImportKeysQrCodeFragment extends Fragment {
|
||||
}
|
||||
|
||||
public void importFingerprint(Uri dataUri) {
|
||||
mImportActivity.loadFromFingerprintUri(dataUri);
|
||||
mImportActivity.loadFromFingerprint(ImportKeysActivity.getFingerprintFromUri(dataUri));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -87,6 +87,10 @@ public class KeyListActivity extends DrawerActivity {
|
||||
addKeys();
|
||||
return true;
|
||||
|
||||
case R.id.menu_key_list_search_cloud:
|
||||
searchCloud();
|
||||
return true;
|
||||
|
||||
case R.id.menu_key_list_create:
|
||||
createKey();
|
||||
return true;
|
||||
@@ -144,6 +148,12 @@ public class KeyListActivity extends DrawerActivity {
|
||||
startActivityForResult(intent, 0);
|
||||
}
|
||||
|
||||
private void searchCloud() {
|
||||
Intent importIntent = new Intent(this, ImportKeysActivity.class);
|
||||
importIntent.putExtra(ImportKeysActivity.EXTRA_QUERY, (String) null); // hack to show only cloud tab
|
||||
startActivity(importIntent);
|
||||
}
|
||||
|
||||
private void createKey() {
|
||||
Intent intent = new Intent(this, CreateKeyActivity.class);
|
||||
startActivityForResult(intent, 0);
|
||||
|
||||
@@ -470,6 +470,11 @@ public class KeyListFragment extends LoaderFragment
|
||||
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
|
||||
@Override
|
||||
public boolean onMenuItemActionExpand(MenuItem item) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||
hideMenu = true;
|
||||
getActivity().invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
// disable swipe-to-refresh
|
||||
// mSwipeRefreshLayout.setIsLocked(true);
|
||||
return true;
|
||||
@@ -479,6 +484,11 @@ public class KeyListFragment extends LoaderFragment
|
||||
public boolean onMenuItemActionCollapse(MenuItem item) {
|
||||
mQuery = null;
|
||||
getLoaderManager().restartLoader(0, null, KeyListFragment.this);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||
hideMenu = false;
|
||||
getActivity().invalidateOptionsMenu();
|
||||
}
|
||||
// enable swipe-to-refresh
|
||||
// mSwipeRefreshLayout.setIsLocked(false);
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user