diff --git a/diycode-app/src/main/java/com/example/wenwei/diycode/activity/MainActivity.java b/diycode-app/src/main/java/com/example/wenwei/diycode/activity/MainActivity.java index f9d3e5a..f03121a 100644 --- a/diycode-app/src/main/java/com/example/wenwei/diycode/activity/MainActivity.java +++ b/diycode-app/src/main/java/com/example/wenwei/diycode/activity/MainActivity.java @@ -28,6 +28,7 @@ import com.example.wenwei.diycode.fragment.TopicListFragment; import com.example.wenwei.diycode.test.TextFragment; import com.example.wenwei.diycode.data.cache.DataCache; +import com.example.wenwei.diycode.utils.DBManager; import com.example.wenwei.diycode_sdk.api.login.event.LogoutEvent; import com.example.wenwei.diycode_sdk.api.user.bean.User; import com.example.wenwei.diycode_sdk.api.user.bean.UserDetail; @@ -53,6 +54,10 @@ public class MainActivity extends BaseActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setEnableSwipeGesture(false); + + DBManager dbManager = new DBManager(this); + dbManager.open(); + dbManager.close(); } @Override diff --git a/diycode-app/src/main/java/com/example/wenwei/diycode/utils/DBManager.java b/diycode-app/src/main/java/com/example/wenwei/diycode/utils/DBManager.java new file mode 100644 index 0000000..4936544 --- /dev/null +++ b/diycode-app/src/main/java/com/example/wenwei/diycode/utils/DBManager.java @@ -0,0 +1,71 @@ +package com.example.wenwei.diycode.utils; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.os.Environment; +import android.util.Log; + +import com.example.wenwei.diycode.R; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +/** + * Created by liwenwei on 6/8/2018. + */ + +public class DBManager { + + private final int BUFFER_SIZE = 400000; + private String DB_PATH; + private final String DB_NAME = "countries.db"; + + private SQLiteDatabase database; + private Context context; + + public DBManager(Context context) { + this.context = context; + DB_PATH = "/data" + + Environment.getDataDirectory().getAbsolutePath() + "/" + + context.getPackageName(); + } + + public void open() { + database = open(DB_PATH + "/" + DB_NAME); + } + + private SQLiteDatabase open(String dbFile) { + File file = new File(dbFile); + if (!file.exists()) { + try { + InputStream is = context.getResources().openRawResource(R.raw.countries); + FileOutputStream fos = new FileOutputStream(dbFile); + byte[] buffer = new byte[BUFFER_SIZE]; + int len; + while ((len = is.read(buffer)) > 0) { + fos.write(buffer, 0, len); + } + + is.close(); + fos.close(); + } catch (FileNotFoundException e) { + Log.e("Database", "File not found"); + e.printStackTrace(); + } catch (IOException e) { + Log.e("Database", "IO exception"); + e.printStackTrace(); + } + } + SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbFile, null); + return db; + } + + public void close() { + if (this.database != null) { + this.database.close(); + } + } +} diff --git a/diycode-app/src/main/res/raw/countries b/diycode-app/src/main/res/raw/countries new file mode 100644 index 0000000..77b56e6 Binary files /dev/null and b/diycode-app/src/main/res/raw/countries differ