diff --git a/chapter06_net/.gitignore b/.gitignore
similarity index 100%
rename from chapter06_net/.gitignore
rename to .gitignore
diff --git a/chapter04_sqlite/.idea/.name b/.idea/.name
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/.idea/.name
rename to .idea/.name
diff --git a/chapter06_net/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
similarity index 100%
rename from chapter06_net/.idea/codeStyles/Project.xml
rename to .idea/codeStyles/Project.xml
diff --git a/chapter06_net/.idea/gradle.xml b/.idea/gradle.xml
similarity index 100%
rename from chapter06_net/.idea/gradle.xml
rename to .idea/gradle.xml
diff --git a/chapter06_net/.idea/misc.xml b/.idea/misc.xml
similarity index 100%
rename from chapter06_net/.idea/misc.xml
rename to .idea/misc.xml
diff --git a/chapter06_net/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
similarity index 100%
rename from chapter06_net/.idea/runConfigurations.xml
rename to .idea/runConfigurations.xml
diff --git a/README.md b/README.md
deleted file mode 100644
index a8988a1..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# AndroidProject
-
diff --git a/chapter03_fragment/app/.gitignore b/app/.gitignore
similarity index 100%
rename from chapter03_fragment/app/.gitignore
rename to app/.gitignore
diff --git a/chapter06_net/app/build.gradle b/app/build.gradle
similarity index 94%
rename from chapter06_net/app/build.gradle
rename to app/build.gradle
index 1b8c071..bcb3316 100644
--- a/chapter06_net/app/build.gradle
+++ b/app/build.gradle
@@ -27,6 +27,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
/*引入OkHTTP*/
implementation "com.squareup.okhttp3:okhttp:4.2.2"
+ implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.12'
implementation 'org.conscrypt:conscrypt-android:2.2.1'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
diff --git a/chapter03_fragment/app/proguard-rules.pro b/app/proguard-rules.pro
similarity index 100%
rename from chapter03_fragment/app/proguard-rules.pro
rename to app/proguard-rules.pro
diff --git a/chapter03_fragment/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
similarity index 100%
rename from chapter03_fragment/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
rename to app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
diff --git a/chapter06_net/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
similarity index 92%
rename from chapter06_net/app/src/main/AndroidManifest.xml
rename to app/src/main/AndroidManifest.xml
index 9bc5ef0..e8bc712 100644
--- a/chapter06_net/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,8 +23,7 @@
+ android:enabled="true" />
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/MainActivity.java b/app/src/main/java/com/orangesale/cn/MainActivity.java
old mode 100755
new mode 100644
similarity index 67%
rename from chapter04_sqlite/app/src/main/java/com/orangesale/cn/MainActivity.java
rename to app/src/main/java/com/orangesale/cn/MainActivity.java
index 5575870..19de626
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/MainActivity.java
+++ b/app/src/main/java/com/orangesale/cn/MainActivity.java
@@ -1,79 +1,112 @@
-package com.orangesale.cn;
-
-import android.content.Intent;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Toast;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.orangesale.cn.activity.IndexActivity;
-import com.orangesale.cn.activity.RegisterActivity;
-import com.orangesale.cn.dataoperation.OrangeDatabase;
-
-public class MainActivity extends AppCompatActivity implements View.OnClickListener {
- private Button registerButton, loginButton;
- private EditText usernameText, paswdEdit;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.user_login);
- init();
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.register:
- Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
- startActivity(intent);
- break;
- case R.id.login:
- //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示
- if (validateLogin()) {
- Intent intent1 = new Intent(MainActivity.this, IndexActivity.class);
- Bundle bundle = new Bundle();
- OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
- bundle.putString("username", usernameText.getText().toString());
- bundle = orangeDatabase.queryUserInfo(orangeDatabase.getReadableDatabase(), bundle);
- intent1.putExtras(bundle);
- startActivity(intent1);
- } else {
- Toast.makeText(MainActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
- }
- break;
- }
- }
-
- //界面组件初始化
- private void init() {
- usernameText = findViewById(R.id.username);
- paswdEdit = findViewById(R.id.password);
- loginButton = findViewById(R.id.login);
- loginButton.setOnClickListener(this);
- registerButton = findViewById(R.id.register);
- registerButton.setOnClickListener(this);
- }
-
- /**
- * 登录验证
- *
- * @return
- */
- private boolean validateLogin() {
- String username = usernameText.getText().toString();
- String password = paswdEdit.getText().toString();
- OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
- SQLiteDatabase sqLiteDatabase = orangeDatabase.getReadableDatabase();
- Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=? and password=?", new String[]{username, password});
- if (cursor.getCount() > 0) {
- return true;
- }
- return false;
- }
-}
+package com.orangesale.cn;
+
+import android.content.Intent;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.os.Looper;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.orangesale.cn.activity.IndexActivity;
+import com.orangesale.cn.activity.RegisterActivity;
+import com.orangesale.cn.dataoperation.OrangeDatabase;
+import com.orangesale.cn.entity.OrangeUser;
+import com.orangesale.cn.netrequest.OkHttpUser;
+
+import java.io.IOException;
+
+public class MainActivity extends AppCompatActivity implements View.OnClickListener {
+ private Button registerButton, loginButton;
+ private EditText usernameText, paswdEdit;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.user_login);
+ init();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.register:
+ Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
+ startActivity(intent);
+ break;
+ case R.id.login:
+ //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示
+ Thread thread = new Thread(runnable);
+ thread.start();
+ break;
+ }
+
+ }
+
+ //界面组件初始化
+ private void init() {
+ usernameText = findViewById(R.id.username);
+ paswdEdit = findViewById(R.id.password);
+ loginButton = findViewById(R.id.login);
+ loginButton.setOnClickListener(this);
+ registerButton = findViewById(R.id.register);
+ registerButton.setOnClickListener(this);
+ }
+
+ /**
+ * 登录验证
+ *
+ * @return
+ */
+ private boolean validateLogin() {
+ String username = usernameText.getText().toString();
+ String password = paswdEdit.getText().toString();
+ OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
+ SQLiteDatabase sqLiteDatabase = orangeDatabase.getReadableDatabase();
+ Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=? and password=?", new String[]{username, password});
+ if (cursor.getCount() > 0) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 登录验证
+ */
+ Runnable runnable = new Runnable() {
+ @Override
+ public void run() {
+ String username = usernameText.getText().toString();
+ String password = paswdEdit.getText().toString();
+ OrangeUser orangeUser = new OrangeUser();
+ orangeUser.setUsername(username);
+ orangeUser.setPassword(password);
+ OkHttpUser okHttpUser = new OkHttpUser();
+ OrangeUser orangeUser1 = null;
+ try {
+ orangeUser1 = okHttpUser.userLogin(orangeUser);
+ if (orangeUser1 != null) {
+ Intent intent1 = new Intent(MainActivity.this, IndexActivity.class);
+ Bundle bundle = new Bundle();
+ bundle.putString("username", usernameText.getText().toString());
+ bundle.putString("password", orangeUser1.getPassword());
+ bundle.putString("city", orangeUser1.getCity());
+ bundle.putString("sex", orangeUser1.getSex());
+ intent1.putExtras(bundle);
+ startActivity(intent1);
+ } else {
+ //解决在子线程中调用Toast的异常情况处理
+ Looper.prepare();
+ Toast.makeText(MainActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
+ Looper.loop();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java b/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
rename to app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/activity/IndexActivity.java b/app/src/main/java/com/orangesale/cn/activity/IndexActivity.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/activity/IndexActivity.java
rename to app/src/main/java/com/orangesale/cn/activity/IndexActivity.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java b/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
similarity index 54%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
rename to app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
index 3edcd0c..2bcc114 100644
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
+++ b/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
@@ -1,10 +1,9 @@
package com.orangesale.cn.activity;
-import android.content.ContentValues;
import android.content.Intent;
-import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
+import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@@ -17,7 +16,10 @@ import androidx.appcompat.app.AppCompatActivity;
import com.lljjcoder.citypickerview.widget.CityPicker;
import com.orangesale.cn.R;
-import com.orangesale.cn.dataoperation.OrangeDatabase;
+import com.orangesale.cn.entity.OrangeUser;
+import com.orangesale.cn.netrequest.OkHttpUser;
+
+import java.io.IOException;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
private EditText usernameEdit, passwordEdit, surePasswordEdit;
@@ -60,7 +62,9 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
break;
case R.id.reg_register:
//注册验证方法
- validateRegister();
+ //validateRegister();
+ Thread thread = new Thread(runnable);
+ thread.start();
break;
}
@@ -106,44 +110,6 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
}
- /**
- * 注册验证
- */
- public void validateRegister() {
- String username = usernameEdit.getText().toString();
- String password = passwordEdit.getText().toString();
- String surePassword = surePasswordEdit.getText().toString();
- String city = cityText.getText().toString();
- //判断两次密码是否输入一致
- if (password.equals(surePassword)) {
- //这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
- if (!username.equals("") || !password.equals("")) {
- if (!city.equals("")) {
- Bundle bundle = new Bundle();
- bundle.putString("username", username);
- bundle.putString("password", password);
- bundle.putString("sex", sexStr);
- bundle.putString("city", city);
- //本节将使用安卓自身带的SQLite数据库的方式存储注册的信息(之前直接传输显示在界面是的方式)
- OrangeDatabase orangeDatabase = new OrangeDatabase(RegisterActivity.this);
- SQLiteDatabase sqLiteDatabase = orangeDatabase.getWritableDatabase();
- insertData(sqLiteDatabase, bundle);
- Intent intent = new Intent(RegisterActivity.this, IndexActivity.class);
- intent.putExtras(bundle);
- startActivity(intent);
- } else {
- Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show();
- }
- } else {
- Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show();
- }
- } else {
- Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
- }
-
-
- }
-
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//根据用户选择来改变sex的值
@@ -151,18 +117,60 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
}
/**
- * 插入数据库的值
- *
- * @param sqLiteDatabase
- * @param bundle
+ * 注册验证
*/
- private void insertData(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
- ContentValues contentValues = new ContentValues();
- contentValues.put("username", bundle.getString("username"));
- contentValues.put("password", bundle.getString("password"));
- contentValues.put("sex", bundle.getString("sex"));
- contentValues.put("city", bundle.getString("city"));
- sqLiteDatabase.insert("orange_user", null, contentValues);
- sqLiteDatabase.close();
- }
+ Runnable runnable = new Runnable() {
+ @Override
+ public void run() {
+ String username = usernameEdit.getText().toString();
+ String password = passwordEdit.getText().toString();
+ String surePassword = surePasswordEdit.getText().toString();
+ String city = cityText.getText().toString();
+ //判断两次密码是否输入一致
+ if (password.equals(surePassword)) {
+ //这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
+ if (!username.equals("") || !password.equals("")) {
+ if (!city.equals("")) {
+ Bundle bundle = new Bundle();
+ bundle.putString("username", username);
+ bundle.putString("password", password);
+ bundle.putString("sex", sexStr);
+ bundle.putString("city", city);
+ OrangeUser orangeUser = new OrangeUser();
+ orangeUser.setUsername(username);
+ orangeUser.setPassword(password);
+ orangeUser.setCity(city);
+ orangeUser.setSex(sexStr);
+ //将使用安卓自身带的SQLite数据库换成调用okhttp的方式
+ OkHttpUser okHttpUser = new OkHttpUser();
+ try {
+ if (okHttpUser.userRegister(orangeUser)) {
+ Intent intent = new Intent(RegisterActivity.this, IndexActivity.class);
+ intent.putExtras(bundle);
+ startActivity(intent);
+ } else {
+ Looper.prepare();
+ Toast.makeText(RegisterActivity.this, "注册失败!", Toast.LENGTH_SHORT).show();
+ Looper.loop();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ Looper.prepare();
+ Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show();
+ Looper.loop();
+ }
+ } else {
+ Looper.prepare();
+ Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show();
+ Looper.loop();
+ }
+ } else {
+ Looper.prepare();
+ Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
+ Looper.loop();
+ }
+ }
+ };
}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/activity/UserActivity.java b/app/src/main/java/com/orangesale/cn/activity/UserActivity.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/activity/UserActivity.java
rename to app/src/main/java/com/orangesale/cn/activity/UserActivity.java
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/adapter/Adapter.java b/app/src/main/java/com/orangesale/cn/adapter/Adapter.java
similarity index 100%
rename from chapter03_fragment/app/src/main/java/com/orangesale/cn/adapter/Adapter.java
rename to app/src/main/java/com/orangesale/cn/adapter/Adapter.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/adapter/ListViewAdapter.java b/app/src/main/java/com/orangesale/cn/adapter/ListViewAdapter.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/adapter/ListViewAdapter.java
rename to app/src/main/java/com/orangesale/cn/adapter/ListViewAdapter.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java b/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
similarity index 69%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
rename to app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
index b3f61ce..30f5558 100644
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
+++ b/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
@@ -1,7 +1,6 @@
package com.orangesale.cn.adapter;
import android.content.Context;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -10,27 +9,28 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.orangesale.cn.R;
-import com.orangesale.cn.entity.Product;
+import com.orangesale.cn.entity.OrangeProductPack;
import java.util.List;
public class ProductAdapter extends BaseAdapter {
- private List productList;
+ //private List productList;
+ private List orangeProductList;
private LayoutInflater layoutInflater;
- public ProductAdapter(Context context, List productList) {
- this.productList = productList;
+ public ProductAdapter(Context context, List orangeProductList) {
+ this.orangeProductList = orangeProductList;
this.layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
- return productList.size();
+ return orangeProductList.size();
}
@Override
public Object getItem(int position) {
- return productList.get(position);
+ return orangeProductList.get(position);
}
@Override
@@ -42,7 +42,6 @@ public class ProductAdapter extends BaseAdapter {
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
- Log.i("aa", "getView: "+"aa");
convertView = layoutInflater.inflate(R.layout.categoty_detail_content, null);
viewHolder = new ViewHolder();
viewHolder.productImage = convertView.findViewById(R.id.category_product_image);
@@ -52,12 +51,11 @@ public class ProductAdapter extends BaseAdapter {
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
- Product product = productList.get(position);
- Log.i("product", "getView: "+product.toString());
+ OrangeProductPack product = orangeProductList.get(position);
if (product != null) {
- viewHolder.productImage.setBackgroundResource(product.getImageUrlId());
- viewHolder.productName.setText(product.getProductName());
- viewHolder.productPrice.setText(String.valueOf(product.getProductPrice()));
+ viewHolder.productImage.setImageBitmap(product.getImgBitmap());
+ viewHolder.productName.setText(product.getName());
+ viewHolder.productPrice.setText(String.format("%s元", String.valueOf(product.getPrice())));
}
return convertView;
}
@@ -66,4 +64,5 @@ public class ProductAdapter extends BaseAdapter {
ImageView productImage;
TextView productName, productPrice;
}
+
}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java b/app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java
rename to app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/entity/Condition.java b/app/src/main/java/com/orangesale/cn/entity/Condition.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/entity/Condition.java
rename to app/src/main/java/com/orangesale/cn/entity/Condition.java
diff --git a/app/src/main/java/com/orangesale/cn/entity/OrangeMessage.java b/app/src/main/java/com/orangesale/cn/entity/OrangeMessage.java
new file mode 100644
index 0000000..48f63f5
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/entity/OrangeMessage.java
@@ -0,0 +1,52 @@
+package com.orangesale.cn.entity;
+
+import java.sql.Timestamp;
+
+public class OrangeMessage {
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public Timestamp getSendTime() {
+ return sendTime;
+ }
+
+ public void setSendTime(Timestamp sendTime) {
+ this.sendTime = sendTime;
+ }
+
+ public String getUsed() {
+ return used;
+ }
+
+ public void setUsed(String used) {
+ this.used = used;
+ }
+
+ private Integer id;
+ private String content;
+ private Timestamp sendTime;
+ private String used;
+
+ @Override
+ public String toString() {
+ return "OrangeMessage{" +
+ "id=" + id +
+ ", content='" + content + '\'' +
+ ", sendTime=" + sendTime +
+ ", used='" + used + '\'' +
+ '}';
+ }
+}
diff --git a/app/src/main/java/com/orangesale/cn/entity/OrangeProduct.java b/app/src/main/java/com/orangesale/cn/entity/OrangeProduct.java
new file mode 100644
index 0000000..29bc9aa
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/entity/OrangeProduct.java
@@ -0,0 +1,64 @@
+package com.orangesale.cn.entity;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+public class OrangeProduct {
+ private Integer id;
+ private String name;
+ private BigDecimal price;
+ private String imgUrl;
+
+ @Override
+ public String toString() {
+ return "OrangeProduct{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", price=" + price +
+ ", imgUrl='" + imgUrl + '\'' +
+ ", addTime=" + addTime +
+ '}';
+ }
+
+ public Timestamp getAddTime() {
+ return addTime;
+ }
+
+ public void setAddTime(Timestamp addTime) {
+ this.addTime = addTime;
+ }
+
+ private Timestamp addTime;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+
+ public void setPrice(BigDecimal price) {
+ this.price = price;
+ }
+
+ public String getImgUrl() {
+ return imgUrl;
+ }
+
+ public void setImgUrl(String imgUrl) {
+ this.imgUrl = imgUrl;
+ }
+}
diff --git a/app/src/main/java/com/orangesale/cn/entity/OrangeProductPack.java b/app/src/main/java/com/orangesale/cn/entity/OrangeProductPack.java
new file mode 100644
index 0000000..06f36c9
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/entity/OrangeProductPack.java
@@ -0,0 +1,66 @@
+package com.orangesale.cn.entity;
+
+import android.graphics.Bitmap;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+public class OrangeProductPack {
+ private Integer id;
+ private String name;
+ private Timestamp addTime;
+ private Bitmap imgBitmap;
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+
+ public void setPrice(BigDecimal price) {
+ this.price = price;
+ }
+
+ private BigDecimal price;
+
+ @Override
+ public String toString() {
+ return "OrangeProductPack{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", addTime=" + addTime +
+ ", imgBitmap=" + imgBitmap +
+ ", price=" + price +
+ '}';
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Timestamp getAddTime() {
+ return addTime;
+ }
+
+ public void setAddTime(Timestamp addTime) {
+ this.addTime = addTime;
+ }
+
+ public Bitmap getImgBitmap() {
+ return imgBitmap;
+ }
+
+ public void setImgBitmap(Bitmap imgBitmap) {
+ this.imgBitmap = imgBitmap;
+ }
+}
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java b/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
similarity index 100%
rename from chapter03_fragment/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
rename to app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/entity/Product.java b/app/src/main/java/com/orangesale/cn/entity/Product.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/entity/Product.java
rename to app/src/main/java/com/orangesale/cn/entity/Product.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/entity/ShoppingCart.java b/app/src/main/java/com/orangesale/cn/entity/ShoppingCart.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/entity/ShoppingCart.java
rename to app/src/main/java/com/orangesale/cn/entity/ShoppingCart.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java b/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
similarity index 78%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
rename to app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
index c79cb93..cb0a311 100644
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
+++ b/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
@@ -1,6 +1,7 @@
package com.orangesale.cn.fragment;
import android.app.Fragment;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -14,8 +15,11 @@ import androidx.annotation.Nullable;
import com.orangesale.cn.R;
import com.orangesale.cn.adapter.ProductAdapter;
+import com.orangesale.cn.entity.OrangeProductPack;
import com.orangesale.cn.entity.Product;
+import com.orangesale.cn.netrequest.OkHttpClientProduct;
+import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -27,6 +31,7 @@ public class IndexFragment extends Fragment implements View.OnClickListener {
private GridView gridView;
private ProductAdapter productAdapter;
private List productList;
+ private List list = new ArrayList<>();
@Nullable
@Override
@@ -59,9 +64,8 @@ public class IndexFragment extends Fragment implements View.OnClickListener {
appleLine = view.findViewById(R.id.apple);
appleLine.setOnClickListener(this);
gridView = view.findViewById(R.id.index_famous_gridview);
- initData();
- productAdapter = new ProductAdapter(getActivity(), productList);
- gridView.setAdapter(productAdapter);
+ //initData();
+ new SearchProductTask().execute();
}
@@ -107,4 +111,27 @@ public class IndexFragment extends Fragment implements View.OnClickListener {
productList.add(product5);
}
+
+ /**
+ * 发送网络请求获取数据
+ */
+ class SearchProductTask extends AsyncTask> {
+
+ @Override
+ protected List doInBackground(Void... voids) {
+ OkHttpClientProduct clientProduct = new OkHttpClientProduct();
+ try {
+ list = clientProduct.getProductPack();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return list;
+ }
+
+ @Override
+ protected void onPostExecute(List orangeProducts) {
+ productAdapter = new ProductAdapter(getActivity(), list);
+ gridView.setAdapter(productAdapter);
+ }
+ }
}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java b/app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java
rename to app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java b/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
similarity index 59%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
rename to app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
index 807dcac..c63079e 100644
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
+++ b/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
@@ -1,6 +1,7 @@
package com.orangesale.cn.fragment;
import android.app.Fragment;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -15,9 +16,10 @@ import com.orangesale.cn.R;
import com.orangesale.cn.adapter.ListViewAdapter;
import com.orangesale.cn.adapter.ProductAdapter;
import com.orangesale.cn.entity.Condition;
-import com.orangesale.cn.entity.Product;
+import com.orangesale.cn.entity.OrangeProductPack;
+import com.orangesale.cn.netrequest.OkHttpClientProduct;
-import java.math.BigDecimal;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -26,7 +28,7 @@ public class ProductFragment extends Fragment {
private ListViewAdapter listViewAdapter;
private List conditionList;
private GridView productGridView;
- private List productList;
+ private List orangeProductList = new ArrayList<>();
@Nullable
@Override
@@ -47,9 +49,7 @@ public class ProductFragment extends Fragment {
listViewAdapter = new ListViewAdapter(getActivity(), conditionList);
conditonListSpinner.setAdapter(listViewAdapter);
productGridView = view.findViewById(R.id.product_list);
- initData();
- ProductAdapter productAdapter = new ProductAdapter(getActivity(), productList);
- productGridView.setAdapter(productAdapter);
+ new SearchProductTask().execute();
}
/**
@@ -76,41 +76,26 @@ public class ProductFragment extends Fragment {
}
/**
- * 初始化商品数据
+ * 发送网络请求获取数据
*/
- private void initData() {
- productList = new ArrayList<>();
- Product product = new Product();
- product.setImageUrlId(R.drawable.juzip);
- product.setProductName("橘子");
- product.setProductPrice(new BigDecimal("9.9"));
- Product product1 = new Product();
- product1.setImageUrlId(R.drawable.orange);
- product1.setProductName("橙子");
- product1.setProductPrice(new BigDecimal("29.9"));
- Product product2 = new Product();
- product2.setImageUrlId(R.drawable.youzip);
- product2.setProductName("柚子");
- product2.setProductPrice(new BigDecimal("19.9"));
- Product product3 = new Product();
- product3.setImageUrlId(R.drawable.xiguap);
- product3.setProductName("西瓜");
- product3.setProductPrice(new BigDecimal("19.9"));
- Product product4 = new Product();
- product4.setImageUrlId(R.drawable.applep);
- product4.setProductName("苹果");
- product4.setProductPrice(new BigDecimal("49.9"));
- Product product5 = new Product();
- product5.setImageUrlId(R.drawable.lemonp);
- product5.setProductName("柠檬");
- product5.setProductPrice(new BigDecimal("9.9"));
- productList.add(product);
- productList.add(product1);
- productList.add(product2);
- productList.add(product3);
- productList.add(product4);
- productList.add(product5);
+ class SearchProductTask extends AsyncTask> {
+ @Override
+ protected List doInBackground(Void... voids) {
+ OkHttpClientProduct clientProduct = new OkHttpClientProduct();
+ try {
+ orangeProductList = clientProduct.getProductPack();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return orangeProductList;
+ }
+
+ @Override
+ protected void onPostExecute(List orangeProducts) {
+ ProductAdapter productAdapter = new ProductAdapter(getActivity(), orangeProductList);
+ productGridView.setAdapter(productAdapter);
+ }
}
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java b/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
similarity index 100%
rename from chapter03_fragment/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
rename to app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java b/app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java
similarity index 100%
rename from chapter06_net/app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java
rename to app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java
diff --git a/app/src/main/java/com/orangesale/cn/netrequest/OkHttpClientProduct.java b/app/src/main/java/com/orangesale/cn/netrequest/OkHttpClientProduct.java
new file mode 100644
index 0000000..f1f5082
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/netrequest/OkHttpClientProduct.java
@@ -0,0 +1,80 @@
+package com.orangesale.cn.netrequest;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.orangesale.cn.entity.OrangeProduct;
+import com.orangesale.cn.entity.OrangeProductPack;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+
+public class OkHttpClientProduct {
+
+ /**
+ * 查询商品信息
+ *
+ * @return
+ */
+ public List getProduct() throws IOException {
+ OkHttpClient okHttpClient = new OkHttpClient();
+ Request request = new Request.Builder()
+ .url("http://172.16.40.55:8081/orange/product/search")
+ .build();
+ Response response = okHttpClient.newCall(request).execute();
+ JSONObject jsonObject = JSON.parseObject(Objects.requireNonNull(response.body()).string());
+ List list = JSON.parseObject(jsonObject.getString("data"), new TypeReference>() {
+ });
+ return list;
+ }
+
+ /**
+ * 获取图片
+ *
+ * @param imgUrl
+ * @return
+ * @throws IOException
+ */
+ public Bitmap getImageBitMap(String imgUrl) throws IOException {
+ Bitmap bitmap;
+ OkHttpClient okHttpClient = new OkHttpClient();
+ Request request = new Request.Builder()
+ .url(imgUrl)
+ .build();
+ Response response = okHttpClient.newCall(request).execute();
+ byte[] bytes = Objects.requireNonNull(response.body()).bytes();
+ bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
+ return bitmap;
+
+ }
+
+ /**
+ * 封装信息
+ *
+ * @return
+ * @throws IOException
+ */
+
+ public List getProductPack() throws IOException {
+ List packList = new ArrayList<>();
+ List list = getProduct();
+ for (OrangeProduct orangeProduct : list) {
+ OrangeProductPack orangeProductPack = new OrangeProductPack();
+ orangeProductPack.setId(orangeProduct.getId());
+ orangeProductPack.setImgBitmap(getImageBitMap(orangeProduct.getImgUrl()));
+ orangeProductPack.setAddTime(orangeProduct.getAddTime());
+ orangeProductPack.setPrice(orangeProduct.getPrice());
+ packList.add(orangeProductPack);
+ }
+ return packList;
+ }
+}
diff --git a/app/src/main/java/com/orangesale/cn/netrequest/OkHttpMessage.java b/app/src/main/java/com/orangesale/cn/netrequest/OkHttpMessage.java
new file mode 100644
index 0000000..d61f9a2
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/netrequest/OkHttpMessage.java
@@ -0,0 +1,39 @@
+package com.orangesale.cn.netrequest;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.orangesale.cn.entity.OrangeMessage;
+
+import java.io.IOException;
+import java.util.Objects;
+
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+
+public class OkHttpMessage {
+
+ /**
+ * 消费消息
+ *
+ * @return
+ */
+ public OrangeMessage consumeMessage() throws IOException {
+ OkHttpClient okHttpClient = new OkHttpClient();
+ Request request = new Request.Builder()
+ .url("http://172.16.40.55:8081/orange/message/consumeMessage")
+ .build();
+ Response response = okHttpClient.newCall(request).execute();
+ JSONObject jsonObject = JSON.parseObject(Objects.requireNonNull(response.body()).string());
+ OrangeMessage orangeMessage = JSON.toJavaObject(jsonObject.getJSONObject("data"), OrangeMessage.class);
+ /**
+ * 消费完消息以后,设置消息为已读
+ */
+ Request request1 = new Request.Builder()
+ .url("http://172.16.40.55:8081/orange/message/updateMessage")
+ .build();
+ okHttpClient.newCall(request1).execute();
+ return orangeMessage;
+ }
+
+}
diff --git a/app/src/main/java/com/orangesale/cn/netrequest/OkHttpUser.java b/app/src/main/java/com/orangesale/cn/netrequest/OkHttpUser.java
new file mode 100644
index 0000000..0fb067b
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/netrequest/OkHttpUser.java
@@ -0,0 +1,67 @@
+package com.orangesale.cn.netrequest;
+
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.orangesale.cn.entity.OrangeUser;
+
+import java.io.IOException;
+
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
+public class OkHttpUser {
+
+ /**
+ * 用户登录验证
+ *
+ * @param orangeUser
+ */
+ public OrangeUser userLogin(OrangeUser orangeUser) throws IOException {
+ OkHttpClient okHttpClient = new OkHttpClient();
+ //数据类型为json格式
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ //将对象转为JSON字符串
+ String jsonStr = JSONObject.toJSONString(orangeUser);
+ RequestBody requestBody = RequestBody.create(jsonStr, mediaType);
+ Request request = new Request.Builder()
+ .url("http://172.16.40.55:8081/orange/user/login")
+ .post(requestBody)
+ .build();
+ Response response = okHttpClient.newCall(request).execute();
+ JSONObject jsonObject = JSON.parseObject(response.body().string());
+ JSONObject jsonObject1 = jsonObject.getJSONObject("data");
+ OrangeUser orangeUser1 = JSON.toJavaObject(jsonObject1, OrangeUser.class);
+ return orangeUser1;
+ }
+
+ /**
+ * 用户注册
+ *
+ * @param orangeUser
+ * @return
+ * @throws IOException
+ */
+ public boolean userRegister(OrangeUser orangeUser) throws IOException {
+ OkHttpClient okHttpClient = new OkHttpClient();
+ //数据类型为json格式
+ MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
+ //将对象转为JSON字符串
+ String jsonStr = JSONObject.toJSONString(orangeUser);
+ RequestBody requestBody = RequestBody.create(jsonStr, mediaType);
+ Request request = new Request.Builder()
+ .url("http://172.16.40.55:8081/orange/user/register")
+ .post(requestBody)
+ .build();
+ Response response = okHttpClient.newCall(request).execute();
+ JSONObject jsonObject = JSON.parseObject(response.body().string());
+ Log.i("register", "userRegister: "+jsonObject);
+ return jsonObject.getBoolean("flag");
+ }
+
+
+}
diff --git a/app/src/main/java/com/orangesale/cn/service/TimeService.java b/app/src/main/java/com/orangesale/cn/service/TimeService.java
new file mode 100644
index 0000000..cac57df
--- /dev/null
+++ b/app/src/main/java/com/orangesale/cn/service/TimeService.java
@@ -0,0 +1,105 @@
+package com.orangesale.cn.service;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.os.IBinder;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+import androidx.core.app.NotificationCompat;
+
+import com.orangesale.cn.R;
+import com.orangesale.cn.entity.OrangeMessage;
+import com.orangesale.cn.netrequest.OkHttpMessage;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Objects;
+import java.util.Timer;
+import java.util.TimerTask;
+
+public class TimeService extends Service {
+ private static Timer timer = null;
+ private NotificationManager manager;
+ private NotificationCompat.Builder builder;
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+ /**
+ * 清除通知
+ */
+ private void cleanAllNotification() {
+ manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+ manager.cancelAll();
+ if (timer != null) {
+ timer.cancel();
+ timer = null;
+ }
+
+ }
+
+ /**
+ * 添加通知
+ */
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ long period = 60 * 1000; //1分钟一个周期
+ if (timer == null) {
+ timer = new Timer();
+ }
+ timer.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ new ConsumeMessageTask().execute();
+ }
+ }, 0, period);
+
+ return super.onStartCommand(intent, flags, startId);
+ }
+
+ class ConsumeMessageTask extends AsyncTask {
+ @Override
+ protected Void doInBackground(Void... voids) {
+ /**
+ * NotificationChannel是android8.0新增的特性,如果App的targetSDKVersion>=26,
+ * 没有设置channel通知渠道的话,就会导致通知无法展示。
+ * 报错内容:Failed to post notification on channel “null”
+ */
+ OkHttpMessage okHttpMessage = new OkHttpMessage();
+ OrangeMessage orangeMessage;
+ try {
+ orangeMessage = okHttpMessage.consumeMessage();
+ if (!Objects.isNull(orangeMessage)) {
+ Log.i("orangeMessage", "run: " + orangeMessage.toString());
+ NotificationChannel channel = new NotificationChannel("channel", "通知", NotificationManager.IMPORTANCE_DEFAULT);
+ manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+ manager.createNotificationChannel(channel);
+ builder = new NotificationCompat.Builder(TimeService.this);
+ Date date = new Date();
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ builder.setContentTitle("来自橙一色的系统通知消息" + " " + formatter.format(date));
+ builder.setSmallIcon(R.drawable.chengzi);
+ builder.setChannelId("channel");
+ builder.setContentText(orangeMessage.getContent());
+ builder.setAutoCancel(true);
+ builder.setDefaults(Notification.DEFAULT_ALL);
+ Notification notification = builder.build();
+ manager.notify(1, notification);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+ }
+}
diff --git a/chapter03_fragment/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/chapter03_fragment/app/src/main/res/drawable/address.png b/app/src/main/res/drawable/address.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/address.png
rename to app/src/main/res/drawable/address.png
diff --git a/chapter06_net/app/src/main/res/drawable/all.png b/app/src/main/res/drawable/all.png
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/all.png
rename to app/src/main/res/drawable/all.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/apple.png b/app/src/main/res/drawable/apple.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/apple.png
rename to app/src/main/res/drawable/apple.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/applep.png b/app/src/main/res/drawable/applep.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/applep.png
rename to app/src/main/res/drawable/applep.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/arrow_down.png b/app/src/main/res/drawable/arrow_down.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/arrow_down.png
rename to app/src/main/res/drawable/arrow_down.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/arrow_left.png b/app/src/main/res/drawable/arrow_left.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/arrow_left.png
rename to app/src/main/res/drawable/arrow_left.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/arrow_right.png b/app/src/main/res/drawable/arrow_right.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/arrow_right.png
rename to app/src/main/res/drawable/arrow_right.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/button_login.xml b/app/src/main/res/drawable/button_login.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/button_login.xml
rename to app/src/main/res/drawable/button_login.xml
diff --git a/chapter03_fragment/app/src/main/res/drawable/button_register.xml b/app/src/main/res/drawable/button_register.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/button_register.xml
rename to app/src/main/res/drawable/button_register.xml
diff --git a/chapter06_net/app/src/main/res/drawable/cart.png b/app/src/main/res/drawable/cart.png
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/cart.png
rename to app/src/main/res/drawable/cart.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/chengzi.png b/app/src/main/res/drawable/chengzi.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/chengzi.png
rename to app/src/main/res/drawable/chengzi.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/city.png b/app/src/main/res/drawable/city.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/city.png
rename to app/src/main/res/drawable/city.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/ic_launcher_background.xml
rename to app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/chapter04_sqlite/app/src/main/res/drawable/index.png b/app/src/main/res/drawable/index.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/index.png
rename to app/src/main/res/drawable/index.png
diff --git a/chapter06_net/app/src/main/res/drawable/index_menu.xml b/app/src/main/res/drawable/index_menu.xml
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/index_menu.xml
rename to app/src/main/res/drawable/index_menu.xml
diff --git a/chapter03_fragment/app/src/main/res/drawable/juzi.png b/app/src/main/res/drawable/juzi.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/juzi.png
rename to app/src/main/res/drawable/juzi.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/juzip.png b/app/src/main/res/drawable/juzip.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/juzip.png
rename to app/src/main/res/drawable/juzip.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/lemon.png b/app/src/main/res/drawable/lemon.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/lemon.png
rename to app/src/main/res/drawable/lemon.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/lemonp.png b/app/src/main/res/drawable/lemonp.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/lemonp.png
rename to app/src/main/res/drawable/lemonp.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/li.png b/app/src/main/res/drawable/li.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/li.png
rename to app/src/main/res/drawable/li.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/mangguo.png b/app/src/main/res/drawable/mangguo.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/mangguo.png
rename to app/src/main/res/drawable/mangguo.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/orange.png b/app/src/main/res/drawable/orange.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/orange.png
rename to app/src/main/res/drawable/orange.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/password.png b/app/src/main/res/drawable/password.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/password.png
rename to app/src/main/res/drawable/password.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/pearson.png b/app/src/main/res/drawable/pearson.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/pearson.png
rename to app/src/main/res/drawable/pearson.png
diff --git a/chapter06_net/app/src/main/res/drawable/price.png b/app/src/main/res/drawable/price.png
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/price.png
rename to app/src/main/res/drawable/price.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/product.png b/app/src/main/res/drawable/product.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/product.png
rename to app/src/main/res/drawable/product.png
diff --git a/chapter06_net/app/src/main/res/drawable/salenum.png b/app/src/main/res/drawable/salenum.png
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/salenum.png
rename to app/src/main/res/drawable/salenum.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/search.png b/app/src/main/res/drawable/search.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/search.png
rename to app/src/main/res/drawable/search.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/setting.png b/app/src/main/res/drawable/setting.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/setting.png
rename to app/src/main/res/drawable/setting.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/sex.png b/app/src/main/res/drawable/sex.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/sex.png
rename to app/src/main/res/drawable/sex.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/shoppingcart.png b/app/src/main/res/drawable/shoppingcart.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/shoppingcart.png
rename to app/src/main/res/drawable/shoppingcart.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/shuiguo.png b/app/src/main/res/drawable/shuiguo.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/shuiguo.png
rename to app/src/main/res/drawable/shuiguo.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/spinner_drop_down_shape.xml b/app/src/main/res/drawable/spinner_drop_down_shape.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/spinner_drop_down_shape.xml
rename to app/src/main/res/drawable/spinner_drop_down_shape.xml
diff --git a/chapter03_fragment/app/src/main/res/drawable/sure_apssword.png b/app/src/main/res/drawable/sure_apssword.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/sure_apssword.png
rename to app/src/main/res/drawable/sure_apssword.png
diff --git a/chapter06_net/app/src/main/res/drawable/tab_menu_text.xml b/app/src/main/res/drawable/tab_menu_text.xml
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/tab_menu_text.xml
rename to app/src/main/res/drawable/tab_menu_text.xml
diff --git a/chapter06_net/app/src/main/res/drawable/time.png b/app/src/main/res/drawable/time.png
similarity index 100%
rename from chapter06_net/app/src/main/res/drawable/time.png
rename to app/src/main/res/drawable/time.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/user.png b/app/src/main/res/drawable/user.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/user.png
rename to app/src/main/res/drawable/user.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/user_account.png b/app/src/main/res/drawable/user_account.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/user_account.png
rename to app/src/main/res/drawable/user_account.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/user_general.png b/app/src/main/res/drawable/user_general.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/user_general.png
rename to app/src/main/res/drawable/user_general.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/user_icon.png b/app/src/main/res/drawable/user_icon.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/user_icon.png
rename to app/src/main/res/drawable/user_icon.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/user_pay.png b/app/src/main/res/drawable/user_pay.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/user_pay.png
rename to app/src/main/res/drawable/user_pay.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/user_sex.png b/app/src/main/res/drawable/user_sex.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/user_sex.png
rename to app/src/main/res/drawable/user_sex.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/xigua.png b/app/src/main/res/drawable/xigua.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/xigua.png
rename to app/src/main/res/drawable/xigua.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/xiguap.png b/app/src/main/res/drawable/xiguap.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/xiguap.png
rename to app/src/main/res/drawable/xiguap.png
diff --git a/chapter03_fragment/app/src/main/res/drawable/youzi.png b/app/src/main/res/drawable/youzi.png
similarity index 100%
rename from chapter03_fragment/app/src/main/res/drawable/youzi.png
rename to app/src/main/res/drawable/youzi.png
diff --git a/chapter04_sqlite/app/src/main/res/drawable/youzip.png b/app/src/main/res/drawable/youzip.png
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/app/src/main/res/drawable/youzip.png
rename to app/src/main/res/drawable/youzip.png
diff --git a/chapter06_net/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
similarity index 100%
rename from chapter06_net/app/src/main/res/layout/activity_main.xml
rename to app/src/main/res/layout/activity_main.xml
diff --git a/chapter06_net/app/src/main/res/layout/cart_have_product.xml b/app/src/main/res/layout/cart_have_product.xml
similarity index 100%
rename from chapter06_net/app/src/main/res/layout/cart_have_product.xml
rename to app/src/main/res/layout/cart_have_product.xml
diff --git a/chapter06_net/app/src/main/res/layout/cart_no_product.xml b/app/src/main/res/layout/cart_no_product.xml
similarity index 100%
rename from chapter06_net/app/src/main/res/layout/cart_no_product.xml
rename to app/src/main/res/layout/cart_no_product.xml
diff --git a/chapter03_fragment/app/src/main/res/layout/category_detail.xml b/app/src/main/res/layout/category_detail.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/layout/category_detail.xml
rename to app/src/main/res/layout/category_detail.xml
diff --git a/chapter03_fragment/app/src/main/res/layout/category_list_item.xml b/app/src/main/res/layout/category_list_item.xml
similarity index 100%
rename from chapter03_fragment/app/src/main/res/layout/category_list_item.xml
rename to app/src/main/res/layout/category_list_item.xml
diff --git a/chapter06_net/app/src/main/res/layout/categoty_detail_content.xml b/app/src/main/res/layout/categoty_detail_content.xml
similarity index 90%
rename from chapter06_net/app/src/main/res/layout/categoty_detail_content.xml
rename to app/src/main/res/layout/categoty_detail_content.xml
index 2b3a24f..33a4e8d 100644
--- a/chapter06_net/app/src/main/res/layout/categoty_detail_content.xml
+++ b/app/src/main/res/layout/categoty_detail_content.xml
@@ -6,9 +6,9 @@
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- generateDebugSources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter03_fragment/app/build.gradle b/chapter03_fragment/app/build.gradle
deleted file mode 100644
index 3b8a747..0000000
--- a/chapter03_fragment/app/build.gradle
+++ /dev/null
@@ -1,34 +0,0 @@
-apply plugin: 'com.android.application'
-
-android {
- compileSdkVersion 29
- buildToolsVersion "29.0.2"
- defaultConfig {
- applicationId "com.orangesale.cn"
- minSdkVersion 26
- targetSdkVersion 29
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
- compileOptions {
- sourceCompatibility = 1.8
- targetCompatibility = 1.8
- }
-}
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'androidx.appcompat:appcompat:1.0.2'
- implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test.ext:junit:1.1.0'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
- implementation 'liji.library.dev:citypickerview:1.1.0'
-}
diff --git a/chapter03_fragment/app/src/main/AndroidManifest.xml b/chapter03_fragment/app/src/main/AndroidManifest.xml
deleted file mode 100644
index e9dc395..0000000
--- a/chapter03_fragment/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/MainActivity.java b/chapter03_fragment/app/src/main/java/com/orangesale/cn/MainActivity.java
deleted file mode 100644
index 9083867..0000000
--- a/chapter03_fragment/app/src/main/java/com/orangesale/cn/MainActivity.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.orangesale.cn;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.orangesale.cn.activity.RegisterActivity;
-
-public class MainActivity extends AppCompatActivity implements View.OnClickListener {
- private Button registerButton, loginButton;
- private EditText usernameText, paswdEdit;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.user_login);
- init();
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.register:
- Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
- startActivity(intent);
- break;
- case R.id.login:
- break;
- }
- }
-
- //界面组件初始化
- private void init() {
- usernameText = findViewById(R.id.username);
- paswdEdit = findViewById(R.id.password);
- loginButton = findViewById(R.id.login);
- loginButton.setOnClickListener(this);
- registerButton = findViewById(R.id.register);
- registerButton.setOnClickListener(this);
- }
-}
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java b/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
deleted file mode 100644
index 60f3cc6..0000000
--- a/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.app.FragmentTransaction;
-import android.os.Bundle;
-import android.widget.ListView;
-
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.adapter.Adapter;
-import com.orangesale.cn.entity.Product;
-import com.orangesale.cn.fragment.SetDetailFragment;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-
-public class CategoryActivity extends Activity {
- public OnChangeListener onchangedListener;
- private List productList;
- private List productCategory = new ArrayList<>();
- private ListView titleList;
- private Adapter adapter;
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.content_category);
- initData();
- init();
- SetDetailFragment fragment = new SetDetailFragment();
- FragmentManager fragmentManager = getFragmentManager();
- FragmentTransaction transaction = fragmentManager.beginTransaction();
- transaction.replace(R.id.category_detail, fragment);
- transaction.commit();
- titleList.setOnItemClickListener((parent, view, position, id) -> {
- adapter.setSelectedPosition(position);
- adapter.notifyDataSetInvalidated();
- if (onchangedListener != null) {
- onchangedListener.changeText(productList.get(position));
- }
- });
-
- }
-
- public void setOnChangeListener(OnChangeListener onChangeListener) {
- this.onchangedListener = onChangeListener;
- }
-
- public interface OnChangeListener {
- void changeText(Product product);
- }
-
- /**
- * 初始化数据
- */
- private void initData() {
- productList = new ArrayList<>();
- productCategory.add("橘子");
- productCategory.add("橙子");
- productCategory.add("柚子");
- Product product = new Product();
- product.setImageUrlId(R.drawable.juzi);
- product.setProductName("橘子");
- product.setProductPrice(new BigDecimal("9.9"));
- Product product1 = new Product();
- product1.setImageUrlId(R.drawable.chengzi);
- product1.setProductName("橙子");
- product1.setProductPrice(new BigDecimal("29.9"));
- Product product2 = new Product();
- product2.setImageUrlId(R.drawable.youzi);
- product2.setProductName("柚子");
- product2.setProductPrice(new BigDecimal("19.9"));
- productList.add(product);
- productList.add(product1);
- productList.add(product2);
- }
-
- /**
- * 初始化组件
- */
- private void init() {
- titleList = findViewById(R.id.category_title_list);
- adapter = new Adapter(productCategory, CategoryActivity.this);
- titleList.setAdapter(adapter);
- }
-}
\ No newline at end of file
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java b/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
deleted file mode 100644
index c2d35bd..0000000
--- a/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.content.Intent;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.RadioGroup;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.lljjcoder.citypickerview.widget.CityPicker;
-import com.orangesale.cn.R;
-
-public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
- private EditText usernameEdit, passwordEdit, surePasswordEdit;
- private TextView cityText;
- private CityPicker cityPicker;
- private Button regButton;
- private RadioGroup sexGroup;
- private String sexStr="男";
-
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.user_register);
- init();
- }
-
- /**
- * 界面组件初始化
- */
- private void init() {
- cityText = findViewById(R.id.reg_province);
- cityText.setOnClickListener(this);
- usernameEdit = findViewById(R.id.reg_username);
- passwordEdit = findViewById(R.id.reg_password);
- surePasswordEdit = findViewById(R.id.reg_sure_password);
- regButton = findViewById(R.id.reg_register);
- regButton.setOnClickListener(this);
- sexGroup = findViewById(R.id.sex);
- sexGroup.setOnCheckedChangeListener(this);
-
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.reg_province:
- initCityPicker();
- cityPicker.show();
- break;
- case R.id.reg_register:
- //注册验证方法
- validateRegister();
- break;
-
- }
- }
-
- /**
- * 初始化城市选择器
- */
- public void initCityPicker() {
- cityPicker = new CityPicker.Builder(RegisterActivity.this)
- .textSize(16)
- .title("地址选择")
- .backgroundPop(0xa0000000)
- .titleBackgroundColor("#EFB81C")
- .titleTextColor("#000000")
- .backgroundPop(0xa0000000)
- .confirTextColor("#000000")
- .cancelTextColor("#000000")
- .province("江西省")
- .city("赣州市")
- .district("章贡区")
- .textColor(Color.parseColor("#000000"))
- .provinceCyclic(true)
- .cityCyclic(false)
- .districtCyclic(false)
- .visibleItemsCount(7)
- .itemPadding(10)
- .onlyShowProvinceAndCity(false)
- .build();
- cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
- @Override
- public void onSelected(String... strings) {
- String province = strings[0];
- String city = strings[1];
- String district = strings[2];
- cityText.setText(String.format("%s %s %s", province, city, district));
- }
-
- @Override
- public void onCancel() {
- }
- });
-
- }
-
- /**
- * 注册验证
- */
- public void validateRegister() {
- Intent intent = new Intent(RegisterActivity.this, UserActivity.class);
- String username = usernameEdit.getText().toString();
- String password = passwordEdit.getText().toString();
- String surePassword = surePasswordEdit.getText().toString();
- String city = cityText.getText().toString();
- //判断两次密码是否输入一致
- if (password.equals(surePassword)) {
- //这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
- if (!username.equals("") || !password.equals("")) {
- if (!city.equals("")) {
- Bundle bundle = new Bundle();
- bundle.putString("username", username);
- bundle.putString("password", password);
- bundle.putString("sex", sexStr);
- bundle.putString("city", city);
- intent.putExtras(bundle);
- startActivity(intent);
- } else {
- Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show();
- }
- } else {
- Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show();
- }
- } else {
- Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
- }
-
-
- }
-
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- //根据用户选择来改变sex的值
- sexStr = checkedId == R.id.reg_man ? "男" : "女";
- }
-}
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/UserActivity.java b/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/UserActivity.java
deleted file mode 100644
index 8160243..0000000
--- a/chapter03_fragment/app/src/main/java/com/orangesale/cn/activity/UserActivity.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.MainActivity;
-import com.orangesale.cn.R;
-
-public class UserActivity extends Activity implements View.OnClickListener {
- private ImageView userIconImage;
- private TextView usernameText, userSexText, userCityText;
- private LinearLayout usernameLine, userSexline, userCityLine, userPayLine, userSettingLine, userGeneralLine, userSearchProductLine;
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.content_user);
- init();
- }
-
- /**
- * 组件初始化
- */
- private void init() {
- userIconImage = findViewById(R.id.user_icon);
- usernameText = findViewById(R.id.user_username);
- userSexText = findViewById(R.id.user_sex);
- userCityText = findViewById(R.id.user_city);
- usernameLine = findViewById(R.id.user_username_line);
- userSexline = findViewById(R.id.user_sex_line);
- userCityLine = findViewById(R.id.user_city_line);
- userPayLine = findViewById(R.id.user_pay);
- userSettingLine = findViewById(R.id.user_setting);
- userGeneralLine = findViewById(R.id.user_general);
- userSearchProductLine = findViewById(R.id.user_searchProduct);
- userSearchProductLine.setOnClickListener(this);
- setData();
- }
-
- /**
- * 组件赋值
- */
- private void setData() {
- Intent intent = UserActivity.this.getIntent();
- Bundle bundle = intent.getExtras();
- usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
- userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
- userCityText.setText(String.format("城市:%s", bundle.getString("city")));
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.user_searchProduct:
- Intent intent1 = new Intent(UserActivity.this, CategoryActivity.class);
- startActivity(intent1);
- break;
- }
- }
-}
diff --git a/chapter03_fragment/app/src/main/java/com/orangesale/cn/entity/Product.java b/chapter03_fragment/app/src/main/java/com/orangesale/cn/entity/Product.java
deleted file mode 100644
index 79c6526..0000000
--- a/chapter03_fragment/app/src/main/java/com/orangesale/cn/entity/Product.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.orangesale.cn.entity;
-
-import java.math.BigDecimal;
-
-public class Product {
-
- public String getProductName() {
- return productName;
- }
-
- public void setProductName(String productName) {
- this.productName = productName;
- }
-
- public BigDecimal getProductPrice() {
- return productPrice;
- }
-
- public void setProductPrice(BigDecimal productPrice) {
- this.productPrice = productPrice;
- }
-
- public Integer getImageUrlId() {
- return imageUrlId;
- }
-
- public void setImageUrlId(Integer imageUrlId) {
- this.imageUrlId = imageUrlId;
- }
-
- private Integer imageUrlId;
- private String productName;
- private BigDecimal productPrice;
-}
diff --git a/chapter03_fragment/app/src/main/res/layout/activity_main.xml b/chapter03_fragment/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index 4fc2444..0000000
--- a/chapter03_fragment/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter03_fragment/app/src/main/res/layout/categoty_detail_content.xml b/chapter03_fragment/app/src/main/res/layout/categoty_detail_content.xml
deleted file mode 100644
index a46be2c..0000000
--- a/chapter03_fragment/app/src/main/res/layout/categoty_detail_content.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter03_fragment/app/src/main/res/layout/content_category.xml b/chapter03_fragment/app/src/main/res/layout/content_category.xml
deleted file mode 100644
index 440633f..0000000
--- a/chapter03_fragment/app/src/main/res/layout/content_category.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter03_fragment/app/src/main/res/layout/content_user.xml b/chapter03_fragment/app/src/main/res/layout/content_user.xml
deleted file mode 100644
index fa429d8..0000000
--- a/chapter03_fragment/app/src/main/res/layout/content_user.xml
+++ /dev/null
@@ -1,234 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.gradle/5.4.1/executionHistory/executionHistory.bin b/chapter04_sqlite/.gradle/5.4.1/executionHistory/executionHistory.bin
deleted file mode 100755
index bfc7a4e..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/executionHistory/executionHistory.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/executionHistory/executionHistory.lock b/chapter04_sqlite/.gradle/5.4.1/executionHistory/executionHistory.lock
deleted file mode 100755
index 7c9543c..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/executionHistory/executionHistory.lock and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/fileChanges/last-build.bin b/chapter04_sqlite/.gradle/5.4.1/fileChanges/last-build.bin
deleted file mode 100755
index f76dd23..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/fileChanges/last-build.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/fileContent/fileContent.lock b/chapter04_sqlite/.gradle/5.4.1/fileContent/fileContent.lock
deleted file mode 100755
index 04260f4..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/fileContent/fileContent.lock and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/fileHashes/fileHashes.bin b/chapter04_sqlite/.gradle/5.4.1/fileHashes/fileHashes.bin
deleted file mode 100755
index 66bdba9..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/fileHashes/fileHashes.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/fileHashes/fileHashes.lock b/chapter04_sqlite/.gradle/5.4.1/fileHashes/fileHashes.lock
deleted file mode 100755
index 0a24681..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/fileHashes/fileHashes.lock and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/fileHashes/resourceHashesCache.bin b/chapter04_sqlite/.gradle/5.4.1/fileHashes/resourceHashesCache.bin
deleted file mode 100755
index 2b4bf7c..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/fileHashes/resourceHashesCache.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/gc.properties b/chapter04_sqlite/.gradle/5.4.1/gc.properties
deleted file mode 100755
index e69de29..0000000
diff --git a/chapter04_sqlite/.gradle/5.4.1/javaCompile/classAnalysis.bin b/chapter04_sqlite/.gradle/5.4.1/javaCompile/classAnalysis.bin
deleted file mode 100755
index 6d85415..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/javaCompile/classAnalysis.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/javaCompile/javaCompile.lock b/chapter04_sqlite/.gradle/5.4.1/javaCompile/javaCompile.lock
deleted file mode 100755
index 0af9399..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/javaCompile/javaCompile.lock and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/5.4.1/javaCompile/taskHistory.bin b/chapter04_sqlite/.gradle/5.4.1/javaCompile/taskHistory.bin
deleted file mode 100755
index afe05b1..0000000
Binary files a/chapter04_sqlite/.gradle/5.4.1/javaCompile/taskHistory.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/chapter04_sqlite/.gradle/buildOutputCleanup/buildOutputCleanup.lock
deleted file mode 100755
index 5eb8269..0000000
Binary files a/chapter04_sqlite/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/buildOutputCleanup/cache.properties b/chapter04_sqlite/.gradle/buildOutputCleanup/cache.properties
deleted file mode 100755
index e1243af..0000000
--- a/chapter04_sqlite/.gradle/buildOutputCleanup/cache.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Fri Dec 06 17:37:43 CST 2019
-gradle.version=5.4.1
diff --git a/chapter04_sqlite/.gradle/buildOutputCleanup/outputFiles.bin b/chapter04_sqlite/.gradle/buildOutputCleanup/outputFiles.bin
deleted file mode 100755
index 02fd7ae..0000000
Binary files a/chapter04_sqlite/.gradle/buildOutputCleanup/outputFiles.bin and /dev/null differ
diff --git a/chapter04_sqlite/.gradle/vcs-1/gc.properties b/chapter04_sqlite/.gradle/vcs-1/gc.properties
deleted file mode 100755
index e69de29..0000000
diff --git a/chapter04_sqlite/.idea/caches/build_file_checksums.ser b/chapter04_sqlite/.idea/caches/build_file_checksums.ser
deleted file mode 100755
index 58eed74..0000000
Binary files a/chapter04_sqlite/.idea/caches/build_file_checksums.ser and /dev/null differ
diff --git a/chapter04_sqlite/.idea/caches/gradle_models.ser b/chapter04_sqlite/.idea/caches/gradle_models.ser
deleted file mode 100755
index 427c2d3..0000000
Binary files a/chapter04_sqlite/.idea/caches/gradle_models.ser and /dev/null differ
diff --git a/chapter04_sqlite/.idea/codeStyles/Project.xml b/chapter04_sqlite/.idea/codeStyles/Project.xml
deleted file mode 100755
index 3279b6b..0000000
--- a/chapter04_sqlite/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- xmlns:android
-
- ^$
-
-
-
-
-
-
-
-
- xmlns:.*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*:id
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:name
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- name
-
- ^$
-
-
-
-
-
-
-
-
- style
-
- ^$
-
-
-
-
-
-
-
-
- .*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*
-
- http://schemas.android.com/apk/res/android
-
-
- ANDROID_ATTRIBUTE_ORDER
-
-
-
-
-
-
- .*
-
- .*
-
-
- BY_NAME
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/gradle.xml b/chapter04_sqlite/.idea/gradle.xml
deleted file mode 100755
index 2a80f60..0000000
--- a/chapter04_sqlite/.idea/gradle.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__android_android_29.xml b/chapter04_sqlite/.idea/libraries/Gradle__android_android_29.xml
deleted file mode 100755
index 204d308..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__android_android_29.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0_jar.xml
deleted file mode 100755
index a6e2dcf..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml
deleted file mode 100755
index dafd64e..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0_jar.xml
deleted file mode 100755
index 41e8876..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml
deleted file mode 100755
index 5eb0c28..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml
deleted file mode 100755
index 70ec354..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_collection_collection_1_0_0_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_collection_collection_1_0_0_jar.xml
deleted file mode 100755
index 19279f2..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_collection_collection_1_0_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml
deleted file mode 100755
index 079da99..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml
deleted file mode 100755
index 983609a..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml
deleted file mode 100755
index dfd220e..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml
deleted file mode 100755
index 1081133..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml
deleted file mode 100755
index 8c284df..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml
deleted file mode 100755
index 4f337a6..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml
deleted file mode 100755
index e5ff80a..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml
deleted file mode 100755
index e2d63f7..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml
deleted file mode 100755
index 0bba8de..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml
deleted file mode 100755
index 55b5e02..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml
deleted file mode 100755
index 30e53c7..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml
deleted file mode 100755
index e7b4fb8..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0_jar.xml
deleted file mode 100755
index 4a7ca18..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml
deleted file mode 100755
index 42ec342..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml
deleted file mode 100755
index 8877bc3..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml
deleted file mode 100755
index 2583d03..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml
deleted file mode 100755
index 5ac424a..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml
deleted file mode 100755
index 271f6ca..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml
deleted file mode 100755
index ba9bcce..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml
deleted file mode 100755
index 21f4598..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml
deleted file mode 100755
index fc990fe..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml
deleted file mode 100755
index 1f5c0f9..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml
deleted file mode 100755
index 5f54a31..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_core_1_1_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_core_1_1_0_aar.xml
deleted file mode 100755
index 3297421..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_core_1_1_0_aar.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_1_1_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_1_1_aar.xml
deleted file mode 100755
index 5ac7b85..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_1_1_aar.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_1_1_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_1_1_aar.xml
deleted file mode 100755
index eaeb9c4..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_1_1_aar.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_0_aar.xml
deleted file mode 100755
index 267c6cc..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_0_aar.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_monitor_1_1_1_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_monitor_1_1_1_aar.xml
deleted file mode 100755
index 6a3c08f..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_monitor_1_1_1_aar.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_runner_1_1_1_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_runner_1_1_1_aar.xml
deleted file mode 100755
index 385948e..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_test_runner_1_1_1_aar.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml
deleted file mode 100755
index 3ad7a62..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml
deleted file mode 100755
index 9c2a90c..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml
deleted file mode 100755
index 84fabb3..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml
deleted file mode 100755
index cf85c56..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
deleted file mode 100755
index 8793362..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_1_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_1_jar.xml
deleted file mode 100755
index 2a20de2..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_1_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
deleted file mode 100755
index f9ba158..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
deleted file mode 100755
index 746319d..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
deleted file mode 100755
index a301fe4..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__liji_library_dev_citypickerview_1_1_0_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__liji_library_dev_citypickerview_1_1_0_aar.xml
deleted file mode 100755
index d7218f3..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__liji_library_dev_citypickerview_1_1_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__liji_library_dev_citypickerview_3_1_12_aar.xml b/chapter04_sqlite/.idea/libraries/Gradle__liji_library_dev_citypickerview_3_1_12_aar.xml
deleted file mode 100755
index 0a239cb..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__liji_library_dev_citypickerview_3_1_12_aar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
deleted file mode 100755
index c78160a..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
deleted file mode 100755
index 23922fc..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
deleted file mode 100755
index a738e54..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
deleted file mode 100755
index 40e4b54..0000000
--- a/chapter04_sqlite/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/misc.xml b/chapter04_sqlite/.idea/misc.xml
deleted file mode 100755
index 9e1d7ba..0000000
--- a/chapter04_sqlite/.idea/misc.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Android
-
-
- ComplianceLintAndroid
-
-
- CorrectnessLintAndroid
-
-
- LintAndroid
-
-
- PerformanceLintAndroid
-
-
- UsabilityLintAndroid
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/modules.xml b/chapter04_sqlite/.idea/modules.xml
deleted file mode 100755
index 005da52..0000000
--- a/chapter04_sqlite/.idea/modules.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/runConfigurations.xml b/chapter04_sqlite/.idea/runConfigurations.xml
deleted file mode 100755
index 9b770a6..0000000
--- a/chapter04_sqlite/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/.idea/workspace.xml b/chapter04_sqlite/.idea/workspace.xml
deleted file mode 100755
index 62b45de..0000000
--- a/chapter04_sqlite/.idea/workspace.xml
+++ /dev/null
@@ -1,861 +0,0 @@
-
-
-
-
-
- android-26
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- orangesa
- category_detail_list
- category
- sssssssss
- <include layout="@layout/content_nav" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1575624816891
-
-
- 1575624816891
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/.gitignore b/chapter04_sqlite/app/.gitignore
deleted file mode 100755
index 3543521..0000000
--- a/chapter04_sqlite/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/chapter04_sqlite/app/app.iml b/chapter04_sqlite/app/app.iml
deleted file mode 100755
index 1a49594..0000000
--- a/chapter04_sqlite/app/app.iml
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- generateDebugSources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/build.gradle b/chapter04_sqlite/app/build.gradle
deleted file mode 100755
index 9217ea0..0000000
--- a/chapter04_sqlite/app/build.gradle
+++ /dev/null
@@ -1,34 +0,0 @@
-apply plugin: 'com.android.application'
-
-android {
- compileSdkVersion 29
- buildToolsVersion "29.0.2"
- defaultConfig {
- applicationId "com.orangesale.cn"
- minSdkVersion 26
- targetSdkVersion 29
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
- compileOptions {
- sourceCompatibility = 1.8
- targetCompatibility = 1.8
- }
-}
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'androidx.appcompat:appcompat:1.0.2'
- implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test.ext:junit:1.1.0'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
- implementation 'liji.library.dev:citypickerview:1.1.0'
-}
diff --git a/chapter04_sqlite/app/proguard-rules.pro b/chapter04_sqlite/app/proguard-rules.pro
deleted file mode 100755
index 6e7ffa9..0000000
--- a/chapter04_sqlite/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/chapter04_sqlite/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java b/chapter04_sqlite/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
deleted file mode 100755
index 5e16d32..0000000
--- a/chapter04_sqlite/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.orangesale.cn;
-
-import android.content.Context;
-
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
-
- assertEquals("com.orangesale.cn", appContext.getPackageName());
- }
-}
diff --git a/chapter04_sqlite/app/src/main/AndroidManifest.xml b/chapter04_sqlite/app/src/main/AndroidManifest.xml
deleted file mode 100755
index 31f5b92..0000000
--- a/chapter04_sqlite/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
deleted file mode 100755
index 963b7cb..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/CategoryActivity.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.app.FragmentTransaction;
-import android.os.Bundle;
-import android.widget.ListView;
-
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.adapter.Adapter;
-import com.orangesale.cn.entity.Product;
-import com.orangesale.cn.fragment.SetDetailFragment;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-
-public class CategoryActivity extends Activity {
- public OnChangeListener onchangedListener;
- private List productList;
- private List productCategory = new ArrayList<>();
- private ListView titleList;
- private Adapter adapter;
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.content_category);
- initData();
- init();
- SetDetailFragment fragment = new SetDetailFragment();
- FragmentManager fragmentManager = getFragmentManager();
- FragmentTransaction transaction = fragmentManager.beginTransaction();
- transaction.replace(R.id.category_detail, fragment);
- transaction.commit();
- titleList.setOnItemClickListener((parent, view, position, id) -> {
- adapter.setSelectedPosition(position);
- adapter.notifyDataSetInvalidated();
- if (onchangedListener != null) {
- onchangedListener.changeText(productList.get(position));
- }
- });
-
- }
-
- public void setOnChangeListener(OnChangeListener onChangeListener) {
- this.onchangedListener = onChangeListener;
- }
-
- public interface OnChangeListener {
- void changeText(Product product);
- }
-
- /**
- * 初始化数据
- */
- private void initData() {
- productList = new ArrayList<>();
- productCategory.add("橘子");
- productCategory.add("橙子");
- productCategory.add("柚子");
- Product product = new Product();
- product.setImageUrlId(R.drawable.arrow_down);
- product.setProductName("橘子");
- product.setProductPrice(new BigDecimal("9.9"));
- Product product1 = new Product();
- product1.setImageUrlId(R.drawable.orange);
- product1.setProductName("橙子");
- product1.setProductPrice(new BigDecimal("29.9"));
- Product product2 = new Product();
- product2.setImageUrlId(R.drawable.arrow_left);
- product2.setProductName("柚子");
- product2.setProductPrice(new BigDecimal("19.9"));
- productList.add(product);
- productList.add(product1);
- productList.add(product2);
- }
-
- /**
- * 初始化组件
- */
- private void init() {
- titleList = findViewById(R.id.category_title_list);
- adapter = new Adapter(productCategory, CategoryActivity.this);
- titleList.setAdapter(adapter);
- }
-}
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/IndexActivity.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/IndexActivity.java
deleted file mode 100755
index 07152fc..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/IndexActivity.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.app.Activity;
-import android.app.FragmentTransaction;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.fragment.IndexFragment;
-import com.orangesale.cn.fragment.PearsonFragment;
-import com.orangesale.cn.fragment.ProductFragment;
-import com.orangesale.cn.fragment.ShoppingCartFragment;
-
-public class IndexActivity extends Activity implements View.OnClickListener {
- private IndexFragment indexFragment;
- private ProductFragment productFragment;
- private ShoppingCartFragment shoppingCartFragment;
- private PearsonFragment pearsonFragment;
- private LinearLayout indexLine, productLine, shoppingCartLine, pearsonLine;
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- init();
- initIndexFragment();
- }
-
- /**
- * 组件初始化
- */
- private void init() {
- indexLine = findViewById(R.id.content_index);
- indexLine.setOnClickListener(this);
- productLine = findViewById(R.id.content_product);
- productLine.setOnClickListener(this);
- shoppingCartLine = findViewById(R.id.content_cart);
- shoppingCartLine.setOnClickListener(this);
- pearsonLine = findViewById(R.id.content_pearson);
- pearsonLine.setOnClickListener(this);
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.content_index:
- initIndexFragment();
- break;
- case R.id.content_product:
- initproductFragment();
- break;
- case R.id.content_cart:
- initshoppingCartFragment();
- break;
- case R.id.content_pearson:
- initpearsonFragment();
- break;
- }
- }
-
- /**
- * 初始化首页Fragment
- */
- private void initIndexFragment() {
- //开启事务,fragment的控制是由事务来实现的
- FragmentTransaction transaction = getFragmentManager().beginTransaction();
- if (indexFragment == null) {
- indexFragment = new IndexFragment();
- }
- transaction.replace(R.id.main_content, indexFragment);
- transaction.commit();
- }
-
- /**
- * 初始化产品Fragment
- */
- private void initproductFragment() {
- //开启事务,fragment的控制是由事务来实现的
- FragmentTransaction transaction = getFragmentManager().beginTransaction();
- if (productFragment == null) {
- productFragment = new ProductFragment();
- }
- transaction.replace(R.id.main_content, productFragment);
- transaction.commit();
- }
-
- /**
- * 初始化购物车Fragment
- */
- private void initshoppingCartFragment() {
- //开启事务,fragment的控制是由事务来实现的
- FragmentTransaction transaction = getFragmentManager().beginTransaction();
- if (shoppingCartFragment == null) {
- shoppingCartFragment = new ShoppingCartFragment();
- }
- transaction.replace(R.id.main_content, shoppingCartFragment);
- transaction.commit();
- }
-
- /**
- * 初始化个人Fragment
- */
- private void initpearsonFragment() {
- //开启事务,fragment的控制是由事务来实现的
- FragmentTransaction transaction = getFragmentManager().beginTransaction();
- if (pearsonFragment == null) {
- Intent intent = IndexActivity.this.getIntent();
- Bundle bundle = intent.getExtras();
- pearsonFragment = new PearsonFragment();
- pearsonFragment.setArguments(bundle);
- }
- transaction.replace(R.id.main_content, pearsonFragment);
- transaction.commit();
- }
-
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
deleted file mode 100755
index 5f41097..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/RegisterActivity.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.content.ContentValues;
-import android.content.Intent;
-import android.database.sqlite.SQLiteDatabase;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.RadioGroup;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.lljjcoder.citypickerview.widget.CityPicker;
-import com.orangesale.cn.R;
-import com.orangesale.cn.dataoperation.OrangeDatabase;
-
-public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
- private EditText usernameEdit, passwordEdit, surePasswordEdit;
- private TextView cityText;
- private CityPicker cityPicker;
- private Button regButton;
- private RadioGroup sexGroup;
- private String sexStr = "男";
-
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.user_register);
- init();
- }
-
- /**
- * 界面组件初始化
- */
- private void init() {
- cityText = findViewById(R.id.reg_province);
- cityText.setOnClickListener(this);
- usernameEdit = findViewById(R.id.reg_username);
- passwordEdit = findViewById(R.id.reg_password);
- surePasswordEdit = findViewById(R.id.reg_sure_password);
- regButton = findViewById(R.id.reg_register);
- regButton.setOnClickListener(this);
- sexGroup = findViewById(R.id.sex);
- sexGroup.setOnCheckedChangeListener(this);
-
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.reg_province:
- initCityPicker();
- cityPicker.show();
- break;
- case R.id.reg_register:
- //注册验证方法
- validateRegister();
- break;
-
- }
- }
-
- /**
- * 初始化城市选择器
- */
- public void initCityPicker() {
- cityPicker = new CityPicker.Builder(RegisterActivity.this)
- .textSize(16)
- .title("地址选择")
- .backgroundPop(0xa0000000)
- .titleBackgroundColor("#EFB81C")
- .titleTextColor("#000000")
- .backgroundPop(0xa0000000)
- .confirTextColor("#000000")
- .cancelTextColor("#000000")
- .province("江西省")
- .city("赣州市")
- .district("章贡区")
- .textColor(Color.parseColor("#000000"))
- .provinceCyclic(true)
- .cityCyclic(false)
- .districtCyclic(false)
- .visibleItemsCount(7)
- .itemPadding(10)
- .onlyShowProvinceAndCity(false)
- .build();
- cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
- @Override
- public void onSelected(String... strings) {
- String province = strings[0];
- String city = strings[1];
- String district = strings[2];
- cityText.setText(String.format("%s %s %s", province, city, district));
- }
-
- @Override
- public void onCancel() {
- }
- });
-
- }
-
- /**
- * 注册验证
- */
- public void validateRegister() {
- String username = usernameEdit.getText().toString();
- String password = passwordEdit.getText().toString();
- String surePassword = surePasswordEdit.getText().toString();
- String city = cityText.getText().toString();
- //判断两次密码是否输入一致
- if (password.equals(surePassword)) {
- //这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
- if (!username.equals("") || !password.equals("")) {
- if (!city.equals("")) {
- Bundle bundle = new Bundle();
- bundle.putString("username", username);
- bundle.putString("password", password);
- bundle.putString("sex", sexStr);
- bundle.putString("city", city);
- //本节将使用安卓自身带的SQLite数据库的方式存储注册的信息(之前直接传输显示在界面是的方式)
- OrangeDatabase orangeDatabase = new OrangeDatabase(RegisterActivity.this);
- SQLiteDatabase sqLiteDatabase = orangeDatabase.getWritableDatabase();
- insertData(sqLiteDatabase, bundle);
- Intent intent = new Intent(RegisterActivity.this, IndexActivity.class);
- intent.putExtras(bundle);
- startActivity(intent);
- } else {
- Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show();
- }
- } else {
- Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show();
- }
- } else {
- Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
- }
-
-
- }
-
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- //根据用户选择来改变sex的值
- sexStr = checkedId == R.id.reg_man ? "男" : "女";
- }
-
- /**
- * 插入数据库的值
- *
- * @param sqLiteDatabase
- * @param bundle
- */
- private void insertData(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
- ContentValues contentValues = new ContentValues();
- contentValues.put("username", bundle.getString("username"));
- contentValues.put("password", bundle.getString("password"));
- contentValues.put("sex", bundle.getString("sex"));
- contentValues.put("city", bundle.getString("city"));
- sqLiteDatabase.insert("orange_user", null, contentValues);
- sqLiteDatabase.close();
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/UserActivity.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/UserActivity.java
deleted file mode 100755
index 27eaef2..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/activity/UserActivity.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.orangesale.cn.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-
-public class UserActivity extends Activity implements View.OnClickListener {
- private ImageView userIconImage;
- private TextView usernameText, userSexText, userCityText;
- private LinearLayout usernameLine, userSexline, userCityLine, userPayLine, userSettingLine, userGeneralLine, userSearchProductLine;
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.content_user);
- init();
- }
-
- /**
- * 组件初始化
- */
- private void init() {
- userIconImage = findViewById(R.id.user_icon);
- usernameText = findViewById(R.id.user_username);
- userSexText = findViewById(R.id.user_sex);
- userCityText = findViewById(R.id.user_city);
- usernameLine = findViewById(R.id.user_username_line);
- userSexline = findViewById(R.id.user_sex_line);
- userCityLine = findViewById(R.id.user_city_line);
- userPayLine = findViewById(R.id.user_pay);
- userSettingLine = findViewById(R.id.user_setting);
- userGeneralLine = findViewById(R.id.user_general);
- userSearchProductLine = findViewById(R.id.user_searchProduct);
- userSearchProductLine.setOnClickListener(this);
- setData();
- }
-
- /**
- * 组件赋值
- */
- private void setData() {
- Intent intent = UserActivity.this.getIntent();
- Bundle bundle = intent.getExtras();
- usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
- userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
- userCityText.setText(String.format("城市:%s", bundle.getString("city")));
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.user_searchProduct:
- Intent intent1 = new Intent(UserActivity.this, CategoryActivity.class);
- startActivity(intent1);
- break;
- }
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/adapter/Adapter.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/adapter/Adapter.java
deleted file mode 100755
index b54de24..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/adapter/Adapter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.orangesale.cn.adapter;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-import com.orangesale.cn.R;
-
-import java.util.List;
-
-public class Adapter extends BaseAdapter {
- private List productCategory;
- private LayoutInflater layoutInflater;
- private int selectionPosition = -1;
-
- public Adapter(List productCategory, Context context) {
- this.productCategory = productCategory;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @Override
- public int getCount() {
- return productCategory.size();
- }
-
- @Override
- public Object getItem(int position) {
- return productCategory.get(position);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder viewHolder = null;
- if (convertView == null) {
- viewHolder = new ViewHolder();
- convertView = layoutInflater.inflate(R.layout.category_list_item, null);
- Log.i("adapts", "getView: " + convertView);
- viewHolder.tv = convertView.findViewById(R.id.categor_titles);
- convertView.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- }
- viewHolder.tv.setText(productCategory.get(position));
- if (selectionPosition == position) {
- viewHolder.tv.setBackgroundColor(Color.YELLOW);
- } else {
- viewHolder.tv.setBackgroundColor(Color.WHITE);
- }
- return convertView;
- }
-
- public void setSelectedPosition(int position) {
- this.selectionPosition = position;
- }
-
- class ViewHolder {
- TextView tv;
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
deleted file mode 100755
index d459f94..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/adapter/ProductAdapter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.orangesale.cn.adapter;
-
-import android.content.Context;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.entity.Product;
-
-import java.util.List;
-
-public class ProductAdapter extends BaseAdapter {
- private List productList;
- private LayoutInflater layoutInflater;
-
- public ProductAdapter(Context context, List productList) {
- this.productList = productList;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @Override
- public int getCount() {
- return productList.size();
- }
-
- @Override
- public Object getItem(int position) {
- return productList.get(position);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder viewHolder;
- if (convertView == null) {
- Log.i("aa", "getView: "+"aa");
- convertView = layoutInflater.inflate(R.layout.categoty_detail_content, null);
- viewHolder = new ViewHolder();
- viewHolder.productImage = convertView.findViewById(R.id.category_product_image);
- viewHolder.productName = convertView.findViewById(R.id.category_product_name);
- viewHolder.productPrice = convertView.findViewById(R.id.category_product_price);
- convertView.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- }
- Product product = productList.get(position);
- Log.i("product", "getView: "+product.toString());
- if (product != null) {
- viewHolder.productImage.setBackgroundResource(product.getImageUrlId());
- viewHolder.productName.setText(product.getProductName());
- viewHolder.productPrice.setText(String.valueOf(product.getProductPrice()));
- }
- return convertView;
- }
-
- class ViewHolder {
- ImageView productImage;
- TextView productName, productPrice;
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java
deleted file mode 100755
index 1437bf9..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/dataoperation/OrangeDatabase.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.orangesale.cn.dataoperation;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-
-public class OrangeDatabase extends SQLiteOpenHelper {
- public OrangeDatabase(@Nullable Context context) {
- super(context, "orange", null, 1);
- }
-
- @Override
- public void onCreate(SQLiteDatabase db) {
- //创建用户表
- String sql = "create table orange_user(id integer primary key autoincrement, username varchar(50), password varchar(50),sex varchar(10),city carchar(50))";
- db.execSQL(sql);
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-
- }
-
- /**
- * 插入数据
- *
- * @param sqLiteDatabase
- * @param username
- * @param password
- * @param sex
- * @param city
- */
- public void insertUser(SQLiteDatabase sqLiteDatabase, String username, String password, String sex, String city) {
- ContentValues contentValues = new ContentValues();
- contentValues.put("username", username);
- contentValues.put("password", password);
- contentValues.put("sex", sex);
- contentValues.put("city", city);
- sqLiteDatabase.insert("orange_user", null, contentValues);
- sqLiteDatabase.close();
- }
-
- /**
- * 查询数据
- *
- * @param sqLiteDatabase
- * @param bundle
- * @return
- */
- public Bundle queryUserInfo(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
- String username = bundle.getString("username");
- Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=?", new String[]{username});
- if (cursor != null) {
- while (cursor.moveToNext()) {
- bundle.putString("sex", cursor.getString(3));
- bundle.putString("city", cursor.getString(4));
- }
- }
- cursor.close();
- sqLiteDatabase.close();
- return bundle;
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
deleted file mode 100755
index 0c4b2f7..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.orangesale.cn.entity;
-
-public class OrangeUser {
- private Integer id;
- private String username;
- private String password;
- private String sex;
- private String city;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
-
- public String getCity() {
- return city;
- }
-
- public void setCity(String city) {
- this.city = city;
- }
-
- @Override
- public String toString() {
- return "OrangeUser{" +
- "username='" + username + '\'' +
- ", password='" + password + '\'' +
- ", sex='" + sex + '\'' +
- ", city='" + city + '\'' +
- '}';
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/entity/Product.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/entity/Product.java
deleted file mode 100755
index e640ee8..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/entity/Product.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.orangesale.cn.entity;
-
-import java.math.BigDecimal;
-
-public class Product {
-
- public String getProductName() {
- return productName;
- }
-
- public void setProductName(String productName) {
- this.productName = productName;
- }
-
- public BigDecimal getProductPrice() {
- return productPrice;
- }
-
- public void setProductPrice(BigDecimal productPrice) {
- this.productPrice = productPrice;
- }
-
- public Integer getImageUrlId() {
- return imageUrlId;
- }
-
- public void setImageUrlId(Integer imageUrlId) {
- this.imageUrlId = imageUrlId;
- }
-
- private Integer imageUrlId;
- private String productName;
- private BigDecimal productPrice;
-
- @Override
- public String toString() {
- return "Product{" +
- "imageUrlId=" + imageUrlId +
- ", productName='" + productName + '\'' +
- ", productPrice=" + productPrice +
- '}';
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
deleted file mode 100755
index a2b9d65..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/IndexFragment.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.orangesale.cn.fragment;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.GridView;
-import android.widget.LinearLayout;
-import android.widget.SearchView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.adapter.ProductAdapter;
-import com.orangesale.cn.entity.Product;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-public class IndexFragment extends Fragment implements View.OnClickListener {
- private SearchView searchView;
- private LinearLayout orangeLine, youziLine, juziLine, xiguaLine, liLine, appleLine, lemonLine, mangguoLine;
- private GridView gridView;
- private List productList;
- private ProductAdapter productAdapter;
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_index, container, false);
- init(view);
- return view;
- }
-
- /**
- * 初始化组件
- */
- private void init(View view) {
- searchView = view.findViewById(R.id.searchView);
- searchView.setOnClickListener(this);
- orangeLine = view.findViewById(R.id.chengzi);
- orangeLine.setOnClickListener(this);
- youziLine = view.findViewById(R.id.youzi);
- youziLine.setOnClickListener(this);
- juziLine = view.findViewById(R.id.juzi);
- juziLine.setOnClickListener(this);
- xiguaLine = view.findViewById(R.id.xigua);
- xiguaLine.setOnClickListener(this);
- liLine = view.findViewById(R.id.li);
- liLine.setOnClickListener(this);
- lemonLine = view.findViewById(R.id.lemon);
- lemonLine.setOnClickListener(this);
- mangguoLine = view.findViewById(R.id.mangguo);
- mangguoLine.setOnClickListener(this);
- appleLine = view.findViewById(R.id.apple);
- appleLine.setOnClickListener(this);
- gridView = view.findViewById(R.id.index_famous_gridview);
- initData();
- productAdapter = new ProductAdapter(getActivity(), productList);
- gridView.setAdapter(productAdapter);
- }
-
-
- @Override
- public void onClick(View v) {
-
- }
-
- /**
- * 初始化商品数据
- */
- private void initData() {
- productList = new ArrayList<>();
- Product product = new Product();
- product.setImageUrlId(R.drawable.juzip);
- product.setProductName("橘子");
- product.setProductPrice(new BigDecimal("9.9"));
- Product product1 = new Product();
- product1.setImageUrlId(R.drawable.orange);
- product1.setProductName("橙子");
- product1.setProductPrice(new BigDecimal("29.9"));
- Product product2 = new Product();
- product2.setImageUrlId(R.drawable.youzip);
- product2.setProductName("柚子");
- product2.setProductPrice(new BigDecimal("19.9"));
- Product product3 = new Product();
- product3.setImageUrlId(R.drawable.xiguap);
- product3.setProductName("西瓜");
- product3.setProductPrice(new BigDecimal("19.9"));
- Product product4 = new Product();
- product4.setImageUrlId(R.drawable.applep);
- product4.setProductName("苹果");
- product4.setProductPrice(new BigDecimal("49.9"));
- Product product5 = new Product();
- product5.setImageUrlId(R.drawable.lemonp);
- product5.setProductName("柠檬");
- product5.setProductPrice(new BigDecimal("9.9"));
- productList.add(product);
- productList.add(product1);
- productList.add(product2);
- productList.add(product3);
- productList.add(product4);
- productList.add(product5);
-
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java
deleted file mode 100755
index 10ec6dc..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/PearsonFragment.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.orangesale.cn.fragment;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-
-public class PearsonFragment extends Fragment implements View.OnClickListener {
- private ImageView userIconImage;
- private TextView usernameText, userSexText, userCityText;
- private LinearLayout usernameLine, userSexline, userCityLine, userPayLine, userSettingLine, userGeneralLine;
-
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_user, container, false);
- init(view);
- return view;
- }
-
- /**
- * 组件初始化
- */
- private void init(View view) {
- userIconImage = view.findViewById(R.id.user_icon);
- usernameText = view.findViewById(R.id.user_username);
- userSexText = view.findViewById(R.id.user_sex);
- userCityText = view.findViewById(R.id.user_city);
- usernameLine = view.findViewById(R.id.user_username_line);
- userSexline = view.findViewById(R.id.user_sex_line);
- userCityLine = view.findViewById(R.id.user_city_line);
- userPayLine = view.findViewById(R.id.user_pay);
- userSettingLine = view.findViewById(R.id.user_setting);
- userGeneralLine = view.findViewById(R.id.user_general);
- setData();
- }
-
- /**
- * 组件赋值
- */
- private void setData() {
- Bundle bundle = getArguments();
- usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
- userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
- userCityText.setText(String.format("城市:%s", bundle.getString("city")));
- }
-
- @Override
- public void onClick(View v) {
-
- }
-
-
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
deleted file mode 100755
index 44905fa..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/ProductFragment.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.orangesale.cn.fragment;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-
-public class ProductFragment extends Fragment {
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_product, container, false);
- return view;
- }
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
deleted file mode 100755
index a6ccfcc..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.orangesale.cn.fragment;
-
-import android.annotation.SuppressLint;
-import android.app.Fragment;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.activity.CategoryActivity;
-
-import java.util.Objects;
-
-public class SetDetailFragment extends Fragment {
- private View view;
- private ImageView imageView;
- private TextView nameText, priceText;
-
- @SuppressLint("SetTextI18n")
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- view = inflater.inflate(R.layout.categoty_detail_content, container, false);
- if (view != null) {
- init();
- }
- CategoryActivity categoryActivity = (CategoryActivity) getActivity();
- Objects.requireNonNull(categoryActivity).setOnChangeListener(product -> {
- Log.i("sss", "onCreateView: " + product.getProductName());
- imageView.setBackgroundResource(product.getImageUrlId());
- nameText.setText(product.getProductName());
- priceText.setText(product.getProductPrice().toString());
- });
- return view;
- }
-
- /**
- * 内容组件初始化
- */
- private void init() {
- imageView = view.findViewById(R.id.category_product_image);
- nameText = view.findViewById(R.id.category_product_name);
- priceText = view.findViewById(R.id.category_product_price);
- }
-
-}
diff --git a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java b/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java
deleted file mode 100755
index ee5a1b2..0000000
--- a/chapter04_sqlite/app/src/main/java/com/orangesale/cn/fragment/ShoppingCartFragment.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.orangesale.cn.fragment;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-
-public class ShoppingCartFragment extends Fragment {
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_shopping, container, false);
- return view;
- }
-}
diff --git a/chapter04_sqlite/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/chapter04_sqlite/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
deleted file mode 100755
index 971add5..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/chapter04_sqlite/app/src/main/res/drawable/address.png b/chapter04_sqlite/app/src/main/res/drawable/address.png
deleted file mode 100755
index 7318be0..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/address.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/arrow_down.png b/chapter04_sqlite/app/src/main/res/drawable/arrow_down.png
deleted file mode 100755
index 6d95bb5..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/arrow_down.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/arrow_left.png b/chapter04_sqlite/app/src/main/res/drawable/arrow_left.png
deleted file mode 100755
index 365afe0..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/arrow_left.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/arrow_right.png b/chapter04_sqlite/app/src/main/res/drawable/arrow_right.png
deleted file mode 100755
index 84ded85..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/arrow_right.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/button_login.xml b/chapter04_sqlite/app/src/main/res/drawable/button_login.xml
deleted file mode 100755
index 290aa07..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable/button_login.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/drawable/button_register.xml b/chapter04_sqlite/app/src/main/res/drawable/button_register.xml
deleted file mode 100755
index 613a7a3..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable/button_register.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/drawable/chengzi.png b/chapter04_sqlite/app/src/main/res/drawable/chengzi.png
deleted file mode 100755
index fff0306..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/chengzi.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/city.png b/chapter04_sqlite/app/src/main/res/drawable/city.png
deleted file mode 100755
index 790fb2b..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/city.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/ic_launcher_background.xml b/chapter04_sqlite/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100755
index eed7a42..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/chapter04_sqlite/app/src/main/res/drawable/index_menu.xml b/chapter04_sqlite/app/src/main/res/drawable/index_menu.xml
deleted file mode 100755
index f56bc61..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable/index_menu.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/drawable/juzi.png b/chapter04_sqlite/app/src/main/res/drawable/juzi.png
deleted file mode 100755
index 106df92..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/juzi.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/orange.png b/chapter04_sqlite/app/src/main/res/drawable/orange.png
deleted file mode 100755
index 70e8db8..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/orange.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/password.png b/chapter04_sqlite/app/src/main/res/drawable/password.png
deleted file mode 100755
index 1c6c4f5..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/password.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/search.png b/chapter04_sqlite/app/src/main/res/drawable/search.png
deleted file mode 100755
index a8b5ac0..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/search.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/setting.png b/chapter04_sqlite/app/src/main/res/drawable/setting.png
deleted file mode 100755
index 34c2f2f..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/setting.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/sex.png b/chapter04_sqlite/app/src/main/res/drawable/sex.png
deleted file mode 100755
index acb8197..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/sex.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/spinner_drop_down_shape.xml b/chapter04_sqlite/app/src/main/res/drawable/spinner_drop_down_shape.xml
deleted file mode 100755
index 9145351..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable/spinner_drop_down_shape.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- -
-
-
-
-
-
-
- -
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/drawable/sure_apssword.png b/chapter04_sqlite/app/src/main/res/drawable/sure_apssword.png
deleted file mode 100755
index 0e7cee9..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/sure_apssword.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/tab_menu_text.xml b/chapter04_sqlite/app/src/main/res/drawable/tab_menu_text.xml
deleted file mode 100755
index ff3a059..0000000
--- a/chapter04_sqlite/app/src/main/res/drawable/tab_menu_text.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/drawable/user.png b/chapter04_sqlite/app/src/main/res/drawable/user.png
deleted file mode 100755
index 47d8362..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/user.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/user_account.png b/chapter04_sqlite/app/src/main/res/drawable/user_account.png
deleted file mode 100755
index e70142a..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/user_account.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/user_general.png b/chapter04_sqlite/app/src/main/res/drawable/user_general.png
deleted file mode 100755
index cf57947..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/user_general.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/user_icon.png b/chapter04_sqlite/app/src/main/res/drawable/user_icon.png
deleted file mode 100755
index d5309b1..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/user_icon.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/user_pay.png b/chapter04_sqlite/app/src/main/res/drawable/user_pay.png
deleted file mode 100755
index 3fd6f50..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/user_pay.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/user_sex.png b/chapter04_sqlite/app/src/main/res/drawable/user_sex.png
deleted file mode 100755
index da0e318..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/user_sex.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/drawable/youzi.png b/chapter04_sqlite/app/src/main/res/drawable/youzi.png
deleted file mode 100755
index 53df959..0000000
Binary files a/chapter04_sqlite/app/src/main/res/drawable/youzi.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/layout/activity_main.xml b/chapter04_sqlite/app/src/main/res/layout/activity_main.xml
deleted file mode 100755
index 8efbc79..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/category_detail.xml b/chapter04_sqlite/app/src/main/res/layout/category_detail.xml
deleted file mode 100755
index 5bca87f..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/category_detail.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/category_list_item.xml b/chapter04_sqlite/app/src/main/res/layout/category_list_item.xml
deleted file mode 100755
index 09e87d8..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/category_list_item.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/categoty_detail_content.xml b/chapter04_sqlite/app/src/main/res/layout/categoty_detail_content.xml
deleted file mode 100755
index b3972c2..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/categoty_detail_content.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/content_category.xml b/chapter04_sqlite/app/src/main/res/layout/content_category.xml
deleted file mode 100755
index 7c73e75..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/content_category.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/content_index.xml b/chapter04_sqlite/app/src/main/res/layout/content_index.xml
deleted file mode 100755
index d935945..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/content_index.xml
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/content_nav.xml b/chapter04_sqlite/app/src/main/res/layout/content_nav.xml
deleted file mode 100755
index 4c54af1..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/content_nav.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/content_product.xml b/chapter04_sqlite/app/src/main/res/layout/content_product.xml
deleted file mode 100755
index 45cbdb7..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/content_product.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/content_shopping.xml b/chapter04_sqlite/app/src/main/res/layout/content_shopping.xml
deleted file mode 100755
index caf7a62..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/content_shopping.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/content_user.xml b/chapter04_sqlite/app/src/main/res/layout/content_user.xml
deleted file mode 100755
index 43636c2..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/content_user.xml
+++ /dev/null
@@ -1,234 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/index_famous.xml b/chapter04_sqlite/app/src/main/res/layout/index_famous.xml
deleted file mode 100755
index e0ab56b..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/index_famous.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/user_login.xml b/chapter04_sqlite/app/src/main/res/layout/user_login.xml
deleted file mode 100755
index ff61360..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/user_login.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/layout/user_register.xml b/chapter04_sqlite/app/src/main/res/layout/user_register.xml
deleted file mode 100755
index 548eefd..0000000
--- a/chapter04_sqlite/app/src/main/res/layout/user_register.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/chapter04_sqlite/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100755
index a26f6fb..0000000
--- a/chapter04_sqlite/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/chapter04_sqlite/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100755
index a26f6fb..0000000
--- a/chapter04_sqlite/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-hdpi/ic_launcher.png b/chapter04_sqlite/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100755
index 898f3ed..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/chapter04_sqlite/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100755
index dffca36..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-mdpi/ic_launcher.png b/chapter04_sqlite/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100755
index 64ba76f..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/chapter04_sqlite/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100755
index dae5e08..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/chapter04_sqlite/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100755
index e5ed465..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/chapter04_sqlite/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100755
index 14ed0af..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/chapter04_sqlite/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100755
index b0907ca..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/chapter04_sqlite/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100755
index d8ae031..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/chapter04_sqlite/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100755
index 2c18de9..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/chapter04_sqlite/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100755
index beed3cd..0000000
Binary files a/chapter04_sqlite/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter04_sqlite/app/src/main/res/values/colors.xml b/chapter04_sqlite/app/src/main/res/values/colors.xml
deleted file mode 100755
index 6b3f6ab..0000000
--- a/chapter04_sqlite/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- #008577
- #00574B
- #D81B60
-
diff --git a/chapter04_sqlite/app/src/main/res/values/strings.xml b/chapter04_sqlite/app/src/main/res/values/strings.xml
deleted file mode 100755
index 02daafe..0000000
--- a/chapter04_sqlite/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
- 橙一色
- 用户名:
- 密 码:
-
diff --git a/chapter04_sqlite/app/src/main/res/values/styles.xml b/chapter04_sqlite/app/src/main/res/values/styles.xml
deleted file mode 100755
index 6f19b47..0000000
--- a/chapter04_sqlite/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/chapter04_sqlite/app/src/test/java/com/orangesale/cn/ExampleUnitTest.java b/chapter04_sqlite/app/src/test/java/com/orangesale/cn/ExampleUnitTest.java
deleted file mode 100755
index 70859a8..0000000
--- a/chapter04_sqlite/app/src/test/java/com/orangesale/cn/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.orangesale.cn;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file
diff --git a/chapter04_sqlite/build.gradle b/chapter04_sqlite/build.gradle
deleted file mode 100755
index 69cab14..0000000
--- a/chapter04_sqlite/build.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
-buildscript {
- repositories {
- google()
- jcenter()
-
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.5.2'
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- }
-}
-
-allprojects {
- repositories {
- google()
- jcenter()
-
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/chapter04_sqlite/gradle.properties b/chapter04_sqlite/gradle.properties
deleted file mode 100755
index 55f37b3..0000000
--- a/chapter04_sqlite/gradle.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-# Project-wide Gradle settings.
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx1536m
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-# AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
-android.useAndroidX=true
-# Automatically convert third-party libraries to use AndroidX
-android.enableJetifier=true
-
diff --git a/chapter04_sqlite/gradle/wrapper/gradle-wrapper.properties b/chapter04_sqlite/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100755
index 60decb6..0000000
--- a/chapter04_sqlite/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Fri Dec 06 17:33:43 CST 2019
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
diff --git a/chapter04_sqlite/gradlew.bat b/chapter04_sqlite/gradlew.bat
deleted file mode 100755
index e95643d..0000000
--- a/chapter04_sqlite/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/chapter04_sqlite/local.properties b/chapter04_sqlite/local.properties
deleted file mode 100755
index b4fbdb0..0000000
--- a/chapter04_sqlite/local.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-## This file must *NOT* be checked into Version Control Systems,
-# as it contains information specific to your local configuration.
-#
-# Location of the SDK. This is only used by Gradle.
-# For customization when using a Version Control System, please read the
-# header note.
-#Fri Dec 20 15:01:56 CST 2019
-sdk.dir=H\:\\sdk
diff --git a/chapter04_sqlite/orangesale.iml b/chapter04_sqlite/orangesale.iml
deleted file mode 100755
index 5cd636b..0000000
--- a/chapter04_sqlite/orangesale.iml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter04_sqlite/settings.gradle b/chapter04_sqlite/settings.gradle
deleted file mode 100755
index 3effc47..0000000
--- a/chapter04_sqlite/settings.gradle
+++ /dev/null
@@ -1,2 +0,0 @@
-include ':app'
-rootProject.name='orangesale'
diff --git a/chapter06_net/.idea/.name b/chapter06_net/.idea/.name
deleted file mode 100644
index b7ddd75..0000000
--- a/chapter06_net/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-orangesale
\ No newline at end of file
diff --git a/chapter06_net/app/.gitignore b/chapter06_net/app/.gitignore
deleted file mode 100644
index 796b96d..0000000
--- a/chapter06_net/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/chapter06_net/app/proguard-rules.pro b/chapter06_net/app/proguard-rules.pro
deleted file mode 100644
index f1b4245..0000000
--- a/chapter06_net/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/chapter06_net/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java b/chapter06_net/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
deleted file mode 100644
index 713d673..0000000
--- a/chapter06_net/app/src/androidTest/java/com/orangesale/cn/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.orangesale.cn;
-
-import android.content.Context;
-
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
-
- assertEquals("com.orangesale.cn", appContext.getPackageName());
- }
-}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/MainActivity.java b/chapter06_net/app/src/main/java/com/orangesale/cn/MainActivity.java
deleted file mode 100644
index 25ed3e8..0000000
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/MainActivity.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.orangesale.cn;
-
-import android.content.Intent;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Toast;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.orangesale.cn.activity.IndexActivity;
-import com.orangesale.cn.activity.RegisterActivity;
-import com.orangesale.cn.dataoperation.OrangeDatabase;
-
-public class MainActivity extends AppCompatActivity implements View.OnClickListener {
- private Button registerButton, loginButton;
- private EditText usernameText, paswdEdit;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.user_login);
- init();
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.register:
- Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
- startActivity(intent);
- break;
- case R.id.login:
- //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示
- if (validateLogin()) {
- Intent intent1 = new Intent(MainActivity.this, IndexActivity.class);
- Bundle bundle = new Bundle();
- OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
- bundle.putString("username", usernameText.getText().toString());
- bundle = orangeDatabase.queryUserInfo(orangeDatabase.getReadableDatabase(), bundle);
- intent1.putExtras(bundle);
- startActivity(intent1);
- } else {
- Toast.makeText(MainActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
- }
- break;
- }
- }
-
- //界面组件初始化
- private void init() {
- usernameText = findViewById(R.id.username);
- paswdEdit = findViewById(R.id.password);
- loginButton = findViewById(R.id.login);
- loginButton.setOnClickListener(this);
- registerButton = findViewById(R.id.register);
- registerButton.setOnClickListener(this);
- }
-
- /**
- * 登录验证
- *
- * @return
- */
- private boolean validateLogin() {
- String username = usernameText.getText().toString();
- String password = paswdEdit.getText().toString();
- OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
- SQLiteDatabase sqLiteDatabase = orangeDatabase.getReadableDatabase();
- Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=? and password=?", new String[]{username, password});
- if (cursor.getCount() > 0) {
- return true;
- }
- return false;
- }
-}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/adapter/Adapter.java b/chapter06_net/app/src/main/java/com/orangesale/cn/adapter/Adapter.java
deleted file mode 100644
index 95f6552..0000000
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/adapter/Adapter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.orangesale.cn.adapter;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-import com.orangesale.cn.R;
-
-import java.util.List;
-
-public class Adapter extends BaseAdapter {
- private List productCategory;
- private LayoutInflater layoutInflater;
- private int selectionPosition = -1;
-
- public Adapter(List productCategory, Context context) {
- this.productCategory = productCategory;
- this.layoutInflater = LayoutInflater.from(context);
- }
-
- @Override
- public int getCount() {
- return productCategory.size();
- }
-
- @Override
- public Object getItem(int position) {
- return productCategory.get(position);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder viewHolder = null;
- if (convertView == null) {
- viewHolder = new ViewHolder();
- convertView = layoutInflater.inflate(R.layout.category_list_item, null);
- Log.i("adapts", "getView: " + convertView);
- viewHolder.tv = convertView.findViewById(R.id.categor_titles);
- convertView.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- }
- viewHolder.tv.setText(productCategory.get(position));
- if (selectionPosition == position) {
- viewHolder.tv.setBackgroundColor(Color.YELLOW);
- } else {
- viewHolder.tv.setBackgroundColor(Color.WHITE);
- }
- return convertView;
- }
-
- public void setSelectedPosition(int position) {
- this.selectionPosition = position;
- }
-
- class ViewHolder {
- TextView tv;
- }
-}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java b/chapter06_net/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
deleted file mode 100644
index bc3e24e..0000000
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/entity/OrangeUser.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.orangesale.cn.entity;
-
-public class OrangeUser {
- private Integer id;
- private String username;
- private String password;
- private String sex;
- private String city;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
-
- public String getCity() {
- return city;
- }
-
- public void setCity(String city) {
- this.city = city;
- }
-
- @Override
- public String toString() {
- return "OrangeUser{" +
- "username='" + username + '\'' +
- ", password='" + password + '\'' +
- ", sex='" + sex + '\'' +
- ", city='" + city + '\'' +
- '}';
- }
-}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java b/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
deleted file mode 100644
index 14ad354..0000000
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/fragment/SetDetailFragment.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.orangesale.cn.fragment;
-
-import android.annotation.SuppressLint;
-import android.app.Fragment;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.orangesale.cn.R;
-import com.orangesale.cn.activity.CategoryActivity;
-
-import java.util.Objects;
-
-public class SetDetailFragment extends Fragment {
- private View view;
- private ImageView imageView;
- private TextView nameText, priceText;
-
- @SuppressLint("SetTextI18n")
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- view = inflater.inflate(R.layout.categoty_detail_content, container, false);
- if (view != null) {
- init();
- }
- CategoryActivity categoryActivity = (CategoryActivity) getActivity();
- Objects.requireNonNull(categoryActivity).setOnChangeListener(product -> {
- Log.i("sss", "onCreateView: " + product.getProductName());
- imageView.setBackgroundResource(product.getImageUrlId());
- nameText.setText(product.getProductName());
- priceText.setText(product.getProductPrice().toString());
- });
- return view;
- }
-
- /**
- * 内容组件初始化
- */
- private void init() {
- imageView = view.findViewById(R.id.category_product_image);
- nameText = view.findViewById(R.id.category_product_name);
- priceText = view.findViewById(R.id.category_product_price);
- }
-
-}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/netrequest/ImageOkHttp.java b/chapter06_net/app/src/main/java/com/orangesale/cn/netrequest/ImageOkHttp.java
deleted file mode 100644
index 0dc2537..0000000
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/netrequest/ImageOkHttp.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.orangesale.cn.netrequest;
-
-public class ImageOkHttp {
-}
diff --git a/chapter06_net/app/src/main/java/com/orangesale/cn/service/TimeService.java b/chapter06_net/app/src/main/java/com/orangesale/cn/service/TimeService.java
deleted file mode 100644
index c062d3f..0000000
--- a/chapter06_net/app/src/main/java/com/orangesale/cn/service/TimeService.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.orangesale.cn.service;
-
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.IBinder;
-
-import androidx.annotation.Nullable;
-import androidx.core.app.NotificationCompat;
-
-import com.orangesale.cn.R;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Timer;
-import java.util.TimerTask;
-
-public class TimeService extends Service {
- private static Timer timer = null;
- private NotificationManager manager;
- private NotificationCompat.Builder builder;
-
- @Nullable
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
-
- /**
- * 清除通知
- */
- private void cleanAllNotification() {
- manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- manager.cancelAll();
- if (timer != null) {
- timer.cancel();
- timer = null;
- }
-
- }
-
- /**
- * 添加通知
- */
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- long period = 60 * 1000; //1分钟一个周期
- if (timer == null) {
- timer = new Timer();
- }
- timer.schedule(new TimerTask() {
- @Override
- public void run() {
- /**
- * NotificationChannel是android8.0新增的特性,如果App的targetSDKVersion>=26,
- * 没有设置channel通知渠道的话,就会导致通知无法展示。
- * 报错内容:Failed to post notification on channel “null”
- */
- NotificationChannel channel = new NotificationChannel("channel", "通知", NotificationManager.IMPORTANCE_DEFAULT);
- manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- manager.createNotificationChannel(channel);
- builder = new NotificationCompat.Builder(TimeService.this);
- builder.setContentTitle("提醒系统当前时间");
- builder.setSmallIcon(R.drawable.chengzi);
- builder.setChannelId("channel");
- Date date = new Date();
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- builder.setContentText("系统当前时间为:" + formatter.format(date));
- builder.setAutoCancel(true);
- builder.setDefaults(Notification.DEFAULT_ALL);
- Notification notification = builder.build();
- manager.notify(1, notification);
-
- }
- }, 0, period);
-
- return super.onStartCommand(intent, flags, startId);
- }
-}
diff --git a/chapter06_net/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/chapter06_net/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
deleted file mode 100644
index 1f6bb29..0000000
--- a/chapter06_net/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/chapter06_net/app/src/main/res/drawable/address.png b/chapter06_net/app/src/main/res/drawable/address.png
deleted file mode 100644
index 7318be0..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/address.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/apple.png b/chapter06_net/app/src/main/res/drawable/apple.png
deleted file mode 100644
index 0810381..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/apple.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/applep.png b/chapter06_net/app/src/main/res/drawable/applep.png
deleted file mode 100644
index e26da47..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/applep.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/arrow_down.png b/chapter06_net/app/src/main/res/drawable/arrow_down.png
deleted file mode 100644
index 6d95bb5..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/arrow_down.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/arrow_left.png b/chapter06_net/app/src/main/res/drawable/arrow_left.png
deleted file mode 100644
index 365afe0..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/arrow_left.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/arrow_right.png b/chapter06_net/app/src/main/res/drawable/arrow_right.png
deleted file mode 100644
index 84ded85..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/arrow_right.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/button_login.xml b/chapter06_net/app/src/main/res/drawable/button_login.xml
deleted file mode 100644
index d093f1b..0000000
--- a/chapter06_net/app/src/main/res/drawable/button_login.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/drawable/button_register.xml b/chapter06_net/app/src/main/res/drawable/button_register.xml
deleted file mode 100644
index 3eb0673..0000000
--- a/chapter06_net/app/src/main/res/drawable/button_register.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/drawable/chengzi.png b/chapter06_net/app/src/main/res/drawable/chengzi.png
deleted file mode 100644
index fff0306..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/chengzi.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/city.png b/chapter06_net/app/src/main/res/drawable/city.png
deleted file mode 100644
index 790fb2b..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/city.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/ic_launcher_background.xml b/chapter06_net/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 0d025f9..0000000
--- a/chapter06_net/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/chapter06_net/app/src/main/res/drawable/index.png b/chapter06_net/app/src/main/res/drawable/index.png
deleted file mode 100644
index cc1ec04..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/index.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/juzi.png b/chapter06_net/app/src/main/res/drawable/juzi.png
deleted file mode 100644
index 106df92..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/juzi.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/juzip.png b/chapter06_net/app/src/main/res/drawable/juzip.png
deleted file mode 100644
index 4f10b72..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/juzip.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/lemon.png b/chapter06_net/app/src/main/res/drawable/lemon.png
deleted file mode 100644
index 39f12cc..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/lemon.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/lemonp.png b/chapter06_net/app/src/main/res/drawable/lemonp.png
deleted file mode 100644
index ca5eca8..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/lemonp.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/li.png b/chapter06_net/app/src/main/res/drawable/li.png
deleted file mode 100644
index 0834592..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/li.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/mangguo.png b/chapter06_net/app/src/main/res/drawable/mangguo.png
deleted file mode 100644
index 2e9825c..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/mangguo.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/orange.png b/chapter06_net/app/src/main/res/drawable/orange.png
deleted file mode 100644
index 70e8db8..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/orange.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/password.png b/chapter06_net/app/src/main/res/drawable/password.png
deleted file mode 100644
index 1c6c4f5..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/password.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/pearson.png b/chapter06_net/app/src/main/res/drawable/pearson.png
deleted file mode 100644
index 90cf0eb..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/pearson.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/product.png b/chapter06_net/app/src/main/res/drawable/product.png
deleted file mode 100644
index 8f5cb21..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/product.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/search.png b/chapter06_net/app/src/main/res/drawable/search.png
deleted file mode 100644
index a8b5ac0..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/search.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/setting.png b/chapter06_net/app/src/main/res/drawable/setting.png
deleted file mode 100644
index 34c2f2f..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/setting.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/sex.png b/chapter06_net/app/src/main/res/drawable/sex.png
deleted file mode 100644
index acb8197..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/sex.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/shoppingcart.png b/chapter06_net/app/src/main/res/drawable/shoppingcart.png
deleted file mode 100644
index 76c06de..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/shoppingcart.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/shuiguo.png b/chapter06_net/app/src/main/res/drawable/shuiguo.png
deleted file mode 100644
index d316137..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/shuiguo.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/spinner_drop_down_shape.xml b/chapter06_net/app/src/main/res/drawable/spinner_drop_down_shape.xml
deleted file mode 100644
index 64306b1..0000000
--- a/chapter06_net/app/src/main/res/drawable/spinner_drop_down_shape.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- -
-
-
-
-
-
-
- -
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/drawable/sure_apssword.png b/chapter06_net/app/src/main/res/drawable/sure_apssword.png
deleted file mode 100644
index 0e7cee9..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/sure_apssword.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/user.png b/chapter06_net/app/src/main/res/drawable/user.png
deleted file mode 100644
index 47d8362..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/user.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/user_account.png b/chapter06_net/app/src/main/res/drawable/user_account.png
deleted file mode 100644
index e70142a..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/user_account.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/user_general.png b/chapter06_net/app/src/main/res/drawable/user_general.png
deleted file mode 100644
index cf57947..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/user_general.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/user_icon.png b/chapter06_net/app/src/main/res/drawable/user_icon.png
deleted file mode 100644
index d5309b1..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/user_icon.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/user_pay.png b/chapter06_net/app/src/main/res/drawable/user_pay.png
deleted file mode 100644
index 3fd6f50..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/user_pay.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/user_sex.png b/chapter06_net/app/src/main/res/drawable/user_sex.png
deleted file mode 100644
index da0e318..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/user_sex.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/xigua.png b/chapter06_net/app/src/main/res/drawable/xigua.png
deleted file mode 100644
index 20275c1..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/xigua.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/xiguap.png b/chapter06_net/app/src/main/res/drawable/xiguap.png
deleted file mode 100644
index b760712..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/xiguap.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/youzi.png b/chapter06_net/app/src/main/res/drawable/youzi.png
deleted file mode 100644
index 53df959..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/youzi.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/drawable/youzip.png b/chapter06_net/app/src/main/res/drawable/youzip.png
deleted file mode 100644
index 5a7d966..0000000
Binary files a/chapter06_net/app/src/main/res/drawable/youzip.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/layout/category_detail.xml b/chapter06_net/app/src/main/res/layout/category_detail.xml
deleted file mode 100644
index 476b522..0000000
--- a/chapter06_net/app/src/main/res/layout/category_detail.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/layout/category_list_item.xml b/chapter06_net/app/src/main/res/layout/category_list_item.xml
deleted file mode 100644
index 2187312..0000000
--- a/chapter06_net/app/src/main/res/layout/category_list_item.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/layout/user_login.xml b/chapter06_net/app/src/main/res/layout/user_login.xml
deleted file mode 100644
index 96b0708..0000000
--- a/chapter06_net/app/src/main/res/layout/user_login.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/layout/user_register.xml b/chapter06_net/app/src/main/res/layout/user_register.xml
deleted file mode 100644
index 2778564..0000000
--- a/chapter06_net/app/src/main/res/layout/user_register.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/chapter06_net/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index eca70cf..0000000
--- a/chapter06_net/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/chapter06_net/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index eca70cf..0000000
--- a/chapter06_net/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter06_net/app/src/main/res/mipmap-hdpi/ic_launcher.png b/chapter06_net/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 898f3ed..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/chapter06_net/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index dffca36..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-mdpi/ic_launcher.png b/chapter06_net/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 64ba76f..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/chapter06_net/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index dae5e08..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/chapter06_net/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index e5ed465..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/chapter06_net/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index 14ed0af..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/chapter06_net/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index b0907ca..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/chapter06_net/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index d8ae031..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/chapter06_net/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 2c18de9..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/chapter06_net/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index beed3cd..0000000
Binary files a/chapter06_net/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/chapter06_net/app/src/main/res/values/colors.xml b/chapter06_net/app/src/main/res/values/colors.xml
deleted file mode 100644
index 69b2233..0000000
--- a/chapter06_net/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- #008577
- #00574B
- #D81B60
-
diff --git a/chapter06_net/app/src/main/res/values/strings.xml b/chapter06_net/app/src/main/res/values/strings.xml
deleted file mode 100644
index 66626b3..0000000
--- a/chapter06_net/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
- 橙一色
- 用户名:
- 密 码:
-
diff --git a/chapter06_net/app/src/main/res/values/styles.xml b/chapter06_net/app/src/main/res/values/styles.xml
deleted file mode 100644
index 5885930..0000000
--- a/chapter06_net/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/chapter06_net/app/src/test/java/com/orangesale/cn/ExampleUnitTest.java b/chapter06_net/app/src/test/java/com/orangesale/cn/ExampleUnitTest.java
deleted file mode 100644
index 7a40e74..0000000
--- a/chapter06_net/app/src/test/java/com/orangesale/cn/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.orangesale.cn;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file
diff --git a/chapter06_net/gradle/wrapper/gradle-wrapper.jar b/chapter06_net/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index f6b961f..0000000
Binary files a/chapter06_net/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/chapter06_net/gradlew b/chapter06_net/gradlew
deleted file mode 100644
index cccdd3d..0000000
--- a/chapter06_net/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/chapter06_net/gradle.properties b/gradle.properties
similarity index 100%
rename from chapter06_net/gradle.properties
rename to gradle.properties
diff --git a/chapter04_sqlite/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/gradle/wrapper/gradle-wrapper.jar
rename to gradle/wrapper/gradle-wrapper.jar
diff --git a/chapter06_net/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from chapter06_net/gradle/wrapper/gradle-wrapper.properties
rename to gradle/wrapper/gradle-wrapper.properties
diff --git a/chapter04_sqlite/gradlew b/gradlew
old mode 100755
new mode 100644
similarity index 100%
rename from chapter04_sqlite/gradlew
rename to gradlew
diff --git a/chapter06_net/gradlew.bat b/gradlew.bat
similarity index 100%
rename from chapter06_net/gradlew.bat
rename to gradlew.bat
diff --git a/chapter06_net/settings.gradle b/settings.gradle
similarity index 100%
rename from chapter06_net/settings.gradle
rename to settings.gradle