package net.rdrei.android.scdl2.ui; import android.os.Bundle; import android.view.ViewGroup; import android.widget.TextView; import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.Tracker; import com.google.inject.Inject; import net.rdrei.android.scdl2.R; import roboguice.activity.RoboActivity; import roboguice.inject.InjectExtra; import roboguice.inject.InjectView; public class TrackErrorActivity extends RoboActivity { private static final String ANALYTICS_TAG = "TRACK_ERROR"; public static enum ErrorCode { UNSUPPORTED_URL, NO_WRITE_PERMISSION, UNKNOWN_ERROR, NO_MARKET, NOT_FOUND, PLAYLIST, NETWORK_ERROR } public static final String EXTRA_ERROR_CODE = "error_code"; @InjectView(R.id.error_message) private TextView mErrorTextView; @InjectView(R.id.main_layout) private ViewGroup mMainLayout; @InjectExtra(EXTRA_ERROR_CODE) private ErrorCode mErrorCode; @Inject private AdViewManager mAdViewManager; @Inject private Tracker mTracker; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.track_error); setErrorText(); mTracker.send(new HitBuilders.EventBuilder() .setCategory(ANALYTICS_TAG) .setAction(mErrorCode.toString()) .build() ); if (savedInstanceState == null) { mAdViewManager.addToViewIfRequired(mMainLayout); } } private void setErrorText() { final int errorMessage; switch (mErrorCode) { case UNSUPPORTED_URL: errorMessage = R.string.track_error_unsupported_url; break; case NO_WRITE_PERMISSION: errorMessage = R.string.track_error_no_write_permission; break; case NO_MARKET: errorMessage = R.string.track_error_no_market; break; case NOT_FOUND: errorMessage = R.string.track_error_not_found; break; case NETWORK_ERROR: errorMessage = R.string.track_error_network; break; case PLAYLIST: errorMessage = R.string.track_error_unsupported_playlist; break; default: errorMessage = R.string.track_error_unknown; } mErrorTextView.setText(errorMessage); } }