Link to privacy policies

This commit is contained in:
M66B
2021-06-26 09:05:25 +02:00
parent 749d791639
commit 6eed965e73
13 changed files with 153 additions and 22 deletions

View File

@@ -172,6 +172,7 @@ public class EmailProvider implements Parcelable {
provider.oauth.authorizationEndpoint = xml.getAttributeValue(null, "authorizationEndpoint");
provider.oauth.tokenEndpoint = xml.getAttributeValue(null, "tokenEndpoint");
provider.oauth.redirectUri = xml.getAttributeValue(null, "redirectUri");
provider.oauth.privacy = xml.getAttributeValue(null, "privacy");
} else
throw new IllegalAccessException(name);
} else if (eventType == XmlPullParser.END_TAG) {
@@ -802,5 +803,6 @@ public class EmailProvider implements Parcelable {
String authorizationEndpoint;
String tokenEndpoint;
String redirectUri;
String privacy;
}
}

View File

@@ -32,6 +32,7 @@ import android.database.Cursor;
import android.graphics.Paint;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.text.TextUtils;
@@ -66,6 +67,8 @@ public class FragmentGmail extends FragmentBase {
private ViewGroup view;
private ScrollView scroll;
private TextView tvTitle;
private TextView tvPrivacy;
private Button btnGrant;
private TextView tvGranted;
private EditText etName;
@@ -80,6 +83,8 @@ public class FragmentGmail extends FragmentBase {
private Group grpError;
private static final String PRIVACY_URI = "https://policies.google.com/privacy";
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -90,6 +95,8 @@ public class FragmentGmail extends FragmentBase {
scroll = view.findViewById(R.id.scroll);
// Get controls
tvTitle = view.findViewById(R.id.tvTitle);
tvPrivacy = view.findViewById(R.id.tvPrivacy);
btnGrant = view.findViewById(R.id.btnGrant);
tvGranted = view.findViewById(R.id.tvGranted);
etName = view.findViewById(R.id.etName);
@@ -106,6 +113,14 @@ public class FragmentGmail extends FragmentBase {
// Wire controls
tvPrivacy.setPaintFlags(tvPrivacy.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
tvPrivacy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.view(v.getContext(), Uri.parse(PRIVACY_URI), false);
}
});
btnGrant.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -170,6 +185,7 @@ public class FragmentGmail extends FragmentBase {
// Initialize
Helper.setViewsEnabled(view, false);
tvTitle.setText(getString(R.string.title_setup_oauth_rationale, "Gmail"));
pbSelect.setVisibility(View.GONE);
grpError.setVisibility(View.GONE);

View File

@@ -25,6 +25,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Paint;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
@@ -92,12 +93,14 @@ import static eu.faircode.email.ServiceAuthenticator.AUTH_TYPE_OAUTH;
public class FragmentOAuth extends FragmentBase {
private String id;
private String name;
private String privacy;
private boolean askAccount;
private ViewGroup view;
private ScrollView scroll;
private TextView tvGrantHint;
private TextView tvTitle;
private TextView tvPrivacy;
private EditText etName;
private EditText etEmail;
private CheckBox cbUpdate;
@@ -122,6 +125,7 @@ public class FragmentOAuth extends FragmentBase {
Bundle args = getArguments();
id = args.getString("id");
name = args.getString("name");
privacy = args.getString("privacy");
askAccount = args.getBoolean("askAccount", false);
}
@@ -135,7 +139,8 @@ public class FragmentOAuth extends FragmentBase {
scroll = view.findViewById(R.id.scroll);
// Get controls
tvGrantHint = view.findViewById(R.id.tvGrantHint);
tvTitle = view.findViewById(R.id.tvTitle);
tvPrivacy = view.findViewById(R.id.tvPrivacy);
etName = view.findViewById(R.id.etName);
etEmail = view.findViewById(R.id.etEmail);
cbUpdate = view.findViewById(R.id.cbUpdate);
@@ -153,6 +158,15 @@ public class FragmentOAuth extends FragmentBase {
// Wire controls
tvPrivacy.setVisibility(TextUtils.isEmpty(privacy) ? View.GONE : View.VISIBLE);
tvPrivacy.setPaintFlags(tvPrivacy.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
tvPrivacy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.view(v.getContext(), Uri.parse(privacy), false);
}
});
btnOAuth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -168,7 +182,7 @@ public class FragmentOAuth extends FragmentBase {
});
// Initialize
tvGrantHint.setText(getString(R.string.title_setup_oauth_rationale, name));
tvTitle.setText(getString(R.string.title_setup_oauth_rationale, name));
etName.setVisibility(askAccount ? View.VISIBLE : View.GONE);
etEmail.setVisibility(askAccount ? View.VISIBLE : View.GONE);
pbOAuth.setVisibility(View.GONE);

View File

@@ -21,6 +21,7 @@ package eu.faircode.email;
import android.content.Context;
import android.content.Intent;
import android.graphics.Paint;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
@@ -60,6 +61,7 @@ public class FragmentQuickSetup extends FragmentBase {
private ViewGroup view;
private ScrollView scroll;
private TextView tvPrivacy;
private EditText etName;
private EditText etEmail;
private TextInputLayout tilPassword;
@@ -83,6 +85,8 @@ public class FragmentQuickSetup extends FragmentBase {
private Group grpSetup;
private Group grpError;
private static final String PRIVACY_URI = "https://www.mozilla.org/privacy/";
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -93,6 +97,7 @@ public class FragmentQuickSetup extends FragmentBase {
scroll = view.findViewById(R.id.scroll);
// Get controls
tvPrivacy = view.findViewById(R.id.tvPrivacy);
etName = view.findViewById(R.id.etName);
etEmail = view.findViewById(R.id.etEmail);
tilPassword = view.findViewById(R.id.tilPassword);
@@ -118,6 +123,14 @@ public class FragmentQuickSetup extends FragmentBase {
// Wire controls
tvPrivacy.setPaintFlags(tvPrivacy.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
tvPrivacy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.view(v.getContext(), Uri.parse(PRIVACY_URI), false);
}
});
tilPassword.setHintEnabled(false);
tilPassword.getEditText().setOnEditorActionListener(new TextView.OnEditorActionListener() {

View File

@@ -195,6 +195,7 @@ public class FragmentSetup extends FragmentBase {
.setIntent(new Intent(ActivitySetup.ACTION_QUICK_OAUTH)
.putExtra("id", provider.id)
.putExtra("name", provider.description)
.putExtra("privacy", provider.oauth.privacy)
.putExtra("askAccount", provider.oauth.askAccount));
int resid = context.getResources()
.getIdentifier("provider_" + provider.id, "drawable", context.getPackageName());