From fc67baacc60a9c1ca0f94e98e15d18eda3c55001 Mon Sep 17 00:00:00 2001 From: fengjian Date: Fri, 20 Jan 2017 20:52:47 +0800 Subject: [PATCH 01/11] clean AdapterLess and AdapterViewTypeRecyclerCallBack and release v2.0 --- app/src/main/AndroidManifest.xml | 3 - .../app/activity/AdapterActivity.java | 74 --- .../app/activity/DrawableActivity.java | 5 - .../lesscode/app/activity/MainActivity.java | 68 +- .../adapterless/BaseAdapterActivity.java | 89 --- .../adapterless/PagerAdapterActivity.java | 56 -- .../adapterless/RecyclerAdapterActivity.java | 144 ----- lesscode-core/build.gradle | 2 +- .../jayfeng/lesscode/core/AdapterLess.java | 583 ------------------ .../core/AdapterViewTypeRecyclerCallBack.java | 58 -- 10 files changed, 27 insertions(+), 1055 deletions(-) delete mode 100644 app/src/main/java/com/jayfeng/lesscode/app/activity/AdapterActivity.java delete mode 100644 app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/BaseAdapterActivity.java delete mode 100644 app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/PagerAdapterActivity.java delete mode 100644 app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/RecyclerAdapterActivity.java delete mode 100644 lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterLess.java delete mode 100644 lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterViewTypeRecyclerCallBack.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e62253b..dfbd8b5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,9 +24,6 @@ - diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/AdapterActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/AdapterActivity.java deleted file mode 100644 index b581a68..0000000 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/AdapterActivity.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.jayfeng.lesscode.app.activity; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; -import android.widget.BaseAdapter; -import android.widget.ListView; -import android.widget.TextView; - -import com.jayfeng.lesscode.app.R; -import com.jayfeng.lesscode.app.model.LessItem; -import com.jayfeng.lesscode.core.AdapterLess; -import com.jayfeng.lesscode.core.ViewLess; - -import java.util.ArrayList; -import java.util.List; - -public class AdapterActivity extends Activity { - - List list; - ListView listView; - BaseAdapter adapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_adapter); - - listView = ViewLess.$(this, R.id.listview); - - initData(); - - adapter = AdapterLess.$base(this, list, R.layout.activity_main_list_item, - new AdapterLess.CallBack() { - @Override - public View getView(int position, View convertView, AdapterLess.ViewHolder holder, LessItem lessItem) { - TextView nameView = holder.$view(convertView, R.id.name); - nameView.setText(lessItem.getName()); - return convertView; - } - }); - listView.setAdapter(adapter); - listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - Intent intent = new Intent(); - intent.setClassName(AdapterActivity.this, "com.jayfeng.lesscode.app.activity.adapterless." + list.get(position).getClassName()); - startActivity(intent); - } - }); - } - - private void initData() { - list = new ArrayList<>(); - - LessItem lessItem = new LessItem(); - lessItem.setName("AdapterLess.$base的使用"); - lessItem.setClassName("BaseAdapterActivity"); - list.add(lessItem); - - lessItem = new LessItem(); - lessItem.setName("AdapterLess.$pager的使用"); - lessItem.setClassName("PagerAdapterActivity"); - list.add(lessItem); - - lessItem = new LessItem(); - lessItem.setName("AdapterLess.$recycler的使用"); - lessItem.setClassName("RecyclerAdapterActivity"); - list.add(lessItem); - } - -} diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/DrawableActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/DrawableActivity.java index 800cc86..b04f197 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/DrawableActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/DrawableActivity.java @@ -6,18 +6,13 @@ import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.v4.graphics.drawable.DrawableCompat; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; -import android.widget.BaseAdapter; -import android.widget.Button; import android.widget.ImageView; import android.widget.Spinner; import com.jayfeng.lesscode.app.R; -import com.jayfeng.lesscode.core.AdapterLess; -import com.jayfeng.lesscode.core.AppLess; import com.jayfeng.lesscode.core.DrawableLess; import com.jayfeng.lesscode.core.ToastLess; import com.jayfeng.lesscode.core.ViewLess; diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java index b57dd9b..d14f98a 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java @@ -1,27 +1,16 @@ package com.jayfeng.lesscode.app.activity; import android.app.Activity; -import android.content.Intent; import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; -import android.widget.TextView; import com.jayfeng.lesscode.app.R; import com.jayfeng.lesscode.app.model.LessItem; -import com.jayfeng.lesscode.app.model.Person; import com.jayfeng.lesscode.core.ActivityLess; -import com.jayfeng.lesscode.core.AdapterLess; -import com.jayfeng.lesscode.core.LogLess; -import com.jayfeng.lesscode.core.NetworkLess; -import com.jayfeng.lesscode.core.SerializeLess; -import com.jayfeng.lesscode.core.SharedPreferenceLess; import com.jayfeng.lesscode.core.ToastLess; import com.jayfeng.lesscode.core.ViewLess; -import java.io.File; import java.util.ArrayList; import java.util.List; @@ -43,32 +32,32 @@ protected void onCreate(Bundle savedInstanceState) { initData(); - adapter = AdapterLess.$base(this, list, R.layout.activity_main_list_item, - new AdapterLess.CallBack() { - @Override - public View getView(int position, View convertView, AdapterLess.ViewHolder holder, LessItem lessItem) { - TextView nameView = holder.$view(convertView, R.id.name); - nameView.setText(lessItem.getName()); - return convertView; - } - }); - listView.setAdapter(adapter); - listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - Intent intent = new Intent(); - intent.setClassName(MainActivity.this, "com.jayfeng.lesscode.app.activity." + list.get(position).getClassName()); - startActivity(intent); - } - }); - - LogLess.$d("network: %s, type: %s", NetworkLess.$online(), NetworkLess.$type()); - - Person person = new Person("fengj"); - SerializeLess.$se(new File(getCacheDir(), "person").getAbsolutePath(), person); - - Person person1 = SerializeLess.$de(new File(getCacheDir(), "person").getAbsolutePath()); - ToastLess.$(this, person1.getName()); +// adapter = AdapterLess.$base(this, list, R.layout.activity_main_list_item, +// new AdapterLess.CallBack() { +// @Override +// public View getView(int position, View convertView, AdapterLess.ViewHolder holder, LessItem lessItem) { +// TextView nameView = holder.$view(convertView, R.id.name); +// nameView.setText(lessItem.getName()); +// return convertView; +// } +// }); +// listView.setAdapter(adapter); +// listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { +// @Override +// public void onItemClick(AdapterView parent, View view, int position, long id) { +// Intent intent = new Intent(); +// intent.setClassName(MainActivity.this, "com.jayfeng.lesscode.app.activity." + list.get(position).getClassName()); +// startActivity(intent); +// } +// }); +// +// LogLess.$d("network: %s, type: %s", NetworkLess.$online(), NetworkLess.$type()); +// +// Person person = new Person("fengj"); +// SerializeLess.$se(new File(getCacheDir(), "person").getAbsolutePath(), person); +// +// Person person1 = SerializeLess.$de(new File(getCacheDir(), "person").getAbsolutePath()); +// ToastLess.$(this, person1.getName()); } @@ -80,11 +69,6 @@ private void initData() { lessItem.setClassName("ActivityActivity"); list.add(lessItem); - lessItem = new LessItem(); - lessItem.setName("AdapterLess的使用"); - lessItem.setClassName("AdapterActivity"); - list.add(lessItem); - lessItem = new LessItem(); lessItem.setName("AppLess的使用"); lessItem.setClassName("AppActivity"); diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/BaseAdapterActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/BaseAdapterActivity.java deleted file mode 100644 index 140d2e5..0000000 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/BaseAdapterActivity.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.jayfeng.lesscode.app.activity.adapterless; - -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import android.widget.BaseAdapter; -import android.widget.ListView; -import android.widget.TextView; - -import com.jayfeng.lesscode.app.R; -import com.jayfeng.lesscode.app.model.Person; -import com.jayfeng.lesscode.core.AdapterLess; -import com.jayfeng.lesscode.core.AdapterViewTypeRecyclerCallBack; -import com.jayfeng.lesscode.core.ViewLess; - -import java.util.ArrayList; -import java.util.List; - -public class BaseAdapterActivity extends Activity { - - List list; - ListView listView; - BaseAdapter adapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_adapter_base); - listView = ViewLess.$(this, R.id.listview); - initData(); - - // simple callback - /* - adapter = AdapterLess.$base(this, list, R.layout.activity_main_list_item, - new AdapterLess.CallBack() { - @Override - public View getView(int position, View convertView, AdapterLess.ViewHolder holder, Person person) { - TextView nameView = holder.$view(convertView, R.id.name); - nameView.setText(person.getName()); - return convertView; - } - }); - */ - // full callback - adapter = AdapterLess.$base(this, list, - new int[] { R.layout.activity_main_list_item, R.layout.adapter_list_item_header}, - new AdapterLess.FullCallBack() { - @Override - public View getView(int position, View convertView, AdapterLess.ViewHolder holder, Person person) { - TextView nameView = holder.$view(convertView, R.id.name); - nameView.setText(person.getName()); - return convertView; - } - - @Override - public int getItemViewType(int position) { - Person person = list.get(position); - if ("header".equals(person.getName())) { - return 1; - } else { - return 0; - } - } - - @Override - public boolean isEnabled(int position) { - Person person = list.get(position); - if ("header".equals(person.getName())) { - return false; - } - return true; - } - }); - - - listView.setAdapter(adapter); - } - - private void initData() { - list = new ArrayList<>(); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - } - -} diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/PagerAdapterActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/PagerAdapterActivity.java deleted file mode 100644 index ea3ca7a..0000000 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/PagerAdapterActivity.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.jayfeng.lesscode.app.activity.adapterless; - -import android.app.Activity; -import android.os.Bundle; -import android.support.v4.view.PagerAdapter; -import android.support.v4.view.ViewPager; -import android.view.View; -import android.widget.BaseAdapter; -import android.widget.ListView; -import android.widget.TextView; - -import com.jayfeng.lesscode.app.R; -import com.jayfeng.lesscode.app.model.Person; -import com.jayfeng.lesscode.core.AdapterLess; -import com.jayfeng.lesscode.core.ViewLess; - -import java.util.ArrayList; -import java.util.List; - -public class PagerAdapterActivity extends Activity { - - List list; - ViewPager viewPager; - PagerAdapter adapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_adapter_pager); - viewPager = ViewLess.$(this, R.id.viewpager); - initData(); - - adapter = AdapterLess.$pager(this, list, - R.layout.activity_main_list_item, - new AdapterLess.PageCallBack() { - @Override - public void instantiateItem(int position, View view, Person person) { - TextView nameView = ViewLess.$(view, R.id.name); - nameView.setText("page " + position + ":" + person.getName()); - } - }); - - viewPager.setAdapter(adapter); - } - - private void initData() { - list = new ArrayList<>(); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - } - -} diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/RecyclerAdapterActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/RecyclerAdapterActivity.java deleted file mode 100644 index e999789..0000000 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/adapterless/RecyclerAdapterActivity.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.jayfeng.lesscode.app.activity.adapterless; - -import android.app.Activity; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.GradientDrawable; -import android.os.Bundle; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.widget.TextView; - -import com.jayfeng.lesscode.app.R; -import com.jayfeng.lesscode.app.model.Person; -import com.jayfeng.lesscode.core.AdapterLess; -import com.jayfeng.lesscode.core.AdapterViewTypeRecyclerCallBack; -import com.jayfeng.lesscode.core.DisplayLess; -import com.jayfeng.lesscode.core.ViewLess; -import com.jayfeng.lesscode.core.other.DividerItemDecoration; - -import java.util.ArrayList; -import java.util.List; - -public class RecyclerAdapterActivity extends Activity { - - List list; - RecyclerView recyclerView; - RecyclerView.LayoutManager layoutManager; - RecyclerView.Adapter adapter; - DividerItemDecoration dividerItemDecoration; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_adapter_recycler); - recyclerView = ViewLess.$(this, R.id.recycler); - - layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); -// layoutManager = new GridLayoutManager(this, 4); - recyclerView.setLayoutManager(layoutManager); - dividerItemDecoration = new DividerItemDecoration(this, DividerItemDecoration.GRID_LIST, new ColorDrawable(Color.parseColor("#00000000"))); - dividerItemDecoration.setWidth(DisplayLess.$dp2px(4)); - dividerItemDecoration.setHeight(DisplayLess.$dp2px(4)); - - initData(); - - /* - adapter = AdapterLess.$recycler(this, list, - R.layout.activity_main_list_item, - new AdapterLess.RecyclerCallBack() { - - @Override - public void onBindViewHolder(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, Person person) { - TextView nameView = recyclerViewHolder.$view(R.id.name); - nameView.setText(person.getName()); - } - }); - */ - - adapter = AdapterLess.$recycler(this, list, - new int[] { R.layout.activity_main_list_item, R.layout.adapter_list_item_header}, - new AdapterViewTypeRecyclerCallBack() { - @Override - public int getItemViewType(int position) { - Person person = list.get(position); - if ("header".equals(person.getName())) { - return 1; - } else { - return 0; - } - } - - @Override - public void onViewType0(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, Person person) { - TextView nameView = recyclerViewHolder.$view(R.id.name); - nameView.setText(person.getName()); - } - - @Override - public void onViewType1(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, Person person) { - TextView nameView = recyclerViewHolder.$view(R.id.name); - nameView.setText(person.getName() + " >>"); - } - }); - - recyclerView.setAdapter(adapter); - - recyclerView.addItemDecoration(dividerItemDecoration); - } - - private void initData() { - list = new ArrayList<>(); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("bee")); - list.add(new Person("header")); - list.add(new Person("chras")); - list.add(new Person("nichid")); - list.add(new Person("header")); - list.add(new Person("gggggg")); - list.add(new Person("ggxxx")); - list.add(new Person("gewewewe")); - list.add(new Person("gtyyyy")); - list.add(new Person("guugyyyy")); - list.add(new Person("header")); - list.add(new Person("jay")); - list.add(new Person("zzzzzzzzzz")); - list.add(new Person("header")); - list.add(new Person("yyyyyyyyyyyyyy")); - list.add(new Person("etrtertret")); - list.add(new Person("zsssss")); - } - -} diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index 83e59bd..c6efd03 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "1.2" // #CONFIG# // project version +version = "2.0" // #CONFIG# // project version android { compileSdkVersion 25 diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterLess.java deleted file mode 100644 index f6cfcbf..0000000 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterLess.java +++ /dev/null @@ -1,583 +0,0 @@ -package com.jayfeng.lesscode.core; - -import android.content.Context; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentPagerAdapter; -import android.support.v4.view.PagerAdapter; -import android.support.v7.widget.RecyclerView; -import android.util.SparseArray; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; - -import java.util.List; -import java.util.Objects; - -/** - * 适配器简化相关的工具类 - * 常用于:ListView,ViewPager,RecyclerView - */ -public final class AdapterLess { - - /** - * 创建一个RecyclerView.Adapter - * 面向: RecyclerView - * 主要是: - * 1. 抽象出重复代码,默认实现一些常规代码 - * 2. 封装了RecyclerViewHolder - * 3. 自动传递Model给getView - * - * @param context - * @param list model的列表 - * @param layoutId 布局xml的id - * @param recyclerCallBack 包含nBindViewHolder方法的回调 - * @param r - * @return - */ - public static RecyclerView.Adapter $recycler(final Context context, - final List list, - final int layoutId, - final RecyclerCallBack recyclerCallBack) { - RecyclerView.Adapter result = new RecyclerView.Adapter() { - @Override - public RecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { - View view = LayoutInflater.from(context) - .inflate(layoutId, viewGroup, false); - RecyclerViewHolder recyclerViewHolder = new RecyclerViewHolder(view); - return recyclerViewHolder; - } - - @Override - public void onBindViewHolder(RecyclerViewHolder viewHolder, int position) { - T t = null; - if (position < list.size()) { - t = list.get(position); - } - recyclerCallBack.onBindViewHolder(position, viewHolder, t); - } - - @Override - public int getItemCount() { - if (list != null) { - return list.size(); - } - return 0; - } - }; - return result; - } - - /** - * 创建一个RecyclerView.Adapter - * 面向: RecyclerView - * 支持多布局,也多增加了两个回调方法,便于自定义: - * 1. getViewType - * - * @param context - * @param list model的列表 - * @param layoutIds 布局xml的id - * @param fullRecyclerCallBack 包含nBindViewHolder方法的回调 - * @param r - * @return - */ - public static RecyclerView.Adapter $recycler(final Context context, - final List list, - final int[] layoutIds, - final FullRecyclerCallBack fullRecyclerCallBack) { - RecyclerView.Adapter result = new RecyclerView.Adapter() { - @Override - public RecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { - View view = LayoutInflater.from(context) - .inflate(layoutIds[viewType], viewGroup, false); - RecyclerViewHolder recyclerViewHolder = new RecyclerViewHolder(view); - return recyclerViewHolder; - } - - @Override - public void onBindViewHolder(RecyclerViewHolder viewHolder, int position) { - T t = null; - if (position < list.size()) { - t = list.get(position); - } - fullRecyclerCallBack.onBindViewHolder(position, viewHolder, t); - } - - @Override - public int getItemCount() { - if (list != null) { - return list.size(); - } - return 0; - } - - @Override - public int getItemViewType(int position) { - return fullRecyclerCallBack.getItemViewType(position); - } - }; - return result; - } - - /** - * 创建BaseAdapter - * 面向: AbsListView - * 1. 抽象出重复代码,默认实现一些常规代码 - * 2. 封装了ViewHolder - * 3. 自动传递Model给getView - * - * @param context - * @param list model的列表 - * @param layoutId 布局xml的id - * @param callBack 包含getView方法的回调 - * @param - * @return - */ - public static BaseAdapter $base(final Context context, - final List list, - final int layoutId, - final CallBack callBack) { - - BaseAdapter result = new BaseAdapter() { - - @Override - public int getCount() { - if (list != null) { - return list.size(); - } - return 0; - } - - @Override - public T getItem(int position) { - return list.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder; - if (null == convertView) { - holder = new ViewHolder(); - convertView = LayoutInflater.from(context).inflate(layoutId, null); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - T t = null; - if (position < list.size()) { - t = getItem(position); - } - return callBack.getView(position, convertView, holder, t); - } - - }; - return result; - } - - - /** - * 同上,也是创建了BaseAdapter - * 面向: AbsListView - * 支持多布局,也多增加了两个回调方法,便于自定义: - * 1. getViewType - * 2. isEnabled - * - * @param context - * @param list model列表 - * @param layoutIds 布局xml的id数组 - * @param fullCallBack 包含getView,getViewType,isEnabled方法的回调 - * @param - * @return - */ - public static BaseAdapter $base(final Context context, - final List list, - final int[] layoutIds, - final FullCallBack fullCallBack) { - - BaseAdapter result = new BaseAdapter() { - - @Override - public int getCount() { - if (list != null) { - return list.size(); - } - return 0; - } - - @Override - public T getItem(int position) { - return list.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public int getItemViewType(int position) { - return fullCallBack.getItemViewType(position); - } - - @Override - public int getViewTypeCount() { - return layoutIds.length; - } - - @Override - public boolean isEnabled(int position) { - return fullCallBack.isEnabled(position); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder[] holders = new ViewHolder[layoutIds.length]; - int i = getItemViewType(position); - if (null == convertView) { - holders[i] = new ViewHolder(); - convertView = LayoutInflater.from(context).inflate(layoutIds[i], null); - convertView.setTag(holders[i]); - } else { - holders[i] = (ViewHolder) convertView.getTag(); - } - T t = null; - if (position < list.size()) { - t = getItem(position); - } - return fullCallBack.getView(position, convertView, holders[i], t); - } - - }; - return result; - } - - /** - * 创建PagerAdapter - * 面向: ViewPager - * 主要是: - * 1. 抽象出重复代码,默认实现一些常规代码 - * 2. 封装了instantiateItem - * 3. 自动传递Model给getView - * - * @param context - * @param list - * @param layoutId - * @param pageCallBack - * @param - * @return - */ - public static PagerAdapter $pager(final Context context, - final List list, - final int layoutId, - final PageCallBack pageCallBack) { - PagerAdapter result = new PagerAdapter() { - - @Override - public int getCount() { - return list.size(); - } - - @Override - public boolean isViewFromObject(View view, Object object) { - return view == object; - } - - @Override - public Object instantiateItem(ViewGroup container, int position) { - View view = LayoutInflater.from(context).inflate(layoutId, null); - container.addView(view); - pageCallBack.instantiateItem(position, view, list.get(position)); - return view; - } - - @Override - public void destroyItem(ViewGroup container, int position, Object object) { - container.removeView((View) object); - } - }; - return result; - } - - /** - * 创建PagerAdapter - * 面向: ViewPager - * 主要是: - * 1. 增加destroyItem - * - * @param context - * @param list - * @param layoutId - * @param fullPageCallBack - * @param - * @return - */ - public static PagerAdapter $pager(final Context context, - final List list, - final int layoutId, - final FullPageCallBack fullPageCallBack) { - PagerAdapter result = new PagerAdapter() { - - @Override - public int getCount() { - return list.size(); - } - - @Override - public boolean isViewFromObject(View view, Object object) { - return view == object; - } - - @Override - public Object instantiateItem(ViewGroup container, int position) { - View view = LayoutInflater.from(context).inflate(layoutId, null); - container.addView(view); - fullPageCallBack.instantiateItem(position, view, list.get(position)); - return view; - } - - @Override - public void destroyItem(ViewGroup container, int position, Object object) { - container.removeView((View) object); - fullPageCallBack.destroyItem(container, position, object, list.get(position)); - } - }; - return result; - } - - public static PagerAdapter $pagerWithDataChanged(final Context context, - final List list, - final int layoutId, - final FullPageCallBack fullPageCallBack) { - PagerAdapter result = new PagerAdapter() { - - private int mChildCount = 0; - - @Override - public int getCount() { - return list.size(); - } - - @Override - public boolean isViewFromObject(View view, Object object) { - return view == object; - } - - @Override - public Object instantiateItem(ViewGroup container, int position) { - View view = LayoutInflater.from(context).inflate(layoutId, null); - container.addView(view); - fullPageCallBack.instantiateItem(position, view, list.get(position)); - return view; - } - - @Override - public void destroyItem(ViewGroup container, int position, Object object) { - container.removeView((View) object); - fullPageCallBack.destroyItem(container, position, object, list.get(position)); - } - - @Override - public int getItemPosition(Object object) { - if (mChildCount > 0) { - mChildCount--; - return POSITION_NONE; - } - return super.getItemPosition(object); - } - - @Override - public void notifyDataSetChanged() { - mChildCount = getCount(); - super.notifyDataSetChanged(); - } - }; - return result; - } - - /** - * 创建了FragmentPagerAdapter - * 面向: ViewPager - * 主要是: - * 1. 抽象出重复代码,默认实现getCount方法 - * - * @param fragmentManager - * @param count - * @param fragmentPagerCallBack - * @return - */ - public static FragmentPagerAdapter $pager(FragmentManager fragmentManager, - final int count, - final FragmentPagerCallBack fragmentPagerCallBack) { - FragmentPagerAdapter result = new FragmentPagerAdapter(fragmentManager) { - @Override - public Fragment getItem(int position) { - return fragmentPagerCallBack.getItem(position); - } - - @Override - public int getCount() { - return count; - } - }; - return result; - } - - /** - * 同上,创建了FragmentPagerAdapter - * 面向: ViewPager - * 通过getPageTitle回调方法支持fragment标题定义 - * 主要是: - * 1. 抽象出重复代码,默认实现getCount方法 - * - * @param fragmentManager - * @param count - * @param fullFragmentPagerCallBack - * @return - */ - public static FragmentPagerAdapter $pager(final FragmentManager fragmentManager, - final int count, - final FullFragmentPagerCallBack fullFragmentPagerCallBack) { - FragmentPagerAdapter result = new FragmentPagerAdapter(fragmentManager) { - @Override - public Fragment getItem(int position) { - return fullFragmentPagerCallBack.getItem(position); - } - - @Override - public int getCount() { - return count; - } - - @Override - public String getPageTitle(int position) { - return fullFragmentPagerCallBack.getPageTitle(position); - } - }; - return result; - } - - /** - * RecyclerCallBack - * - * @param - */ - public interface RecyclerCallBack { - void onBindViewHolder(int position, RecyclerViewHolder recyclerViewHolder, T t); - } - - /** - * RecyclerCallBack - * - * @param - */ - public interface FullRecyclerCallBack { - void onBindViewHolder(int position, RecyclerViewHolder recyclerViewHolder, T t); - - int getItemViewType(int position); - } - - /** - * 简化版本的$base的CallBack - * - * @param - */ - public interface CallBack { - View getView(int position, View convertView, ViewHolder holder, T t); - } - - /** - * 增强版本的$base的CallBack - * - * @param - */ - public interface FullCallBack { - View getView(int position, View convertView, ViewHolder holder, T t); - - int getItemViewType(int position); - - boolean isEnabled(int position); - } - - /** - * 简化版本的$pager的CallBack - * - * @param - */ - public interface PageCallBack { - void instantiateItem(int position, View view, T t); - } - - /** - * 简化版本的$pager的CallBack - * - * @param - */ - public interface FullPageCallBack { - void instantiateItem(int position, View view, T t); - - void destroyItem(ViewGroup container, int position, Object object, T t); - } - - /** - * 简化版本的$pager的CallBack(针对fragment) - */ - public interface FragmentPagerCallBack { - Fragment getItem(int position); - } - - /** - * 增强版本的$pager的CallBack(针对fragment) - */ - public interface FullFragmentPagerCallBack { - Fragment getItem(int position); - - String getPageTitle(int position); - } - - - /** - * ViewHolder类相当于一个享元模式的工厂类 - * 主要用了以下优化点: - * 1. 缓存了findViewById的view,如果已经创建,则直接返回,提高了性能 - * 2. 用SparseArray代替HashMap优化性能 - */ - public static class ViewHolder { - public SparseArray views = new SparseArray<>(); - - /** - * 从缓存里获取viewId对应的View - * - * @param convertView - * @param viewId - * @param - * @return - */ - public T $view(View convertView, int viewId) { - View v = views.get(viewId); - if (null == v) { - v = ViewLess.$(convertView, viewId); - views.put(viewId, v); - } - return (T) v; - } - } - - /** - * 单独封装了RecyclerView的ViewHolder - */ - public static class RecyclerViewHolder extends RecyclerView.ViewHolder { - public RecyclerViewHolder(View itemView) { - super(itemView); - } - - public T $view(int viewId) { - return ViewLess.$(itemView, viewId); - } - } -} diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterViewTypeRecyclerCallBack.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterViewTypeRecyclerCallBack.java deleted file mode 100644 index a5d3938..0000000 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/AdapterViewTypeRecyclerCallBack.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.jayfeng.lesscode.core; - -/** - * 进一步分发多种类型的FullRecyclerCallBack - * @param - */ -public abstract class AdapterViewTypeRecyclerCallBack implements AdapterLess.FullRecyclerCallBack { - - @Override - public void onBindViewHolder(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - onViewCommon(position, recyclerViewHolder, t); - - if (getItemViewType(position) == 0) { - onViewType0(position, recyclerViewHolder, t); - } else if (getItemViewType(position) == 1) { - onViewType1(position, recyclerViewHolder, t); - } else if (getItemViewType(position) == 2) { - onViewType2(position, recyclerViewHolder, t); - } else if (getItemViewType(position) == 3) { - onViewType3(position, recyclerViewHolder, t); - } else if (getItemViewType(position) == 4) { - onViewType4(position, recyclerViewHolder, t); - } else if (getItemViewType(position) == 5) { - onViewType5(position, recyclerViewHolder, t); - } - } - - public void onViewCommon(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - public void onViewType0(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - public void onViewType1(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - public void onViewType2(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - public void onViewType3(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - public void onViewType4(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - public void onViewType5(int position, AdapterLess.RecyclerViewHolder recyclerViewHolder, T t) { - - } - - @Override - public abstract int getItemViewType(int position); -} From a8b7d0a929bbe71ef8cea992fa6961bea69e528e Mon Sep 17 00:00:00 2001 From: fengjian Date: Mon, 20 Feb 2017 11:12:26 +0800 Subject: [PATCH 02/11] fix(http): support http download redirect url --- .../src/main/java/com/jayfeng/lesscode/core/HttpLess.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java index c782d31..d573c8e 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java @@ -264,7 +264,12 @@ public void run() { String value = entry.getValue().toString(); conn.setRequestProperty(key, value); } - if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { + if (conn.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM + || conn.getResponseCode()== HttpURLConnection.HTTP_MOVED_TEMP) { + // 重定向地址下载 + String redirectDownloadUrl = conn.getHeaderField("location"); + return $download(redirectDownloadUrl, dest, append, header, callBack); + } else if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { is = conn.getInputStream(); remoteSize = conn.getContentLength(); String contentEndcoding = conn.getHeaderField("Content-Encoding"); From 61ab7ef6757ff03a70a582b5c5655f5a22ddd165 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 22 Feb 2017 14:08:43 +0800 Subject: [PATCH 03/11] release v2.1 --- README-cn.md | 2 +- README.md | 2 +- .../lesscode/app/activity/MainActivity.java | 36 +++++++++++++++++++ lesscode-core/build.gradle | 6 ++-- 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/README-cn.md b/README-cn.md index 861e90b..7d6ba70 100644 --- a/README-cn.md +++ b/README-cn.md @@ -13,7 +13,7 @@ ## Gradle ```groovy -compile('com.jayfeng:lesscode-core:1.0') +compile('com.jayfeng:lesscode-core:2.1') ``` ## Features diff --git a/README.md b/README.md index c9f08da..245fbf2 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ less code, more efficient for android, for the best android tools library! ## Gradle ```groovy -compile('com.jayfeng:lesscode-core:1.0') +compile('com.jayfeng:lesscode-core:2.1') ``` ## Features diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java index d14f98a..8e12900 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java @@ -2,15 +2,20 @@ import android.app.Activity; import android.os.Bundle; +import android.os.Environment; import android.widget.BaseAdapter; import android.widget.ListView; import com.jayfeng.lesscode.app.R; import com.jayfeng.lesscode.app.model.LessItem; import com.jayfeng.lesscode.core.ActivityLess; +import com.jayfeng.lesscode.core.HttpLess; +import com.jayfeng.lesscode.core.LogLess; import com.jayfeng.lesscode.core.ToastLess; import com.jayfeng.lesscode.core.ViewLess; +import java.io.File; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -32,6 +37,37 @@ protected void onCreate(Bundle savedInstanceState) { initData(); + final File mDestDir = new File(Environment.getExternalStorageDirectory().getPath() + "/lesscode-download"); + if (mDestDir.exists() && !mDestDir.isDirectory()) { + mDestDir.delete(); + } + if (mDestDir.exists() || mDestDir.mkdirs()) { + + } + final File mDestFile = new File(mDestDir.getPath() + "/" + URLEncoder.encode("http://www.vpngo.com/download/vpngo-release-v1.3.1-46.apk")); + new Thread() { + @Override + public void run() { + try { + HttpLess.$download("http://www.vpngo.com/download/vpngo-release-v1.3.1-46.apk", mDestFile, false, new HttpLess.DownloadCallBack() { + @Override + public void onDownloading(int progress) { + + } + + @Override + public void onDownloaded() { + LogLess.$d("下载完成"); + } + }); + } catch (Exception e) { + e.printStackTrace(); + LogLess.$d(e.getMessage()); + } + } + }.start(); + + // adapter = AdapterLess.$base(this, list, R.layout.activity_main_list_item, // new AdapterLess.CallBack() { // @Override diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index c6efd03..95db3bb 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "2.0" // #CONFIG# // project version +version = "2.1" // #CONFIG# // project version android { compileSdkVersion 25 @@ -28,8 +28,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:25.1.0' - compile 'com.android.support:recyclerview-v7:25.1.0' + compile 'com.android.support:support-v4:25.1.1' + compile 'com.android.support:recyclerview-v7:25.1.1' } def siteUrl = 'https://github.com/openproject/LessCode' // #CONFIG# // project homepage From 145d0c8a54e3cc61ee389a1a719557e178746aff Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 22 Feb 2017 14:12:28 +0800 Subject: [PATCH 04/11] support http get redirect url --- .../src/main/java/com/jayfeng/lesscode/core/HttpLess.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java index d573c8e..d0936f3 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/HttpLess.java @@ -52,7 +52,12 @@ public final class HttpLess { String value = entry.getValue().toString(); conn.setRequestProperty(key, value); } - if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { + if (conn.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM + || conn.getResponseCode()== HttpURLConnection.HTTP_MOVED_TEMP) { + // 重定向地址下载 + String redirectDownloadUrl = conn.getHeaderField("location"); + return $get(redirectDownloadUrl, header); + } else if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { is = conn.getInputStream(); return FileLess.$read(is); } From d3224e9e3f374e2f4bbbaacd4be334f8c81e6944 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 22 Mar 2017 15:14:17 +0800 Subject: [PATCH 05/11] release v2.2 --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- lesscode-core/build.gradle | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 47804e3..746515f 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0e65f82..1cfdd86 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Aug 24 08:51:21 CST 2016 +#Wed Mar 22 15:12:10 CST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index 95db3bb..73a435c 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "2.1" // #CONFIG# // project version +version = "2.2" // #CONFIG# // project version android { compileSdkVersion 25 @@ -28,8 +28,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:25.1.1' - compile 'com.android.support:recyclerview-v7:25.1.1' + compile 'com.android.support:support-v4:25.3.0' + compile 'com.android.support:recyclerview-v7:25.3.0' } def siteUrl = 'https://github.com/openproject/LessCode' // #CONFIG# // project homepage From ace6435a91b3e0ed614d487179e02572d21440ae Mon Sep 17 00:00:00 2001 From: fengjian Date: Sun, 18 Jun 2017 21:01:40 +0800 Subject: [PATCH 06/11] upgrade the build config --- build.gradle | 2 +- lesscode-core/build.gradle | 6 +++--- .../java/com/jayfeng/lesscode/core/ApplicationLess.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 746515f..1319315 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.0' + classpath 'com.android.tools.build:gradle:2.3.2' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // NOTE: Do not place your application dependencies here; they belong diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index 73a435c..101e278 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -6,7 +6,7 @@ version = "2.2" // android { compileSdkVersion 25 - buildToolsVersion "25.0.2" + buildToolsVersion "25.0.3" // resourcePrefix "less_" // #CONFIG# // please remove this if you don't known it defaultConfig { minSdkVersion 9 @@ -28,8 +28,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:25.3.0' - compile 'com.android.support:recyclerview-v7:25.3.0' + compile 'com.android.support:support-v4:25.3.1' + compile 'com.android.support:recyclerview-v7:25.3.1' } def siteUrl = 'https://github.com/openproject/LessCode' // #CONFIG# // project homepage diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/ApplicationLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/ApplicationLess.java index 7c13710..4a521bb 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/ApplicationLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/ApplicationLess.java @@ -14,7 +14,7 @@ public final class ApplicationLess { * @param context * @return */ - private static boolean $init(Context context) { + public static boolean $init(Context context) { ActivityManager am = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)); List processInfos = am.getRunningAppProcesses(); String mainProcessName = context.getPackageName(); From 77fd89266570f68f5e02230b692ace0daf7453e7 Mon Sep 17 00:00:00 2001 From: fengjian Date: Sun, 18 Jun 2017 21:18:13 +0800 Subject: [PATCH 07/11] release v2.3 --- lesscode-core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index 101e278..1f500dc 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "2.2" // #CONFIG# // project version +version = "2.3" // #CONFIG# // project version android { compileSdkVersion 25 From d4cd01884431c77a1384659bc69b64ed7ed9fe95 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 28 Mar 2018 16:11:39 +0800 Subject: [PATCH 08/11] upgrade the as to 3.0 --- app/build.gradle | 8 ++++---- build.gradle | 4 +++- gradle/wrapper/gradle-wrapper.properties | 4 ++-- lesscode-core/build.gradle | 12 ++++++------ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ec60648..3384bef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 27 + buildToolsVersion '27.0.3' defaultConfig { applicationId "com.jayfeng.lesscode.app" - minSdkVersion 9 - targetSdkVersion 25 + minSdkVersion 14 + targetSdkVersion 27 versionCode 1 versionName "1.0" } diff --git a/build.gradle b/build.gradle index 1319315..9987d03 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,10 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.2' + classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // NOTE: Do not place your application dependencies here; they belong @@ -16,5 +17,6 @@ buildscript { allprojects { repositories { jcenter() + google() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1cfdd86..cb24766 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Mar 22 15:12:10 CST 2017 +#Wed Mar 28 16:07:08 CST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index 1f500dc..6c087b7 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -5,12 +5,12 @@ apply plugin: 'com.jfrog.bintray' version = "2.3" // #CONFIG# // project version android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 27 + buildToolsVersion "27.0.3" // resourcePrefix "less_" // #CONFIG# // please remove this if you don't known it defaultConfig { - minSdkVersion 9 - targetSdkVersion 25 + minSdkVersion 14 + targetSdkVersion 27 versionCode 1 versionName "1.0" } @@ -28,8 +28,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:25.3.1' - compile 'com.android.support:recyclerview-v7:25.3.1' + compile 'com.android.support:support-v4:27.1.0' + compile 'com.android.support:recyclerview-v7:27.1.0' } def siteUrl = 'https://github.com/openproject/LessCode' // #CONFIG# // project homepage From b07ccfc8fde18014b3b0bec43288139345348477 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 28 Mar 2018 16:18:50 +0800 Subject: [PATCH 09/11] fix(storage): fix the sdcard StatFs no permission error --- .../jayfeng/lesscode/core/StorageLess.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/StorageLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/StorageLess.java index 8b046e9..d881dc2 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/StorageLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/StorageLess.java @@ -186,17 +186,29 @@ public static class ExtSdcard { } private static long total(File path) { - StatFs stat = new StatFs(path.getPath()); - long blockSize = stat.getBlockSize(); - long totalBlocks = stat.getBlockCount(); - return blockSize * totalBlocks; + try { + StatFs stat = new StatFs(path.getPath()); + long blockSize = stat.getBlockSize(); + long totalBlocks = stat.getBlockCount(); + return blockSize * totalBlocks; + } catch (Exception e) { + e.printStackTrace(); + } + + return 0; } private static long free(File path) { - StatFs stat = new StatFs(path.getPath()); - long blockSize = stat.getBlockSize(); - long freeBlocks = stat.getAvailableBlocks(); - return blockSize * freeBlocks; + try { + StatFs stat = new StatFs(path.getPath()); + long blockSize = stat.getBlockSize(); + long freeBlocks = stat.getAvailableBlocks(); + return blockSize * freeBlocks; + } catch (Exception e) { + e.printStackTrace(); + } + + return 0; } private static long used(File path) { From 7bb2431e34b30b738a4143158ce96342c9ec00de Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 28 Mar 2018 16:27:18 +0800 Subject: [PATCH 10/11] fix(network): add more network type --- .../main/java/com/jayfeng/lesscode/core/NetworkLess.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/NetworkLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/NetworkLess.java index 7024c49..c532f5a 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/NetworkLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/NetworkLess.java @@ -60,6 +60,7 @@ public static enum NetworkType { if (type == ConnectivityManager.TYPE_MOBILE) { switch (subType) { case TelephonyManager.NETWORK_TYPE_GPRS: + case TelephonyManager.NETWORK_TYPE_GSM: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: @@ -75,10 +76,15 @@ public static enum NetworkType { case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: + case TelephonyManager.NETWORK_TYPE_TD_SCDMA: return NetworkType.MOBILE_MIDDLE;// 3G case TelephonyManager.NETWORK_TYPE_LTE: + case TelephonyManager.NETWORK_TYPE_IWLAN: + case 19: // TelephonyManager.NETWORK_TYPE_LTE_CA return NetworkType.MOBILE_FAST; // 4G + default: // we think the network will be more and more better + return NetworkType.MOBILE_FAST; } } From a4829f8643bcd6b22eae1bd625a4bc7597b052d7 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 28 Mar 2018 17:46:31 +0800 Subject: [PATCH 11/11] release v2.4.2 --- README-cn.md | 2 +- README.md | 2 +- lesscode-core/build.gradle | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README-cn.md b/README-cn.md index 7d6ba70..2b151f5 100644 --- a/README-cn.md +++ b/README-cn.md @@ -13,7 +13,7 @@ ## Gradle ```groovy -compile('com.jayfeng:lesscode-core:2.1') +implementation 'com.jayfeng:lesscode-core:2.4.2' ``` ## Features diff --git a/README.md b/README.md index 245fbf2..c5f87c8 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ less code, more efficient for android, for the best android tools library! ## Gradle ```groovy -compile('com.jayfeng:lesscode-core:2.1') +implementation 'com.jayfeng:lesscode-core:2.4.2' ``` ## Features diff --git a/lesscode-core/build.gradle b/lesscode-core/build.gradle index 6c087b7..55d9bb4 100644 --- a/lesscode-core/build.gradle +++ b/lesscode-core/build.gradle @@ -2,11 +2,11 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "2.3" // #CONFIG# // project version +version = "2.4.2" // #CONFIG# // project version android { compileSdkVersion 27 - buildToolsVersion "27.0.3" + buildToolsVersion "27.0.2" // resourcePrefix "less_" // #CONFIG# // please remove this if you don't known it defaultConfig { minSdkVersion 14 @@ -28,8 +28,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:27.1.0' - compile 'com.android.support:recyclerview-v7:27.1.0' + compile 'com.android.support:support-v4:27.0.2' + compile 'com.android.support:recyclerview-v7:27.0.2' } def siteUrl = 'https://github.com/openproject/LessCode' // #CONFIG# // project homepage