package com.maxiee.heartbeat.ui; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import com.maxiee.heartbeat.R; import com.maxiee.heartbeat.backup.BackupManager; import com.maxiee.heartbeat.data.DataManager; import com.maxiee.heartbeat.database.utils.EventUtils; import com.maxiee.heartbeat.database.utils.LabelUtils; import com.maxiee.heartbeat.database.utils.ThoughtUtils; import com.maxiee.heartbeat.model.Label; import com.maxiee.heartbeat.model.Thoughts; /** * Created by maxiee on 15-7-29. */ public class EntryActivity extends Activity { public static final String TAG = EntryActivity.class.getSimpleName(); public static final String IS_FIRST_USE = "is_first"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_entry); if (BackupManager.needTransGallery(EntryActivity.this)) { Log.d(TAG, "Need trans!"); new TransGalleryTask().execute(); } else { Log.d(TAG, "Need not trans!"); new StartTask().execute(); } } private boolean isFirstUse() { SharedPreferences sp = getSharedPreferences("hb", MODE_PRIVATE); boolean isFirst = sp.getBoolean(IS_FIRST_USE, true); if (isFirst) { SharedPreferences.Editor editor = sp.edit(); editor.putBoolean(IS_FIRST_USE, false); editor.apply(); return true; } return false; } private class TransGalleryTask extends AsyncTask<Void, Void, Void> { ProgressDialog progressDialog; @Override protected void onPreExecute() { progressDialog = new ProgressDialog(EntryActivity.this); progressDialog.setMessage(getString(R.string.trans_gallery)); progressDialog.setCancelable(false); progressDialog.show(); } @Override protected Void doInBackground(Void... params) { BackupManager.backupSD(EntryActivity.this); BackupManager.transGallery(EntryActivity.this); return null; } @Override protected void onPostExecute(Void aVoid) { progressDialog.cancel(); new StartTask().execute(); } } private class StartTask extends AsyncTask<Void, Void, Void>{ @Override protected Void doInBackground(Void... params) { // 首次使用添加引导教程 if (DataManager.isEventEmpty(EntryActivity.this) && isFirstUse()) { Log.d("maxiee", "捕捉到一只新用户!生成引导教程..."); addTutorial(); } return null; } @Override protected void onPostExecute(Void aVoid) { // 手势解锁 SharedPreferences sp = getSharedPreferences("hb", Context.MODE_PRIVATE); String pattern = sp.getString("pattern", ""); if (pattern.isEmpty()) { Intent i = new Intent(EntryActivity.this, MainActivity.class); startActivity(i); finish(); } else { Intent i = new Intent(EntryActivity.this, PatternActivity.class); i.putExtra(PatternActivity.ACTION, PatternActivity.VERIFY); startActivity(i); finish(); } } } private void addTutorial() { Label label = LabelUtils.addLabel(this, getString(R.string.app_name)); long eventKey; // Tut4 eventKey = EventUtils.addEvent(this, getString(R.string.tut_4_event), System.currentTimeMillis()).getId(); LabelUtils.addRelation(this, eventKey, label.getId()); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_4_thought_1), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_4_thought_2), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_4_thought_3), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_4_thought_4), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); // Tut3 eventKey = EventUtils.addEvent(this, getString(R.string.tut_3_event), System.currentTimeMillis()).getId(); LabelUtils.addRelation(this, eventKey, label.getId()); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_3_thought_1), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_3_thought_2), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); // Tut2 eventKey = EventUtils.addEvent(this, getString(R.string.tut_2_event), System.currentTimeMillis()).getId(); LabelUtils.addRelation(this, eventKey, label.getId()); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_2_thought_1), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_2_thought_2), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); // Tut1 eventKey = EventUtils.addEvent(this, getString(R.string.tut_1_event), System.currentTimeMillis()).getId(); LabelUtils.addRelation(this, eventKey, label.getId()); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_1_thought_1), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_1_thought_2), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); ThoughtUtils.addThought( this, eventKey, getString(R.string.tut_1_thought_3), Thoughts.Thought.HAS_NO_RES, Thoughts.Thought.HAS_NO_PATH ); } }