package com.jdroid.android.uri; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import com.google.firebase.appindexing.Action; import com.jdroid.android.application.AbstractApplication; import com.jdroid.java.utils.LoggerUtils; import org.slf4j.Logger; public abstract class AbstractUriHandler implements UriHandler { private final static Logger LOGGER = LoggerUtils.getLogger(AbstractUriHandler.class); @Override public Boolean matches(Uri uri) { return true; } @Override public void logUriNotMatch(Uri uri) { AbstractApplication.get().getExceptionHandler().logWarningException(getClass().getSimpleName() + " matches the default intent: " + uri.toString()); } @Override public Intent createMainIntent(Context context, Uri uri) { return null; } @Override public Intent createDefaultIntent(Context context, Uri uri) { return new Intent(context, AbstractApplication.get().getHomeActivityClass()); } @Override public String getUrl(Activity activity) { return null; } @Override public Boolean isAppIndexingEnabled(Activity activity) { return true; } @Override public Action getAppIndexingAction(Activity activity) { if (isAppIndexingEnabled(activity)) { String url = getUrl(activity); if (url != null) { String actionType = Action.Builder.VIEW_ACTION; String title = getAppIndexingTitle(activity); LOGGER.debug("New App Indexing Action created. Type: " + actionType + " | Title: " + title + " | Url: " + url); return new Action.Builder(actionType).setObject(title, url).build(); } } return null; } protected String getAppIndexingTitle(Activity activity) { return activity.getTitle().toString(); } }