package com.example.ipcplayer.activity;
import com.baidu.android.pushservice.PushConstants;
import com.baidu.android.pushservice.PushManager;
import com.example.ipcplayer.R;
import com.example.ipcplayer.module.SampleActivity;
import com.example.ipcplayer.provider.MusicDBManager;
import com.example.ipcplayer.push.Utils;
import com.example.ipcplayer.setting.Config;
import com.example.ipcplayer.utils.LogUtil;
import com.example.ipcplayer.utils.StorageUtil;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class SplashActivity extends Activity{
private static final String TAG = SplashActivity.class.getSimpleName();
private Context mContext;
private StartTask mLoadingTask;
private long mStartTime;
private static final long DELAY_TIME = 1000 ;
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 全屏
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
// WindowManager.LayoutParams. FLAG_FULLSCREEN);
setContentView(R.layout.welcome);
mContext = this;
if (Config.LOAD_DATA) {
loadDataAndInitActivity();
} else {
showHelporMain(true);
}
startPushService();
}
private void startPushService(){
LogUtil.d("zhou","start push");
PushManager.startWork(getApplicationContext(),
PushConstants.LOGIN_TYPE_API_KEY, Utils.getMetaValue(this, "api_key"));
}
private void loadDataAndInitActivity(){
mLoadingTask = new StartTask();
mLoadingTask.execute("loading local data ...");
}
private void showHelporMain(boolean result){
if (result) {
if (shouldShowHelp()) {
Intent intent = new Intent(this, HelpActivity.class);
mContext.startActivity(intent);
} else if(showSample()){
LogUtil.d("start sampleActivity");
Intent intent = new Intent(this,SampleActivity.class);
mContext.startActivity(intent);
}else
{
Intent intent = new Intent(this, MainActivity.class);
mContext.startActivity(intent);
}
finish();
}
}
private boolean showSample(){
return Config.SHOW_SAMPLE;
}
private boolean shouldShowHelp(){
return Config.SHOW_HELP ;
}
@Override
protected void onDestroy() {
super.onDestroy();
if(mLoadingTask != null){
mLoadingTask = null;
}
}
private class StartTask extends AsyncTask<String, Void, Boolean>{
@Override
protected void onPreExecute() {
super.onPreExecute();
mStartTime = System.currentTimeMillis();
LogUtil.d(TAG + " start loading data time: " + mStartTime);
}
@Override
protected Boolean doInBackground(String... arg0) {
LogUtil.d(TAG + " loading data ...");
if (StorageUtil.isExternalStorageAvailable()) {
MusicDBManager.getInstance(mContext).insertLocalData();
return true;
}
return false;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
LogUtil.d(TAG + " loading data result: " + result.toString());
final boolean loadResult = result;
long taskTime = System.currentTimeMillis() - mStartTime;
LogUtil.d(TAG + " loading data needs time: " + taskTime);
long delayTime = DELAY_TIME - taskTime;
LogUtil.d(TAG + " delayTime: " + delayTime);
if (delayTime > 0) {
mHandler.postDelayed(new Runnable(){
@Override
public void run() {
showHelporMain(loadResult);
}
}, delayTime);
}else {
showHelporMain(loadResult);
}
}
}
}