package com.rockchip.alexa.jacky.activity; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.support.v4.app.ActivityCompat; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatDelegate; import android.util.Log; import android.view.MenuItem; import android.widget.Toast; import com.rockchip.alexa.jacky.R; import static com.rockchip.alexa.jacky.activity.WifiListActivity.TAG; /** * Created by cjs on 2017/5/8. */ public class BasePreferenceActivity extends PreferenceActivity{ public Context mContext; public Preference prefCheckVersion; public Preference prefDownload; private static final int REQUEST_EXTERNAL_STORAGE = 1; private static String[] PERMISSIONS_STORAGE = { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupActionBar(); mContext = this; verifyStoragePermissions(); } public void verifyStoragePermissions() { Log.d(TAG, "verifyStoragePermissions"); // Check if we have write permission int permission = ActivityCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE); if (permission != PackageManager.PERMISSION_GRANTED) { // We don't have permission so prompt the user ActivityCompat.requestPermissions((Activity)mContext, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE); } } public void setupActionBar() { ActionBar actionBar = AppCompatDelegate.create(this, null).getSupportActionBar(); if (actionBar != null) { // Show the Up button in the action bar. actionBar.setTitle(R.string.pref_activity_update_title); actionBar.setDisplayHomeAsUpEnabled(true); } } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { this.onBackPressed(); return true; } return super.onOptionsItemSelected(item); } public void showToastOnUiThread(final String text, final int duration){ this.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(mContext,text,duration).show(); } }); } }