Не отображается диалоговое окно EULA после обновления приложения - PullRequest
0 голосов
/ 01 октября 2019

Диалоговое окно EULA отображается правильно, пока не произойдет обновление приложения. Если пользователь уже принял диалоговое окно EULA, оно не должно отображаться после обновления.

public class AppEULA {
    private String EULA_PREFIX = "appeula";
    private Activity mContext;

    private static final String TAG = MainActivity.class.getSimpleName();

    public AppEULA(Activity context) {
        mContext = context;
    }

    private PackageInfo getPackageInfo() {
        PackageInfo info = null;
        try {
            info = mContext.getPackageManager().getPackageInfo(
                    mContext.getPackageName(), PackageManager.GET_ACTIVITIES);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return info;
    }

    public void show() {
        PackageInfo versionInfo = null;
        try {
            versionInfo = mContext.getPackageManager()
                    .getPackageInfo(mContext.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

        // The eulaKey changes every time you increment the version number in
        // the AndroidManifest.xml
        final String eulaKey = EULA_PREFIX + versionInfo.versionCode;
        final SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(mContext);

        boolean bAlreadyAccepted = prefs.getBoolean(eulaKey, false);
        if (bAlreadyAccepted == false) {
         ....
        show dialog


 .setPositiveButton(R.string.accept,
                            new Dialog.OnClickListener() {

                                @Override
                                public void onClick(
                                        DialogInterface dialogInterface, int i) {
                                    // Mark this version as read.
                                    SharedPreferences.Editor editor = prefs
                                            .edit();
                                    editor.putBoolean(eulaKey, true);
                                    editor.commit();

                                    // Close dialog
                                    dialogInterface.dismiss();

Я ожидаю, что диалоговое окно EULA не будет отображаться после обновления приложения, если пользователь уже принял его.

...