@Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setThemeAndContentView(R.layout.logtrackable_activity);
        binding = LogtrackableActivityBinding.bind(findViewById(R.id.logtrackable_activity_viewroot));

        date.init(findViewById(R.id.date), findViewById(R.id.time), null, getSupportFragmentManager());

        logType.setTextView(binding.type).setDisplayMapper(tt -> TextParam.text(tt.getLabel()));
        logType.setChangeListener(lt -> updateForNewType());
        logType.setValues(Trackable.getPossibleLogTypes());
        setLastUsedLogType();

        // get parameters
        final Bundle extras = getIntent().getExtras();

        if (extras != null) {
            geocode = extras.getString(Intents.EXTRA_GEOCODE);

            // Load geocache if we can
            if (StringUtils.isNotBlank(extras.getString(Intents.EXTRA_GEOCACHE))) {
                final Geocache tmpGeocache = DataStore.loadCache(extras.getString(Intents.EXTRA_GEOCACHE), LoadFlags.LOAD_CACHE_OR_DB);
                if (tmpGeocache != null) {
                    geocache = tmpGeocache;
                }
            }
            // Load Tracking Code
            if (StringUtils.isNotBlank(extras.getString(Intents.EXTRA_TRACKING_CODE))) {
                trackingCode = extras.getString(Intents.EXTRA_TRACKING_CODE);
            }
            // load brand (if given)
            if (extras.getInt(Intents.EXTRA_BRAND, -1) != -1) {
                brand = TrackableBrand.getById(extras.getInt(Intents.EXTRA_BRAND, -1));
            }
        }

        // no given data
        if (geocode == null) {
            showToast(res.getString(R.string.err_tb_display));
            finish();
            return;
        }

        refreshTrackable();
    }
How many times the warning popup for geocode not set should be displayed
main/src/main/java/cgeo/geocaching/log/LogTrackableActivity.java