protected void onCreate()

in AutofillFramework/Application/src/main/java/com/example/android/autofill/app/edgecases/MultiplePartitionsActivity.java [54:107]


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.multiple_partitions_activity);
        mCustomVirtualView = findViewById(R.id.custom_view);
        mCredentialsPartition =
                mCustomVirtualView.addPartition(getString(R.string.partition_credentials));
        mCredentialsPartition.addLine("username", View.AUTOFILL_TYPE_TEXT,
                getString(R.string.username_label),
                "         ", false, View.AUTOFILL_HINT_USERNAME);
        mCredentialsPartition.addLine("password", View.AUTOFILL_TYPE_TEXT,
                getString(R.string.password_label),
                "         ", true, View.AUTOFILL_HINT_PASSWORD);
        int ccExpirationType = View.AUTOFILL_TYPE_DATE;
        // TODO: add a checkbox to switch between text / date instead
        Intent intent = getIntent();
        if (intent != null) {
            int newType = intent.getIntExtra("dateType", -1);
            if (newType != -1) {
                ccExpirationType = newType;
                String typeMessage = getString(R.string.message_credit_card_expiration_type,
                        Util.getAutofillTypeAsString(ccExpirationType));
                // TODO: display type in a header or proper status widget
                Toast.makeText(getApplicationContext(), typeMessage, Toast.LENGTH_LONG).show();
            }
        }
        mCcPartition = mCustomVirtualView.addPartition(getString(R.string.partition_credit_card));
        mCcPartition.addLine("ccNumber", View.AUTOFILL_TYPE_TEXT,
                getString(R.string.credit_card_number_label),
                "         ", true, View.AUTOFILL_HINT_CREDIT_CARD_NUMBER);
        mCcPartition.addLine("ccDay", View.AUTOFILL_TYPE_TEXT,
                getString(R.string.credit_card_expiration_day_label),
                "         ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY);
        mCcPartition.addLine("ccMonth", ccExpirationType,
                getString(R.string.credit_card_expiration_month_label),
                "         ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH);
        mCcPartition.addLine("ccYear", View.AUTOFILL_TYPE_TEXT,
                getString(R.string.credit_card_expiration_year_label),
                "         ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR);
        mCcPartition.addLine("ccDate", ccExpirationType,
                getString(R.string.credit_card_expiration_date_label),
                "         ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE);
        mCcPartition.addLine("ccSecurityCode", View.AUTOFILL_TYPE_TEXT,
                getString(R.string.credit_card_security_code_label),
                "         ", true, View.AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE);
        mAutofillManager = getSystemService(AutofillManager.class);
        findViewById(R.id.clear).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                resetFields();
                mCustomVirtualView.resetPositions();
                mAutofillManager.cancel();
            }
        });
    }