package cl.monsoon.s1next.view.activity;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.common.base.Optional;
import javax.inject.Inject;
import cl.monsoon.s1next.App;
import cl.monsoon.s1next.R;
import cl.monsoon.s1next.data.api.model.ThreadLink;
import cl.monsoon.s1next.data.pref.ThemeManager;
import cl.monsoon.s1next.view.dialog.QuotePostPageParserDialogFragment;
import cl.monsoon.s1next.view.dialog.ThreadLinkInvalidPromptDialogFragment;
/**
* An Activity to detect whether the thread link (URI) from Intent is valid.
* Also show prompt if the thread corresponding to url do not exist.
* <p>
* This Activity is only used for Intent filter.
*/
public final class PostListGatewayActivity extends FragmentActivity {
@Inject
ThemeManager mThemeManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
// default theme for this Activity is light theme
if (App.getAppComponent(this).getThemeManager().isDarkTheme()) {
setTheme(ThemeManager.TRANSLUCENT_THEME_DARK);
}
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
Uri uri = getIntent().getData();
Optional<ThreadLink> threadLink = ThreadLink.parse(uri.toString());
if (threadLink.isPresent()) {
ThreadLink threadLinkInstance = threadLink.get();
if (threadLinkInstance.getQuotePostId().isPresent()) {
QuotePostPageParserDialogFragment.newInstance(threadLinkInstance).show(
getSupportFragmentManager(), QuotePostPageParserDialogFragment.TAG);
} else {
PostListActivity.startPostListActivity(this, threadLinkInstance);
finish();
}
} else {
ThreadLinkInvalidPromptDialogFragment.newInstance(this,
R.string.dialog_message_invalid_or_unsupported_link).show(
getSupportFragmentManager(), ThreadLinkInvalidPromptDialogFragment.TAG);
}
}
}
}