package cn.ccsu.ShareFV; import cn.ccsu.ShareFV.R; import cn.ccsu.util.IJettyToast; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; import android.widget.TextView; public class SdCardUnavailableActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.screen_sd_unavailable); refreshSDState(); Button btn = (Button) findViewById(R.id.retry); btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { doRetry(v); } }); } public static void show(Context context) { final Intent intent = new Intent(context, SdCardUnavailableActivity.class); context.startActivity(intent); } public void doRetry(View v) { if (isExternalStorageAvailable()) { IJetty.show(this); return; } IJettyToast.showQuickToast(this, R.string.sd_not_available); refreshSDState(); } public static boolean isExternalStorageAvailable() { return Environment.MEDIA_MOUNTED.equals(Environment .getExternalStorageState()); } private void refreshSDState() { TextView message = (TextView) findViewById(R.id.message); String header = getString(R.string.header_sd_media) + "\n\n"; String state = Environment.getExternalStorageState(); if (Environment.MEDIA_REMOVED.equals(state)) { message.setText(header + getString(R.string.sd_media_removed)); return; } if (Environment.MEDIA_UNMOUNTED.equals(state)) { message.setText(header + getString(R.string.sd_media_unmounted)); return; } if (Environment.MEDIA_CHECKING.equals(state)) { message.setText(header + getString(R.string.sd_media_checking)); return; } if (Environment.MEDIA_NOFS.equals(state)) { message.setText(header + getString(R.string.sd_media_nofs)); return; } if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { message.setText(header + getString(R.string.sd_media_mounted_read_only)); return; } if (Environment.MEDIA_SHARED.equals(state)) { message.setText(header + getString(R.string.sd_media_shared)); return; } if (Environment.MEDIA_BAD_REMOVAL.equals(state)) { message.setText(header + getString(R.string.sd_media_bad_removal)); return; } if (Environment.MEDIA_UNMOUNTABLE.equals(state)) { message.setText(header + getString(R.string.sd_media_unmountable)); return; } message.setText(header + getString(R.string.sd_unknown, state)); } }