mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Description for error API #49
This commit is contained in:
@@ -1,15 +1,22 @@
|
||||
package com.keepassdroid.dialogs;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.kunzisoft.keepass.R;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class UnavailableFeatureDialogFragment extends DialogFragment {
|
||||
|
||||
private static final String MIN_REQUIRED_VERSION_ARG = "MIN_REQUIRED_VERSION_ARG";
|
||||
@@ -29,20 +36,55 @@ public class UnavailableFeatureDialogFragment extends DialogFragment {
|
||||
if (getArguments() != null && getArguments().containsKey(MIN_REQUIRED_VERSION_ARG))
|
||||
minVersionRequired = getArguments().getInt(MIN_REQUIRED_VERSION_ARG);
|
||||
|
||||
assert getActivity() != null;
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View rootView = inflater.inflate(R.layout.unavailable_feature, null);
|
||||
TextView messageView = rootView.findViewById(R.id.unavailable_feature_message);
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
|
||||
String message = getString(R.string.unavailable_feature_text).concat("\n");
|
||||
if(Build.VERSION.SDK_INT < minVersionRequired)
|
||||
message = message.concat(getString(R.string.unavailable_feature_version,
|
||||
Build.VERSION.SDK_INT,
|
||||
minVersionRequired));
|
||||
else
|
||||
message = message.concat(getString(R.string.unavailable_feature_hardware));
|
||||
SpannableStringBuilder message = new SpannableStringBuilder();
|
||||
message.append(getString(R.string.unavailable_feature_text))
|
||||
.append("\n");
|
||||
if(Build.VERSION.SDK_INT < minVersionRequired) {
|
||||
message.append(getString(R.string.unavailable_feature_version,
|
||||
androidNameFromApiNumber(Build.VERSION.SDK_INT),
|
||||
androidNameFromApiNumber(minVersionRequired)));
|
||||
message.append("\n\n")
|
||||
.append(Html.fromHtml("<a href=\"https://source.android.com/setup/build-numbers\">CodeNames</a>"));
|
||||
} else
|
||||
message.append(getString(R.string.unavailable_feature_hardware));
|
||||
|
||||
builder.setMessage(message)
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) { }
|
||||
});
|
||||
messageView.setText(message);
|
||||
messageView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
builder.setView(rootView)
|
||||
.setPositiveButton(android.R.string.ok, (dialog, id) -> { });
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
private String androidNameFromApiNumber(int apiNumber) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Field[] fields = Build.VERSION_CODES.class.getFields();
|
||||
for (Field field : fields) {
|
||||
String fieldName = field.getName();
|
||||
int fieldValue = -1;
|
||||
try {
|
||||
fieldValue = field.getInt(new Object());
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (fieldValue == apiNumber) {
|
||||
builder.append(fieldName).append(" ");
|
||||
break;
|
||||
}
|
||||
}
|
||||
builder.append("(API ");
|
||||
builder.append(apiNumber).append(")");
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
15
app/src/main/res/layout/unavailable_feature.xml
Normal file
15
app/src/main/res/layout/unavailable_feature.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingBottom="0dp" >
|
||||
<TextView android:id="@+id/unavailable_feature_message"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
@@ -225,7 +225,7 @@
|
||||
<string name="fingerprint_delete_all_summary">Supprimer toutes les clés de chiffrement liées à la reconnaissance des empreintes digitales</string>
|
||||
<string name="fingerprint_delete_all_warning">Êtes-vous sûr de vouloir supprimer toutes les clés liées aux empreintes digitales?</string>
|
||||
<string name="unavailable_feature_text">Impossible de démarrer cette fonctionnalité.</string>
|
||||
<string name="unavailable_feature_version">Votre version Android %1$d n\'est pas la version minimale %2$d requise.</string>
|
||||
<string name="unavailable_feature_version">Votre version Android %1$s n\'est pas la version minimale %2$s requise.</string>
|
||||
<string name="unavailable_feature_hardware">Le matériel n\'est pas détecté.</string>
|
||||
<string name="file_name">Nom de fichier</string>
|
||||
<string name="path">Chemin</string>
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
<string name="fingerprint_delete_all_summary">Delete all encryption keys related to fingerprint recognition</string>
|
||||
<string name="fingerprint_delete_all_warning">Are you sure you want to delete all the keys related to fingerprints?</string>
|
||||
<string name="unavailable_feature_text">Can not start this feature.</string>
|
||||
<string name="unavailable_feature_version">Your Android version %1$d is not the minimum version %2$d required.</string>
|
||||
<string name="unavailable_feature_version">Your Android version %1$s is not the minimum version %2$s required.</string>
|
||||
<string name="unavailable_feature_hardware">The hardware is not detected.</string>
|
||||
<string name="file_name">File name</string>
|
||||
<string name="path">Path</string>
|
||||
|
||||
Reference in New Issue
Block a user