#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
This commit is contained in:
Lubo Viluda
2016-03-20 11:52:36 +01:00
parent 556c04db82
commit 7efeebc638
6 changed files with 156 additions and 5 deletions

View File

@@ -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>

View File

@@ -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);
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>