diff options
author | Lubo Viluda <lubo.viluda@gmail.com> | 2016-03-20 11:52:36 +0100 |
---|---|---|
committer | Lubo Viluda <lubo.viluda@gmail.com> | 2016-03-20 11:52:36 +0100 |
commit | 7efeebc6381784a9362e5514fb50084c662dd335 (patch) | |
tree | a910e8f82d484ffa10b24081cc4c62af80503584 | |
parent | 556c04db829c7e7534d03e8eb101a13d2cab6503 (diff) | |
download | open-keychain-7efeebc6381784a9362e5514fb50084c662dd335.tar.gz open-keychain-7efeebc6381784a9362e5514fb50084c662dd335.tar.bz2 open-keychain-7efeebc6381784a9362e5514fb50084c662dd335.zip |
#1661 - Don't expose CertifyActivity
*Add new activity - RedirectImportKeysActivity, which prompts user to
use Openkeychain directly
*Add intent filter for the activity
*Change intent filter for CertifyActivity
6 files changed, 156 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index 50ab9aaae..8031606fb 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -711,6 +711,15 @@ <category android:name="android.intent.category.DEFAULT" /> </intent-filter> + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".ui.MainActivity" /> + </activity> + <activity + android:name=".ui.RedirectImportKeysActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/title_activity_redirect_key"> > + <!-- VIEW with fingerprint scheme: Handle URIs with fingerprints when scanning directly from Barcode Scanner --> <intent-filter android:label="@string/intent_import_key"> @@ -726,11 +735,9 @@ <data android:scheme="OpenPGP4Fpr" /> <data android:scheme="OpenPGP4fpr" /> </intent-filter> - - <meta-data - android:name="android.support.PARENT_ACTIVITY" - android:value=".ui.MainActivity" /> </activity> + + <activity android:name=".ui.LogDisplayActivity" android:configChanges="orientation|screenSize|keyboardHidden|keyboard" @@ -943,4 +950,4 @@ </application> -</manifest> +</manifest>
\ No newline at end of file diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RedirectImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RedirectImportKeysActivity.java new file mode 100644 index 000000000..a59d3ba80 --- /dev/null +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RedirectImportKeysActivity.java @@ -0,0 +1,60 @@ +/* + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.sufficientlysecure.keychain.ui; + +import android.app.Activity; + +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.ui.base.BaseActivity; + +public class RedirectImportKeysActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setFullScreenDialogClose(Activity.RESULT_CANCELED, true); + final Intent intent = new Intent(this, org.sufficientlysecure.keychain.ui.ImportKeysActivity.class); + + new AlertDialog.Builder(this) + .setTitle("Import key attempt") + .setMessage("You scanned a fingerprint with another app, please scan with Openkeychain directly to be safe" ) + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // intent directly to ImportKeyChain activity + startActivity(intent); + } + }) + .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // close window + finish(); + } + }) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); + } + + @Override + protected void initLayout() { + setContentView(R.layout.redirect_import_keys_activity); + } +}
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/redirect_import_keys_activity.xml b/OpenKeychain/src/main/res/layout/redirect_import_keys_activity.xml new file mode 100644 index 000000000..2f63d143d --- /dev/null +++ b/OpenKeychain/src/main/res/layout/redirect_import_keys_activity.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools"> + + <include + android:id="@+id/toolbar_include" + layout="@layout/toolbar_standalone" /> + + <!-- + fitsSystemWindows and layout_marginTop from + https://medium.com/@ngdelamo/using-drawerlayout-the-material-way-i-716bba2b5705 + --> + <LinearLayout + android:layout_below="@id/toolbar_include" + android:fitsSystemWindows="true" + android:layout_marginTop="@dimen/minus_statusbar_height" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <include layout="@layout/notify_area" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:id="@+id/import_keys_top_layout" + android:visibility="gone" + tools:visibility="visible"> + + <FrameLayout + android:id="@+id/import_keys_top_container" + android:layout_width="match_parent" + android:layout_height="64dp" + android:orientation="vertical" /> + + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + </LinearLayout> + + <FrameLayout + android:id="@+id/import_keys_list_container" + android:layout_width="match_parent" + android:layout_height="0dp" + android:orientation="vertical" + android:layout_weight="1" /> + + <RelativeLayout + android:id="@+id/import_footer" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <View + android:id="@+id/import_divider" + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + <RelativeLayout + android:id="@+id/import_snackbar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignBottom="@id/import_import" /> + + </RelativeLayout> + </LinearLayout> +</RelativeLayout> diff --git a/OpenKeychain/src/main/res/values-w820dp/dimens.xml b/OpenKeychain/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 000000000..63fc81644 --- /dev/null +++ b/OpenKeychain/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ +<resources> + <!-- Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> + <dimen name="activity_horizontal_margin">64dp</dimen> +</resources> diff --git a/OpenKeychain/src/main/res/values/dimens.xml b/OpenKeychain/src/main/res/values/dimens.xml index 2aae06e2e..254dc02bb 100644 --- a/OpenKeychain/src/main/res/values/dimens.xml +++ b/OpenKeychain/src/main/res/values/dimens.xml @@ -5,4 +5,7 @@ <dimen name="big_toolbar">120dp</dimen> <dimen name="huge_toolbar">222dp</dimen> <dimen name="minus_statusbar_height">0dp</dimen> + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 70db4029b..acc0c7f20 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1740,4 +1740,6 @@ <item>50 EUR</item> <item>100 EUR</item> </string-array> + <string name="title_activity_redirect_key">RedirectKeyActivity</string> + <string name="action_settings">Settings</string> </resources> |