diff --git a/app/build.gradle b/app/build.gradle index 91342150d2..ffab72c74f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -101,39 +101,9 @@ android { } /** - * 多渠道打包,所有渠道值均通过java code设置 + * 多渠道打包,渠道请参考"channel.txt"文件,所有渠道值均通过java code设置 */ // productFlavors { -// GH_100 {} -// GH_101 {} -// GH_102 {} -// GH_103 {} -// GH_104 {} -// GH_106 {} -// GH_107 {} -// GH_108 {} -// GH_109 {} -// GH_110 {} -// GH_111 {} -// GH_113 {} -// GH_114 {} -// GH_115 {} -// GH_116 {} -// GH_117 {} -// GH_118 {} -// GH_119 {} -// GH_120 {} -// GH_121 {} -// GH_123 {} -// GH_127 {} -// GH_200 {} -// GH_201 {} -// GH_202 {} -// GH_203 {} -// GH_204 {} -// GH_205 {} -// GH_222 {} -// GH_307 {} // GH_TEST {} // } // productFlavors.all { flavor -> @@ -220,7 +190,7 @@ dependencies { compile libs.eventbus apt libs.eventbusApt -// compile project(':libraries:EventBus') + compile project(':libraries:LGLibrary') compile project(':libraries:MiPush') compile project(':libraries:MTA') compile project(':libraries:QQShare') diff --git a/app/src/main/java/com/gh/base/AppController.java b/app/src/main/java/com/gh/base/AppController.java index d5a20a8c8e..1b29d1eaee 100644 --- a/app/src/main/java/com/gh/base/AppController.java +++ b/app/src/main/java/com/gh/base/AppController.java @@ -72,20 +72,6 @@ public class AppController extends Application { objectMap.remove(key); } - public static String getProcessName(Context cxt, int pid) { - ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); - List runningApps = am.getRunningAppProcesses(); - if (runningApps == null) { - return null; - } - for (RunningAppProcessInfo procInfo : runningApps) { - if (procInfo.pid == pid) { - return procInfo.processName; - } - } - return null; - } - public static synchronized AppController getInstance() { return mInstance; } @@ -107,7 +93,6 @@ public class AppController extends Application { Thread.setDefaultUncaughtExceptionHandler(appUncaughtHandler); } -// mChannel = (String) PackageUtils.getMetaData(this, getPackageName(), "TD_CHANNEL_ID"); mChannel = ChannelReaderUtil.getChannel(this); if (TextUtils.isEmpty(mChannel)) { //默认用Android Studio run时并没有写入channel magic number到apk包里面,所以需要fallback @@ -121,6 +106,13 @@ public class AppController extends Application { DataUtils.init(this, BuildConfig.DEBUG, mChannel); + //测试MTA崩溃的,坑爹 +// if (BuildConfig.DEBUG) { +// StatConfig.setDebugEnable(true); +// StatConfig.setStatSendStrategy(StatReportStrategy.DEVELOPER); +// throw new RuntimeException("test again"); +// } + HttpsUtils.initHttpsUrlConnection(this); // if (BuildConfig.DEBUG) { @@ -233,4 +225,18 @@ public class AppController extends Application { return false; } +// public static String getProcessName(Context cxt, int pid) { +// ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); +// List runningApps = am.getRunningAppProcesses(); +// if (runningApps == null) { +// return null; +// } +// for (RunningAppProcessInfo procInfo : runningApps) { +// if (procInfo.pid == pid) { +// return procInfo.processName; +// } +// } +// return null; +// } + } diff --git a/app/src/main/java/com/gh/base/AppControllerLike.java b/app/src/main/java/com/gh/base/AppControllerLike.java deleted file mode 100644 index 779a0595da..0000000000 --- a/app/src/main/java/com/gh/base/AppControllerLike.java +++ /dev/null @@ -1,51 +0,0 @@ -//package com.gh.base; -// -// -//import android.annotation.TargetApi; -//import android.app.Application; -//import android.content.Context; -//import android.content.Intent; -//import android.os.Build; -//import android.support.multidex.MultiDex; -// -//import com.tencent.tinker.lib.listener.DefaultPatchListener; -//import com.tencent.tinker.lib.listener.PatchListener; -//import com.tencent.tinker.lib.patch.AbstractPatch; -//import com.tencent.tinker.lib.patch.UpgradePatch; -//import com.tencent.tinker.lib.reporter.DefaultLoadReporter; -//import com.tencent.tinker.lib.reporter.DefaultPatchReporter; -//import com.tencent.tinker.lib.reporter.LoadReporter; -//import com.tencent.tinker.lib.reporter.PatchReporter; -//import com.tencent.tinker.lib.tinker.TinkerInstaller; -//import com.tencent.tinker.loader.app.DefaultApplicationLike; -// -//public class AppControllerLike extends DefaultApplicationLike { -// -// public AppControllerLike(Application application, int tinkerFlags, boolean tinkerLoadVerifyFlag, -// long applicationStartElapsedTime, long applicationStartMillisTime, -// Intent tinkerResultIntent) { -// super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, -// applicationStartMillisTime, tinkerResultIntent); -// } -// -// @Override -// public void onBaseContextAttached(Context base) { -// super.onBaseContextAttached(base); -// MultiDex.install(base); -// -// LoadReporter loadReporter = new DefaultLoadReporter(getApplication()); -// PatchReporter patchReporter = new DefaultPatchReporter(getApplication()); -// PatchListener patchListener = new DefaultPatchListener(getApplication()); -// AbstractPatch upgradePatchProcessor = new UpgradePatch(); -// -// TinkerInstaller.install(this, loadReporter, patchReporter, patchListener, -// AppTinkerResultService.class, upgradePatchProcessor); -//// TinkerInstaller.install(this); -// } -// -// @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) -// public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) { -// getApplication().registerActivityLifecycleCallbacks(callback); -// } -// -//} diff --git a/app/src/main/java/com/gh/base/AppTinkerResultService.java b/app/src/main/java/com/gh/base/AppTinkerResultService.java deleted file mode 100644 index d3e94e4d1b..0000000000 --- a/app/src/main/java/com/gh/base/AppTinkerResultService.java +++ /dev/null @@ -1,29 +0,0 @@ -//package com.gh.base; -// -//import com.gh.common.util.Utils; -//import com.tencent.tinker.lib.service.DefaultTinkerResultService; -//import com.tencent.tinker.lib.service.PatchResult; -//import com.tencent.tinker.lib.util.TinkerServiceInternals; -// -//import java.io.File; -// -// -//public class AppTinkerResultService extends DefaultTinkerResultService { -// -// @Override -// public void onPatchResult(PatchResult result) { -// if (result == null) { -// return; -// } -// Utils.log(result); -// -// //first, we want to kill the recover process -// TinkerServiceInternals.killTinkerPatchServiceProcess(getApplicationContext()); -// -// if (result.isSuccess) { -// Utils.log("Tinkder Success"); -// deleteRawPatchFile(new File(result.rawPatchFilePath)); -// } -// } -// -//} diff --git a/app/src/main/java/com/gh/base/AppUncaughtHandler.java b/app/src/main/java/com/gh/base/AppUncaughtHandler.java index f6c9ab65c2..870b5b21f6 100644 --- a/app/src/main/java/com/gh/base/AppUncaughtHandler.java +++ b/app/src/main/java/com/gh/base/AppUncaughtHandler.java @@ -95,10 +95,11 @@ public class AppUncaughtHandler implements UncaughtExceptionHandler { String errorMsg = Log.getStackTraceString(ex); // MTA主动上传错误 - StatService.reportError(mAppController.getApplicationContext(), errorMsg); +// StatService.reportError(mAppController.getApplicationContext(), errorMsg); + StatService.reportException(mAppController, ex); // 上传错误数据 - DataCollectionUtils.uploadError(mAppController.getApplicationContext(), errorMsg); + DataCollectionUtils.uploadError(mAppController, errorMsg); // 保存到本地 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()); diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 5cf57da399..345955aaea 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -22,7 +22,6 @@ import com.gh.common.util.ShareUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.gamecenter.listener.OnCallBackListener; import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig; import org.greenrobot.eventbus.EventBus; @@ -36,7 +35,7 @@ import butterknife.ButterKnife; import static com.gh.common.util.EntranceUtils.KEY_DATA; import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE; -public abstract class BaseActivity extends BaseAppCompatToolBarActivity implements OnCallBackListener { +public abstract class BaseActivity extends BaseAppCompatToolBarActivity implements OnRequestCallBackListener { protected String mEntrance; private boolean mIsPause; @@ -84,7 +83,7 @@ public abstract class BaseActivity extends BaseAppCompatToolBarActivity implemen } } - protected void init(String title) { + protected void initTitle(String title) { TextView actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); actionbar_tv_title.setText(title); // setNavigationTitle(title); diff --git a/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java b/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java index b9cc082191..7eafe7edbf 100644 --- a/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java +++ b/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java @@ -23,7 +23,7 @@ public abstract class BaseAppCompatToolBarActivity extends BaseAppCompatActivity private SystemBarTintManager mTintManager; // TODO 获取沉浸栏管理,要进行版本判断或者判断是否为空 - protected SystemBarTintManager getTintManager() { + public SystemBarTintManager getTintManager() { return mTintManager; } diff --git a/app/src/main/java/com/gh/base/BaseDetailActivity.java b/app/src/main/java/com/gh/base/BaseDetailActivity.java index 64c42cf1b8..be705425b9 100644 --- a/app/src/main/java/com/gh/base/BaseDetailActivity.java +++ b/app/src/main/java/com/gh/base/BaseDetailActivity.java @@ -2,6 +2,7 @@ package com.gh.base; import android.content.Intent; import android.os.Bundle; +import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.View; @@ -100,8 +101,6 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -// View contentView = View.inflate(this, R.layout.activity_detail, null); - // 添加分享图标 iv_share = new ImageView(this); iv_share.setImageResource(R.drawable.ic_share); @@ -117,8 +116,6 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On R.id.reuse_actionbar); reuse_actionbar.addView(iv_share, params); -// init(contentView); - actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); detail_rv_show = (RecyclerView) findViewById(R.id.detail_rv_show); detail_ll_bottom = (LinearLayout) findViewById(R.id.detail_ll_bottom); @@ -279,9 +276,9 @@ public abstract class BaseDetailActivity extends BaseActivity implements View.On detail_tv_per.setText("安装"); if (mDownloadEntity.isPluggable() && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_plugin_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); } else { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_normal_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); } break; case cancel: diff --git a/app/src/main/java/com/gh/base/BaseFragment.java b/app/src/main/java/com/gh/base/BaseFragment.java deleted file mode 100644 index 31eb78f30c..0000000000 --- a/app/src/main/java/com/gh/base/BaseFragment.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.gh.base; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Toast; - -import com.gh.common.util.EntranceUtils; -import com.gh.gamecenter.listener.OnCallBackListener; - -import org.greenrobot.eventbus.EventBus; - -import butterknife.ButterKnife; - -/** - * Created by LGT on 2016/9/4. - * Fragment 基类 - */ -public class BaseFragment extends Fragment implements OnCallBackListener { - - protected View view; - - protected boolean isEverpause; - - protected String mEntrance; - - protected void init(int layout) { - view = View.inflate(getActivity(), layout, null); - - ButterKnife.bind(this, view); - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - mEntrance = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_ENTRANCE); - isEverpause = false; - EventBus.getDefault().register(this); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - @Override - public void onResume() { - super.onResume(); - isEverpause = false; - } - - @Override - public void onPause() { - super.onPause(); - isEverpause = true; - } - - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); - } - - public void toast(String msg) { - Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show(); - } - - public boolean isEverpause() { - return isEverpause; - } - - @Override - public void loadDone() { - - } - - @Override - public void loadDone(Object obj) { - - } - - @Override - public void loadError() { - - } - - @Override - public void loadEmpty() { - - } - -} diff --git a/app/src/main/java/com/gh/base/BaseFragmentActivity.java b/app/src/main/java/com/gh/base/BaseFragmentActivity.java deleted file mode 100644 index 3c910cf103..0000000000 --- a/app/src/main/java/com/gh/base/BaseFragmentActivity.java +++ /dev/null @@ -1,206 +0,0 @@ -//package com.gh.base; -// -//import android.annotation.TargetApi; -//import android.content.Context; -//import android.graphics.Color; -//import android.os.Build; -//import android.os.Bundle; -//import android.support.v4.app.FragmentActivity; -//import android.view.*; -//import android.view.View.OnClickListener; -//import android.view.ViewGroup.LayoutParams; -//import android.widget.*; -//import butterknife.ButterKnife; -//import com.gh.common.constant.Config; -//import com.gh.common.util.*; -//import com.gh.download.DownloadManager; -//import com.gh.gamecenter.R; -//import com.gh.gamecenter.eventbus.EBShowDialog; -//import com.readystatesoftware.systembartint.SystemBarTintManager; -//import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig; -//import de.greenrobot.event.EventBus; -// -//import java.lang.reflect.Field; -//import java.lang.reflect.Method; -//import java.util.ArrayList; -// -//public class BaseFragmentActivity extends FragmentActivity { -// -// protected String mEntrance; -// -// private boolean isPause; -// -// @Override -// protected void onCreate(Bundle savedInstanceState) { -// super.onCreate(savedInstanceState); -// AppManager.getInstance().addActivity(this); -// EventBus.getDefault().register(this); -// mEntrance = getIntent().getStringExtra("mEntrance"); -// if (getIntent().getBundleExtra("data") != null) { -// mEntrance = getIntent().getBundleExtra("data").getString("mEntrance"); -// } -// } -// -// public void init(View contentView, String title) { -// init(contentView); -// TextView actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); -// actionbar_tv_title.setText(title); -// } -// -// public void init(View contentView) { -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { -// setTheme(R.style.AppTheme); -// setTranslucentStatus(true); -// SystemBarTintManager tintManager = new SystemBarTintManager(this); -// tintManager.setStatusBarTintEnabled(true); -// if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) { -// tintManager.setStatusBarTintColor(Color.WHITE); -// } else { -// tintManager.setStatusBarTintColor(Color.BLACK); -// } -// SystemBarConfig config = tintManager.getConfig(); -// contentView.setPadding(0, config.getPixelInsetTop(false), 0, -// config.getPixelInsetBottom()); -// -// if (Build.MANUFACTURER.equals("Meizu")) { -// try { -// Window window = getWindow(); -// if (window != null) { -// WindowManager.LayoutParams lp = window.getAttributes(); -// Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON"); -// Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags"); -// darkFlag.setAccessible(true); -// meizuFlags.setAccessible(true); -// int bit = darkFlag.getInt(null); -// int value = meizuFlags.getInt(lp); -// value |= bit; -// meizuFlags.setInt(lp, value); -// window.setAttributes(lp); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } else if (Build.MANUFACTURER.equals("Xiaomi")) { -// try { -// Window window = getWindow(); -// if (window != null) { -// Class clazz = window.getClass(); -// Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams"); -// Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE"); -// int darkModeFlag = field.getInt(layoutParams); -// Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class); -// extraFlagField.invoke(window, darkModeFlag, darkModeFlag); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// } -// -// setContentView(contentView); -// -// ButterKnife.bind(this); -// -// int actionbar_height = getSharedPreferences(Config.PREFERENCE, -// Context.MODE_PRIVATE).getInt("actionbar_height", -// DisplayUtils.dip2px(getApplicationContext(), 48)); -// -// RelativeLayout reuse_actionbar = (RelativeLayout) findViewById(R.id.reuse_actionbar); -// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( -// LayoutParams.MATCH_PARENT, actionbar_height); -// reuse_actionbar.setLayoutParams(params); -// -// findViewById(R.id.actionbar_rl_back).setOnClickListener( -// new OnClickListener() { -// @Override -// public void onClick(View v) { -// finish(); -// } -// }); -// } -// -// public void toast(String msg) { -// Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); -// } -// -// public void toast(int msg) { -// Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); -// } -// -// @TargetApi(19) -// protected void setTranslucentStatus(boolean status) { -// Window window = getWindow(); -// WindowManager.LayoutParams winParams = window.getAttributes(); -// final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; -// if (status) { -// winParams.flags |= bits; -// } else { -// winParams.flags &= ~bits; -// } -// window.setAttributes(winParams); -// } -// -// //如果是游戏分享,newsTitle默认为空 -// public void showShare(String url, String gameName, String icon, String newsTitle, ArrayList tag) { -// -// //判断是否是官方版 -// boolean isPlugin = false; -// if (tag != null) { -// for (String s : tag) { -// if (!"官方版".equals(s)) { -// isPlugin = true; -// } -// } -// } -// -// ShareUtils.getInstance(this).showShareWindows(new View(this), url, gameName, icon, newsTitle, isPlugin, true); -// -// if (newsTitle == null) { -// DataUtils.onEvent(this, "内容分享", gameName); -// } else { -// DataUtils.onEvent(this, "内容分享", newsTitle); -// } -// } -// -// public void onEventMainThread(final EBShowDialog showDialog) { -// if (!isPause && this.getClass().getName().equals(RunningUtils.getTopActivity(this))) { -// if ("hijack".equals(showDialog.getType())) { -// DialogUtils.showQqSessionDialog(this, null);// 建议用户联系客服 -// } else if ("plugin".equals(showDialog.getType())) { -// DialogUtils.showPluginDialog(this, new DialogUtils.ConfirmListener() { -// @Override -// public void onConfirm() { -// if (FileUtils.isEmptyFile(showDialog.getPath())) { -// Toast.makeText(BaseFragmentActivity.this, "解析包出错(可能被误删了),请重新下载", Toast.LENGTH_SHORT).show(); -// } else { -// startActivity(PackageUtils.getUninstallIntent(BaseFragmentActivity.this, showDialog.getPath())); -// } -// } -// }); -// } -// } -// } -// -// @Override -// protected void onDestroy() { -// super.onDestroy(); -// EventBus.getDefault().unregister(this); -// AppManager.getInstance().finishActivity(this); -// } -// -// @Override -// protected void onPause() { -// super.onPause(); -// DataUtils.onPause(this); -// isPause = true; -// } -// -// @Override -// protected void onResume() { -// super.onResume(); -// DataUtils.onResume(this); -// isPause = false; -// DownloadManager.getInstance(this).initGameMap(); -// } -// -//} diff --git a/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java b/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java new file mode 100644 index 0000000000..3557f19dd1 --- /dev/null +++ b/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java @@ -0,0 +1,23 @@ +package com.gh.base; + +import android.support.v7.widget.RecyclerView; +import android.view.View; + +import butterknife.ButterKnife; + +/** + * 目前仅提供butterknife bind方法 + * + * @author CsHeng + * @Date 16/06/2017 + * @Time 9:55 AM + */ + +public abstract class BaseRecyclerViewHolder extends RecyclerView.ViewHolder { + + public BaseRecyclerViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/listener/OnCallBackListener.java b/app/src/main/java/com/gh/base/OnRequestCallBackListener.java similarity index 67% rename from app/src/main/java/com/gh/gamecenter/listener/OnCallBackListener.java rename to app/src/main/java/com/gh/base/OnRequestCallBackListener.java index 6f12c7291d..3845b16a0e 100644 --- a/app/src/main/java/com/gh/gamecenter/listener/OnCallBackListener.java +++ b/app/src/main/java/com/gh/base/OnRequestCallBackListener.java @@ -1,9 +1,9 @@ -package com.gh.gamecenter.listener; +package com.gh.base; /** * Created by Administrator on 2016/9/8. */ -public interface OnCallBackListener { +public interface OnRequestCallBackListener { void loadDone(); diff --git a/app/src/main/java/com/gh/base/SuggestionType.java b/app/src/main/java/com/gh/base/SuggestionType.java index dc2a5bea63..73e3da0151 100644 --- a/app/src/main/java/com/gh/base/SuggestionType.java +++ b/app/src/main/java/com/gh/base/SuggestionType.java @@ -1,48 +1,48 @@ -package com.gh.base; - -import java.io.Serializable; - -public enum SuggestionType implements Serializable { - - FEEDBACK("普通反馈", 1), - SUGGESTION("功能建议", 2), - CRASH("发生闪退", 3), - GAME("游戏问题", 4), - COLLECT("游戏收录", 5), - POST("文章投稿", 6); - - private String mName; - private int mIndex; - - private SuggestionType(String name, int index) { - mName = name; - mIndex = index; - } - - public static String getName(int index) { - for (SuggestionType c : SuggestionType.values()) { - if (c.mIndex == index) { - return c.mName; - } - } - return ""; - } - - public static int getIndex(String name) { - for (SuggestionType c : SuggestionType.values()) { - if (c.mName == name) { - return c.mIndex; - } - } - return -1; - } - - public int getIndex() { - return mIndex; - } - - public String getName() { - return mName; - } - -} +//package com.gh.base; +// +//import java.io.Serializable; +// +//public enum SuggestionType implements Serializable { +// +// FEEDBACK("普通反馈", 1), +// SUGGESTION("功能建议", 2), +// CRASH("发生闪退", 3), +// GAME("游戏问题", 4), +// COLLECT("游戏收录", 5), +// POST("文章投稿", 6); +// +// private String mName; +// private int mIndex; +// +// private SuggestionType(String name, int index) { +// mName = name; +// mIndex = index; +// } +// +// public static String getName(int index) { +// for (SuggestionType c : SuggestionType.values()) { +// if (c.mIndex == index) { +// return c.mName; +// } +// } +// return ""; +// } +// +// public static int getIndex(String name) { +// for (SuggestionType c : SuggestionType.values()) { +// if (c.mName == name) { +// return c.mIndex; +// } +// } +// return -1; +// } +// +// public int getIndex() { +// return mIndex; +// } +// +// public String getName() { +// return mName; +// } +// +//} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/BaseRecyclerAdapter.java b/app/src/main/java/com/gh/base/adapter/BaseRecyclerAdapter.java similarity index 90% rename from app/src/main/java/com/gh/gamecenter/adapter/BaseRecyclerAdapter.java rename to app/src/main/java/com/gh/base/adapter/BaseRecyclerAdapter.java index 0716354471..0014dcd1ce 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/BaseRecyclerAdapter.java +++ b/app/src/main/java/com/gh/base/adapter/BaseRecyclerAdapter.java @@ -1,28 +1,31 @@ -package com.gh.gamecenter.adapter; - -import android.content.Context; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.ViewHolder; -import android.view.LayoutInflater; - -/** - * @author CsHeng - * @Date 2017/4/25 - * @Time 10:19 - */ - -public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter { - - protected static final int TAG_POSITION = 0x12345678; - - protected Context mContext; - protected LayoutInflater mLayoutInflater; - - public BaseRecyclerAdapter(Context context) { - //TODO 排查必须使用activity context的场景,比如startActivity -// mContext = context.getApplicationContext(); - mContext = context; - mLayoutInflater = LayoutInflater.from(mContext); - } - -} +package com.gh.base.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.view.LayoutInflater; + +/** + * @author CsHeng + * @Date 2017/4/25 + * @Time 10:19 + */ + +public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter { + + /** + * 用于click listener的处理 + */ + protected static final int TAG_POSITION = 0x12345678; + + protected Context mContext; + protected LayoutInflater mLayoutInflater; + + public BaseRecyclerAdapter(Context context) { + //TODO 排查必须使用activity context的场景,比如startActivity +// mContext = context.getApplicationContext(); + mContext = context; + mLayoutInflater = LayoutInflater.from(mContext); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/FragmentAdapter.java b/app/src/main/java/com/gh/base/adapter/FragmentAdapter.java similarity index 95% rename from app/src/main/java/com/gh/gamecenter/adapter/FragmentAdapter.java rename to app/src/main/java/com/gh/base/adapter/FragmentAdapter.java index 1d42ceafe7..36faadf66e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/FragmentAdapter.java +++ b/app/src/main/java/com/gh/base/adapter/FragmentAdapter.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.adapter; +package com.gh.base.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment.java b/app/src/main/java/com/gh/base/fragment/BaseFragment.java new file mode 100644 index 0000000000..9002fff95a --- /dev/null +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment.java @@ -0,0 +1,139 @@ +package com.gh.base.fragment; + +import android.os.Bundle; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import com.gh.base.OnRequestCallBackListener; +import com.gh.common.util.EntranceUtils; +import com.gh.common.util.RuntimeUtils; +import com.gh.gamecenter.eventbus.EBMiPush; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import butterknife.ButterKnife; + +/** + * Created by LGT on 2016/9/4. + * Fragment 基类 + */ +public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener, View.OnClickListener { + + // TODO private view + protected View view; + + protected boolean isEverPause; + + protected String mEntrance; + + @LayoutRes + protected abstract int getLayoutId(); + + /** + * 责任链,谁处理了就返回true,否则返回super.handleOnClick(View view) + * + * @return + */ + protected boolean handleOnClick(View view) { + return true; + } + + @Override + public void onClick(View v) { + handleOnClick(v); + } + + protected void initView(View view) { + } + + protected void postRunnable(Runnable runnable) { +// if (getView() != null) { +// getView().post(runnable); +// } + RuntimeUtils.getInstance().runOnUiThread(runnable); + } + + protected void postDelayedRunnable(Runnable runnable, long delayMillis) { + RuntimeUtils.getInstance().runOnUiThread(runnable, delayMillis); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mEntrance = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_ENTRANCE); + isEverPause = false; + EventBus.getDefault().register(this); + view = View.inflate(getContext(), getLayoutId(), null); + ButterKnife.bind(this, view); + initView(view); + } + + //TODO 尴尬,必须的有subscribe才能register + @Subscribe(threadMode = ThreadMode.BACKGROUND) + public void onDummyEvent(EBMiPush push) { + // + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + if (container != null) { + container.removeView(view); + } + return view; + } + + @Override + public void onResume() { + super.onResume(); + isEverPause = false; + } + + @Override + public void onPause() { + super.onPause(); + isEverPause = true; + } + + @Override + public void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + public void toast(String msg) { + Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show(); + } + + public boolean isEverPause() { + return isEverPause; + } + + @Override + public void loadDone() { + + } + + @Override + public void loadDone(Object obj) { + + } + + @Override + public void loadError() { + + } + + @Override + public void loadEmpty() { + + } + +} diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java new file mode 100755 index 0000000000..3417aa45b3 --- /dev/null +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java @@ -0,0 +1,109 @@ +/** + * project: OPlay + *

+ *

+ * ======================================================================== + * amend date amend user amend reason + * 2013-3-6 CsHeng + */ + +package com.gh.base.fragment; + +import android.os.Bundle; +import android.support.annotation.IdRes; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.View; + +import com.lightgame.adapter.BaseFragmentPagerAdapter; +import com.lightgame.view.DoubleTapTextView; + +import java.util.ArrayList; +import java.util.List; + +/** + * ViewPager 配合RadioGroup实现双切换
+ * 记得自己控制onCreateView返回和radioGroup里面radiobutton个数,Viewpager的布局
+ * + * @author CsHeng + * @date 2013-3-6 + */ +public abstract class BaseFragment_ViewPager extends BaseFragment implements DoubleTapTextView.OnDoubleTapListener { + + private static final String ARGS_INDEX = "index"; + protected int mCheckedIndex = 0; + protected PagerAdapter mAdapter; + protected List mFragmentsList; + protected ViewPager mViewPager; + + @LayoutRes + protected abstract int getLayoutId(); + + @IdRes + protected abstract int getViewPagerId(); + + protected abstract void initFragmentList(List fragments); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mFragmentsList = new ArrayList<>(); + initFragmentList(mFragmentsList); + mAdapter = BaseFragmentPagerAdapter.newInstance(getChildFragmentManager(), mFragmentsList); + final Bundle args = getArguments(); + if (args != null) { + mCheckedIndex = args.getInt(ARGS_INDEX); + } + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mViewPager = (ViewPager) view.findViewById(getViewPagerId()); + mViewPager.setOffscreenPageLimit(mFragmentsList.size()); + mViewPager.setAdapter(mAdapter); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (mCheckedIndex < mFragmentsList.size()) { + mViewPager.setCurrentItem(mCheckedIndex, false); + } + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + if (getArguments() != null) { + getArguments().putInt(ARGS_INDEX, mCheckedIndex); + } + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + if (mViewPager != null) { + mViewPager.setAdapter(null); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + if (mFragmentsList != null) { + mFragmentsList.clear(); + } + } + + @Override + public boolean onDoubleTap() { + final Fragment fragment = mFragmentsList.get(mViewPager.getCurrentItem()); + return fragment instanceof DoubleTapTextView.OnDoubleTapListener && ((DoubleTapTextView.OnDoubleTapListener) + fragment).onDoubleTap(); + } + +} diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java new file mode 100755 index 0000000000..8e0be2c8b7 --- /dev/null +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java @@ -0,0 +1,105 @@ +/** + * project: OPlay + *

+ *

+ * ======================================================================== + * amend date amend user amend reason + * 2013-3-6 CsHeng + */ + +package com.gh.base.fragment; + +import android.os.Bundle; +import android.support.annotation.IdRes; +import android.support.annotation.Nullable; +import android.support.v4.view.ViewPager; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Checkable; + + +/** + * ViewPager 配合ViewGroup Checkable实现双切换
+ * 记得自己控制onCreateView返回和ViewGroup里面Checkable个数,ViewPager的布局
+ * + * @author CsHeng + * @date 2013-3-6 + * @update 2014-09-29 + */ +public abstract class BaseFragment_ViewPager_Checkable extends BaseFragment_ViewPager implements + ViewPager.OnPageChangeListener { + + protected ViewGroup mCheckableGroup; + + @IdRes + protected abstract int getCheckableGroupId(); + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mCheckableGroup = (ViewGroup) view.findViewById(getCheckableGroupId()); + for (int i = 0, size = mCheckableGroup.getChildCount(); i < size; i++) { + mCheckableGroup.getChildAt(i).setOnClickListener(this); + } + mViewPager.addOnPageChangeListener(this); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + mViewPager.removeOnPageChangeListener(this); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + checkIndex(mCheckedIndex); + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int index) { + onPageChanged(index); + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + + @Override + protected boolean handleOnClick(View view) { + final int toCheck = mCheckableGroup.indexOfChild(view); + if (toCheck != -1) { + mViewPager.setCurrentItem(toCheck, false); + return true; + } + return super.handleOnClick(view); + } + + protected void checkIndex(int index) { + final int childCount = mCheckableGroup.getChildCount(); + if (index < childCount && mCheckedIndex < childCount) { + final View toChecked = mCheckableGroup.getChildAt(index); + if (toChecked instanceof Checkable) { + ((Checkable) toChecked).setChecked(true); + } + if (index != mCheckedIndex) { + final View checkedChild = mCheckableGroup.getChildAt(mCheckedIndex); + if (checkedChild instanceof Checkable) { + ((Checkable) checkedChild).setChecked(false); + } + } + mCheckedIndex = index; + } + } + + protected void onPageChanged(int index) { + checkIndex(index); + } + +} diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index 12cdfdec1f..57d76d9c30 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -8,12 +8,12 @@ import com.gh.gamecenter.BuildConfig; public class Config { - public static final String HOST = "http://dev.api2.ghzhushou.com/v2d6/"; - public static final String USER_HOST = "http://dev.user2.ghzhushou.com/v1d2/"; - public static final String COMMENT_HOST = "http://dev.comment2.ghzhushou.com/v1d2/"; + public static final String HOST = "http://api2.ghzhushou.com/v2d6/"; + public static final String USER_HOST = "http://user2.ghzhushou.com/v1d2/"; + public static final String COMMENT_HOST = "http://comment2.ghzhushou.com/v1d2/"; public static final String DATA_HOST = "http://data.ghzhushou.com/"; - public static final String LIBAO_HOST = "http://dev.libao2.ghzhushou.com/v1d2/"; - public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d1/"; // TODO TEST v1d1 + public static final String LIBAO_HOST = "http://libao2.ghzhushou.com/v1d2/"; + public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d0/"; // TODO TEST v1d1 public static final String PREFERENCE = "ghzhushou"; // Third-Party confs diff --git a/app/src/main/java/com/gh/common/util/CommentUtils.java b/app/src/main/java/com/gh/common/util/CommentUtils.java index 451fd5aa34..a89b2e3275 100644 --- a/app/src/main/java/com/gh/common/util/CommentUtils.java +++ b/app/src/main/java/com/gh/common/util/CommentUtils.java @@ -5,9 +5,7 @@ import android.content.Context; import android.graphics.Color; import android.support.v4.content.ContextCompat; import android.text.TextUtils; -import android.view.Gravity; import android.view.View; -import android.view.ViewGroup; import android.view.Window; import android.widget.LinearLayout; import android.widget.TextView; @@ -15,7 +13,7 @@ import android.widget.TextView; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.MessageDetailAdapter; +import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.db.CommentDao; import com.gh.gamecenter.entity.CommentEntity; @@ -65,17 +63,17 @@ public class CommentUtils { } } - public static void showReportDialog(final CommentEntity commentEntity, final Context mContext - , final MessageDetailAdapter.OnCommentCallBackListener mCallBackListener, final String newsId) { + public static void showReportDialog(final CommentEntity commentEntity, final Context context, + final OnCommentCallBackListener listener, final String newsId) { - CommentDao commentDao = new CommentDao(mContext); + CommentDao commentDao = new CommentDao(context); - final Dialog dialog = new Dialog(mContext); + final Dialog dialog = new Dialog(context); - LinearLayout container = new LinearLayout(mContext); + LinearLayout container = new LinearLayout(context); container.setOrientation(LinearLayout.VERTICAL); container.setBackgroundColor(Color.WHITE); - container.setPadding(0, DisplayUtils.dip2px(mContext, 12), 0, DisplayUtils.dip2px(mContext, 12)); + container.setPadding(0, DisplayUtils.dip2px(context, 12), 0, DisplayUtils.dip2px(context, 12)); List dialogType = new ArrayList<>(); @@ -91,16 +89,16 @@ public class CommentUtils { } for (String s : dialogType) { - final TextView reportTv = new TextView(mContext); + final TextView reportTv = new TextView(context); reportTv.setText(s); reportTv.setTextSize(17); - reportTv.setTextColor(ContextCompat.getColor(mContext, R.color.title)); + reportTv.setTextColor(ContextCompat.getColor(context, R.color.title)); reportTv.setBackgroundResource(R.drawable.textview_white_style); - int widthPixels = mContext.getResources().getDisplayMetrics().widthPixels; + int widthPixels = context.getResources().getDisplayMetrics().widthPixels; reportTv.setLayoutParams(new LinearLayout.LayoutParams((widthPixels * 9) / 10, LinearLayout.LayoutParams.WRAP_CONTENT)); - reportTv.setPadding(DisplayUtils.dip2px(mContext, 20), DisplayUtils.dip2px(mContext, 12), - 0, DisplayUtils.dip2px(mContext, 12)); + reportTv.setPadding(DisplayUtils.dip2px(context, 20), DisplayUtils.dip2px(context, 12), + 0, DisplayUtils.dip2px(context, 12)); container.addView(reportTv); reportTv.setOnClickListener(new View.OnClickListener() { @@ -109,23 +107,23 @@ public class CommentUtils { dialog.cancel(); switch (reportTv.getText().toString()) { case "回复": - if (mCallBackListener != null) { - mCallBackListener.showSoftInput(commentEntity); + if (listener != null) { + listener.onCommentCallback(commentEntity); } else if (!TextUtils.isEmpty(newsId)) { - mContext.startActivity(MessageDetailActivity.getMessageDetailIntent(mContext, commentEntity, newsId)); + context.startActivity(MessageDetailActivity.getMessageDetailIntent(context, commentEntity, newsId)); } else { - Utils.toast(mContext, "缺少关键属性"); + Utils.toast(context, "缺少关键属性"); } break; case "复制": - LibaoUtils.copyLink(commentEntity.getContent(), mContext); + LibaoUtils.copyLink(commentEntity.getContent(), context); break; case "举报": - showReportTypeDialog(commentEntity, mContext); + showReportTypeDialog(commentEntity, context); break; case "查看对话": - mContext.startActivity(CommentDetailActivity.getCommentDetailIntent(mContext, commentEntity.getId())); + context.startActivity(CommentDetailActivity.getCommentDetailIntent(context, commentEntity.getId())); break; } } diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 6630ace313..953594be10 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -32,42 +32,51 @@ public class DataUtils { public static void init(Application context, final boolean debug, String channel) { //TalkingData + TCAgent.LOG_ON = debug; if (!debug) { TCAgent.init(context, Config.TD_APPID, channel); + //TODO 去除为了测试MTA的问题,这个版本不启用 TCAgent.setReportUncaughtExceptions(true); - } else { - TCAgent.LOG_ON = true; } + // 打开debug开关,可查看mta上报日志或错误 + // debug true release false + StatConfig.setDebugEnable(debug); + //MTA - StatService.setContext(context); - StatService.registerActivityLifecycleCallbacks(context); if (!debug) { - // 禁止MTA打印日志 - StatConfig.setDebugEnable(false); + + //TODO 加入账号之后设置用户 +// StatConfig.setCustomUserId(context, "userid"); + // 收集未处理的异常 StatConfig.setAutoExceptionCaught(true); + + StatConfig.setAntoActivityLifecycleStat(true); + // 设置数据上报策略 StatConfig.setStatSendStrategy(StatReportStrategy.PERIOD); StatConfig.setSendPeriodMinutes(5); + StatConfig.init(context); + StatConfig.setInstallChannel(channel); + StatService.setContext(context); + StatService.registerActivityLifecycleCallbacks(context); + + StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); + // 开启异常时的实时上报 + crashReporter.setEnableInstantReporting(true); + // 开启java异常捕获 + crashReporter.setJavaCrashHandlerStatus(true); + try { // 开启收集服务 StatService.startStatService(context, Config.MTA_APPKEY, com.tencent.stat.common.StatConstants.VERSION); } catch (MtaSDkException e) { e.printStackTrace(); } - - StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); - // 开启异常时的实时上报 - crashReporter.setEnableInstantReporting(true); - // 开启java异常捕获 - crashReporter.setJavaCrashHandlerStatus(true); - } else { - // 打开debug开关,可查看mta上报日志或错误 - // debug true release false - StatConfig.setDebugEnable(true); } + } public static void onEvent(Context var0, String var1, String var2) { @@ -108,18 +117,18 @@ public class DataUtils { Map kv = new HashMap<>(); kv.put("版本", platform); kv.put("状态", status); - DataUtils.onEvent(context, "游戏下载", gameName, kv); + onEvent(context, "游戏下载", gameName, kv); Map kv2 = new HashMap<>(); kv2.put("版本", platform); kv2.put("状态", status); kv2.put("位置", entrance); - DataUtils.onEvent(context, "游戏下载位置", gameName, kv2); + onEvent(context, "游戏下载位置", gameName, kv2); Map kv3 = new HashMap<>(); kv3.put(entrance, "下载数"); kv3.put(entrance, status); - DataUtils.onEvent(context, "应用数据", gameName, kv3); + onEvent(context, "应用数据", gameName, kv3); } // 游戏更新 @@ -127,7 +136,7 @@ public class DataUtils { Map kv = new HashMap<>(); kv.put("版本", paltform); kv.put("状态", status); - DataUtils.onEvent(context, "游戏更新", gameName, kv); + onEvent(context, "游戏更新", gameName, kv); } } diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index 186cc1c4e8..92eaf80a13 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -3,6 +3,7 @@ package com.gh.common.util; import android.content.Context; import android.graphics.Color; import android.os.Message; +import android.support.v4.content.ContextCompat; import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -239,7 +240,7 @@ public class DownloadItemUtils { if (isNormal) { holder.gameDownloadBtn.setText("下载中"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - holder.gameDownloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + holder.gameDownloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); } } else if (status.equals(DownloadStatus.waiting)) { holder.gameProgressbar.setProgress((int) (downloadEntity.getPercent() * 10)); @@ -253,7 +254,7 @@ public class DownloadItemUtils { if (isNormal) { holder.gameDownloadBtn.setText("下载中"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - holder.gameDownloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + holder.gameDownloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); } } else if (status.equals(DownloadStatus.pause) || status.equals(DownloadStatus.timeout) @@ -269,7 +270,7 @@ public class DownloadItemUtils { if (isNormal) { holder.gameDownloadBtn.setText("下载中"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - holder.gameDownloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + holder.gameDownloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); } } else if (status.equals(DownloadStatus.done)) { holder.gameProgressbar.setProgress(1000); @@ -388,7 +389,7 @@ public class DownloadItemUtils { downloadBtn.setText("下载中"); downloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - downloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + downloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); DownloadManager.getInstance(context).putStatus(gameEntity.getApk().get(0).getUrl(), "downloading"); } else { @@ -397,10 +398,7 @@ public class DownloadItemUtils { } //插件化 - private static void plugin(Context context, - GameEntity gameEntity, - TextView downloadBtn, - String entrance, + private static void plugin(Context context, GameEntity gameEntity, TextView downloadBtn, String entrance, String location) { String msg = FileUtils.isCanDownload(context, gameEntity.getApk().get(0).getSize()); if (TextUtils.isEmpty(msg)) { @@ -411,7 +409,7 @@ public class DownloadItemUtils { downloadBtn.setText("下载中"); downloadBtn.setBackgroundResource(R.drawable.game_item_btn_downloading_style); - downloadBtn.setTextColor(context.getResources().getColorStateList(R.color.text_downloading_style)); + downloadBtn.setTextColor(ContextCompat.getColorStateList(context, R.color.text_downloading_style)); DownloadManager.getInstance(context).putStatus(gameEntity.getApk().get(0).getUrl(), "downloading"); } else { @@ -420,9 +418,7 @@ public class DownloadItemUtils { } //安装 - private static void install(final Context context, - GameEntity gameEntity, - int position, + private static void install(final Context context, GameEntity gameEntity, int position, RecyclerView.Adapter adapter) { DownloadEntity downloadEntity = DownloadManager.getInstance(context).get(gameEntity.getApk().get(0).getUrl()); if (downloadEntity != null) { @@ -441,10 +437,7 @@ public class DownloadItemUtils { } //更新 - private static void update(Context context, - GameEntity gameEntity, - String entrance, - String location) { + private static void update(Context context, GameEntity gameEntity, String entrance, String location) { DataUtils.onGameUpdateEvent(context, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), "下载开始"); DownloadManager.createDownload(context, gameEntity, "更新", entrance, location); } diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java index 0bd9011558..24784bf6d7 100644 --- a/app/src/main/java/com/gh/common/util/LibaoUtils.java +++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java @@ -1,6 +1,5 @@ package com.gh.common.util; -import android.app.Activity; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; @@ -215,7 +214,7 @@ public class LibaoUtils { }); } - public static void initLibaoBtn(final Activity activity, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDao libaoDao, + public static void initLibaoBtn(final Context context, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDao libaoDao, final boolean isInstallRequired, final LibaoDetailAdapter adapter, final String entrance) { libaoBtn.setTextColor(Color.WHITE); @@ -257,8 +256,7 @@ public class LibaoUtils { int[][] states2 = new int[2][]; states2[0] = new int[]{android.R.attr.state_pressed}; states2[1] = new int[]{}; - int[] colors2 = new int[]{Color.WHITE, - Color.parseColor("#ffb13c")}; + int[] colors2 = new int[]{Color.WHITE, Color.parseColor("#ffb13c")}; ColorStateList sl2 = new ColorStateList(states2, colors2); libaoBtn.setText("已淘号"); libaoBtn.setBackgroundResource(R.drawable.libao_taoed_style); @@ -278,16 +276,16 @@ public class LibaoUtils { public void onClick(View v) { // 领取限制 if ("领取".equals(libaoBtn.getText().toString()) || "淘号".equals(libaoBtn.getText().toString())) { - if (isInstallRequired && !isAppInstalled(libaoBtn.getContext(), libaoEntity.getPackageName())) { + if (isInstallRequired && !isAppInstalled(context, libaoEntity.getPackageName())) { String platform; if (TextUtils.isEmpty(libaoEntity.getPlatform())) { platform = ""; } else { - platform = PlatformUtils.getInstance(libaoBtn.getContext()) + platform = PlatformUtils.getInstance(context) .getPlatformName(libaoEntity.getPlatform()) + "版"; } - DialogUtils.showWarningDialog(libaoBtn.getContext(), "条件不符", + DialogUtils.showWarningDialog(context, "条件不符", Html.fromHtml("请先" + "" + "安装《" + libaoEntity.getGame().getName() + "》 " + platform + ""), "关闭", "立即安装" @@ -303,17 +301,17 @@ public class LibaoUtils { switch (libaoBtn.getText().toString()) { case "未开始": - Utils.toast(libaoBtn.getContext(), "还没到开始领取时间"); + Utils.toast(context, "还没到开始领取时间"); break; case "查看": - Intent intent = LibaoDetailActivity.getLibaoDetailIntent(libaoEntity, libaoBtn, entrance); - libaoBtn.getContext().startActivity(intent); + Intent intent = LibaoDetailActivity.getIntent(context, libaoEntity, entrance); + context.startActivity(intent); break; case "领取": - libaoLing(activity, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null, entrance); + libaoLing(context, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, null, entrance); break; case "淘号": - postLibaoTao(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() { + postLibaoTao(context, libaoEntity.getId(), true, new PostLibaoListener() { @Override public void postSucced(Object response) { @@ -330,11 +328,11 @@ public class LibaoUtils { try { String detail = responseBody.getString("detail"); if ("maintaining".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); + Utils.toast(context, "网络状态异常,请稍后再试"); } else if ("fail to compete".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "淘号失败,稍后重试"); + Utils.toast(context, "淘号失败,稍后重试"); } else { - Utils.toast(libaoBtn.getContext(), "淘号异常"); + Utils.toast(context, "淘号异常"); } } catch (JSONException e) { e.printStackTrace(); @@ -342,13 +340,13 @@ public class LibaoUtils { return; } - Utils.toast(libaoBtn.getContext(), "淘号成功"); + Utils.toast(context, "淘号成功"); libaoEntity.setStatus("taoed"); LibaoInfo libaoInfo = LibaoInfo.createLibaoInfo(libaoEntity); libaoInfo.setCode(libaoCode); - libaoInfo.setTime(Utils.getTime(libaoBtn.getContext())); + libaoInfo.setTime(Utils.getTime(context)); libaoDao.add(libaoInfo); EventBus.getDefault().post(new EBReuse("libaoChanged")); @@ -357,20 +355,20 @@ public class LibaoUtils { adapter.notifyDataSetChanged(); final String finalLibaoCode = libaoCode; - DialogUtils.showWarningDialog(libaoBtn.getContext(), "淘号成功", Html.fromHtml("礼包码:" + DialogUtils.showWarningDialog(context, "淘号成功", Html.fromHtml("礼包码:" + "" + libaoCode + "" + "
淘号礼包不保证可用,请尽快进入游戏尝试兑换") , "关闭", " 复制礼包码" , new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - copyLink(finalLibaoCode, libaoBtn.getContext()); + copyLink(finalLibaoCode, context); if (isInstallRequired) { libaoBtn.postDelayed(new Runnable() { @Override public void run() { - lunningAppDialog(libaoBtn.getContext() + lunningAppDialog(context , Html.fromHtml("礼包码:" + "" + finalLibaoCode + "" + " 复制成功" @@ -392,14 +390,14 @@ public class LibaoUtils { try { JSONObject errorJson = new JSONObject(exception.response().errorBody().string()); String detail = errorJson.getString("detail"); - Utils.toast(libaoBtn.getContext(), "返回::" + detail); + Utils.toast(context, "返回::" + detail); if ("coming".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间未开始"); + Utils.toast(context, "礼包领取时间未开始"); } else if ("finish".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间已结束"); + Utils.toast(context, "礼包领取时间已结束"); } else if ("fetched".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "你已领过这个礼包了"); - getCunHaoXiang(libaoBtn.getContext(), true); + Utils.toast(context, "你已领过这个礼包了"); + getCunHaoXiang(context, true); int[][] states2 = new int[2][]; states2[0] = new int[]{android.R.attr.state_pressed}; @@ -412,23 +410,23 @@ public class LibaoUtils { libaoBtn.setTextColor(sl2); libaoEntity.setStatus("taoed"); } else if ("try tao".equals(detail) || "used up".equals(detail)) { - DialogUtils.showHintDialog(libaoBtn.getContext(), "礼包已领光" + DialogUtils.showHintDialog(context, "礼包已领光" , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); } else if ("maintaining".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); + Utils.toast(context, "网络状态异常,请稍后再试"); } else if ("fail to compete".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "淘号失败,稍后重试"); + Utils.toast(context, "淘号失败,稍后重试"); } else { - Utils.toast(libaoBtn.getContext(), "操作失败"); + Utils.toast(context, "操作失败"); } } catch (Exception ex) { ex.printStackTrace(); - Utils.toast(libaoBtn.getContext(), "礼包处理异常" + ex.toString()); + Utils.toast(context, "礼包处理异常" + ex.toString()); } return; } } - Utils.toast(libaoBtn.getContext(), "发生异常"); + Utils.toast(context, "发生异常"); } }); break; @@ -437,10 +435,14 @@ public class LibaoUtils { }); } - private static void libaoLing(final Activity activity, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDetailAdapter adapter, + private static void libaoLing(final Context context, final TextView libaoBtn, final LibaoEntity libaoEntity, final LibaoDetailAdapter adapter, final boolean isInstallRequired, final LibaoDao libaoDao, String captchaCode, final String entrance) { - postLibaoLing(libaoBtn.getContext(), libaoEntity.getId(), true, new PostLibaoListener() { + if (BuildConfig.DEBUG) { + Log.e("LIBAO", "context? " + context + libaoBtn.getContext()); + } + + postLibaoLing(context, libaoEntity.getId(), true, new PostLibaoListener() { @Override public void postSucced(Object response) { @@ -454,7 +456,7 @@ public class LibaoUtils { } if (TextUtils.isEmpty(libaoCode)) { - Utils.toast(libaoBtn.getContext(), "领取异常"); + Utils.toast(context, "领取异常"); return; } libaoEntity.setAvailable(libaoEntity.getAvailable() - 1); @@ -462,7 +464,7 @@ public class LibaoUtils { libaoEntity.setStatus("linged"); LibaoInfo libaoInfo = LibaoInfo.createLibaoInfo(libaoEntity); - libaoInfo.setTime(Utils.getTime(libaoBtn.getContext())); + libaoInfo.setTime(Utils.getTime(context)); libaoInfo.setCode(libaoCode); libaoDao.add(libaoInfo); @@ -472,19 +474,19 @@ public class LibaoUtils { adapter.notifyDataSetChanged(); final String finalLibaoCode = libaoCode; - DialogUtils.showWarningDialog(libaoBtn.getContext(), "领取成功", Html.fromHtml("礼包码:" + DialogUtils.showWarningDialog(context, "领取成功", Html.fromHtml("礼包码:" + "" + libaoCode + "" + "
请尽快使用,礼包码将于60分钟后进入淘号池") , "关闭", " 复制礼包码" , new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - copyLink(finalLibaoCode, libaoBtn.getContext()); + copyLink(finalLibaoCode, context); if (isInstallRequired) { libaoBtn.postDelayed(new Runnable() { @Override public void run() { - lunningAppDialog(libaoBtn.getContext() + lunningAppDialog(context , Html.fromHtml("礼包码:" + "" + finalLibaoCode + "" + " 复制成功" + "
请尽快进入游戏兑换"), libaoEntity); @@ -508,11 +510,11 @@ public class LibaoUtils { String detail = errorJson.getString("detail"); if ("coming".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间未开始"); + Utils.toast(context, "礼包领取时间未开始"); } else if ("finish".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "礼包领取时间已结束"); + Utils.toast(context, "礼包领取时间已结束"); } else if ("fetched".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "你已领过这个礼包了"); + Utils.toast(context, "你已领过这个礼包了"); int countdown = 0; if (errorJson.toString().contains("countdown")) { countdown = errorJson.getInt("countdown"); @@ -520,7 +522,7 @@ public class LibaoUtils { if (countdown > 0 && countdown < 60 * 10) { EventBus.getDefault().post(new EBUISwitch(REFRESH_LIBAO_TIME, countdown)); } else { - getCunHaoXiang(libaoBtn.getContext(), true); + getCunHaoXiang(context, true); } int[][] states = new int[2][]; @@ -535,38 +537,33 @@ public class LibaoUtils { libaoEntity.setStatus("linged"); } else if ("try tao".equals(detail) || "used up".equals(detail)) { - DialogUtils.showHintDialog(libaoBtn.getContext(), "礼包已领光" + DialogUtils.showHintDialog(context, "礼包已领光" , "手速不够快,礼包已经被抢光了,十分抱歉", "知道了"); libaoEntity.setStatus("used_up"); - initLibaoBtn(activity, libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter, entrance); + initLibaoBtn(context, libaoBtn, libaoEntity, libaoDao, isInstallRequired, adapter, entrance); } else if ("maintaining".equals(detail)) { - Utils.toast(libaoBtn.getContext(), "网络状态异常,请稍后再试"); + Utils.toast(context, "网络状态异常,请稍后再试"); } else { - Utils.toast(libaoBtn.getContext(), "操作失败"); + Utils.toast(context, "操作失败"); } } catch (Exception ex) { ex.printStackTrace(); - Utils.toast(libaoBtn.getContext(), "礼包处理异常"); + Utils.toast(context, "礼包处理异常"); } return; } else if (exception.code() == 412) { // 需要验证 - - if (BuildConfig.DEBUG) { - Log.e("LIBAO", "context? " + libaoBtn.getContext() + activity); - } - - GeetestUtils.getInstance().showDialog(activity, new GeetestListener() { + GeetestUtils.getInstance().showDialog(context, new GeetestListener() { @Override public void onVerified(String captcha) { - libaoLing(activity, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, captcha, entrance); + libaoLing(context, libaoBtn, libaoEntity, adapter, isInstallRequired, libaoDao, captcha, entrance); } }); return; } } - Utils.toast(libaoBtn.getContext(), "发生异常"); + Utils.toast(context, "发生异常"); } }, captchaCode); } @@ -612,8 +609,8 @@ public class LibaoUtils { // 合并List 和 List 并检查重复领取的礼包 - public static void initLiBaoEntity(LibaoDao libaoDao, List statusList - , List mLibaoList, Context mContext) { + public static void initLiBaoEntity(LibaoDao libaoDao, List statusList, + List libaoEntities, Context mContext) { for (LibaoInfo libaoInfo : libaoDao.getAll()) { for (LibaoStatusEntity libaoStatusEntity : statusList) { @@ -635,7 +632,7 @@ public class LibaoUtils { } } - for (LibaoEntity libaoEntity : mLibaoList) { + for (LibaoEntity libaoEntity : libaoEntities) { for (LibaoStatusEntity libaoStatusEntity : statusList) { if (libaoEntity.getId().equals(libaoStatusEntity.getId())) { libaoEntity.setAvailable(libaoStatusEntity.getAvailable()); diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index aca1629360..73dc01c5f5 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -91,12 +91,10 @@ public class PackageUtils { private static String[] parseSignature(byte[] signature) { String[] ret = null; try { - CertificateFactory certFactory = CertificateFactory - .getInstance("X.509"); - X509Certificate cert = (X509Certificate) certFactory - .generateCertificate(new ByteArrayInputStream(signature)); - ret = new String[]{cert.getPublicKey().toString(), - cert.getSerialNumber().toString()}; + CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); + X509Certificate cert = (X509Certificate) certFactory.generateCertificate( + new ByteArrayInputStream(signature)); + ret = new String[]{cert.getPublicKey().toString(), cert.getSerialNumber().toString()}; } catch (CertificateException e) { e.printStackTrace(); } @@ -159,8 +157,8 @@ public class PackageUtils { */ public static Intent getUninstallIntent(Context context, String path) { Intent uninstallIntent = new Intent(); - uninstallIntent.setAction("android.intent.action.DELETE"); - uninstallIntent.addCategory("android.intent.category.DEFAULT"); + uninstallIntent.setAction(Intent.ACTION_DELETE); + uninstallIntent.addCategory(Intent.CATEGORY_DEFAULT); String packageName = getPackageNameByPath(context, path); uninstallIntent.setData(Uri.parse("package:" + packageName)); InstallUtils.getInstance(context).addUninstall(packageName); @@ -172,8 +170,7 @@ public class PackageUtils { */ public static String getPackageNameByPath(Context context, String path) { PackageManager packageManager = context.getApplicationContext().getPackageManager(); - PackageInfo info = packageManager.getPackageArchiveInfo(path, - PackageManager.GET_ACTIVITIES); + PackageInfo info = packageManager.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES); if (info != null) { ApplicationInfo appInfo = info.applicationInfo; return appInfo.packageName; diff --git a/app/src/main/java/com/gh/common/view/CardRelativeLayout.java b/app/src/main/java/com/gh/common/view/CardRelativeLayout.java index 11adc2f5b6..e218b11818 100644 --- a/app/src/main/java/com/gh/common/view/CardRelativeLayout.java +++ b/app/src/main/java/com/gh/common/view/CardRelativeLayout.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.drawable.Drawable; +import android.support.v4.content.ContextCompat; import android.util.AttributeSet; import android.widget.RelativeLayout; @@ -47,25 +48,25 @@ public class CardRelativeLayout extends RelativeLayout { } if (isTran) { - mLeftDrawable = getResources().getDrawable(R.drawable.frame_tran_left); - topDrawable = getResources().getDrawable(R.drawable.frame_tran_top); - mRightDrawable = getResources().getDrawable(R.drawable.frame_tran_right); - bottomDrawable = getResources().getDrawable(R.drawable.frame_tran_bottom); + mLeftDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_left); + topDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_top); + mRightDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_right); + bottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_bottom); - leftTopDrawable = getResources().getDrawable(R.drawable.frame_tran_left_top_square); - rightTopDrawable = getResources().getDrawable(R.drawable.frame_tran_right_top_square); - leftBottomDrawable = getResources().getDrawable(R.drawable.frame_tran_left_bottom_square); - rightBottomDrawable = getResources().getDrawable(R.drawable.frame_tran_right_bottom_square); + leftTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_left_top_square); + rightTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_right_top_square); + leftBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_left_bottom_square); + rightBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_tran_right_bottom_square); } else { - mLeftDrawable = getResources().getDrawable(R.drawable.frame_left); - topDrawable = getResources().getDrawable(R.drawable.frame_top); - mRightDrawable = getResources().getDrawable(R.drawable.frame_right); - bottomDrawable = getResources().getDrawable(R.drawable.frame_bottom); + mLeftDrawable = ContextCompat.getDrawable(context, R.drawable.frame_left); + topDrawable = ContextCompat.getDrawable(context, R.drawable.frame_top); + mRightDrawable = ContextCompat.getDrawable(context, R.drawable.frame_right); + bottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_bottom); - leftTopDrawable = getResources().getDrawable(R.drawable.frame_left_top_square); - rightTopDrawable = getResources().getDrawable(R.drawable.frame_right_top_square); - leftBottomDrawable = getResources().getDrawable(R.drawable.frame_left_bottom_square); - rightBottomDrawable = getResources().getDrawable(R.drawable.frame_right_bottom_square); + leftTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_left_top_square); + rightTopDrawable = ContextCompat.getDrawable(context, R.drawable.frame_right_top_square); + leftBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_left_bottom_square); + rightBottomDrawable = ContextCompat.getDrawable(context, R.drawable.frame_right_bottom_square); } } diff --git a/app/src/main/java/com/gh/common/view/DownloadDialog.java b/app/src/main/java/com/gh/common/view/DownloadDialog.java index c4dfd04659..d8212b0b82 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.listener.OnCollectionCallBackListener; +import com.gh.gamecenter.adapter.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import org.greenrobot.eventbus.EventBus; diff --git a/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java b/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java new file mode 100644 index 0000000000..bb934f13d5 --- /dev/null +++ b/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java @@ -0,0 +1,49 @@ +package com.gh.common.view; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.gh.gamecenter.R; + +import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 12:24 PM + */ + +public class ScaleAutoScrollViewPager extends AutoScrollViewPager { + + private boolean mMeasureByHeight = false; // default width + private float mScale = 1f;// default square + + public ScaleAutoScrollViewPager(Context context) { + super(context); + } + + public ScaleAutoScrollViewPager(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mScale = a.getFloat(R.styleable.ScaleView_fractionValue, mScale); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mScale), height); + } else { + setMeasuredDimension(width, (int) (width * mScale)); + } + + } +} diff --git a/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java b/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java new file mode 100644 index 0000000000..569dfd766f --- /dev/null +++ b/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java @@ -0,0 +1,63 @@ +package com.gh.common.view; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.gamecenter.R; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 2:46 PM + */ + +public class ScaleSimpleDraweeView extends SimpleDraweeView { + + private boolean mMeasureByHeight = false; // default width + + private float mFraction = 1f;// default square + + public ScaleSimpleDraweeView(Context context) { + super(context); + } + + public ScaleSimpleDraweeView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + public ScaleSimpleDraweeView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context, attrs); + } + + public ScaleSimpleDraweeView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + init(context, attrs); + } + + public void init(Context context, AttributeSet attrs) { + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + + +} diff --git a/app/src/main/java/com/gh/download/DataWatcher.java b/app/src/main/java/com/gh/download/DataWatcher.java index 2f72e6bad5..e9c12c54f0 100644 --- a/app/src/main/java/com/gh/download/DataWatcher.java +++ b/app/src/main/java/com/gh/download/DataWatcher.java @@ -8,7 +8,7 @@ public abstract class DataWatcher implements Observer { @Override public void update(Observable observable, Object data) { - if (data != null && data instanceof DownloadEntity) { + if (data instanceof DownloadEntity) { onDataChanged((DownloadEntity) data); } } diff --git a/app/src/main/java/com/gh/gamecenter/AboutActivity.java b/app/src/main/java/com/gh/gamecenter/AboutActivity.java index ccde701edd..24e7ab5d53 100644 --- a/app/src/main/java/com/gh/gamecenter/AboutActivity.java +++ b/app/src/main/java/com/gh/gamecenter/AboutActivity.java @@ -38,7 +38,7 @@ public class AboutActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_about)); + initTitle(getString(R.string.title_about)); ((TextView) findViewById(R.id.about_tv_version)).setText("V" + PackageUtils.getVersionName(this)); diff --git a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java index b4545c33bb..b40fc36006 100644 --- a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java @@ -147,7 +147,7 @@ public class ChooseReceiverActivity extends BaseActivity implements View.OnClick @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_choose_activity)); + initTitle(getString(R.string.title_choose_activity)); mTitleTv.setTextColor(Color.WHITE); mBackIv.setImageResource(R.drawable.reuse_kc_back); diff --git a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java index 7e58482310..dabbf5270c 100644 --- a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java @@ -68,11 +68,11 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_clean_apk)); + initTitle(getString(R.string.title_clean_apk)); mNodataSkipLl.setVisibility(View.GONE); - mAdapter = new CleanApkAdapter(this, mApkDeleteBtn, mApkSelectAll); + mAdapter = new CleanApkAdapter(this, this, mApkDeleteBtn, mApkSelectAll); mApkRv.setLayoutManager(new LinearLayoutManager(this)); mApkRv.addItemDecoration(new VerticalItemDecoration(this, 8, true)); mApkRv.setAdapter(mAdapter); diff --git a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java index 7a97fcc007..ae9a5c039e 100644 --- a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java @@ -37,7 +37,7 @@ public class CommentDetailActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_comment_detail)); + initTitle(getString(R.string.title_comment_detail)); String commentId = getIntent().getExtras().getString("commentId"); diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index e31a6c4439..a2c0e35f7c 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -52,7 +52,7 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_concern)); + initTitle(getString(R.string.title_concern)); concernManager = new ConcernManager(getApplicationContext()); diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java index 0ab0e0efc9..10c2c4e984 100644 --- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java @@ -73,7 +73,7 @@ public class CropImageActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_crop_image)); + initTitle(getString(R.string.title_crop_image)); sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); diff --git a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java index 5f0be0ed36..662e7af179 100644 --- a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java +++ b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java @@ -17,9 +17,9 @@ import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.download.DownloadManager; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.download.FileSendFragment; -import com.gh.gamecenter.download.GameDownLoadFragment; +import com.gh.gamecenter.download.GameDownloadFragment; import com.gh.gamecenter.download.GameUpdateFragment; import com.gh.gamecenter.eventbus.EBDownloadChanged; import com.gh.gamecenter.eventbus.EBMiPush; @@ -108,7 +108,7 @@ public class DownloadManagerActivity extends BaseActivity implements OnClickList protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_downloadmanager)); + initTitle(getString(R.string.title_downloadmanager)); downloadmanager_ll_download.setOnClickListener(this); downloadmanager_ll_update.setOnClickListener(this); @@ -149,7 +149,7 @@ public class DownloadManagerActivity extends BaseActivity implements OnClickList downloadmanager_slide_line.setLayoutParams(lparams); List list = new ArrayList<>(); - list.add(new GameDownLoadFragment()); + list.add(new GameDownloadFragment()); list.add(new GameUpdateFragment()); list.add(new FileSendFragment()); downloadmanager_viewPager.setAdapter(new FragmentAdapter(getSupportFragmentManager(), list)); diff --git a/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java index 58c18a4335..049c9d906f 100644 --- a/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java @@ -252,7 +252,7 @@ public class FileReceiverActivity extends BaseActivity implements OnReceiverCanc @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_file_receive)); + initTitle(getString(R.string.title_file_receive)); isDestroy = false; diff --git a/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java b/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java index ff515125d3..48c2d1bccf 100644 --- a/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java +++ b/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java @@ -161,7 +161,7 @@ public class FileSenderActivity extends BaseActivity implements FileSenderAdapte @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_file_sender)); + initTitle(getString(R.string.title_file_sender)); mFileInfos = (List) AppController.get("FileInfo", false); diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java index b1aba40f95..6a5b336dbe 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.java @@ -7,6 +7,7 @@ import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.design.widget.AppBarLayout; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.text.TextUtils; import android.view.MotionEvent; @@ -20,6 +21,7 @@ import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.AppController; import com.gh.base.BaseActivity; +import com.gh.base.adapter.FragmentAdapter; import com.gh.common.constant.Config; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.ConcernUtils; @@ -35,11 +37,10 @@ import com.gh.common.util.PackageUtils; import com.gh.common.util.ShareUtils; import com.gh.common.util.Utils; import com.gh.common.view.DownloadDialog; -import com.gh.common.view.NoScrollableViewPager; +import com.lightgame.view.NoScrollableViewPager; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; -import com.gh.gamecenter.adapter.FragmentAdapter; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDetailEntity; import com.gh.gamecenter.entity.GameEntity; @@ -186,7 +187,7 @@ public class GameDetailActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(""); + initTitle(""); mViewPager.setScrollable(true); @@ -612,9 +613,9 @@ public class GameDetailActivity extends BaseActivity { mDownloadPer.setText("安装"); if (mDownloadEntity.isPluggable() && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - mDownloadPb.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_plugin_radius_style)); + mDownloadPb.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); } else { - mDownloadPb.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_normal_radius_style)); + mDownloadPb.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); } break; case cancel: diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index 77aa27739c..a8f2545060 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -85,7 +85,7 @@ public class GameNewsActivity extends BaseActivity implements View.OnClickListen ivSearch.setVisibility(View.GONE); String gameName = getIntent().getStringExtra("gameName"); - init(gameName); + initTitle(gameName); mNoDataTv.setText("暂无内容"); diff --git a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java index 599679c686..0dca49b2fc 100644 --- a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java @@ -109,7 +109,7 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_kaifu)); + initTitle(getString(R.string.title_kaifu)); kaifuType = "全部"; diff --git a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java index 92a729564d..6910e59311 100644 --- a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java @@ -69,7 +69,7 @@ public class KcSelectGameActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_select_game)); + initTitle(getString(R.string.title_select_game)); if (getIntent() != null && getIntent().getExtras() != null) { mIsConn = getIntent().getExtras().getBoolean("isConn"); diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java index 56186e41a6..d62e3dc6c7 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java @@ -11,8 +11,8 @@ import android.widget.TextView; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; -import com.gh.common.view.NoScrollableViewPager; -import com.gh.gamecenter.adapter.FragmentAdapter; +import com.lightgame.view.NoScrollableViewPager; +import com.gh.base.adapter.FragmentAdapter; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.libao.Libao1Fragment; @@ -64,7 +64,7 @@ public class LibaoActivity extends BaseActivity implements View.OnClickListener, @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init("礼包中心"); + initTitle("礼包中心"); mZuixinTv.setSelected(true); diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index 9deb94a8d8..c672968cfa 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -1,5 +1,6 @@ package com.gh.gamecenter; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; @@ -8,9 +9,7 @@ import android.support.annotation.NonNull; import android.support.v7.widget.LinearLayoutManager; import android.text.TextUtils; import android.view.View; -import android.widget.TextView; -import com.gh.base.AppController; import com.gh.base.BaseDetailActivity; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.EntranceUtils; @@ -76,17 +75,17 @@ public class LibaoDetailActivity extends BaseDetailActivity implements LibaoDeta }; @NonNull - public static Intent getLibaoDetailIntent(LibaoEntity libaoEntity, TextView libaoBtn, String entrance) { - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(libaoBtn.getContext(), LibaoDetailActivity.class); + public static Intent getIntent(Context context, LibaoEntity libaoEntity, String entrance) { + Intent intent = new Intent(context, LibaoDetailActivity.class); intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(LibaoDetailActivity.class.getSimpleName(), libaoEntity); return intent; } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - AppController.put("libaoEntity", mAdapter.getLibaoEntity()); + outState.putParcelable(LibaoDetailActivity.class.getSimpleName(), mAdapter.getLibaoEntity()); } @Override @@ -94,15 +93,18 @@ public class LibaoDetailActivity extends BaseDetailActivity implements LibaoDeta super.onCreate(savedInstanceState); actionbar_tv_title.setText("礼包详情"); - mLibaoEntity = (LibaoEntity) AppController.get("libaoEntity", true); + if (savedInstanceState != null) { + mLibaoEntity = savedInstanceState.getParcelable(LibaoDetailActivity.class.getSimpleName()); + } else { + mLibaoEntity = getIntent().getParcelableExtra(LibaoDetailActivity.class.getSimpleName()); + } name = "礼包详情"; iv_share.setVisibility(View.GONE); mIsScroll = true; - mAdapter = new LibaoDetailAdapter(this, this, this, - mLibaoEntity, detail_tv_download, mEntrance); + mAdapter = new LibaoDetailAdapter(this, this, this, mLibaoEntity, detail_tv_download, mEntrance); detail_rv_show.setLayoutManager(new LinearLayoutManager(this) { @Override public boolean canScrollVertically() { diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 8e3eee3331..b425eb8b44 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -5,29 +5,20 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; -import android.graphics.Color; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import android.provider.Settings; import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; import android.support.v4.util.ArrayMap; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.view.KeyEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.CheckedTextView; -import android.widget.ImageView; import com.gh.base.AppController; import com.gh.base.BaseActivity; -import com.gh.base.SearchBarHint; import com.gh.common.constant.Config; import com.gh.common.util.ClassUtils; import com.gh.common.util.DataCollectionUtils; @@ -47,37 +38,27 @@ import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; -import com.gh.gamecenter.db.KeFuMarkReadDao; -import com.gh.gamecenter.db.MessageMarkReadDao; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameDigestEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.entity.MessageUnreadEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.game.GameFragment; +import com.gh.gamecenter.fragment.MainFragment; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.FilterManager; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.manager.UpdateManager; -import com.gh.gamecenter.message.MessageFragment; -import com.gh.gamecenter.news.NewsFragment; -import com.gh.gamecenter.personal.PersonalFragment; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.readystatesoftware.systembartint.SystemBarTintManager; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -95,7 +76,6 @@ import java.util.concurrent.CountDownLatch; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import butterknife.BindView; import okhttp3.MediaType; import okhttp3.RequestBody; import okhttp3.ResponseBody; @@ -109,40 +89,13 @@ import rx.schedulers.Schedulers; /** * 项目的主Activity,3个Fragment都嵌入在这里。 */ -public class MainActivity extends BaseActivity implements OnClickListener { +public class MainActivity extends BaseActivity { - public static final int INDEX_GAME = 0; - public static final int INDEX_NEWS = 1; - public static final int INDEX_MESSAGE = 2; - public static final int INDEX_PERSONAL = 3; public final static String EB_MAINACTIVITY_TAG = "MainActivity"; public final static String EB_SKIP_GAMEFRAGMENT = "GameFragment"; - @BindView(R.id.main_iv_game) - ImageView ivGame; - @BindView(R.id.main_iv_news) - ImageView ivNews; - @BindView(R.id.main_iv_message) - ImageView ivMessage; - @BindView(R.id.main_iv_personal) - ImageView ivPersonal; - @BindView(R.id.main_tv_game) - CheckedTextView tvGame; - @BindView(R.id.main_tv_news) - CheckedTextView tvNews; - @BindView(R.id.main_tv_message) - CheckedTextView tvMessage; - @BindView(R.id.main_tv_personal) - CheckedTextView tvPersonal; - @BindView(R.id.main_iv_message_hint) - View mMessageHint; - private NewsFragment newsFragment; - private MessageFragment messageFragment; - private PersonalFragment personalFragment; - private GameFragment gameFragment; private SharedPreferences sp; private ConcernManager concernManager; - private ArrayList mSearchHintLint; - private int currentTab; + private boolean isSkipped; Runnable skipRun = new Runnable() { @Override @@ -374,13 +327,12 @@ public class MainActivity extends BaseActivity implements OnClickListener { @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putInt("currentTab", currentTab); outState.putBoolean("isSkipped", isSkipped); } @Override protected int getLayoutId() { - return R.layout.activity_main; + return R.layout.layout_wrapper_activity; } @Override @@ -681,19 +633,18 @@ public class MainActivity extends BaseActivity implements OnClickListener { isSkipped = false; - initViews(); +// initViews(); if (savedInstanceState != null) { - currentTab = savedInstanceState.getInt("currentTab"); +// currentTab = savedInstanceState.getInt("currentTab"); isSkipped = savedInstanceState.getBoolean("isSkipped"); - } else { - currentTab = 0; +// } else { +// currentTab = 0; } - setTabSelection(currentTab); + + replaceFragment(new MainFragment()); concernManager = new ConcernManager(getApplicationContext()); - getSearchHints(); - if (!isNewFirstLaunch && sp.getBoolean("autoupdate", true)) { // 检查助手更新 UpdateManager.getInstance(this).checkUpdate(true, null); @@ -745,9 +696,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { getSuggestionType(); - checkMarkRead(); // 检查是否有记录已读消息 - - checkMessageUnread(true); // 检查是否有未读消息 } @Override @@ -762,123 +710,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { handler.removeCallbacksAndMessages(null); } - private void checkMessageUnread(boolean isCheck) { - TokenUtils.getToken(this, isCheck) - .flatMap(new Func1>() { - @Override - public Observable call(String token) { - return RetrofitManager.getMessage().getMessageUnread(token); - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onResponse(MessageUnreadEntity response) { - super.onResponse(response); - if (response != null && response.getKefuList() != null && response.getKefuList().size() > 0) { - KeFuMarkReadDao dao = new KeFuMarkReadDao(MainActivity.this); - for (int i = 0; i < response.getKefuList().size(); i++) { - if (dao.isMarkRead(response.getKefuList().get(i))) { - response.getKefuList().remove(i); - i--; - } - } - - if (response.getKefuList() != null && response.getKefuList().size() > 0) { - mMessageHint.setVisibility(View.VISIBLE); - } - - } - - if (response != null && response.getComment() > 0) { - mMessageHint.setVisibility(View.VISIBLE); - } - } - - @Override - public void onFailure(HttpException e) { - if (e != null && e.code() == 401) { - checkMessageUnread(false); - } - } - }); - } - - private void checkMarkRead() { - MessageMarkReadDao readDao = new MessageMarkReadDao(MainActivity.this); - List readInfos = readDao.getAll(); - if (readInfos == null || readInfos.size() == 0) { - return; - } - - MessageMarkReadInfo readInfo = readInfos.get(0); - HashMap kefuIds = readInfo.getKefuIds(); - HashMap noticeIds = readInfo.getNoticeIds(); - - if (kefuIds != null && kefuIds.size() > 0) { - Utils.log("======提交已读客服消息"); - JSONArray array = new JSONArray(); - for (String s : kefuIds.keySet()) { - array.put(s); - } - Utils.log("======客服id::" + array.toString()); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); - postMarkRead("kefu", true, body, readDao); - } - - if (noticeIds != null && noticeIds.size() > 0) { - Utils.log("======提交已读公告消息"); - JSONArray array = new JSONArray(); - for (String s : noticeIds.keySet()) { - array.put(s); - } - Utils.log("======客服id::" + array.toString()); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); - postMarkRead("notice", true, body, readDao); - } - - } - - private void postMarkRead(final String type, boolean isCkeck, final RequestBody body, final MessageMarkReadDao readDao) { - TokenUtils - .getToken(MainActivity.this, isCkeck) - .flatMap(new Func1>() { - @Override - public Observable call(String token) { - if ("kefu".equals(type)) { - return RetrofitManager.getMessage().postMarkKeFuRead(body, token); - } else { - return RetrofitManager.getMessage().postMarkNoticeRead(body, token); - } - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onResponse(ResponseBody response) { - super.onResponse(response); - Utils.log("=========postMarkRead::" + type); - if ("kefu".equals(type)) { - readDao.cleanKeFu(); - } else { - readDao.cleanNotice(); - } - - } - - @Override - public void onFailure(HttpException e) { - super.onFailure(e); - if (e != null && e.code() == 401) { - postMarkRead(type, false, body, readDao); - } - } - }); - - } - private void getSuggestionType() { RetrofitManager .getApi() @@ -996,7 +827,7 @@ public class MainActivity extends BaseActivity implements OnClickListener { final ArrayList concernDigest = new ArrayList<>(); if (arrGameId.size() == 0) { - EventBus.getDefault().post(new EBUISwitch("NewsFragment", -2)); // 没有关注 + EventBus.getDefault().post(new EBUISwitch("NewsWrapperFragment", -2)); // 没有关注 } List> list = new ArrayList<>(); @@ -1019,13 +850,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { }); } - private void initViews() { - findViewById(R.id.main_ll_game).setOnClickListener(this); - findViewById(R.id.main_ll_news).setOnClickListener(this); - findViewById(R.id.main_ll_message).setOnClickListener(this); - findViewById(R.id.main_ll_personal).setOnClickListener(this); - } - private void checkPermission() { List installedList = getPackageManager().getInstalledPackages(0); if (installedList.isEmpty()) { @@ -1049,32 +873,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { } } - private void getSearchHints() { - RetrofitManager.getApi().getSearchHints() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(ArrayList response) { - if (response.size() != 0) { -// if (response.size() == 1) { -// mSearchHintLint = response.get(0); -// } else { -// mSearchHintLint = response.get(RandomUtils.nextInt(response.size())); -// } - - mSearchHintLint = response; - if (gameFragment != null) { - gameFragment.setHint(mSearchHintLint); - } - if (newsFragment != null) { - newsFragment.setHint(mSearchHintLint); - } - } - } - }); - } - // 获取META-INF中的plugin_update 文件,判断是否从游戏插件中下载的app,是则获取游戏id,启动游戏更新,下载该游戏 private void getPluginUpdate() { ApplicationInfo appinfo = getApplicationInfo(); @@ -1109,133 +907,6 @@ public class MainActivity extends BaseActivity implements OnClickListener { } } - @Override - public void onClick(View v) { - final int id = v.getId(); - switch (v.getId()) { - case R.id.main_ll_game: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME)); - setTabSelection(INDEX_GAME); - break; - case R.id.main_ll_news: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_NEWS)); - setTabSelection(INDEX_NEWS); - break; - case R.id.main_ll_message: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_MESSAGE)); - setTabSelection(INDEX_MESSAGE); - break; - case R.id.main_ll_personal: - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_PERSONAL)); - setTabSelection(INDEX_PERSONAL); - break; - default: - break; - } - - SystemBarTintManager tintManager = getTintManager(); - if (tintManager != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - if (id == R.id.main_ll_personal) { - tintManager.setStatusBarTintResource(R.color.theme); - } else if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) { - tintManager.setStatusBarTintColor(Color.WHITE); - } else { - tintManager.setStatusBarTintColor(Color.BLACK); - } - } - } - - private void setTabSelection(int index) { - clearSelection(); - FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); - hideFragments(transaction); - switch (index) { - case INDEX_GAME: - ivGame.setImageResource(R.drawable.ic_game_select); - tvGame.setChecked(true); - gameFragment = alterFragment(transaction, GameFragment.class); - break; - case INDEX_NEWS: - ivNews.setImageResource(R.drawable.ic_news_select); - tvNews.setChecked(true); - newsFragment = alterFragment(transaction, NewsFragment.class); - break; - case INDEX_MESSAGE: - ivMessage.setImageResource(R.drawable.ic_message_select); - tvMessage.setChecked(true); - messageFragment = alterFragment(transaction, MessageFragment.class); - break; - case INDEX_PERSONAL: - ivPersonal.setImageResource(R.drawable.ic_user_select); - tvPersonal.setChecked(true); - personalFragment = alterFragment(transaction, PersonalFragment.class); - break; - default: - break; - } - currentTab = index; - transaction.commit(); - } - - // 清除掉所有的选中状态。 - private void clearSelection() { - ivGame.setImageResource(R.drawable.ic_game_unselect); - ivNews.setImageResource(R.drawable.ic_news_unselect); - ivMessage.setImageResource(R.drawable.ic_message_unselect); - ivPersonal.setImageResource(R.drawable.ic_user_unselect); - - tvGame.setChecked(false); - tvNews.setChecked(false); - tvMessage.setChecked(false); - tvPersonal.setChecked(false); - } - - // 将所有的Fragment都置为隐藏状态。 - private void hideFragments(FragmentTransaction transaction) { - List list = getSupportFragmentManager().getFragments(); - if (list != null) { - for (Fragment fragment : list) { - transaction.hide(fragment); - } - } - } - - // private T alterFragment(Class cls) { - private T alterFragment(FragmentTransaction transaction, Class cls) { - T fragmentByTag = (T) getSupportFragmentManager().findFragmentByTag(cls.getSimpleName()); - try { - if (fragmentByTag != null) { - transaction.show(fragmentByTag); - } else { - fragmentByTag = cls.newInstance(); - transaction.add(R.id.main_content, fragmentByTag, cls.getSimpleName()); - if (fragmentByTag instanceof SearchBarHint && mSearchHintLint != null && mSearchHintLint.size() > 0) { - ((SearchBarHint) fragmentByTag).setHint(mSearchHintLint); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return fragmentByTag; - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBSkip skip) { - if (EB_SKIP_GAMEFRAGMENT.equals(skip.getType())) { - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME)); - setTabSelection(INDEX_GAME); - EventBus.getDefault().post(new EBSkip(EB_MAINACTIVITY_TAG, skip.getCurrentItem())); - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBReuse reuse) { - if (MessageFragment.MESSAGE_READ_OVER.equals(reuse.getType())) { - Utils.log("======= over??"); - mMessageHint.setVisibility(View.GONE); - } - } - @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBPackage busFour) { final String packageName = busFour.getPackageName(); diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index a862856424..dcaaf4d836 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -34,6 +34,7 @@ import com.gh.common.util.TimestampUtils; import com.gh.common.util.TokenUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.adapter.MessageDetailAdapter; +import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.db.CommentDao; import com.gh.gamecenter.db.info.CommentInfo; import com.gh.gamecenter.entity.CommentEntity; @@ -63,7 +64,7 @@ import rx.schedulers.Schedulers; * Created by khy on 2016/11/8. * 消息详情界面 */ -public class MessageDetailActivity extends BaseActivity implements MessageDetailAdapter.OnCommentCallBackListener { +public class MessageDetailActivity extends BaseActivity implements OnCommentCallBackListener { @BindView(R.id.message_detail_rv) RecyclerView mMessageDetailRv; @@ -169,13 +170,13 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail mConcernEntity = null; } - init(getString(R.string.title_message_detail)); + initTitle(getString(R.string.title_message_detail)); sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); mCommentDao = new CommentDao(this); - adapter = new MessageDetailAdapter(this, mCommentDao, mMessageDetailRv, mConcernEntity, mEntrance); + adapter = new MessageDetailAdapter(this, this, mCommentDao, mMessageDetailRv, mConcernEntity, mEntrance); mLayoutManager = new LinearLayoutManager(this); mMessageDetailRv.setLayoutManager(mLayoutManager); mMessageDetailRv.setAdapter(adapter); @@ -538,7 +539,7 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail } @Override - public void showSoftInput(CommentEntity entity) { + public void onCommentCallback(CommentEntity entity) { mCommentEntity = entity; setSoftInput(true); } diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index d05b1c4b06..309d5efd3a 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -7,6 +7,7 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; +import android.support.v4.content.ContextCompat; import android.support.v4.view.MotionEventCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -207,7 +208,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(""); + initTitle(""); // 添加分享图标 iv_share = new ImageView(this); @@ -689,9 +690,9 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener detail_tv_per.setText("安装"); if (mDownloadEntity.isPluggable() && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_plugin_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); } else { - detail_pb_progressbar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_normal_radius_style)); + detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); } break; case cancel: diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index e3ce0863cf..da10a1a96b 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -88,7 +88,7 @@ public class NewsSearchActivity extends BaseActivity { searchKey = intent.getExtras().getString("searchKey"); gameId = intent.getExtras().getString("gameId"); - init(gameName); + initTitle(gameName); DisplayMetrics outMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(outMetrics); diff --git a/app/src/main/java/com/gh/gamecenter/PluginActivity.java b/app/src/main/java/com/gh/gamecenter/PluginActivity.java index 439b10a4e1..ec582e4b7e 100644 --- a/app/src/main/java/com/gh/gamecenter/PluginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/PluginActivity.java @@ -72,7 +72,7 @@ public class PluginActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_plugin)); + initTitle(getString(R.string.title_plugin)); reuse_no_connection.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java index 2254bfadf8..0f809433b0 100644 --- a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java @@ -119,7 +119,7 @@ public class ReceiverWaitingActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_receive_waiting)); + initTitle(getString(R.string.title_receive_waiting)); mTitleTv.setTextColor(Color.WHITE); mBackIv.setImageResource(R.drawable.reuse_kc_back); diff --git a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java index a1d328b4ce..e1c4cb78be 100644 --- a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java @@ -80,7 +80,7 @@ public class SelectUserIconActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_select_user_icon)); + initTitle(getString(R.string.title_select_user_icon)); sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.java b/app/src/main/java/com/gh/gamecenter/SettingActivity.java index 68a08e89a9..9b24c26396 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.java @@ -80,7 +80,7 @@ public class SettingActivity extends BaseActivity implements OnClickListener { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_settings)); + initTitle(getString(R.string.title_settings)); setting_tv_cache.setText(getCacheSize()); diff --git a/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java b/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java index 74965fd743..cd0063db77 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java @@ -78,7 +78,7 @@ public class ShareCardActivity extends BaseActivity { picName = "shareImg.jpg"; - init(getString(R.string.title_share_card)); + initTitle(getString(R.string.title_share_card)); //修改沉浸栏以及ActionBar 颜色 mActionbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.black)); diff --git a/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java b/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java index af6df1b05c..d41a24b9e5 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java @@ -1,5 +1,6 @@ package com.gh.gamecenter; +import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -22,9 +23,12 @@ import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.image.ImageInfo; import com.gh.base.BaseActivity; +import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.MessageShareUtils; import com.gh.common.util.QRCodeUtils; +import com.gh.common.util.StringUtils; +import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.retrofit.ObservableUtil; import com.readystatesoftware.systembartint.SystemBarTintManager; import com.tencent.tauth.Tencent; @@ -33,6 +37,7 @@ import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; +import java.util.ArrayList; import java.util.List; import java.util.Vector; import java.util.concurrent.CountDownLatch; @@ -81,6 +86,31 @@ public class ShareCardPicActivity extends BaseActivity { private String newsId; + public static void startShareCardPicActivity(Context context, ConcernEntity concernEntity, String entrance) { + + final String shareContent; + if (concernEntity.getBrief() != null) { + shareContent = concernEntity.getBrief(); + } else { + shareContent = concernEntity.getContent(); + } + + Intent intent = new Intent(context, ShareCardPicActivity.class); + Bundle bundle = new Bundle(); + bundle.putString("gameName", concernEntity.getGameName()); + bundle.putString("gameIconUrl", concernEntity.getGameIcon()); + bundle.putString("shareContent", shareContent); + if (concernEntity.getLink() == null) { + bundle.putString("newsId", concernEntity.getId()); + } + if (concernEntity.getImg() != null && concernEntity.getImg().size() > 0) { + bundle.putStringArrayList("shareArrImg", (ArrayList) concernEntity.getImg()); + } + intent.putExtras(bundle); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", concernEntity.getGameName(), "])")); + context.startActivity(intent); + } + @Override protected int getLayoutId() { return R.layout.activity_sharecard_pic; @@ -110,7 +140,7 @@ public class ShareCardPicActivity extends BaseActivity { picName = "shareImgPic.jpg"; currentImgPosition = 0; - init(getString(R.string.title_share_card_pic)); + initTitle(getString(R.string.title_share_card_pic)); shareArrImg = new Vector<>(); shareArrImg.addAll(arrImg); diff --git a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java index fb88647426..7f4605d819 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java @@ -3,7 +3,6 @@ package com.gh.gamecenter; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; -import android.graphics.BitmapFactory; import android.os.Bundle; import android.text.Html; import android.widget.Button; @@ -56,7 +55,7 @@ public class ShareGhActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_share_gh)); + initTitle(getString(R.string.title_share_gh)); ButterKnife.bind(this); mGhAddress.setText(Html.fromHtml("" + "www.ghzhushou.com" + "")); diff --git a/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java b/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java index 94853d51aa..395f4bac36 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareGhWfifActivity.java @@ -135,7 +135,7 @@ public class ShareGhWfifActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_share_via_wifi)); + initTitle(getString(R.string.title_share_via_wifi)); ButterKnife.bind(this); mUriHandlers = new ArrayList<>(); diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index 2974e5fd42..cc97b12c43 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -38,7 +38,7 @@ public class SkipActivity extends BaseActivity { @Override protected int getLayoutId() { //TODO 暂时无意义设置,避免崩溃罢了,修改完主题和Toolbar相关内容会干掉这个 - return R.layout.activity_main; + return R.layout.fragment_main; } @Override diff --git a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java index cdd325b098..d8ba806841 100644 --- a/app/src/main/java/com/gh/gamecenter/SubjectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SubjectActivity.java @@ -86,7 +86,7 @@ public class SubjectActivity extends BaseActivity { mId = mBundle.getString("id"); mName = mBundle.getString("name"); - init(mName); + initTitle(mName); if (TextUtils.isEmpty(mName) && !TextUtils.isEmpty(mId)) { getSubjectName(mId); @@ -195,7 +195,7 @@ public class SubjectActivity extends BaseActivity { new VPFragmentAdapter(getSupportFragmentManager(), fragments, tag); mViewPager.setAdapter(adapter); mTabLayout.setupWithViewPager(mViewPager); - mTabLayout.setTabsFromPagerAdapter(adapter); +// mTabLayout.setTabsFromPagerAdapter(adapter); } } } diff --git a/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java index 184fad0fb8..72461b69a7 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestSelectActivity.java @@ -30,7 +30,7 @@ public class SuggestSelectActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_suggest_select)); + initTitle(getString(R.string.title_suggest_select)); } @OnClick({R.id.suggest_type1, R.id.suggest_type2, R.id.suggest_type3, R.id.suggest_type4, diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index 7f1bd70f05..ea045d89a0 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -167,7 +167,7 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(getString(R.string.title_suggestion)); + initTitle(getString(R.string.title_suggestion)); curType = getIntent().getExtras().getInt("suggestType"); String suggestContent = getIntent().getExtras().getString("content"); diff --git a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java index 607ddd043c..f80fac7dec 100644 --- a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java @@ -60,7 +60,7 @@ public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init("光环工具箱"); + initTitle("光环工具箱"); mRefresh.setColorSchemeResources(R.color.theme); mRefresh.setOnRefreshListener(this); diff --git a/app/src/main/java/com/gh/gamecenter/VoteActivity.java b/app/src/main/java/com/gh/gamecenter/VoteActivity.java index 3c4cf950ac..96083d778f 100644 --- a/app/src/main/java/com/gh/gamecenter/VoteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/VoteActivity.java @@ -90,7 +90,7 @@ public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnR mVoteDao = new VersionVoteDao(this); - init(getString(R.string.title_vote_formatable, gameName)); + initTitle(getString(R.string.title_vote_formatable, gameName)); layoutManager = new LinearLayoutManager(this); mVoteRv.setLayoutManager(layoutManager); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index 63c0a7a8a7..41697461cd 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -121,7 +121,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener{ } - init(webTitle); + initTitle(webTitle); webView.loadUrl(webUrl); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java index 66bfb4fdf5..191f3d0c06 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java @@ -1,12 +1,12 @@ package com.gh.gamecenter.adapter; +import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Environment; -import android.os.Handler; import android.support.v4.content.ContextCompat; import android.support.v4.util.ArrayMap; import android.view.View; @@ -14,13 +14,15 @@ import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.BitmapUtils; import com.gh.common.util.PackageUtils; +import com.gh.common.util.RuntimeUtils; import com.gh.common.util.StringUtils; -import com.gh.gamecenter.CleanApkActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.KcSelectGameViewHolder; import com.gh.gamecenter.entity.InstallGameEntity; +import com.gh.gamecenter.retrofit.Response; import java.io.File; import java.text.DecimalFormat; @@ -28,7 +30,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; -import com.gh.gamecenter.retrofit.Response; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; @@ -51,15 +52,12 @@ public class CleanApkAdapter extends BaseRecyclerAdapter private boolean mIsScanOver; - private Handler mHandler = new Handler(); + public CleanApkAdapter(Context context, OnScanListener listener, TextView apkDeleteBtn, CheckBox apkSelectAll) { + super(context); + mApkDeleteBtn = apkDeleteBtn; + mApkSelectAll = apkSelectAll; - public CleanApkAdapter(CleanApkActivity activity, TextView apkDeleteBtn, CheckBox apkSelectAll) { - super(activity); - this.mContext = activity; - this.mApkDeleteBtn = apkDeleteBtn; - this.mApkSelectAll = apkSelectAll; - - mScanListener = activity; + mScanListener = listener; mApkList = new ArrayList<>(); mSelectPosition = new ArrayMap<>(); @@ -136,7 +134,7 @@ public class CleanApkAdapter extends BaseRecyclerAdapter mApkList.add(apkEntity); mSelectPosition.put((mApkList.size() - 1), false); - mHandler.post(new Runnable() { + RuntimeUtils.getInstance().runOnUiThread(new Runnable() { @Override public void run() { notifyItemChanged((mApkList.size() - 1)); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java index e891f0f111..1afee4c8ca 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java @@ -9,6 +9,7 @@ import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.View; import android.view.ViewGroup; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.constant.ItemViewType; import com.gh.common.util.CommentUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java index f0d2cd229b..591ecdd559 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java @@ -4,6 +4,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -16,7 +17,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -37,7 +38,7 @@ import rx.schedulers.Schedulers; */ public class ConcernAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mConcernList; private List mConcernGameList; @@ -46,7 +47,7 @@ public class ConcernAdapter extends BaseRecyclerAdapter { private String mEntrance; - public ConcernAdapter(ConcernActivity context, OnCallBackListener listener, String entrance) { + public ConcernAdapter(ConcernActivity context, OnRequestCallBackListener listener, String entrance) { super(context); mListener = listener; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java index f0bfcec5ef..78ea0537be 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java @@ -5,6 +5,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -15,7 +16,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -34,7 +35,7 @@ import rx.schedulers.Schedulers; */ public class ConcernRecommendAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mGameList; private List mRecommendGameList; @@ -45,7 +46,7 @@ public class ConcernRecommendAdapter extends BaseRecyclerAdapter { private List mTypeList; - private String mNewsType; - private int mCurrentPosition; - public GameNewsTypeListAdapter(Context context, List tList, String type) { super(context); - mTypeList = tList; - mNewsType = type; - mCurrentPosition = 0; } @Override @@ -78,7 +73,6 @@ public class GameNewsTypeListAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mOnCallBackListener; + private OnRequestCallBackListener mOnRequestCallBackListener; private OnScrollToKaiFuIndexListener mOnScrollToKaiFuIndexListener; private List mSubjectList; @@ -75,10 +76,10 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { private boolean mIsLoadedBottom; private boolean mIsLoadedTop; - public KaiFuAdapter(KaiFuActivity context, OnCallBackListener callBackListener, + public KaiFuAdapter(KaiFuActivity context, OnRequestCallBackListener callBackListener, OnScrollToKaiFuIndexListener scrollToKaiFuIndexListener, String kaifuType) { super(context); - mOnCallBackListener = callBackListener; + mOnRequestCallBackListener = callBackListener; mKaifuType = kaifuType; mOnScrollToKaiFuIndexListener = scrollToKaiFuIndexListener; @@ -117,14 +118,14 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { e.printStackTrace(); } mInitOffset = offset; - mOnCallBackListener.loadDone(offset); + mOnRequestCallBackListener.loadDone(offset); initListBottom(offset); } @Override public void onFailure(HttpException e) { super.onFailure(e); - mOnCallBackListener.loadError(); + mOnRequestCallBackListener.loadError(); } }); @@ -195,8 +196,8 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { @Override public void onFailure(HttpException e) { if (offset == mInitOffset) { - if (mOnCallBackListener != null) { - mOnCallBackListener.loadError(); + if (mOnRequestCallBackListener != null) { + mOnRequestCallBackListener.loadError(); } } else { Toast.makeText(mContext, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); @@ -335,11 +336,11 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { initLocationMap(); - if (mOnCallBackListener != null) { + if (mOnRequestCallBackListener != null) { if (mSubjectList.size() == 0) { - mOnCallBackListener.loadEmpty(); + mOnRequestCallBackListener.loadEmpty(); } else { - mOnCallBackListener.loadDone(); + mOnRequestCallBackListener.loadDone(); } } @@ -353,8 +354,8 @@ public class KaiFuAdapter extends BaseRecyclerAdapter { @Override public void onFailure(HttpException e) { if (offset == mInitOffset) { - if (mOnCallBackListener != null) { - mOnCallBackListener.loadError(); + if (mOnRequestCallBackListener != null) { + mOnRequestCallBackListener.loadError(); } } else { Toast.makeText(mContext, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java index 1118450937..001556bad9 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KaiFuDialogAdapter.java @@ -11,8 +11,10 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; +import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.manager.ConcernManager; @@ -56,7 +58,7 @@ public class KaiFuDialogAdapter extends BaseRecyclerAdapter { textView.setText("以下是已关注的游戏"); textView.setBackgroundColor(Color.parseColor("#ededed")); textView.setGravity(Gravity.CENTER); - return new TitleViewHolder(textView); + return new ReuseViewHolder(textView); } else { View view = mLayoutInflater.inflate(R.layout.dialog_strategy_item, parent, false); return new StrategyDialogViewHolder(view); @@ -118,10 +120,4 @@ public class KaiFuDialogAdapter extends BaseRecyclerAdapter { void selectPosition(int position, String tag, String gameName); } - public class TitleViewHolder extends RecyclerView.ViewHolder { - - public TitleViewHolder(View itemView) { - super(itemView); - } - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java index 0e52e0cd17..6c3fb98c0f 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java @@ -6,7 +6,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.drawable.Drawable; -import android.os.Handler; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -20,6 +19,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import com.gh.base.AppController; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.BitmapUtils; import com.gh.common.util.DisplayUtils; @@ -28,6 +28,7 @@ import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.KcSelectGameViewHolder; +import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.InstallGameEntity; import com.gh.gamecenter.kuaichuan.FileInfo; @@ -184,7 +185,7 @@ public class KcSelectGameAdapter extends BaseRecyclerAdapter { textView.setTextColor(ContextCompat.getColor(mContext, R.color.title)); textView.setBackgroundColor(Color.WHITE); textView.setText("已安装的应用(" + mApkList.size() + ")"); - return new TitleViewHolder(textView); + return new ReuseViewHolder(textView); } return null; } @@ -399,10 +400,4 @@ public class KcSelectGameAdapter extends BaseRecyclerAdapter { return mApkList.size(); } - public class TitleViewHolder extends RecyclerView.ViewHolder { - - public TitleViewHolder(View itemView) { - super(itemView); - } - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java index eefc6707e8..5574c8d111 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LiBaoCodeAdapter.java @@ -6,6 +6,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.LibaoUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index 442b5e55a4..4bf90b7d15 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter; -import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.support.v7.widget.LinearLayoutManager; @@ -15,6 +14,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; @@ -23,14 +24,13 @@ import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoDetailTopViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoDetailEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.gamedetail.GameDetailNewsViewHolder; -import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -46,7 +46,7 @@ import rx.schedulers.Schedulers; */ public class LibaoDetailAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mOnCallBackListener; + private OnRequestCallBackListener mOnRequestCallBackListener; private OnCodeScrollListener mOnCodeScrollListener; private TextView mDownloadTv; @@ -60,11 +60,11 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { private String mEntrance; - public LibaoDetailAdapter(Context context, OnCallBackListener onCallBackListener, + public LibaoDetailAdapter(Context context, OnRequestCallBackListener onRequestCallBackListener, OnCodeScrollListener onCodeScrollListener, LibaoEntity libaoEntity, TextView tvDownload, String entrance) { super(context); - mOnCallBackListener = onCallBackListener; + mOnRequestCallBackListener = onRequestCallBackListener; mOnCodeScrollListener = onCodeScrollListener; mLibaoEntity = libaoEntity; mDownloadTv = tvDownload; @@ -83,13 +83,13 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { @Override public void onResponse(LibaoDetailEntity response) { mLibaoDetailEntity = response; - mOnCallBackListener.loadDone(); + mOnRequestCallBackListener.loadDone(); notifyDataSetChanged(); } @Override public void onFailure(HttpException e) { - mOnCallBackListener.loadEmpty(); + mOnRequestCallBackListener.loadEmpty(); } }); } @@ -116,6 +116,7 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { initLibaoDetailContent((GameDetailNewsViewHolder) holder, position); } else if (holder instanceof FooterViewHolder) { FooterViewHolder viewHolder = (FooterViewHolder) holder; + viewHolder.initItemPadding(); viewHolder.loading.setVisibility(View.GONE); viewHolder.hint.setText("此礼包有问题?点击反馈"); @@ -192,11 +193,9 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { } if (libaoInfo.getLibaoId().equals(mLibaoEntity.getId())) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, - mLibaoDetailEntity.getInstallRequired(), this, - StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, + mLibaoDetailEntity.getInstallRequired(), this, + StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); // holder.libaoCopyBtn.setBackgroundResource(R.drawable.textview_blue_style); // holder.libaoCopyBtn.setTextColor(Color.WHITE); @@ -269,11 +268,9 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { holder.libaoDes.setText(content); if (mLibaoEntity.getStatus() != null && mLibaoDetailEntity != null) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, - mLibaoDetailEntity.getInstallRequired(), this, - StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoCopyBtn, mLibaoEntity, mLibaoDao, + mLibaoDetailEntity.getInstallRequired(), this, + StringUtils.buildString(mEntrance, "+(礼包详情[", mLibaoEntity.getName(), "])")); } // 判断按钮状态是否为空(礼包详情进入),重新获取 diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index 9abe9d8df8..491646d0cd 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; -import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -14,6 +13,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.util.CommentUtils; import com.gh.common.util.ConcernContentUtils; @@ -30,7 +30,6 @@ import com.gh.common.util.Utils; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.ShareCardActivity; import com.gh.gamecenter.ShareCardPicActivity; import com.gh.gamecenter.WebActivity; import com.gh.gamecenter.adapter.viewholder.CommentHeadViewHolder; @@ -77,7 +76,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { boolean isGetRvHeight = true; // 防止评论时弹出软键盘 影响RecyclerView高度 int rvHeight; private ConcernEntity mConcernEntity; - private OnCommentCallBackListener mCallBackListener; + private OnCommentCallBackListener mOnCommentCallBackListener; private RecyclerView mRecyclerView; private List mHotCommentList; private List mNormalCommentList; @@ -86,18 +85,18 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { private SharedPreferences sp; private String userName; //用户名 private String userIcon; //用户icon - private String entrance; + private String mEntrance; private boolean isOver; private boolean isLoading; private boolean isNetworkError; private boolean isRefreshPosition; - public MessageDetailAdapter(MessageDetailActivity context, CommentDao commentDao, RecyclerView messageDetailRv, - ConcernEntity concernEntity, String entrance) { + public MessageDetailAdapter(MessageDetailActivity context, OnCommentCallBackListener listener, CommentDao commentDao, + RecyclerView messageDetailRv, ConcernEntity concernEntity, String entrance) { super(context); - this.mRecyclerView = messageDetailRv; - this.entrance = entrance; - mCallBackListener = context; + mRecyclerView = messageDetailRv; + mEntrance = entrance; + mOnCommentCallBackListener = listener; mVoteDao = new VoteDao(context); mCommentDao = commentDao; @@ -122,7 +121,9 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { } else if (mConcernEntity != null) { isOver = true; notifyItemChanged(getItemCount() - 1); - mCallBackListener.showSoftInput(null); + if (mOnCommentCallBackListener != null) { + mOnCommentCallBackListener.onCommentCallback(null); + } } } @@ -290,7 +291,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.imgLayout.setVisibility(View.VISIBLE); viewHolder.imgLayout.removeAllViews(); ConcernContentUtils.addContentPic(mContext, viewHolder.imgLayout, mConcernEntity.getImg(), - StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])"), + StringUtils.buildString(mEntrance, "+(消息详情[", mConcernEntity.getGameName(), "])"), mContext.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(mContext, 34)); } @@ -302,38 +303,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.share.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String shareContent; - if (mConcernEntity.getBrief() != null) { - shareContent = mConcernEntity.getBrief(); - } else { - shareContent = mConcernEntity.getContent(); - } - if (mConcernEntity.getImg() != null && mConcernEntity.getImg().size() > 0) { - Intent intent = new Intent(mContext, ShareCardPicActivity.class); - Bundle bundle = new Bundle(); - bundle.putString("gameName", mConcernEntity.getGameName()); - bundle.putString("gameIconUrl", mConcernEntity.getGameIcon()); - bundle.putString("shareContent", shareContent); - if (mConcernEntity.getLink() == null) { - bundle.putString("newsId", mConcernEntity.getId()); - } - bundle.putStringArrayList("shareArrImg", (ArrayList) mConcernEntity.getImg()); - intent.putExtras(bundle); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); - mContext.startActivity(intent); - } else { - Intent intent = new Intent(mContext, ShareCardActivity.class); - Bundle bundle = new Bundle(); - bundle.putString("gameName", mConcernEntity.getGameName()); - bundle.putString("gameIconUrl", mConcernEntity.getGameIcon()); - bundle.putString("shareContent", shareContent); - if (mConcernEntity.getLink() == null) { - bundle.putString("newsId", mConcernEntity.getId()); - } - intent.putExtras(bundle); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); - mContext.startActivity(intent); - } + ShareCardPicActivity.startShareCardPicActivity(mContext, mConcernEntity, mEntrance); } }); @@ -354,12 +324,12 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { intent.putExtra("url", mConcernEntity.getLink()); intent.putExtra("gameName", mConcernEntity.getGameName()); intent.putExtra("newsId", mConcernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); mContext.startActivity(intent); } else { Intent intent = new Intent(mContext, NewsDetailActivity.class); intent.putExtra("newsId", mConcernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情[", mConcernEntity.getGameName(), "])")); mContext.startActivity(intent); } } @@ -368,7 +338,9 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.comment.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mCallBackListener.showSoftInput(null); + if (mOnCommentCallBackListener != null) { + mOnCommentCallBackListener.onCommentCallback(null); + } } }); @@ -532,7 +504,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - CommentUtils.showReportDialog(finalCommentEntity, mContext, mCallBackListener, null); + CommentUtils.showReportDialog(finalCommentEntity, mContext, mOnCommentCallBackListener, null); } }); } @@ -676,7 +648,4 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { return isOver; } - public interface OnCommentCallBackListener { - void showSoftInput(CommentEntity entity); - } } diff --git a/app/src/main/java/com/gh/gamecenter/listener/OnCollectionCallBackListener.java b/app/src/main/java/com/gh/gamecenter/adapter/OnCollectionCallBackListener.java similarity index 87% rename from app/src/main/java/com/gh/gamecenter/listener/OnCollectionCallBackListener.java rename to app/src/main/java/com/gh/gamecenter/adapter/OnCollectionCallBackListener.java index bbb64806aa..3d550b0de7 100644 --- a/app/src/main/java/com/gh/gamecenter/listener/OnCollectionCallBackListener.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/OnCollectionCallBackListener.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.listener; +package com.gh.gamecenter.adapter; import com.gh.gamecenter.entity.GameCollectionEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java b/app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java new file mode 100644 index 0000000000..1a5b5e2f3c --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/OnCommentCallBackListener.java @@ -0,0 +1,7 @@ +package com.gh.gamecenter.adapter; + +import com.gh.gamecenter.entity.CommentEntity; + +public interface OnCommentCallBackListener { + void onCommentCallback(CommentEntity entity); +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java index 0aa78a30ab..fd8eee1c4a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformAdapter.java @@ -19,6 +19,7 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; @@ -38,7 +39,6 @@ import com.gh.gamecenter.adapter.viewholder.PlatformViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.CollectionColseEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCollectionCallBackListener; import com.gh.gamecenter.manager.PackageManager; import java.io.File; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java index 37153e4f4f..fc19466560 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PlatformPagerAdapter.java @@ -18,7 +18,6 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.CollectionColseEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCollectionCallBackListener; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java index 28803cf515..8a0c1720d8 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java @@ -4,6 +4,7 @@ import android.support.v4.util.ArrayMap; import android.view.View; import android.view.ViewGroup; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DownloadItemUtils; @@ -19,7 +20,7 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; @@ -33,14 +34,14 @@ import java.util.Map; */ public class PluginAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mPluginList; private ArrayMap> mLocationMap; private String mEntrance; - public PluginAdapter(PluginActivity context, OnCallBackListener listener, String entrance) { + public PluginAdapter(PluginActivity context, OnRequestCallBackListener listener, String entrance) { super(context); mListener = listener; mEntrance = entrance; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java index be738cd4b5..9984753955 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java @@ -12,6 +12,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.SubjectTypeAdapter.GameTypeViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index 5be94b32a7..0eca027305 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -10,6 +10,7 @@ import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import com.gh.base.AppController; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.MD5Utils; @@ -23,7 +24,7 @@ import com.gh.gamecenter.adapter.viewholder.LibaoSearchViewHolder; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.ToolBoxEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; @@ -49,7 +50,7 @@ import static com.gh.gamecenter.R.string.loading; public class ToolBoxRvAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private OnSearchCallBackListener mSearchListener; private List mEntityList; @@ -66,7 +67,7 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter { private boolean mLoadKeyOver; private boolean mIsRequestError; // key请求返回409 - public ToolBoxRvAdapter(Context context, OnCallBackListener listener, OnSearchCallBackListener searchListener, + public ToolBoxRvAdapter(Context context, OnRequestCallBackListener listener, OnSearchCallBackListener searchListener, boolean isSearch, String key) { super(context); this.mIsSearch = isSearch; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java index a2febd8f94..dcc9bd0e64 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java @@ -9,13 +9,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.VoteViewHolder; import com.gh.gamecenter.db.VersionVoteDao; import com.gh.gamecenter.entity.VersionVoteEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -32,7 +33,7 @@ import rx.schedulers.Schedulers; */ public class VoteAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private OnAddVoteListener mAddVoteListener; @@ -48,11 +49,11 @@ public class VoteAdapter extends BaseRecyclerAdapter { private String mGameId; - public VoteAdapter(Context context, OnCallBackListener onCallBackListener + public VoteAdapter(Context context, OnRequestCallBackListener onRequestCallBackListener , OnAddVoteListener addVoteListener, String gameId, VersionVoteDao voteDao) { super(context); - this.mCallBackListener = onCallBackListener; + this.mCallBackListener = onRequestCallBackListener; this.mAddVoteListener = addVoteListener; this.mGameId = gameId; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java index 111ca06bef..ae9b637ba6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java @@ -1,18 +1,17 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/9. */ -public class CommentHeadViewHolder extends RecyclerView.ViewHolder { +public class CommentHeadViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.comment_head_line) public View commentHeadLine; @@ -21,6 +20,6 @@ public class CommentHeadViewHolder extends RecyclerView.ViewHolder { public CommentHeadViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java index d74dddef1c..3032c24f5d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/9. */ -public class CommentViewHolder extends RecyclerView.ViewHolder { +public class CommentViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.comment_line) public View commentLine; @@ -35,6 +34,5 @@ public class CommentViewHolder extends RecyclerView.ViewHolder { public CommentViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java index f6f0956f20..49afb52764 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java @@ -1,30 +1,34 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/20. */ -public class ConcernViewHolder extends RecyclerView.ViewHolder { +public class ConcernViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.concern_item_icon) public SimpleDraweeView concern_item_icon; + + @BindView(R.id.concern_item_name) public TextView concern_item_name; + + @BindView(R.id.concern_item_concern) public TextView concern_item_concern; + + @BindView(R.id.concern_libao_icon) public ImageView concern_libao_icon; public ConcernViewHolder(View itemView) { super(itemView); - - concern_item_icon = (SimpleDraweeView) itemView.findViewById(R.id.concern_item_icon); - concern_item_name = (TextView) itemView.findViewById(R.id.concern_item_name); - concern_item_concern = (TextView) itemView.findViewById(R.id.concern_item_concern); - concern_libao_icon = (ImageView) itemView.findViewById(R.id.concern_libao_icon); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java index fe5d570eb9..6bd372d4d0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java @@ -1,25 +1,25 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/15. */ -public class DownloadHeadViewHolder extends RecyclerView.ViewHolder { +public class DownloadHeadViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.dm_item_head_tv_task) public TextView dm_item_head_tv_task; + @BindView(R.id.dm_item_head_tv_allstart) public TextView dm_item_head_tv_allstart; public DownloadHeadViewHolder(View itemView) { super(itemView); - - dm_item_head_tv_task = (TextView) itemView.findViewById(R.id.dm_item_head_tv_task); - dm_item_head_tv_allstart = (TextView) itemView.findViewById(R.id.dm_item_head_tv_allstart); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java index 71c9954e87..f3a0276f64 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java @@ -1,15 +1,14 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.View; import android.view.View.OnClickListener; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * @author 温冠超 @@ -18,47 +17,36 @@ import butterknife.ButterKnife; * @update 2015-8-11 * @des 下拉或上啦刷新中,进度显示控件 */ -public class FooterViewHolder extends ViewHolder { +public class FooterViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.footerview_loading) public ProgressBar loading; + @BindView(R.id.footerview_hint) public TextView hint; + @BindView(R.id.footerview_line_left) public View lineLeft; + @BindView(R.id.footerview_line_right) public View lineRight; - private View mView; - public FooterViewHolder(View itemView) { super(itemView); - mView = itemView; - ButterKnife.bind(this, itemView); } // 减去recyclerView item间隔(个别列表间隔很大) public void initItemPadding() { - mView.setPadding(0, 0, 0, 0); + itemView.setPadding(0, 0, 0, 0); } - - public void initFooterViewHolder(boolean mIsNetworkError, boolean mIsOver, - OnClickListener onClickListener) { + public void initFooterViewHolder(boolean mIsNetworkError, boolean mIsOver, OnClickListener onClickListener) { if (mIsNetworkError) { lineLeft.setVisibility(View.GONE); lineRight.setVisibility(View.GONE); loading.setVisibility(View.GONE); hint.setText("加载失败,点击重试"); itemView.setClickable(true); -// holder.itemView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// mIsNetworkError = false; -// notifyItemChanged(getItemCount() - 1); -// initSubjectList(); -// } -// }); itemView.setOnClickListener(onClickListener); } else if (mIsOver) { lineLeft.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java similarity index 71% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java index e90361e591..4abce9871f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetaiLibaoViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetaiLibaoViewHolder.java @@ -1,18 +1,18 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.RelativeLayout; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/14. */ -public class GameDetaiLibaoViewHolder extends RecyclerView.ViewHolder { +public class GameDetaiLibaoViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_item_libao_gallery) public RecyclerView libaoRv; @@ -21,6 +21,6 @@ public class GameDetaiLibaoViewHolder extends RecyclerView.ViewHolder { public GameDetaiLibaoViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java similarity index 62% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java index dcea8ad138..e39816aed4 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailCalenderViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java @@ -1,18 +1,17 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/28. */ -public class GameDetailCalenderViewHolder extends RecyclerView.ViewHolder { +public class GameDetailCalenderViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.calendar_day) public TextView calendarDay; @@ -21,6 +20,6 @@ public class GameDetailCalenderViewHolder extends RecyclerView.ViewHolder { public GameDetailCalenderViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java similarity index 81% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java index bb8f1587f5..5c02808243 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFuLiViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailFuLiViewHolder.java @@ -1,21 +1,20 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.common.view.MarqueeView; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/27. */ -public class GameDetailFuLiViewHolder extends RecyclerView.ViewHolder { +public class GameDetailFuLiViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_item_fuli_des) public TextView fuliDes; @@ -36,10 +35,8 @@ public class GameDetailFuLiViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.gamedetail_item_notice_ll) public LinearLayout filiNoticeLl; - public GameDetailFuLiViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); - } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java new file mode 100644 index 0000000000..e73e256221 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagTypeViewHolder.java @@ -0,0 +1,17 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; + +public class GameDetailGameTagTypeViewHolder extends BaseRecyclerViewHolder { + + public TextView type; + + public GameDetailGameTagTypeViewHolder(View itemView) { + super(itemView); + type = (TextView) itemView; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java similarity index 64% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java index 3beb7e7f14..3cda0635a3 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailGameTagViewHolder.java @@ -1,23 +1,23 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; import android.support.v7.widget.RecyclerView; import android.view.View; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/28. */ -public class GameDetailGameTagViewHolder extends RecyclerView.ViewHolder { +public class GameDetailGameTagViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_gametag_rv) public RecyclerView gametagRv; public GameDetailGameTagViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java similarity index 52% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java index dc5b4857d0..296cd8a319 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailIntroViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailIntroViewHolder.java @@ -1,24 +1,26 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/8. */ -public class GameDetailIntroViewHolder extends RecyclerView.ViewHolder { +public class GameDetailIntroViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.gamedetail_item_intro_gallery) public RecyclerView gamedetail_item_intro_gallery; + @BindView(R.id.gamedetail_item_intro_content) public TextView gamedetail_item_intro_content; public GameDetailIntroViewHolder(View itemView) { super(itemView); - - gamedetail_item_intro_gallery = (RecyclerView) itemView.findViewById(R.id.gamedetail_item_intro_gallery); - gamedetail_item_intro_content = (TextView) itemView.findViewById(R.id.gamedetail_item_intro_content); } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java similarity index 63% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java index 6e2558f6ae..3428e8d3c4 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailKaiFuViewHolder.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; import android.support.v7.widget.RecyclerView; import android.view.View; @@ -7,41 +7,41 @@ import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/28. */ -public class GameDetailKaiFuViewHolder extends RecyclerView.ViewHolder { +public class GameDetailKaiFuViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_kaifu_rv) - RecyclerView kaifuRv; + public RecyclerView kaifuRv; @BindView(R.id.gamedetail_kaifu_cur_month) - TextView curMonth; + public TextView curMonth; @BindView(R.id.gamedetail_kaifu_next_month) - TextView nextMonth; + public TextView nextMonth; @BindView(R.id.gamedetail_kaifu_rl) - RelativeLayout kaifuRl; + public RelativeLayout kaifuRl; @BindView(R.id.gamedetail_kaifu_detail) - RelativeLayout kaifuDetailRl; + public RelativeLayout kaifuDetailRl; @BindView(R.id.gamedetail_kaifu_colse_detail) - TextView colseDetail; + public TextView colseDetail; @BindView(R.id.gamedetail_kaifu_suggest) - TextView kaifuSuggest; + public TextView kaifuSuggest; @BindView(R.id.gamedetail_kaifu_detail_time) - TextView detailTime; + public TextView detailTime; @BindView(R.id.gamedetail_kaifu_detail_list) - LinearLayout detailList; + public LinearLayout detailList; @BindView(R.id.gamedetail_kaifu_detail_sv) - ScrollView detailSv; + public ScrollView detailSv; @BindView(R.id.gamedetail_kaifu_des) - TextView kaifuDes; + public TextView kaifuDes; public GameDetailKaiFuViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java new file mode 100644 index 0000000000..42605d74c8 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsServerItemViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/18. + */ +public class GameDetailNewsServerItemViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.newsserver_item_name) + public TextView newsserver_item_name; + @BindView(R.id.newsserver_item_line) + public View newsserver_item_line; + @BindView(R.id.newsserver_item_point) + public ImageView newsserver_item_point; + @BindView(R.id.newsserver_item_time) + public TextView newsserver_item_time; + + public GameDetailNewsServerItemViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java new file mode 100644 index 0000000000..df80fe41eb --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java @@ -0,0 +1,32 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailNewsViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_item_news_more) + public LinearLayout gamedetail_item_news_more; + @BindView(R.id.gamedetail_item_news_list) + public LinearLayout gamedetail_item_news_list; + @BindView(R.id.gamedetail_item_news_title) + public TextView gamedetail_item_news_title; + @BindView(R.id.gamedetail_item_line) + public View gamedetail_item_line; + @BindView(R.id.gamedetail_item_news_line_top) + public View gamedetail_item_news_line_top; + + public GameDetailNewsViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java similarity index 63% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java index 74c472455e..0fce9b1414 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailNoticeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java @@ -1,18 +1,17 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.common.view.MarqueeView; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/30. */ -public class GameDetailNoticeViewHolder extends RecyclerView.ViewHolder { +public class GameDetailNoticeViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_item_notice) public MarqueeView mvNotice; @@ -21,6 +20,6 @@ public class GameDetailNoticeViewHolder extends RecyclerView.ViewHolder { public GameDetailNoticeViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java new file mode 100644 index 0000000000..0c0631d8d3 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailPluginViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailPluginViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_plugin_rv) + public RecyclerView gameDetailPluginRv; + @BindView(R.id.gamedetail_plugin_open_list) + public View gamedetailPluginOpen; + @BindView(R.id.gamedetail_plugin_line_top) + public View gamedetailPluginLine; + @BindView(R.id.gamedetail_plugin_title) + public TextView gamedetailPluginTitle; + + public GameDetailPluginViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java similarity index 73% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java index 73109770f0..0c74e4aa58 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailSkinViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailSkinViewHolder.java @@ -1,19 +1,18 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/16. */ -public class GameDetailSkinViewHolder extends RecyclerView.ViewHolder { +public class GameDetailSkinViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.skin_tv_download) public TextView skinDownloadTv; @@ -28,6 +27,5 @@ public class GameDetailSkinViewHolder extends RecyclerView.ViewHolder { public GameDetailSkinViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java new file mode 100644 index 0000000000..5c2f81afcf --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailTopViewHolder.java @@ -0,0 +1,30 @@ +package com.gh.gamecenter.adapter.viewholder; + +import android.view.View; +import android.widget.TextView; + +import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.R; + +import butterknife.BindView; + +/** + * Created by LGT on 2016/9/8. + */ +public class GameDetailTopViewHolder extends BaseRecyclerViewHolder { + + @BindView(R.id.gamedetail_iv_thumb) + public SimpleDraweeView gamedetail_iv_thumb; + @BindView(R.id.gamedetail_tv_name) + public TextView gamedetail_tv_name; + @BindView(R.id.gamedetail_tv_info) + public TextView gamedetail_tv_info; + @BindView(R.id.gamedetail_tv_concern) + public TextView gamedetail_tv_concern; + + public GameDetailTopViewHolder(View itemView) { + super(itemView); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java index 95824b8b31..d0a11c8a24 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java @@ -1,40 +1,47 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/15. */ -public class GameDownloadViewHolder extends RecyclerView.ViewHolder { +public class GameDownloadViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.dm_item_iv_icon) public SimpleDraweeView dm_item_iv_icon; + + @BindView(R.id.dm_item_tv_title) public TextView dm_item_tv_title; + + @BindView(R.id.dm_item_tv_downloads) public TextView dm_item_tv_downloads; + + @BindView(R.id.dm_item_iv_delete) public ImageView dm_item_iv_delete; + + @BindView(R.id.dm_item_tv_speed) public TextView dm_item_tv_speed; + + @BindView(R.id.dm_item_progressbar) public ProgressBar dm_item_progressbar; + + @BindView(R.id.dm_item_tv_startorpause) public TextView dm_item_tv_startorpause; + + @BindView(R.id.dm_item_line) public View dm_item_line; public GameDownloadViewHolder(View itemView) { super(itemView); - - dm_item_iv_icon = (SimpleDraweeView) itemView.findViewById(R.id.dm_item_iv_icon); - dm_item_tv_title = (TextView) itemView.findViewById(R.id.dm_item_tv_title); - dm_item_tv_downloads = (TextView) itemView.findViewById(R.id.dm_item_tv_downloads); - dm_item_iv_delete = (ImageView) itemView.findViewById(R.id.dm_item_iv_delete); - dm_item_tv_speed = (TextView) itemView.findViewById(R.id.dm_item_tv_speed); - dm_item_progressbar = (ProgressBar) itemView.findViewById(R.id.dm_item_progressbar); - dm_item_tv_startorpause = (TextView) itemView.findViewById(R.id.dm_item_tv_startorpause); - dm_item_line = itemView.findViewById(R.id.dm_item_line); - } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameGalleryViewHolder.java similarity index 52% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameGalleryViewHolder.java index 5e44de79eb..de33717a8d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameGalleryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameGalleryViewHolder.java @@ -1,22 +1,23 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/8. */ -public class GameGalleryViewHolder extends RecyclerView.ViewHolder { +public class GameGalleryViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.screenshot_item_iv) public SimpleDraweeView screenshot_item_iv; public GameGalleryViewHolder(View itemView) { super(itemView); - - screenshot_item_iv = (SimpleDraweeView) itemView.findViewById(R.id.screenshot_item_iv); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java index 62fd5d44b4..b7af523ac0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.java @@ -1,34 +1,40 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/7/5. */ -public class GameHeadViewHolder extends RecyclerView.ViewHolder { +public class GameHeadViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.head_thumb) public ImageView thumb; + + @BindView(R.id.head_title) public TextView title; + + @BindView(R.id.head_more) public TextView more; + + @BindView(R.id.head_pb) public ProgressBar progressBar; + + @BindView(R.id.head_line) public View line; + + @BindView(R.id.head_line_top) public View lineTop; public GameHeadViewHolder(View itemView) { super(itemView); - - this.thumb = (ImageView) itemView.findViewById(R.id.head_thumb); - this.title = (TextView) itemView.findViewById(R.id.head_title); - this.more = (TextView) itemView.findViewById(R.id.head_more); - this.progressBar = (ProgressBar) itemView.findViewById(R.id.head_pb); - this.line = itemView.findViewById(R.id.head_line); - this.lineTop = itemView.findViewById(R.id.head_line_top); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java index 3abc2014ec..92c677da1b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.java @@ -1,24 +1,26 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/7/5. */ -public class GameImageViewHolder extends RecyclerView.ViewHolder { +public class GameImageViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.home_game_iv_image) public SimpleDraweeView image; + + @BindView(R.id.home_game_line) public View line; public GameImageViewHolder(View itemView) { super(itemView); - - image = (SimpleDraweeView) itemView.findViewById(R.id.home_game_iv_image); - line = itemView.findViewById(R.id.home_game_line); } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameLibaoGalleryViewHolder.java similarity index 66% rename from app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryViewHolder.java rename to app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameLibaoGalleryViewHolder.java index cba7bb47d4..ddde825a6d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameLibaoGalleryViewHolder.java @@ -1,18 +1,17 @@ -package com.gh.gamecenter.gamedetail; +package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/14. */ -public class GameLibaoGalleryViewHolder extends RecyclerView.ViewHolder { +public class GameLibaoGalleryViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gamedetail_libao_name) public TextView libaoName; @@ -21,9 +20,8 @@ public class GameLibaoGalleryViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.gamedetail_libao_btn) public TextView libaoBtn; - public GameLibaoGalleryViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java index 6853e6ca95..4e110b8598 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java @@ -1,26 +1,27 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.EditText; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/29. */ -public class GameNewsSearchViewHolder extends RecyclerView.ViewHolder { +public class GameNewsSearchViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.game_news_et_search) public EditText game_news_et_search; + @BindView(R.id.game_news_tv_search) public TextView game_news_tv_search; public GameNewsSearchViewHolder(View itemView) { super(itemView); - game_news_et_search = (EditText) itemView.findViewById(R.id.game_news_et_search); - game_news_tv_search = (TextView) itemView.findViewById(R.id.game_news_tv_search); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java index a73ba2653d..39af1b764b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java @@ -3,20 +3,21 @@ package com.gh.gamecenter.adapter.viewholder; import android.support.v7.widget.RecyclerView; import android.view.View; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/29. */ -public class GameNewsTypeListViewHolder extends RecyclerView.ViewHolder { +public class GameNewsTypeListViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.game_news_type_list) public RecyclerView game_news_type_list; public GameNewsTypeListViewHolder(View itemView) { super(itemView); - - game_news_type_list = (RecyclerView) itemView.findViewById(R.id.game_news_type_list); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java index fb83d3a94c..471d3a1604 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java @@ -1,22 +1,23 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/29. */ -public class GameNewsTypeViewHolder extends RecyclerView.ViewHolder { +public class GameNewsTypeViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.game_news_type_list_tv_type) public TextView game_news_type_list_tv_type; public GameNewsTypeViewHolder(View itemView) { super(itemView); - - game_news_type_list_tv_type = (TextView) itemView.findViewById(R.id.game_news_type_list_tv_type); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java index 5b8c3e3f99..7474127536 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java @@ -23,12 +23,21 @@ import com.gh.gamecenter.game.GameFragmentAdapter; import java.util.Date; import java.util.List; +import butterknife.BindView; + public class GameTestViewHolder extends GameViewHolder { + @BindView(R.id.home2_test_type) public TextView gameTestType; + + @BindView(R.id.home2_test_time) public TextView gameTestTime; + + @BindView(R.id.home2_game_kaifu_top) public TextView kaifuTop; + + @BindView(R.id.home2_game_kaifu_bottom) public TextView kaifuBottom; public GameTestViewHolder(View itemView) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java index d9ae064dff..53c3f0e2f4 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java @@ -1,32 +1,36 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/16. */ -public class GameUpdateViewHolder extends RecyclerView.ViewHolder { +public class GameUpdateViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.gu_item_iv_icon) public SimpleDraweeView gu_item_iv_icon; + + @BindView(R.id.gu_item_tv_name) public TextView gu_item_tv_name; + + @BindView(R.id.gu_item_tv_current) public TextView gu_item_tv_current; + + @BindView(R.id.gu_item_tv_new) public TextView gu_item_tv_new; + + @BindView(R.id.gu_item_btv_update) public TextView gu_item_btv_update; public GameUpdateViewHolder(View itemView) { super(itemView); - - gu_item_iv_icon = (SimpleDraweeView) itemView.findViewById(R.id.gu_item_iv_icon); - gu_item_tv_name = (TextView) itemView.findViewById(R.id.gu_item_tv_name); - gu_item_tv_current = (TextView) itemView.findViewById(R.id.gu_item_tv_current); - gu_item_tv_new = (TextView) itemView.findViewById(R.id.gu_item_tv_new); - gu_item_btv_update = (TextView) itemView.findViewById(R.id.gu_item_btv_update); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java index bb4b7b4fae..3d44c025f1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; @@ -8,9 +7,10 @@ import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; -public class GameViewHolder extends RecyclerView.ViewHolder { +public class GameViewHolder extends BaseRecyclerViewHolder { public ImageView gameLibaoIcon; public TextView gameOrder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java index c8287f40bf..e4f5b76ff6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java @@ -1,22 +1,22 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager; /** * Created by LGT on 2016/11/14. * viewHolder */ -public class GameViewPagerViewHolder extends RecyclerView.ViewHolder { +public class GameViewPagerViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.view_pager) public AutoScrollViewPager viewPager; @@ -24,16 +24,17 @@ public class GameViewPagerViewHolder extends RecyclerView.ViewHolder { public LinearLayout viewpager_ll_hint; @BindView(R.id.viewpager_tv_failure) public TextView viewpager_tv_failure; - @BindView(R.id.home_subject_rl) - public RelativeLayout subjectRl; @BindView(R.id.home_subject_failure) public TextView subjectFailure; @BindView(R.id.home_subject_ll) public LinearLayout subjectLl; - public GameViewPagerViewHolder(View itemView) { + public GameViewPagerViewHolder(View itemView, int width) { super(itemView); - ButterKnife.bind(this, itemView); + // 傻逼viewpager拿不到高度,一定要自己算下,妈的,先不管了 + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, (int) (width / 16f * 7f)); + viewPager.setLayoutParams(params); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java index abc117c8f7..19ae0901e9 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.CheckBox; import android.widget.ImageView; @@ -9,15 +8,15 @@ import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/1/20. */ -public class KcSelectGameViewHolder extends RecyclerView.ViewHolder { +public class KcSelectGameViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.select_game_order) public TextView gameOrder; @@ -50,6 +49,5 @@ public class KcSelectGameViewHolder extends RecyclerView.ViewHolder { public KcSelectGameViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java index 9d3cd080f4..b471987dd6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java @@ -1,22 +1,25 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by khy on 2017/3/23. */ -public class LiBaoCodeViewHolder extends RecyclerView.ViewHolder { +public class LiBaoCodeViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.libao_code_tv) public TextView code; + + @BindView(R.id.libao_copy_btn) public TextView copy; public LiBaoCodeViewHolder(View itemView) { super(itemView); - code = (TextView) itemView.findViewById(R.id.libao_code_tv); - copy = (TextView) itemView.findViewById(R.id.libao_copy_btn); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java index 80b566eb5e..3fb5ce8eac 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java @@ -5,15 +5,15 @@ import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/14. */ -public class LibaoDetailTopViewHolder extends RecyclerView.ViewHolder { +public class LibaoDetailTopViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libaodetail_name) public TextView libaoName; @@ -30,6 +30,5 @@ public class LibaoDetailTopViewHolder extends RecyclerView.ViewHolder { public LibaoDetailTopViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java index 9b808ad9a5..9b4dad7124 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/12. */ -public class LibaoNormalViewHolder extends RecyclerView.ViewHolder { +public class LibaoNormalViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libao_name) public TextView libaoName; @@ -28,6 +27,5 @@ public class LibaoNormalViewHolder extends RecyclerView.ViewHolder { public LibaoNormalViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java index 3fb65f3dcf..f82d748a2e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoSearchViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.EditText; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/26. */ -public class LibaoSearchViewHolder extends RecyclerView.ViewHolder { +public class LibaoSearchViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libao_et_search) public EditText searchEt; @@ -24,6 +23,5 @@ public class LibaoSearchViewHolder extends RecyclerView.ViewHolder { public LibaoSearchViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java index 3fdf69b4fa..de76740ed7 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/28. */ -public class NewsDetailCommentListViewHolder extends RecyclerView.ViewHolder { +public class NewsDetailCommentListViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.newsdetail_comment_title) public TextView title; @@ -22,6 +21,6 @@ public class NewsDetailCommentListViewHolder extends RecyclerView.ViewHolder { public NewsDetailCommentListViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java index b6a1804705..c6c83ba4cc 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java @@ -1,22 +1,21 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by Administrator on 2016/9/8. * viewholder */ -public class NewsDigestViewHolder extends RecyclerView.ViewHolder { +public class NewsDigestViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_digest_thumb) public SimpleDraweeView thumb; @@ -41,7 +40,6 @@ public class NewsDigestViewHolder extends RecyclerView.ViewHolder { public NewsDigestViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java index 833a8b6ffa..093c95b2ea 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/18. * viewholder */ -public class NewsFooterViewHolder extends RecyclerView.ViewHolder { +public class NewsFooterViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_footer_loading) public ProgressBar loading; @@ -23,7 +22,6 @@ public class NewsFooterViewHolder extends RecyclerView.ViewHolder { public NewsFooterViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java index f0f1e4c332..4bbba72a32 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsHeadViewHolder.java @@ -1,26 +1,24 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/18. * viewholder */ -public class NewsHeadViewHolder extends RecyclerView.ViewHolder { +public class NewsHeadViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_head_label) public TextView label; public NewsHeadViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java index 0aeec12a6a..3c02ef0e05 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/6/6. * viewholder */ -public class NewsImage1ViewHolder extends RecyclerView.ViewHolder { +public class NewsImage1ViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image1_thumb) public SimpleDraweeView thumb; @@ -27,7 +26,6 @@ public class NewsImage1ViewHolder extends RecyclerView.ViewHolder { public NewsImage1ViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java index c982d2e262..d173fd50c1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/7/5. * viewholder */ -public class NewsImage2ViewHolder extends RecyclerView.ViewHolder { +public class NewsImage2ViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image2_title) public TextView title; @@ -31,7 +30,6 @@ public class NewsImage2ViewHolder extends RecyclerView.ViewHolder { public NewsImage2ViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java index 8bb04c2b05..fb0b5399bf 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/7/5. * viewholder */ -public class NewsImage3ViewHolder extends RecyclerView.ViewHolder { +public class NewsImage3ViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image3_title) public TextView title; @@ -27,7 +26,6 @@ public class NewsImage3ViewHolder extends RecyclerView.ViewHolder { public NewsImage3ViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java index 4247d0381e..f96961d267 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImageViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/17. * viewholder */ -public class NewsImageViewHolder extends RecyclerView.ViewHolder { +public class NewsImageViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_image_thumb) public SimpleDraweeView thumb; @@ -25,7 +24,6 @@ public class NewsImageViewHolder extends RecyclerView.ViewHolder { public NewsImageViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java index bbb7c5f762..f106702f3c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by LGT on 2016/8/17. * viewholder */ -public class NewsTextViewHolder extends RecyclerView.ViewHolder { +public class NewsTextViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_text_line) public View line; @@ -24,7 +23,6 @@ public class NewsTextViewHolder extends RecyclerView.ViewHolder { public NewsTextViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java deleted file mode 100644 index 3155d26081..0000000000 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NoDataSkipViewHolder.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gh.gamecenter.adapter.viewholder; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.TextView; - -import com.gh.gamecenter.R; - -/** - * Created by LGT on 2016/9/6. - */ -public class NoDataSkipViewHolder extends RecyclerView.ViewHolder { - - public TextView reuse_nodata_skip_tv_hint; - public TextView reuse_nodata_skip_tv_btn; - - public NoDataSkipViewHolder(View itemView) { - super(itemView); - - reuse_nodata_skip_tv_hint = (TextView) itemView.findViewById(R.id.reuse_nodata_skip_tv_hint); - reuse_nodata_skip_tv_btn = (TextView) itemView.findViewById(R.id.reuse_nodata_skip_tv_btn); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java index 3a23a92c34..dff07887f1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/PlatformViewHolder.java @@ -1,44 +1,38 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/9/27. */ -public class PlatformViewHolder extends RecyclerView.ViewHolder { +public class PlatformViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.download_item_tv_name) public TextView download_item_tv_name; + @BindView(R.id.download_item_tv_status) public TextView download_item_tv_status; + @BindView(R.id.download_item_progressbar) public TextView download_item_tv_hint; + @BindView(R.id.download_item_iv_pic) public ImageView download_item_open_collection; + @BindView(R.id.download_item_tv_hint) public ImageView download_item_colse_collection; + @BindView(R.id.download_item_open_collection) public SimpleDraweeView download_item_iv_pic; + @BindView(R.id.download_item_colse_collection) public ProgressBar download_item_progressbar; public PlatformViewHolder(View itemView) { super(itemView); - - download_item_tv_name = (TextView) itemView - .findViewById(R.id.download_item_tv_name); - download_item_tv_status = (TextView) itemView - .findViewById(R.id.download_item_tv_status); - download_item_progressbar = (ProgressBar) itemView - .findViewById(R.id.download_item_progressbar); - download_item_iv_pic = (SimpleDraweeView) itemView - .findViewById(R.id.download_item_iv_pic); - download_item_tv_hint = (TextView) itemView - .findViewById(R.id.download_item_tv_hint); - download_item_open_collection = (ImageView) itemView - .findViewById(R.id.download_item_open_collection); - download_item_colse_collection = (ImageView) itemView - .findViewById(R.id.download_item_colse_collection); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java index 20fbcc9f7c..c3b60a2e0e 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java @@ -1,12 +1,13 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; +import com.gh.base.BaseRecyclerViewHolder; + /** * Created by LGT on 2016/8/12. */ -public class ReuseViewHolder extends RecyclerView.ViewHolder { +public class ReuseViewHolder extends BaseRecyclerViewHolder { public ReuseViewHolder(View itemView) { super(itemView); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java index d4114c0990..d8dd7c4c62 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java @@ -1,25 +1,25 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; +import butterknife.BindView; + /** * Created by LGT on 2016/8/17. */ -public class SearchHistoryViewHolder extends RecyclerView.ViewHolder { +public class SearchHistoryViewHolder extends BaseRecyclerViewHolder { + @BindView(R.id.search_history_line) public View search_history_line; + @BindView(R.id.search_history_name) public TextView search_history_name; public SearchHistoryViewHolder(View itemView) { super(itemView); - - search_history_line = itemView.findViewById(R.id.search_history_line); - search_history_name = (TextView) itemView.findViewById(R.id.search_history_name); - } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java index e2442344bc..1a25e597cd 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/12/5. */ -public class StrategyDialogViewHolder extends RecyclerView.ViewHolder { +public class StrategyDialogViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.dialog_strategy_item_icon) public ImageView selectIcon; @@ -22,6 +21,6 @@ public class StrategyDialogViewHolder extends RecyclerView.ViewHolder { public StrategyDialogViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java index 73e886e6be..0f8f27cc69 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 24/05/17. */ -public class ToolBoxViewHolder extends RecyclerView.ViewHolder { +public class ToolBoxViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.toolbox_item_game_thumb) public SimpleDraweeView mGameThumb; @BindView(R.id.toolbox_item_title) @@ -24,6 +23,5 @@ public class ToolBoxViewHolder extends RecyclerView.ViewHolder { public ToolBoxViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java index b6f43500db..5d7c552fab 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.adapter.viewholder; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/11. * 投票ITEM */ -public class VoteViewHolder extends RecyclerView.ViewHolder { +public class VoteViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.vote_item_name) public TextView name; @@ -26,6 +25,6 @@ public class VoteViewHolder extends RecyclerView.ViewHolder { public VoteViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java b/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java index d918b9b8d4..dcd5253123 100644 --- a/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java +++ b/app/src/main/java/com/gh/gamecenter/changeskin/ChangeSkinUtils.java @@ -10,7 +10,7 @@ import android.widget.TextView; import com.gh.base.AppController; import com.gh.common.util.Utils; import com.gh.gamecenter.R; -import com.gh.gamecenter.gamedetail.GameDetailSkinViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailSkinViewHolder; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; diff --git a/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java b/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java index 66323834da..a5724f9943 100644 --- a/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/FileSendFragment.java @@ -1,16 +1,12 @@ package com.gh.gamecenter.download; import android.content.Intent; -import android.os.Bundle; import android.os.Handler; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.text.Html; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.TextView; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.CleanApkActivity; @@ -22,9 +18,7 @@ import com.gh.gamecenter.ShareGhActivity; /** * Created by khy on 2017/1/20. */ -public class FileSendFragment extends Fragment { - - View view; +public class FileSendFragment extends BaseFragment { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { @@ -37,56 +31,49 @@ public class FileSendFragment extends Fragment { } @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - + protected int getLayoutId() { + return R.layout.fragment_file_send; } - @Nullable @Override - public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (view == null) { - view = inflater.inflate(R.layout.fragment_file_send, container, false); + protected void initView(View view) { + super.initView(view); + view.findViewById(R.id.file_send_btn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), KcSelectGameActivity.class); + startActivityForResult(intent, 0x170); + } + }); - view.findViewById(R.id.file_send_btn).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), KcSelectGameActivity.class); - startActivityForResult(intent, 0x170); - } - }); + view.findViewById(R.id.file_receiver_btn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), ReceiverWaitingActivity.class); + startActivityForResult(intent, 0x180); + } + }); - view.findViewById(R.id.file_receiver_btn).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), ReceiverWaitingActivity.class); - startActivityForResult(intent, 0x180); - } - }); + TextView shareGh = (TextView) view.findViewById(R.id.share_gh); + shareGh.setText(Html.fromHtml(StringUtils.buildString("", "好友还没安装光环助手?请点这里", ""))); + shareGh.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), ShareGhActivity.class); + getActivity().startActivity(intent); + } + }); - TextView shareGh = (TextView) view.findViewById(R.id.share_gh); - shareGh.setText(Html.fromHtml(StringUtils.buildString("", "好友还没安装光环助手?请点这里", ""))); - shareGh.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), ShareGhActivity.class); - getActivity().startActivity(intent); - } - }); + TextView cleanApk = (TextView) view.findViewById(R.id.clean_apk_tv); + cleanApk.setText(Html.fromHtml(StringUtils.buildString("手机空间不足?试试 ", "", "安装包清理", ""))); - TextView cleanApk = (TextView) view.findViewById(R.id.clean_apk_tv); - cleanApk.setText(Html.fromHtml(StringUtils.buildString("手机空间不足?试试 ", "", "安装包清理", ""))); - - cleanApk.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), CleanApkActivity.class); - getActivity().startActivity(intent); - } - }); - - } - - return view; + cleanApk.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), CleanApkActivity.class); + getActivity().startActivity(intent); + } + }); } + } diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java similarity index 95% rename from app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java rename to app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java index b8f07e4f85..52a438c1ac 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownLoadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java @@ -3,15 +3,11 @@ package com.gh.gamecenter.download; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; -import android.os.Bundle; import android.os.Message; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -19,6 +15,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Constants; import com.gh.common.util.DialogUtils; import com.gh.common.util.NetworkUtils; @@ -47,9 +44,8 @@ import org.greenrobot.eventbus.ThreadMode; * * @author 黄壮华 */ -public class GameDownLoadFragment extends Fragment implements View.OnClickListener { +public class GameDownloadFragment extends BaseFragment implements View.OnClickListener { - private View view; private RecyclerViewExtended downloadmanager_rv_show; private GameDownloadFragmentAdapter adapter; private LinearLayoutManager layoutManager; @@ -162,10 +158,13 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.downloadmanager; + } + @Override + protected void initView(View view) { + super.initView(view); String path = getActivity().getIntent().getStringExtra("path"); url = getActivity().getIntent().getStringExtra("url"); if (getActivity().getIntent().getBundleExtra("data") != null) { @@ -175,8 +174,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen isScroll = false; - view = View.inflate(getActivity(), R.layout.downloadmanager, null); - downloadmanager_rl_head = (RelativeLayout) view.findViewById(R.id.downloadmanager_rl_head); downloadmanager_tv_task = (TextView) view.findViewById(R.id.downloadmanager_tv_task); downloadmanager_tv_allstart = (TextView) view.findViewById(R.id.downloadmanager_tv_allstart); @@ -269,18 +266,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen if (path != null) { adapter.showPluginDialog(path); } - - EventBus.getDefault().register(this); - } - - @Override - @Nullable - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; } @Override @@ -319,12 +304,6 @@ public class GameDownLoadFragment extends Fragment implements View.OnClickListen DownloadManager.getInstance(getActivity()).removeObserver(dataWatcher); } - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); - } - @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBMiPush mipush) { if ("plugin_install".equals(mipush.getFrom())) { diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java index 7050f977f9..2fb0f57382 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java @@ -32,7 +32,7 @@ import com.gh.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; import com.gh.gamecenter.adapter.viewholder.GameDownloadViewHolder; import com.gh.gamecenter.eventbus.EBDownloadChanged; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java index b0e74ed4e1..f36aa86354 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -1,17 +1,13 @@ package com.gh.gamecenter.download; import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; @@ -34,18 +30,21 @@ import java.util.ArrayList; * * @author 黄壮华 */ -public class GameUpdateFragment extends Fragment { +public class GameUpdateFragment extends BaseFragment { - private View view; private RecyclerView gameupdate_rv_show; private GameUpdateFragmentAdapter adapter; private LinearLayout gameupdate_ll_loading; private LinearLayout reuse_nodata_skip; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.gameupdate; + } + @Override + protected void initView(View view) { + super.initView(view); Intent intent = getActivity().getIntent(); String packageName = intent.getStringExtra("packageName"); boolean isUpdate = intent.getBooleanExtra("isPushIntent", false); @@ -55,8 +54,6 @@ public class GameUpdateFragment extends Fragment { } String entrance = intent.getStringExtra(EntranceUtils.KEY_ENTRANCE); - view = View.inflate(getActivity(), R.layout.gameupdate, null); - gameupdate_ll_loading = (LinearLayout) view.findViewById(R.id.gameupdate_ll_loading); reuse_nodata_skip = (LinearLayout) view.findViewById(R.id.reuse_nodata_skip); @@ -87,23 +84,6 @@ public class GameUpdateFragment extends Fragment { reuse_nodata_skip, packageName, isUpdate, entrance); gameupdate_rv_show.setAdapter(adapter); - EventBus.getDefault().register(this); - } - - @Override - @Nullable - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index f8985955ed..a1b831db8f 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -28,7 +28,7 @@ import com.gh.download.DownloadManager; import com.gh.download.DownloadStatus; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.DownloadHeadViewHolder; import com.gh.gamecenter.adapter.viewholder.GameUpdateViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; @@ -409,11 +409,11 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { if (NetworkUtils.isWifiConnected(mContext)) { if ("插件化".equals(str)) { viewHolder.gu_item_btv_update.setText("插件化中"); - viewHolder.gu_item_btv_update.setTextColor(mContext.getResources().getColorStateList(R.color.text_plugining_style)); + viewHolder.gu_item_btv_update.setTextColor(ContextCompat.getColorStateList(mContext, R.color.text_plugining_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugining_style); } else { viewHolder.gu_item_btv_update.setText("更新中"); - viewHolder.gu_item_btv_update.setTextColor(mContext.getResources().getColorStateList(R.color.text_downloading_style)); + viewHolder.gu_item_btv_update.setTextColor(ContextCompat.getColorStateList(mContext, R.color.text_downloading_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_downloading_style); } @@ -482,12 +482,12 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { if (updateEntity.isPluggable()) { viewHolder.gu_item_btv_update.setText("插件化中"); viewHolder.gu_item_btv_update.setTextColor( - mContext.getResources().getColorStateList(R.color.text_plugining_style)); + ContextCompat.getColorStateList(mContext, R.color.text_plugining_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_plugining_style); } else { viewHolder.gu_item_btv_update.setText("更新中"); viewHolder.gu_item_btv_update.setTextColor( - mContext.getResources().getColorStateList(R.color.text_downloading_style)); + ContextCompat.getColorStateList(mContext, R.color.text_downloading_style)); viewHolder.gu_item_btv_update.setBackgroundResource(R.drawable.game_item_btn_downloading_style); } } diff --git a/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java b/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java index 711d578850..198f06314a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.java @@ -1,12 +1,15 @@ package com.gh.gamecenter.entity; +import android.os.Parcel; +import android.os.Parcelable; + import com.gh.gamecenter.db.info.LibaoInfo; import com.google.gson.annotations.SerializedName; /** * Created by khy on 2016/12/13. */ -public class LibaoEntity { +public class LibaoEntity implements Parcelable { @SerializedName("_id") private String id; @@ -212,4 +215,60 @@ public class LibaoEntity { this.repeat = repeat; } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.id); + dest.writeString(this.libaoId); + dest.writeString(this.content); + dest.writeParcelable(this.game, flags); + dest.writeString(this.icon); + dest.writeString(this.name); + dest.writeString(this.platform); + dest.writeString(this.status); + dest.writeString(this.beforeStatus); + dest.writeString(this.code); + dest.writeInt(this.available); + dest.writeInt(this.total); + dest.writeString(this.packageName); + dest.writeByte(this.active ? (byte) 1 : (byte) 0); + dest.writeLong(this.time); + dest.writeInt(this.repeat); + } + + protected LibaoEntity(Parcel in) { + this.id = in.readString(); + this.libaoId = in.readString(); + this.content = in.readString(); + this.game = in.readParcelable(LibaoGameEntity.class.getClassLoader()); + this.icon = in.readString(); + this.name = in.readString(); + this.platform = in.readString(); + this.status = in.readString(); + this.beforeStatus = in.readString(); + this.code = in.readString(); + this.available = in.readInt(); + this.total = in.readInt(); + this.packageName = in.readString(); + this.active = in.readByte() != 0; + this.time = in.readLong(); + this.repeat = in.readInt(); + } + + public static final Creator CREATOR = new Creator() { + @Override + public LibaoEntity createFromParcel(Parcel source) { + return new LibaoEntity(source); + } + + @Override + public LibaoEntity[] newArray(int size) { + return new LibaoEntity[size]; + } + }; } diff --git a/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java b/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java index ede192ecb9..86a49ca685 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java +++ b/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.java @@ -1,11 +1,14 @@ package com.gh.gamecenter.entity; +import android.os.Parcel; +import android.os.Parcelable; + import com.google.gson.annotations.SerializedName; /** * Created by khy on 2016/12/14. */ -public class LibaoGameEntity { +public class LibaoGameEntity implements Parcelable { @SerializedName("_id") private String id; @@ -37,4 +40,32 @@ public class LibaoGameEntity { this.name = name; } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.id); + dest.writeString(this.name); + } + + protected LibaoGameEntity(Parcel in) { + this.id = in.readString(); + this.name = in.readString(); + } + + public static final Creator CREATOR = new Creator() { + @Override + public LibaoGameEntity createFromParcel(Parcel source) { + return new LibaoGameEntity(source); + } + + @Override + public LibaoGameEntity[] newArray(int size) { + return new LibaoGameEntity[size]; + } + }; } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java similarity index 95% rename from app/src/main/java/com/gh/gamecenter/game/GameFragment.java rename to app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java index 227d32bc3c..9eeeef4aff 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java @@ -1,7 +1,5 @@ -package com.gh.gamecenter.game; +package com.gh.gamecenter.fragment; -import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; @@ -11,7 +9,6 @@ import android.widget.LinearLayout; import com.facebook.drawee.backends.pipeline.Fresco; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.HomeFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; @@ -27,7 +24,8 @@ import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.game.GameFragmentAdapter; +import com.gh.base.OnRequestCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -39,7 +37,7 @@ import java.util.List; * Created by khy on 2016/12/6. * 新主界面 */ -public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnRefreshListener, OnCallBackListener { +public class GameFragment extends SearchToolbarFragment implements SwipeRefreshLayout.OnRefreshListener, OnRequestCallBackListener { private SwipeRefreshLayout fm_game_swipe_refresh; private RecyclerView fm_game_rv_list; @@ -86,11 +84,13 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.fragment_game; + } - View inflate = View.inflate(getActivity(), R.layout.fragment_game, null); - ((LinearLayout) view).addView(inflate); + @Override + protected void initView(final View view) { + super.initView(view); reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection); fm_game_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.fm_game_swipe_refresh); @@ -114,7 +114,7 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR ((DefaultItemAnimator) fm_game_rv_list.getItemAnimator()).setSupportsChangeAnimations(false); fm_game_rv_list.setHasFixedSize(true); fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity())); - adapter = new GameFragmentAdapter(GameFragment.this, fm_game_swipe_refresh); + adapter = new GameFragmentAdapter(this, fm_game_swipe_refresh); fm_game_rv_list.setAdapter(adapter); fm_game_rv_list.addOnScrollListener(new RecyclerView.OnScrollListener() { diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java index e17e395370..1af3438a05 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java @@ -1,10 +1,295 @@ package com.gh.gamecenter.fragment; +import android.content.Context; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.View; + +import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; +import com.gh.common.util.TokenUtils; +import com.gh.common.util.Utils; +import com.gh.gamecenter.MainActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.db.KeFuMarkReadDao; +import com.gh.gamecenter.db.MessageMarkReadDao; +import com.gh.gamecenter.db.info.MessageMarkReadInfo; +import com.gh.gamecenter.entity.MessageUnreadEntity; +import com.gh.gamecenter.eventbus.EBReuse; +import com.gh.gamecenter.eventbus.EBSkip; +import com.gh.gamecenter.eventbus.EBUISwitch; +import com.gh.gamecenter.message.MessageFragment; +import com.gh.gamecenter.news.NewsWrapperFragment; +import com.gh.gamecenter.personal.PersonalFragment; +import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.retrofit.RetrofitManager; +import com.lightgame.view.NoScrollableViewPager; +import com.readystatesoftware.systembartint.SystemBarTintManager; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; +import org.json.JSONArray; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import butterknife.BindView; +import okhttp3.MediaType; +import okhttp3.RequestBody; +import okhttp3.ResponseBody; +import retrofit2.HttpException; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Func1; +import rx.schedulers.Schedulers; + +import static com.gh.gamecenter.MainActivity.EB_MAINACTIVITY_TAG; +import static com.gh.gamecenter.MainActivity.EB_SKIP_GAMEFRAGMENT; + /** * @author CsHeng * @Date 05/05/2017 * @Time 3:26 PM */ -public class MainFragment { +public class MainFragment extends BaseFragment_ViewPager_Checkable { + + public static final int INDEX_GAME = 0; + public static final int INDEX_NEWS = 1; + public static final int INDEX_MESSAGE = 2; + public static final int INDEX_PERSONAL = 3; + private ArrayList mSearchHintLint; + @BindView(R.id.main_iv_message_hint) + View mMessageHint; + + @Override + protected int getLayoutId() { + return R.layout.fragment_main; + } + + @Override + protected int getCheckableGroupId() { + return R.id.lightgame_tab_container; + } + + @Override + protected int getViewPagerId() { + return R.id.lightgame_tab_viewpager; + } + + @Override + protected void initFragmentList(List fragments) { + fragments.add(new GameFragment()); + fragments.add(new NewsWrapperFragment()); + fragments.add(new MessageFragment()); + fragments.add(new PersonalFragment()); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + checkMarkRead(getContext()); // 检查是否有记录已读消息 + checkMessageUnread(getContext(), true); // 检查是否有未读消息 + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + if (mViewPager instanceof NoScrollableViewPager) { + ((NoScrollableViewPager) mViewPager).setScrollable(false); + } + getSearchHints(); + } + + @Override + protected boolean handleOnClick(View view) { + boolean res = super.handleOnClick(view); + EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, mCheckedIndex)); + return res; + } + + @Override + protected void onPageChanged(int index) { + super.onPageChanged(index); + + Fragment fragment = mFragmentsList.get(index); + if (fragment instanceof SearchBarHint && mSearchHintLint != null && !mSearchHintLint.isEmpty()) { + ((SearchBarHint) fragment).setHint(mSearchHintLint); + } + + if (getActivity() instanceof MainActivity) { + SystemBarTintManager tintManager = ((MainActivity) getActivity()).getTintManager(); + if (tintManager != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (index == INDEX_PERSONAL) { + tintManager.setStatusBarTintResource(R.color.theme); + } else if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) { + tintManager.setStatusBarTintColor(Color.WHITE); + } else { + tintManager.setStatusBarTintColor(Color.BLACK); + } + } + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBSkip skip) { + if (EB_SKIP_GAMEFRAGMENT.equals(skip.getType())) { + EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, INDEX_GAME)); + checkIndex(INDEX_GAME); + EventBus.getDefault().post(new EBSkip(EB_MAINACTIVITY_TAG, skip.getCurrentItem())); + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBReuse reuse) { + if (MessageFragment.MESSAGE_READ_OVER.equals(reuse.getType())) { + if (mMessageHint != null) { + mMessageHint.setVisibility(View.GONE); + } + } + } + + private void getSearchHints() { + RetrofitManager.getApi().getSearchHints() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response>() { + @Override + public void onResponse(ArrayList response) { + if (response.size() != 0) { + mSearchHintLint = response; + + for (Fragment fragment : mFragmentsList) { + if (fragment instanceof SearchBarHint) { + ((SearchBarHint) fragment).setHint(mSearchHintLint); + } + } + } + } + }); + } + + private void checkMessageUnread(final Context context, boolean isCheck) { + TokenUtils.getToken(context, isCheck) + .flatMap(new Func1>() { + @Override + public Observable call(String token) { + return RetrofitManager.getMessage().getMessageUnread(token); + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response() { + @Override + public void onResponse(MessageUnreadEntity response) { + super.onResponse(response); + if (response != null && response.getKefuList() != null && response.getKefuList().size() > 0) { + KeFuMarkReadDao dao = new KeFuMarkReadDao(context); + for (int i = 0; i < response.getKefuList().size(); i++) { + if (dao.isMarkRead(response.getKefuList().get(i))) { + response.getKefuList().remove(i); + i--; + } + } + + if (response.getKefuList() != null && response.getKefuList().size() > 0) { + mMessageHint.setVisibility(View.VISIBLE); + } + + } + + if (response != null && response.getComment() > 0) { + mMessageHint.setVisibility(View.VISIBLE); + } + } + + @Override + public void onFailure(HttpException e) { + if (e != null && e.code() == 401) { + checkMessageUnread(getContext(), false); + } + } + }); + } + + private void checkMarkRead(Context context) { + MessageMarkReadDao readDao = new MessageMarkReadDao(context); + List readInfos = readDao.getAll(); + if (readInfos == null || readInfos.size() == 0) { + return; + } + + MessageMarkReadInfo readInfo = readInfos.get(0); + HashMap kefuIds = readInfo.getKefuIds(); + HashMap noticeIds = readInfo.getNoticeIds(); + + if (kefuIds != null && kefuIds.size() > 0) { + Utils.log("======提交已读客服消息"); + JSONArray array = new JSONArray(); + for (String s : kefuIds.keySet()) { + array.put(s); + } + Utils.log("======客服id::" + array.toString()); + RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); + postMarkRead(context, "kefu", true, body, readDao); + } + + if (noticeIds != null && noticeIds.size() > 0) { + Utils.log("======提交已读公告消息"); + JSONArray array = new JSONArray(); + for (String s : noticeIds.keySet()) { + array.put(s); + } + Utils.log("======客服id::" + array.toString()); + RequestBody body = RequestBody.create(MediaType.parse("application/json"), array.toString()); + postMarkRead(context, "notice", true, body, readDao); + } + + } + + private void postMarkRead(final Context context, final String type, boolean isCkeck, final RequestBody body, + final MessageMarkReadDao readDao) { + TokenUtils.getToken(context, isCkeck) + .flatMap(new Func1>() { + @Override + public Observable call(String token) { + if ("kefu".equals(type)) { + return RetrofitManager.getMessage().postMarkKeFuRead(body, token); + } else { + return RetrofitManager.getMessage().postMarkNoticeRead(body, token); + } + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response() { + @Override + public void onResponse(ResponseBody response) { + super.onResponse(response); + Utils.log("=========postMarkRead::" + type); + if ("kefu".equals(type)) { + readDao.cleanKeFu(); + } else { + readDao.cleanNotice(); + } + + } + + @Override + public void onFailure(HttpException e) { + super.onFailure(e); + if (e != null && e.code() == 401) { + postMarkRead(context, type, false, body, readDao); + } + } + }); + + } + } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java new file mode 100644 index 0000000000..636ff5a57d --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/fragment/NewsFragment.java @@ -0,0 +1,129 @@ +package com.gh.gamecenter.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.util.DisplayMetrics; +import android.view.View; +import android.widget.LinearLayout; + +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; +import com.gh.common.util.DataCollectionUtils; +import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.MainActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.eventbus.EBUISwitch; +import com.gh.gamecenter.news.News1Fragment; +import com.gh.gamecenter.news.News2Fragment; +import com.gh.gamecenter.news.News3Fragment; +import com.gh.gamecenter.news.News4Fragment; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.List; + +import butterknife.BindView; + +import static com.gh.gamecenter.news.NewsWrapperFragment.EB_NEWSFRAGMENT_TAG; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 10:30 AM + */ + +public class NewsFragment extends BaseFragment_ViewPager_Checkable { + + @BindView(R.id.slidebar_line) + View mNewsSlidebarLine; + private LinearLayout.LayoutParams mLayoutParams; + private int mWidth; + + @Override + protected int getLayoutId() { + return R.layout.fragment_news; + } + + @Override + protected int getCheckableGroupId() { + return R.id.lightgame_tab_container; + } + + @Override + protected int getViewPagerId() { + return R.id.lightgame_tab_viewpager; + } + + @Override + protected void initFragmentList(List fragments) { + fragments.add(new News1Fragment()); + fragments.add(new News2Fragment()); + fragments.add(new News3Fragment()); + fragments.add(new News4Fragment()); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + DisplayMetrics outMetrics = new DisplayMetrics(); + getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); + mWidth = outMetrics.widthPixels / 4; + mLayoutParams = new LinearLayout.LayoutParams(mWidth / 2, DisplayUtils.dip2px(getActivity(), 2)); + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + mLayoutParams.leftMargin = (int) (mWidth * (mCheckedIndex + 0.25f)); + mNewsSlidebarLine.setLayoutParams(mLayoutParams); + + view.postDelayed(new Runnable() { + @Override + public void run() { + EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mCheckedIndex)); + } + }, 100); + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels); + if (positionOffset != 0) { + mLayoutParams.leftMargin = (int) (mWidth * (position + positionOffset + 0.25f)); + mNewsSlidebarLine.setLayoutParams(mLayoutParams); +// } else { +// if (currentItem != mNewsVP.getCurrentItem()) { +// currentItem = mNewsVP.getCurrentItem(); +// EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, currentItem)); +// } + } + } + + @Override + protected void onPageChanged(int index) { + super.onPageChanged(index); + if (index == 0) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "1", "资讯"); + } else if (index == 1) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "2", "攻略"); + } else if (index == 2) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "3", "原创"); + } else if (index == 3) { + DataCollectionUtils.uploadPosition(getActivity(), "资讯", "4", "关注"); + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBUISwitch busNine) { + if (MainActivity.EB_MAINACTIVITY_TAG.equals(busNine.getFrom())) { + if (busNine.getPosition() == 1) { + EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mCheckedIndex)); + } + } + } + + +} diff --git a/app/src/main/java/com/gh/base/HomeFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java similarity index 58% rename from app/src/main/java/com/gh/base/HomeFragment.java rename to app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java index 570e080311..b27fe10d93 100644 --- a/app/src/main/java/com/gh/base/HomeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java @@ -1,22 +1,19 @@ -package com.gh.base; +package com.gh.gamecenter.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.ScaleAnimation; -import android.widget.LinearLayout; import android.widget.TextView; +import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.ConcernActivity; @@ -27,58 +24,47 @@ import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.PackageManager; -import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; +import butterknife.BindView; + /** * Created by LGT on 2016/9/9. * 工具栏 搜索控制 */ -public class HomeFragment extends Fragment implements View.OnClickListener, SearchBarHint { +public class SearchToolbarFragment extends BaseFragment implements View.OnClickListener, SearchBarHint { - protected View view; + @BindView(R.id.action_tip) + TextView mDownloadHintTv; - private TextView downloadHint; - private TextView searchHint; + @BindView(R.id.actionbar_search_input) + TextView mSearchHintTv; + + @BindView(R.id.actionbar_rl_download) + View mDownloadView; private AlphaAnimation mAlphaAnimation; - private ArrayList hintList; - private int hintIndex; + private ArrayList mHintList; + private int mHintIndex; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + protected int getLayoutId() { + return R.layout.fragment_toolbar; + } - if (savedInstanceState != null) { - hintList = savedInstanceState.getStringArrayList("hint"); - } + @Override + protected void initView(View view) { + super.initView(view); - hintIndex = 0; + initActionBar(view); - view = View.inflate(getActivity(), R.layout.fragment_home, null); - -// SharedPreferences sp = getActivity().getSharedPreferences( -// Config.PREFERENCE, Context.MODE_PRIVATE); - LinearLayout home_actionbar = (LinearLayout) view.findViewById(R.id.home_actionbar); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(getActivity(), 55)); - -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { -// int top = DisplayUtils.getStatusBarHeight(getResources()); -// home_actionbar.setPadding(0, top, 0, 0); -// lparams.height += top; -// } - home_actionbar.setLayoutParams(lparams); - - initActionBar(); - - final ScaleAnimation scaleAnimation = new ScaleAnimation(0.4f, 1.0f, 0.4f, 1.0f - , Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); + final ScaleAnimation scaleAnimation = new ScaleAnimation(0.4f, 1.0f, 0.4f, 1.0f, + Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation.setDuration(500); mAlphaAnimation = new AlphaAnimation(1f, 0.2f); @@ -94,7 +80,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear @Override public void onAnimationEnd(Animation animation) { if (mAlphaAnimation != null) { - searchHint.setAnimation(mAlphaAnimation); + mSearchHintTv.setAnimation(mAlphaAnimation); mAlphaAnimation.start(); } } @@ -114,14 +100,14 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear @Override public void onAnimationEnd(Animation animation) { // 切换数据 - if (hintIndex > hintList.size() - 1) { - hintIndex = 0; + if (mHintIndex > mHintList.size() - 1) { + mHintIndex = 0; } - searchHint.setHint(hintList.get(hintIndex)); - hintIndex++; + mSearchHintTv.setHint(mHintList.get(mHintIndex)); + mHintIndex++; if (scaleAnimation != null) { - searchHint.setAnimation(scaleAnimation); + mSearchHintTv.setAnimation(scaleAnimation); scaleAnimation.start(); } } @@ -132,69 +118,63 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear } }); - if (hintList != null && hintList.size() > 0) { - if (hintList.size() > 1) { - searchHint.setAnimation(mAlphaAnimation); + if (mHintList != null && mHintList.size() > 0) { + if (mHintList.size() > 1) { + mSearchHintTv.setAnimation(mAlphaAnimation); } else { - String hint = hintList.get(0); - searchHint.setHint(hint); + String hint = mHintList.get(0); + mSearchHintTv.setHint(hint); } } - EventBus.getDefault().register(this); } - @Nullable @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (savedInstanceState != null) { + mHintList = savedInstanceState.getStringArrayList("hint"); } - return view; + + mHintIndex = 0; + } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - if (hintList != null && !hintList.isEmpty()) { - outState.putStringArrayList("hint", hintList); + if (mHintList != null && !mHintList.isEmpty()) { + outState.putStringArrayList("hint", mHintList); } } - @Override - public void onDestroy() { - super.onDestroy(); - EventBus.getDefault().unregister(this); - } + private void initActionBar(View view) { + mDownloadView.setOnClickListener(this); - private void initActionBar() { - view.findViewById(R.id.actionbar_rl_download).setOnClickListener(this); view.findViewById(R.id.actionbar_iv_search).setOnClickListener(this); view.findViewById(R.id.actionbar_notification).setOnClickListener(this); view.findViewById(R.id.actionbar_search_rl).setOnClickListener(this); if (Config.isShow(getActivity())) { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.VISIBLE); + mDownloadView.setVisibility(View.VISIBLE); } else { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.GONE); + mDownloadView.setVisibility(View.GONE); } - downloadHint = (TextView) view.findViewById(R.id.action_tip); int updateSize = PackageManager.getUpdateListSize(); int downloadSize = DownloadManager.getInstance(getActivity()).getAll().size(); if (downloadSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(downloadSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(downloadSize)); } else if (updateSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(updateSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(updateSize)); } else { - downloadHint.setVisibility(View.GONE); + mDownloadHintTv.setVisibility(View.GONE); } - searchHint = (TextView) view.findViewById(R.id.actionbar_search_input); - searchHint.setOnClickListener(this); + mSearchHintTv.setOnClickListener(this); } @Override @@ -211,7 +191,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear Intent intent = new Intent(getActivity(), SearchActivity.class); intent.putExtra("clicked", true); - intent.putExtra("hint", searchHint.getHint().toString()); + intent.putExtra("hint", mSearchHintTv.getHint().toString()); intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(工具栏)"); startActivity(intent); } else if (id == R.id.actionbar_search_input || id == R.id.actionbar_search_rl) { @@ -220,7 +200,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear Intent intent = new Intent(getActivity(), SearchActivity.class); intent.putExtra("clicked", false); - intent.putExtra("hint", searchHint.getHint().toString()); + intent.putExtra("hint", mSearchHintTv.getHint().toString()); intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(工具栏)"); startActivity(intent); } else if (id == R.id.actionbar_notification) { @@ -238,9 +218,9 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear public void onEventMainThread(EBReuse reuse) { if ("Refresh".equals(reuse.getType())) { if (Config.isShow(getActivity())) { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.VISIBLE); + mDownloadView.setVisibility(View.VISIBLE); } else { - view.findViewById(R.id.actionbar_rl_download).setVisibility(View.GONE); + mDownloadView.setVisibility(View.GONE); } } } @@ -250,24 +230,24 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Sear int updateSize = PackageManager.getUpdateListSize(); int downloadSize = DownloadManager.getInstance(getActivity()).getAll().size(); if (downloadSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(downloadSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(downloadSize)); } else if (updateSize != 0) { - downloadHint.setVisibility(View.VISIBLE); - downloadHint.setText(String.valueOf(updateSize)); + mDownloadHintTv.setVisibility(View.VISIBLE); + mDownloadHintTv.setText(String.valueOf(updateSize)); } else { - downloadHint.setVisibility(View.GONE); + mDownloadHintTv.setVisibility(View.GONE); } } @Override public void setHint(ArrayList hint) { if (hint != null && hint.size() > 0) { - hintList = hint; - if (hint.size() == 1 && searchHint != null) { - searchHint.setHint(hintList.get(0)); - } else if (mAlphaAnimation != null && searchHint != null) { - searchHint.setAnimation(mAlphaAnimation); + mHintList = hint; + if (hint.size() == 1 && mSearchHintTv != null) { + mSearchHintTv.setHint(mHintList.get(0)); + } else if (mAlphaAnimation != null && mSearchHintTv != null) { + mSearchHintTv.setAnimation(mAlphaAnimation); } } } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java index 76c272e4e4..a01fa78a0c 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java @@ -11,18 +11,18 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.TextUtils; import android.util.DisplayMetrics; -import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; -import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; @@ -46,7 +46,6 @@ import com.gh.gamecenter.PluginActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ToolBoxActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.ImagePagerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder; @@ -61,7 +60,7 @@ import com.gh.gamecenter.entity.GameUpdateEntity; import com.gh.gamecenter.entity.SlideEntity; import com.gh.gamecenter.entity.SubjectDigestEntity; import com.gh.gamecenter.entity.SubjectEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.fragment.GameFragment; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackageManager; import com.gh.gamecenter.retrofit.Response; @@ -73,7 +72,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager; import retrofit2.HttpException; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; @@ -85,7 +83,7 @@ import rx.schedulers.Schedulers; public class GameFragmentAdapter extends BaseRecyclerAdapter { private GameFragment mGameFragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private SwipeRefreshLayout mSwipeRefreshLayout; @@ -107,9 +105,8 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { private boolean mIsOver; private boolean mIsInitPlugin; private boolean mIsAutoScroll; - private int mTopHeight; - GameFragmentAdapter(GameFragment gameFragment, SwipeRefreshLayout refreshLayout) { + public GameFragmentAdapter(GameFragment gameFragment, SwipeRefreshLayout refreshLayout) { super(gameFragment.getContext()); mGameFragment = gameFragment; @@ -136,11 +133,6 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { mIsInitPlugin = false; mIsAutoScroll = false; - DisplayMetrics outMetrics = new DisplayMetrics(); - gameFragment.getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - - mTopHeight = (int) (outMetrics.widthPixels / 16f * 10.5f); - initSubjectDigest(true); } @@ -148,7 +140,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { return mLocationMap; } - GameEntity getGameEntityByLocation(int location) { + public GameEntity getGameEntityByLocation(int location) { if (!mPluginList.isEmpty() && location > 1 && location <= 1 + mPluginList.size()) { return mPluginList.get(location - 2); @@ -169,7 +161,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { return null; } - void initSubjectDigest(final boolean isLoadMore) { + public void initSubjectDigest(final boolean isLoadMore) { RetrofitManager.getApi() .getSubjectDigest() .subscribeOn(Schedulers.io()) @@ -313,7 +305,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { }); } - void initPlugin() { + public void initPlugin() { if (mIsInitPlugin) { return; } @@ -441,7 +433,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { } } - void initItemCount() { + public void initItemCount() { int pluginSize = 0; if (!mPluginList.isEmpty()) { pluginSize += 1 + mPluginList.size(); @@ -460,52 +452,20 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == ItemViewType.GAME_SLIDE) { - View view = mLayoutInflater.inflate(R.layout.game_viewpager_item, parent, false); DisplayMetrics outMetrics = new DisplayMetrics(); mGameFragment.getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, mTopHeight); //整个头部大小16:10 viewpager大小16:7 - view.setLayoutParams(params); - - AutoScrollViewPager viewPager = (AutoScrollViewPager) view.findViewById(R.id.view_pager); - RelativeLayout.LayoutParams vpParams = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, (int) (outMetrics.widthPixels / 16f * 7f)); - viewPager.setLayoutParams(vpParams); - - RelativeLayout subjectRl = (RelativeLayout) view.findViewById(R.id.home_subject_rl); - RelativeLayout.LayoutParams subjectParams = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, (int) (outMetrics.widthPixels / 16f * 3.5f)); - subjectParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); - subjectRl.setLayoutParams(subjectParams); - - LinearLayout hint = (LinearLayout) view.findViewById(R.id.viewpager_ll_hint); - RelativeLayout.LayoutParams hintParams = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); - hintParams.setMargins(0, (int) (outMetrics.widthPixels / 16f * 6.5f), DisplayUtils.dip2px(mContext, 10), 0); - hintParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - hint.setLayoutParams(hintParams); - - return new GameViewPagerViewHolder(view); + return new GameViewPagerViewHolder(mLayoutInflater.inflate(R.layout.game_viewpager_item, parent, false), + outMetrics.widthPixels); } else if (viewType == ItemViewType.COLUMN_HEADER) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_head_item, parent, false); - return new GameHeadViewHolder(view); + return new GameHeadViewHolder(mLayoutInflater.inflate(R.layout.game_head_item, parent, false)); } else if (viewType == ItemViewType.GAME_NORMAL) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_normal_item, parent, false); - return new GameNormalViewHolder(view); + return new GameNormalViewHolder(mLayoutInflater.inflate(R.layout.game_normal_item, parent, false)); } else if (viewType == ItemViewType.GAME_TEST) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_test_item, parent, false); - return new GameTestViewHolder(view); + return new GameTestViewHolder(mLayoutInflater.inflate(R.layout.game_test_item, parent, false)); } else if (viewType == ItemViewType.GAME_IMAGE) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.game_image_item, parent, false); - return new GameImageViewHolder(view); + return new GameImageViewHolder(mLayoutInflater.inflate(R.layout.game_image_item, parent, false)); } else if (viewType == ItemViewType.LOADING) { - View view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.refresh_footerview, parent, false); - return new FooterViewHolder(view); + return new FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)); } return null; } @@ -603,18 +563,18 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { if (mSlideList.size() != 0 && viewHolder.viewPager.getAdapter() == null) { viewHolder.viewpager_ll_hint.removeAllViews(); + int margin = DisplayUtils.dip2px(mContext, 6); for (int i = 0, size = mSlideList.size(); i < size; i++) { ImageView imageView = new ImageView(mContext); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - DisplayUtils.dip2px(mContext, 6), DisplayUtils.dip2px(mContext, 6)); - lparams.bottomMargin = DisplayUtils.dip2px(mContext, 6); + LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(margin, margin); +// lparams.bottomMargin = DisplayUtils.dip2px(mContext, 6); if (i == 0) { imageView.setImageResource(R.drawable.oval_hint_up); } else { imageView.setImageResource(R.drawable.oval_hint_dn); } if (i != 0) { - lparams.leftMargin = DisplayUtils.dip2px(mContext, 6); + lparams.leftMargin = margin; } imageView.setLayoutParams(lparams); viewHolder.viewpager_ll_hint.addView(imageView); @@ -1080,21 +1040,21 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { }); } - void startAutoScroll() { + public void startAutoScroll() { mIsAutoScroll = true; notifyItemChanged(0); } - void stopAutoScroll() { + public void stopAutoScroll() { mIsAutoScroll = false; notifyItemChanged(0); } - List getPluginList() { + public List getPluginList() { return mPluginList; } - List getSubjectList() { + public List getSubjectList() { return mSubjectList; } @@ -1106,7 +1066,7 @@ public class GameFragmentAdapter extends BaseRecyclerAdapter { mIsNetworkError = networkError; } - boolean isInitPlugin() { + public boolean isInitPlugin() { return mIsInitPlugin; } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java index 5f4e131cda..35cb11fb9b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuLiAdapter.java @@ -32,7 +32,7 @@ import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.entity.GameDetailEntity; @@ -42,6 +42,12 @@ import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.ToolBoxEntity; import com.gh.gamecenter.eventbus.EBReuse; +import com.gh.gamecenter.adapter.viewholder.GameDetaiLibaoViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailFuLiViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailKaiFuViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailNoticeViewHolder; +import com.gh.gamecenter.adapter.viewholder.GameDetailPluginViewHolder; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java index 257b975fc8..0729d73060 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/FuliFragment.java @@ -3,8 +3,9 @@ package com.gh.gamecenter.gamedetail; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; +import android.view.View; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.MeasureLinearLayoutManager; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.GameDetailActivity; @@ -29,12 +30,13 @@ public class FuliFragment extends BaseFragment { private boolean isCanScroll; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_fuli); - - isCanScroll = true; + protected int getLayoutId() { + return R.layout.fragment_fuli; + } + @Override + protected void initView(View view) { + super.initView(view); mRecyclerView = (RecyclerView) view.findViewById(R.id.fm_fuli_rv); mAdapter = new FuLiAdapter(getContext(), mEntrance); @@ -61,6 +63,14 @@ public class FuliFragment extends BaseFragment { }); } + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + isCanScroll = true; + + } + public int getHeight() { return layoutManager.getRvHeight(); } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java index d1b1dfc202..8ccf42e86a 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailGameTagAdapter.java @@ -2,32 +2,30 @@ package com.gh.gamecenter.gamedetail; import android.content.Context; import android.graphics.Color; -import android.support.v7.widget.RecyclerView; -import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; -import com.gh.gamecenter.gamedetail.GameDetailGameTagAdapter.TypeViewHolder; +import com.gh.base.adapter.BaseRecyclerAdapter; +import com.gh.gamecenter.adapter.viewholder.GameDetailGameTagTypeViewHolder; import java.util.List; /** * Created by khy on 2017/3/28. */ -public class GameDetailGameTagAdapter extends BaseRecyclerAdapter { +public class GameDetailGameTagAdapter extends BaseRecyclerAdapter { private List mGameType; public GameDetailGameTagAdapter(Context context, List gameType) { super(context); - this.mGameType = gameType; + mGameType = gameType; } @Override - public TypeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + public GameDetailGameTagTypeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { TextView textView = new TextView(mContext); textView.setTextColor(Color.WHITE); @@ -35,11 +33,11 @@ public class GameDetailGameTagAdapter extends BaseRecyclerAdapter { private List mLibaoList; - private String entrance; + private String mEntrance; GameLibaoGalleryAdapter(Context context, List libaoList, String entrance) { super(context); - this.mLibaoList = libaoList; - this.entrance = entrance; + mLibaoList = libaoList; + mEntrance = entrance; } @Override @@ -38,7 +37,7 @@ class GameLibaoGalleryAdapter extends BaseRecyclerAdapter { private List mGameList; - private String entrance; + private String mEntrance; private String name; private int position_plugin = -1; @@ -76,7 +81,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { public XinXiAdapter(Context context, String entrance) { super(context); - this.entrance = entrance; + mEntrance = entrance; mGameList = new ArrayList<>(); mGameDetailEntity = (GameDetailEntity) AppController.get("GameDetailEntity", false); @@ -290,7 +295,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { return new GameDetailGameTagViewHolder(view); case 6: view = mLayoutInflater.inflate(R.layout.gamedetail_item_game, parent, false); - return new GameDetailGameViewHolder(view); + return new ReuseViewHolder(view); case 100: view = mLayoutInflater.inflate(R.layout.game_normal_item, parent, false); return new GameNormalViewHolder(view); @@ -453,7 +458,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter { new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); viewHolder.gamedetail_item_intro_gallery.setAdapter( new GameGalleryAdapter(mContext, mGameDetailEntity.getGallery(), - StringUtils.buildString(entrance, "+(游戏详情[", mGameEntity.getName(), "]:游戏介绍)"))); + StringUtils.buildString(mEntrance, "+(游戏详情[", mGameEntity.getName(), "]:游戏介绍)"))); viewHolder.gamedetail_item_intro_gallery.addItemDecoration( new HorizontalItemDecoration(mContext, 1, mGameDetailEntity.getGallery().size())); } @@ -499,12 +504,12 @@ public class XinXiAdapter extends BaseRecyclerAdapter { DataCollectionUtils.uploadClick(mContext, "列表", name, gameEntity.getName()); GameDetailActivity.startGameDetailActivity(mContext, gameEntity, - StringUtils.buildString(entrance, "+(", name, "[", String.valueOf(position + 1), "])")); + StringUtils.buildString(mEntrance, "+(", name, "[", String.valueOf(position + 1), "])")); } }); DownloadItemUtils.setOnClickListener(mContext, holder.gameDownloadBtn, gameEntity, position, this, - StringUtils.buildString(entrance, "+(", name, "[", String.valueOf(position + 1), "])"), + StringUtils.buildString(mEntrance, "+(", name, "[", String.valueOf(position + 1), "])"), StringUtils.buildString(name, ":", gameEntity.getName())); DownloadItemUtils.updateItem(mContext, gameEntity, holder, true); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java index 3252fce7a4..b84e1eed6e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/XinXiFragment.java @@ -1,12 +1,11 @@ package com.gh.gamecenter.gamedetail; -import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.View; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DownloadItemUtils; import com.gh.download.DataWatcher; import com.gh.download.DownloadEntity; @@ -53,10 +52,13 @@ public class XinXiFragment extends BaseFragment { }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_fuli); + protected int getLayoutId() { + return R.layout.fragment_fuli; + } + @Override + protected void initView(View view) { + super.initView(view); mRecyclerView = (RecyclerView) view.findViewById(R.id.fm_fuli_rv); mAdapter = new XinXiAdapter(getContext(), mEntrance); diff --git a/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java b/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java index 88a382a5a1..bfb001f451 100644 --- a/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java +++ b/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java @@ -9,10 +9,7 @@ import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.net.http.SslError; -import android.os.AsyncTask; import android.os.Build; -import android.os.Handler; -import android.os.Looper; import android.text.TextUtils; import android.view.View; import android.webkit.JsPromptResult; @@ -25,22 +22,14 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import com.gh.common.util.AppDebugConfig; -import com.gh.common.util.RuntimeUtils; -import com.gh.common.util.Utils; import org.json.JSONArray; import org.json.JSONObject; -import java.io.IOException; import java.lang.reflect.Method; -import java.net.InetSocketAddress; -import java.net.Socket; import java.util.HashMap; import java.util.Iterator; -import java.util.Map; import java.util.Map.Entry; -import java.util.Timer; -import java.util.TimerTask; /** * 这个类解析了Android 4.0以下的WebView注入Javascript对象引发的安全漏洞。 diff --git a/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java b/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java index b1fe6b97b0..caca4441db 100644 --- a/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java +++ b/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.geetest; -import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; @@ -53,7 +52,7 @@ public class GeetestUtils { * @param context * @param listener */ - public void showDialog(Activity context, GeetestListener listener) { + public void showDialog(Context context, GeetestListener listener) { mProgressDialog = ProgressDialog.show(context, null, "Loading", true, true); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index 709e6fb78d..d840ff36ee 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -11,7 +11,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.EntranceUtils; import com.gh.common.view.SwipeLayout; import com.gh.common.view.VerticalItemDecoration; @@ -31,7 +31,7 @@ import butterknife.OnClick; * Created by khy on 2016/12/12. */ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, - Libao1FragmentAdapter.OnSearchCallBackListener { + OnSearchCallBackListener { @BindView(R.id.libao1_srl_refresh) SwipeRefreshLayout mRefreshLayout; @@ -71,15 +71,13 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O private LinearLayoutManager mHistoryLm; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_libao1); - - mIsSearch = false; - isDone = false; - historyIsEmpty = false; - mSearckKey = null; + protected int getLayoutId() { + return R.layout.fragment_libao1; + } + @Override + protected void initView(View view) { + super.initView(view); mRefreshLayout.setColorSchemeResources(R.color.theme); mRefreshLayout.setOnRefreshListener(this); @@ -89,7 +87,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); - adapter = new Libao1FragmentAdapter(Libao1Fragment.this, mIsSearch, mSearckKey, mEntrance); + adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, mSearckKey, mEntrance); mNormalAdapter = adapter; mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, false)); mRecyclerView.setAdapter(adapter); @@ -187,6 +185,16 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O swipeLayout.setEnabled(mHistoryLm.findFirstCompletelyVisibleItemPosition() == 0); } }); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mIsSearch = false; + isDone = false; + historyIsEmpty = false; + mSearckKey = null; } @@ -247,7 +255,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } @OnClick(R.id.reuse_no_connection) @@ -256,7 +264,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerView.setVisibility(View.VISIBLE); mLoadingLayout.setVisibility(View.VISIBLE); mNoConnectionLayout.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } @Override @@ -278,13 +286,13 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O private void changeAdapter(boolean isRefresh) { String entrance = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_ENTRANCE); if (mIsSearch) { - adapter = new Libao1FragmentAdapter(Libao1Fragment.this, mIsSearch, mSearckKey, entrance); + adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, mSearckKey, entrance); } else { if (mNormalAdapter != null && !isRefresh) { adapter = mNormalAdapter; // adapter.setSearchKey(mSearckKey); } else { - adapter = new Libao1FragmentAdapter(Libao1Fragment.this, mIsSearch, null, entrance); + adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, null, entrance); mNormalAdapter = adapter; adapter.addLibaoList(false, 0); } diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java index f7f3a9cc7c..828446badb 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.libao; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; @@ -10,23 +9,21 @@ import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; -import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; -import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoSearchViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -46,28 +43,29 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { private final static int ITEM_SEARCH = 1; private final static int ITEM_FOOTER = 1; - private Libao1Fragment libao1Fragment; - private OnCallBackListener mCallBackListener; + private Libao1Fragment mLibao1Fragment; + private OnRequestCallBackListener mCallBackListener; private OnSearchCallBackListener mSearchListener; private List mLibaoList; private LibaoDao mLibaoDao; private String mSerchKey; - private String entrance; + private String mEntrance; private int skipPosition; private boolean mIsSearch; private boolean isLoading; private boolean isOver; private boolean isNetworkError; - Libao1FragmentAdapter(Libao1Fragment libao1Fragment, boolean isSearch, String key, String entrance) { - super(libao1Fragment.getContext()); - this.libao1Fragment = libao1Fragment; - this.mCallBackListener = libao1Fragment; - this.mSearchListener = libao1Fragment; - this.mIsSearch = isSearch; - this.mSerchKey = key; + Libao1FragmentAdapter(Libao1Fragment libao1Fragment,OnRequestCallBackListener requestCallBackListener, + OnSearchCallBackListener searchListener, boolean isSearch, String key, String entrance) { + super(libao1Fragment.getActivity()); + mLibao1Fragment = libao1Fragment; + mCallBackListener = requestCallBackListener; + mSearchListener = searchListener; + mIsSearch = isSearch; + mSerchKey = key; - this.entrance = entrance; + mEntrance = entrance; mLibaoList = new ArrayList<>(); @@ -240,9 +238,7 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { holder.libaoDes.setText(content); if (libaoEntity.getStatus() != null) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)"); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)"); // holder.libaoBtnStatus.setClickable(false); String tv = holder.libaoBtnStatus.getText().toString(); if ("已结束".equals(tv) || "已领光".equals(tv)) { @@ -251,11 +247,7 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { holder.libaoBtnStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-最新)"); - libao1Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } @@ -264,15 +256,17 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-最新)"); - libao1Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } + public void startLibaoDetailActivity(int position, LibaoEntity libaoEntity) { + skipPosition = position; + Intent intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-最新)"); + mLibao1Fragment.startActivityForResult(intent, 0x123); + } + private void initSearchViewHolder(final LibaoSearchViewHolder holder) { if (mSerchKey != null) { holder.searchEt.setText(mSerchKey); @@ -309,7 +303,7 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(libao1Fragment.getActivity().getWindow().getDecorView().getWindowToken(), 0); + imm.hideSoftInputFromWindow(mLibao1Fragment.getActivity().getWindow().getDecorView().getWindowToken(), 0); } } }); @@ -371,7 +365,4 @@ class Libao1FragmentAdapter extends BaseRecyclerAdapter { skipPosition = position; } - public interface OnSearchCallBackListener { - void search(boolean isSearch, String searchKey); - } } diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java index ecf4b1da37..50a9fe81f0 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.LibaoActivity; import com.gh.gamecenter.R; @@ -53,11 +53,13 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O private boolean isConcernChanged; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_libao2); + protected int getLayoutId() { + return R.layout.fragment_libao2; + } - isConcernChanged = false; + @Override + protected void initView(View view) { + super.initView(view); mRefreshLayout.setColorSchemeResources(R.color.theme); mRefreshLayout.setOnRefreshListener(this); @@ -82,6 +84,14 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O }); } + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + isConcernChanged = false; + + } + @Override public void loadDone() { // 数据加载成功回调 mRefreshLayout.setRefreshing(false); @@ -122,7 +132,7 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } @OnClick(R.id.reuse_no_connection) @@ -131,7 +141,7 @@ public class Libao2Fragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerView.setVisibility(View.VISIBLE); mLoadingLayout.setVisibility(View.VISIBLE); mNoConnectionLayout.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // 资讯Fragment界面切换事件 diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java index 263dc97383..6fa966ac3e 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java @@ -1,6 +1,5 @@ package com.gh.gamecenter.libao; -import android.app.Activity; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; @@ -10,7 +9,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ConcernUtils; import com.gh.common.util.DisplayUtils; @@ -22,14 +22,12 @@ import com.gh.common.util.PlatformUtils; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.newsdetail.NewsDetailCommentViewHolder; import com.gh.gamecenter.retrofit.ObservableUtil; @@ -56,9 +54,9 @@ import rx.schedulers.Schedulers; */ class Libao2FragmentAdapter extends BaseRecyclerAdapter { - private Libao2Fragment libao2Fragment; + private Libao2Fragment mLibao2Fragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mLibaoList; private List gameIdList; @@ -70,7 +68,7 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { private String key; private String ids; - private String entrance; + private String mEntrance; private int skipPosition; @@ -78,11 +76,11 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { Libao2FragmentAdapter(Libao2Fragment libao2Fragment, String entrance) { - super(libao2Fragment.getContext()); - this.libao2Fragment = libao2Fragment; - this.mCallBackListener = libao2Fragment; + super(libao2Fragment.getActivity()); + mLibao2Fragment = libao2Fragment; + mCallBackListener = libao2Fragment; - this.entrance = entrance; + mEntrance = entrance; mLibaoList = new ArrayList<>(); gameIdList = new ArrayList<>(); @@ -343,9 +341,7 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { holder.libaoDes.setText(content); if (libaoEntity.getStatus() != null) { - if (mContext instanceof Activity) { - LibaoUtils.initLibaoBtn((Activity) mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-关注)"); - } + LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-关注)"); holder.libaoBtnStatus.setClickable(false); String tv = holder.libaoBtnStatus.getText().toString(); if ("已结束".equals(tv) || "已领光".equals(tv)) { @@ -354,11 +350,7 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { holder.libaoBtnStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-关注)"); - libao2Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } @@ -367,15 +359,17 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - skipPosition = position; - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-关注)"); - libao2Fragment.startActivityForResult(intent, 0x123); + startLibaoDetailActivity(position, libaoEntity); } }); } + public void startLibaoDetailActivity(int position, LibaoEntity libaoEntity) { + skipPosition = position; + Intent intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-关注)"); + mLibao2Fragment.startActivityForResult(intent, 0x123); + } + private void initSkipCommentViewHolder(NewsDetailCommentViewHolder holder) { LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT , ViewGroup.LayoutParams.WRAP_CONTENT); @@ -387,8 +381,8 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { @Override public void onClick(View v) { Intent intent = new Intent(mContext, ConcernActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-关注)"); - libao2Fragment.startActivityForResult(intent, 0x223); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, mEntrance + "+(礼包中心-关注)"); + mLibao2Fragment.startActivityForResult(intent, 0x223); } }); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java index 8645947490..71af321214 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java @@ -9,7 +9,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBReuse; @@ -39,16 +39,20 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O Runnable runnable = new Runnable() { @Override public void run() { - adapter = new Libao3FragmentAdapter(Libao3Fragment.this, mEntrance); + adapter = new Libao3FragmentAdapter(getActivity(), Libao3Fragment.this, mEntrance); mRecyclerView.setAdapter(adapter); mRefreshLayout.setRefreshing(false); } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_libao3; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_libao3); mRefreshLayout.setColorSchemeResources(R.color.theme); mRefreshLayout.setOnRefreshListener(this); @@ -56,7 +60,7 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); - adapter = new Libao3FragmentAdapter(Libao3Fragment.this, mEntrance); + adapter = new Libao3FragmentAdapter(getActivity(), this, mEntrance); mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, true)); mRecyclerView.setAdapter(adapter); @@ -79,7 +83,7 @@ public class Libao3Fragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // 礼包数据库数量改变事件 diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java index f4256a7c9f..594579259d 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java @@ -1,15 +1,15 @@ package com.gh.gamecenter.libao; -import android.content.Intent; +import android.content.Context; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.util.DialogUtils; -import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.LibaoUtils; import com.gh.common.util.PlatformUtils; @@ -17,12 +17,10 @@ import com.gh.common.util.StringUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.gamecenter.listener.OnCallBackListener; import java.util.ArrayList; import java.util.List; @@ -34,20 +32,20 @@ import retrofit2.HttpException; */ class Libao3FragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mLibaoList; private List mLibaoInfos; private LibaoDao mLibaoDao; - private String entrance; + private String mEntrance; - Libao3FragmentAdapter(Libao3Fragment libao3Fragment, String entrance) { - super(libao3Fragment.getContext()); - this.mCallBackListener = libao3Fragment; + Libao3FragmentAdapter(Context context, OnRequestCallBackListener listener, String entrance) { + super(context); + mCallBackListener = listener; - this.entrance = entrance; + mEntrance = entrance; mLibaoList = new ArrayList<>(); @@ -135,10 +133,7 @@ class Libao3FragmentAdapter extends BaseRecyclerAdapter { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - AppController.put("libaoEntity", libaoEntity); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance + "+(礼包中心-存号箱)"); - mContext.startActivity(intent); + mContext.startActivity(LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-存号箱)")); } }); diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java index 08ba09740a..d53958363b 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java @@ -13,13 +13,13 @@ import com.gh.common.constant.ItemViewType; import com.gh.common.util.DisplayUtils; import com.gh.common.util.LibaoUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; import com.gh.gamecenter.db.LibaoDao; import com.gh.gamecenter.db.info.LibaoInfo; import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -36,7 +36,7 @@ import rx.schedulers.Schedulers; */ public class LibaoHistoryAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mLibaoList; private LibaoDao mLibaoDao; diff --git a/app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java b/app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java new file mode 100644 index 0000000000..f426934196 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/libao/OnSearchCallBackListener.java @@ -0,0 +1,5 @@ +package com.gh.gamecenter.libao; + +public interface OnSearchCallBackListener { + void search(boolean isSearch, String searchKey); +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java index 6ca556cd41..2808189945 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragment.java @@ -11,7 +11,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -56,10 +56,14 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_normal_message; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_normal_message); mNoneDataTv.setText("暂无评论消息"); @@ -126,7 +130,7 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. mRecyclerview.setVisibility(View.VISIBLE); mLoadingPb.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // Fragment界面切换事件 @@ -141,6 +145,6 @@ public class CommentFragment extends BaseFragment implements SwipeRefreshLayout. @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java index 6054df4286..826ddccf0d 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentFragmentAdapter.java @@ -12,12 +12,12 @@ import com.gh.common.util.TokenUtils; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.entity.MessageCommentEntity; import com.gh.gamecenter.entity.UserEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -38,7 +38,7 @@ import rx.schedulers.Schedulers; */ public class CommentFragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private CommentFragment fragment; @@ -92,7 +92,7 @@ public class CommentFragmentAdapter extends BaseRecyclerAdapter { } mCommentList.addAll(response); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(mCommentList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java index eecd84f4b6..de8601ae74 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentNormalViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.message; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/6. * 消息-评论实体 */ -public class CommentNormalViewHolder extends RecyclerView.ViewHolder { +public class CommentNormalViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.message_comment_user_icon) public SimpleDraweeView userIcon; @@ -31,6 +30,5 @@ public class CommentNormalViewHolder extends RecyclerView.ViewHolder { public CommentNormalViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java index af0a03c2c6..c65a94fee6 100644 --- a/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/CommentVoteViewHolder.java @@ -1,20 +1,19 @@ package com.gh.gamecenter.message; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/6. * 消息-评论实体 */ -public class CommentVoteViewHolder extends RecyclerView.ViewHolder { +public class CommentVoteViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.message_comment_user_icon) public SimpleDraweeView userIcon; @@ -27,6 +26,5 @@ public class CommentVoteViewHolder extends RecyclerView.ViewHolder { public CommentVoteViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java index d4636eea03..5d326a1584 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java @@ -10,7 +10,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -53,10 +53,14 @@ public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnR } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_normal_message; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_normal_message); mNoneDataTv.setText("暂无客服消息"); @@ -115,7 +119,7 @@ public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnR mRecyclerview.setVisibility(View.VISIBLE); mLoadingPb.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // Fragment界面切换事件 @@ -130,6 +134,6 @@ public class KeFuFragment extends BaseFragment implements SwipeRefreshLayout.OnR @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java index 3d6814b031..b7b57087a1 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java @@ -5,7 +5,6 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.Html; import android.text.TextUtils; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -19,7 +18,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.KeFuMarkReadDao; import com.gh.gamecenter.db.MessageMarkReadDao; @@ -27,7 +26,7 @@ import com.gh.gamecenter.db.info.KeFuMarkReadInfo; import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.entity.MessageKeFuEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; @@ -55,7 +54,7 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { private KeFuFragment fragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private MessageMarkReadDao mReadDao; private KeFuMarkReadDao mKeFuReadDao; @@ -118,10 +117,10 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { } mKeFuList.addAll(response); -// if (!fragment.isHidden() && !fragment.isEverpause()) { +// if (!fragment.isHidden() && !fragment.isEverPause()) { // notifyItemRangeInserted(mKeFuList.size() - response.size(), response.size()); // } else { - notifyDataSetChanged(); + notifyDataSetChanged(); // } if (mReceiveIds.size() > 0) { @@ -193,16 +192,22 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 0) { - View view = LayoutInflater.from(mContext).inflate(R.layout.refresh_footerview, parent, false); + View view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); return new FooterViewHolder(view); } else { - View view = LayoutInflater.from(mContext).inflate(R.layout.message_kefu_item, parent, false); + View view = mLayoutInflater.inflate(R.layout.message_kefu_item, parent, false); return new KeFuViewHolder(view); } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { +// switch (getItemViewType(position)) { +// case 0: +// break; +// case 1: +// break; +// } if (holder instanceof KeFuViewHolder) { MessageKeFuEntity keFuEntity = mKeFuList.get(position); KeFuViewHolder viewHolder = (KeFuViewHolder) holder; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java index 288080a4cf..0e0b6c6115 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java @@ -1,18 +1,17 @@ package com.gh.gamecenter.message; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/10. */ -public class KeFuViewHolder extends RecyclerView.ViewHolder { +public class KeFuViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.message_kefu_time) public TextView time; @@ -27,6 +26,6 @@ public class KeFuViewHolder extends RecyclerView.ViewHolder { public KeFuViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } + } diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index 9347d72a82..9c3e4f25ad 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -4,20 +4,16 @@ import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.view.ViewPager; import android.util.DisplayMetrics; import android.view.View; import android.widget.LinearLayout; -import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; import com.gh.common.util.DisplayUtils; import com.gh.common.util.TokenUtils; import com.gh.common.util.Utils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.FragmentAdapter; import com.gh.gamecenter.db.KeFuMarkReadDao; import com.gh.gamecenter.entity.MessageUnreadEntity; import com.gh.gamecenter.eventbus.EBReuse; @@ -29,11 +25,9 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import java.util.ArrayList; import java.util.List; import butterknife.BindView; -import butterknife.OnClick; import okhttp3.ResponseBody; import retrofit2.HttpException; import rx.Observable; @@ -45,71 +39,72 @@ import rx.schedulers.Schedulers; * Created by khy on 2017/4/5. * 首页-消息 */ -public class MessageFragment extends BaseFragment implements ViewPager.OnPageChangeListener { +public class MessageFragment extends BaseFragment_ViewPager_Checkable { public static final String MESSAGE_READ_OVER = "messageReadOver"; public static final String EB_MESSAGEFRAGMENT_TAG = "MessageFragment"; - @BindView(R.id.message_comment_tv) - TextView mMessageCommentTv; + @BindView(R.id.message_comment_hint) TextView mMessageCommentHint; - @BindView(R.id.message_comment_ll) - LinearLayout mMessageCommentLl; - @BindView(R.id.message_kefu_tv) - TextView mMessageKefuTv; + @BindView(R.id.message_kefu_hint) View mMessageKefuHint; - @BindView(R.id.message_kefu_rl) - RelativeLayout mMessageKefuRl; + @BindView(R.id.message_slide_line) View mMessageSlideLine; - @BindView(R.id.meaasge_viewPager) - ViewPager mMeaasgeViewPager; - private LinearLayout.LayoutParams lparams; - private int width; + + private LinearLayout.LayoutParams mLayoutParams; + private int mWidth; private int mKeFuUnreadCount; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_message); + protected int getLayoutId() { + return R.layout.fragment_message; + } - LinearLayout title = (LinearLayout) view.findViewById(R.id.actionbar_title_ll); - LinearLayout.LayoutParams tparams = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(getActivity(), 55)); + @Override + protected int getCheckableGroupId() { + return R.id.lightgame_tab_container; + } - title.setLayoutParams(tparams); + @Override + protected int getViewPagerId() { + return R.id.lightgame_tab_viewpager; + } + @Override + protected void initFragmentList(List fragments) { + fragments.add(new CommentFragment()); + fragments.add(new KeFuFragment()); + } + + @Override + protected void initView(View view) { + super.initView(view); DisplayMetrics outMetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - width = outMetrics.widthPixels / 2; - lparams = new LinearLayout.LayoutParams((int) (width * 0.6), - DisplayUtils.dip2px(getContext(), 2)); - lparams.leftMargin = (int) (width * (0 + 0.2f)); - mMessageSlideLine.setLayoutParams(lparams); + mWidth = outMetrics.widthPixels / 2; + mLayoutParams = new LinearLayout.LayoutParams((int) (mWidth * 0.6), DisplayUtils.dip2px(getContext(), 2)); + mLayoutParams.leftMargin = (int) (mWidth * (0 + 0.2f)); + mMessageSlideLine.setLayoutParams(mLayoutParams); - mMessageCommentTv.setSelected(true); + initMessageUnread(getContext(), true); - List list = new ArrayList<>(); - list.add(new CommentFragment()); - list.add(new KeFuFragment()); - mMeaasgeViewPager.setAdapter(new FragmentAdapter(getChildFragmentManager(), list)); - mMeaasgeViewPager.addOnPageChangeListener(this); - mMeaasgeViewPager.setCurrentItem(0); + } - initMessageUnread(true); + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); view.postDelayed(new Runnable() { @Override public void run() { - EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, mMeaasgeViewPager.getCurrentItem())); + EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, mCheckedIndex)); } }, 100); } - private void initMessageUnread(boolean isCheck) { - Context context = getContext(); - if (context == null) return; + private void initMessageUnread(final Context context, boolean isCheck) { TokenUtils.getToken(context, isCheck) .flatMap(new Func1>() { @Override @@ -129,7 +124,7 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha } if (response.getKefuList() != null && response.getKefuList().size() > 0) { - KeFuMarkReadDao dao = new KeFuMarkReadDao(getContext()); + KeFuMarkReadDao dao = new KeFuMarkReadDao(context); for (int i = 0; i < response.getKefuList().size(); i++) { if (dao.isMarkRead(response.getKefuList().get(i))) { response.getKefuList().remove(i); @@ -147,7 +142,7 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha @Override public void onFailure(HttpException e) { if (e != null && e.code() == 401) { - initMessageUnread(false); + initMessageUnread(context, false); } } }); @@ -156,27 +151,23 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha // 隐藏未读提示 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch reuse) { - if ("kefuMarkReadCount".equals(reuse.getFrom()) - && reuse.getPosition() == mKeFuUnreadCount) { + if ("kefuMarkReadCount".equals(reuse.getFrom()) && reuse.getPosition() == mKeFuUnreadCount) { mMessageKefuHint.setVisibility(View.GONE); - if (mMessageKefuHint.getVisibility() == View.GONE - && mMessageCommentHint.getVisibility() == View.GONE) { + if (mMessageKefuHint.getVisibility() == View.GONE && mMessageCommentHint.getVisibility() == View.GONE) { EventBus.getDefault().post(new EBReuse(MESSAGE_READ_OVER)); } - } else if ("commentMarkRead".equals(reuse.getFrom()) - && mMessageCommentHint.getVisibility() == View.VISIBLE) { + } else if ("commentMarkRead".equals(reuse.getFrom()) && mMessageCommentHint.getVisibility() == View.VISIBLE) { mMessageCommentHint.setVisibility(View.GONE); - postMarkCommentRead(true); - if (mMessageKefuHint.getVisibility() == View.GONE - && mMessageCommentHint.getVisibility() == View.GONE) { + postMarkCommentRead(getContext(), true); + if (mMessageKefuHint.getVisibility() == View.GONE && mMessageCommentHint.getVisibility() == View.GONE) { EventBus.getDefault().post(new EBReuse(MESSAGE_READ_OVER)); } } } - private void postMarkCommentRead(boolean isCheck) { + private void postMarkCommentRead(final Context context, boolean isCheck) { TokenUtils - .getToken(getContext(), isCheck) + .getToken(context, isCheck) .flatMap(new Func1>() { @Override public Observable call(String token) { @@ -196,67 +187,25 @@ public class MessageFragment extends BaseFragment implements ViewPager.OnPageCha public void onFailure(HttpException e) { super.onFailure(e); if (e != null && e.code() == 401) { - postMarkCommentRead(false); + postMarkCommentRead(context, false); } } }); } - - @OnClick({R.id.message_comment_ll, R.id.message_kefu_rl}) - public void onViewClicked(View view) { - switch (view.getId()) { - case R.id.message_comment_ll: - mMeaasgeViewPager.setCurrentItem(0); - break; - case R.id.message_kefu_rl: - mMeaasgeViewPager.setCurrentItem(1); - break; - } - } - @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels); if (positionOffset != 0) { - lparams.leftMargin = (int) (width * (position + positionOffset + 0.2f)); - mMessageSlideLine.setLayoutParams(lparams); + mLayoutParams.leftMargin = (int) (mWidth * (position + positionOffset + 0.2f)); + mMessageSlideLine.setLayoutParams(mLayoutParams); } } @Override - public void onPageSelected(int position) { - if (position == 0) { - EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, 0)); - mMessageCommentTv.setSelected(true); - mMessageKefuTv.setSelected(false); - } else if (position == 1) { - EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, 1)); - mMessageCommentTv.setSelected(false); - mMessageKefuTv.setSelected(true); - } + protected void onPageChanged(int index) { + super.onPageChanged(index); + EventBus.getDefault().post(new EBUISwitch(EB_MESSAGEFRAGMENT_TAG, index)); } - @Override - public void onPageScrollStateChanged(int state) { - - } - - @Override - public void onHiddenChanged(boolean hidden) { - super.onHiddenChanged(hidden); - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - List list = getChildFragmentManager().getFragments(); - if (list != null) { - if (hidden) { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.hide(fragment); - } - } else { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.show(fragment); - } - } - } - transaction.commit(); - } } diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java index fc9b623216..0737b98149 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragment.java @@ -10,7 +10,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -53,10 +53,14 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_normal_message; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_normal_message); mNoneDataTv.setText("暂无公告消息"); @@ -113,7 +117,7 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O mRecyclerview.setVisibility(View.VISIBLE); mLoadingPb.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } // Fragment界面切换事件 @@ -128,6 +132,6 @@ public class NoticeFragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void onRefresh() { - view.postDelayed(runnable, 1000); + postDelayedRunnable(runnable, 1000); } } diff --git a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java index 3583ff992a..8b2396d1ba 100644 --- a/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/NoticeFragmentAdapter.java @@ -18,7 +18,7 @@ import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.db.MessageMarkReadDao; import com.gh.gamecenter.db.NoticeMarkReadDao; @@ -26,7 +26,7 @@ import com.gh.gamecenter.db.info.MessageMarkReadInfo; import com.gh.gamecenter.db.info.NoticeMarkReadInfo; import com.gh.gamecenter.entity.MessageNoticeEntity; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.google.gson.Gson; @@ -53,7 +53,7 @@ import rx.schedulers.Schedulers; public class NoticeFragmentAdapter extends BaseRecyclerAdapter { private NoticeFragment fragment; - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private MessageMarkReadDao mReadDao; private NoticeMarkReadDao mNoticReadDao; @@ -118,7 +118,7 @@ public class NoticeFragmentAdapter extends BaseRecyclerAdapter { } mNoticeList.addAll(response); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(mNoticeList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java index 06b710a335..4c370dbcf5 100644 --- a/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/WenDaViewHolder.java @@ -1,39 +1,37 @@ -package com.gh.gamecenter.message; - -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.TextView; - -import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.gamecenter.R; - -import butterknife.BindView; -import butterknife.ButterKnife; - -/** - * Created by khy on 2017/4/5. - */ -public class WenDaViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.wenda_user_icon) - public SimpleDraweeView userIcon; - @BindView(R.id.wenda_user_name) - public TextView userName; - @BindView(R.id.wenda_request_control) - public TextView requestControl; - @BindView(R.id.wenda_comment_answer) - public TextView commentAnswer; - @BindView(R.id.wenda_game_icon) - public SimpleDraweeView gameIcon; - @BindView(R.id.wenda_content) - public TextView wendaContent; - @BindView(R.id.wenda_comment) - public TextView wendaComment; - @BindView(R.id.wenda_time) - public TextView wendaTime; - - public WenDaViewHolder(View itemView) { - super(itemView); - ButterKnife.bind(this, itemView); - } -} +//package com.gh.gamecenter.message; +// +//import android.view.View; +//import android.widget.TextView; +// +//import com.facebook.drawee.view.SimpleDraweeView; +//import com.gh.base.BaseRecyclerViewHolder; +//import com.gh.gamecenter.R; +// +//import butterknife.BindView; +// +///** +// * Created by khy on 2017/4/5. +// */ +//public class WenDaViewHolder extends BaseRecyclerViewHolder { +// +// @BindView(R.id.wenda_user_icon) +// public SimpleDraweeView userIcon; +// @BindView(R.id.wenda_user_name) +// public TextView userName; +// @BindView(R.id.wenda_request_control) +// public TextView requestControl; +// @BindView(R.id.wenda_comment_answer) +// public TextView commentAnswer; +// @BindView(R.id.wenda_game_icon) +// public SimpleDraweeView gameIcon; +// @BindView(R.id.wenda_content) +// public TextView wendaContent; +// @BindView(R.id.wenda_comment) +// public TextView wendaComment; +// @BindView(R.id.wenda_time) +// public TextView wendaTime; +// +// public WenDaViewHolder(View itemView) { +// super(itemView); +// } +//} diff --git a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java index 1c6777c633..99d49b8249 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1Fragment.java @@ -9,7 +9,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBNetworkState; @@ -48,12 +48,15 @@ public class News1Fragment extends BaseFragment implements SwipeRefreshLayout.On } }; + @Override + protected int getLayoutId() { + return R.layout.fragment_news1; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_news1); - refreshLayout.setColorSchemeResources(R.color.theme); refreshLayout.setOnRefreshListener(this); @@ -116,7 +119,7 @@ public class News1Fragment extends BaseFragment implements SwipeRefreshLayout.On // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 0) { if (loadingLayout.getVisibility() == View.VISIBLE) { adapter.addList(0); diff --git a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java index 0214e6f544..a408484b67 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -17,14 +17,14 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage2ViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage3ViewHolder; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.ViewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.VisitManager; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; @@ -55,7 +55,7 @@ import rx.schedulers.Schedulers; public class News1FragmentAdapter extends BaseRecyclerAdapter { private News1Fragment fragment; - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List newsList; @@ -307,7 +307,7 @@ public class News1FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { newsList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(newsList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java index e3be902b01..0c1dc9f714 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2Fragment.java @@ -16,7 +16,7 @@ import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.ImageUtils; import com.gh.common.util.PackageUtils; @@ -89,12 +89,15 @@ public class News2Fragment extends BaseFragment implements SwipeRefreshLayout.On private Map concernMap; // 记录选择关注 private ConcernManager concernManager; + @Override + protected int getLayoutId() { + return R.layout.fragment_news2; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_news2); - recommendGameList = new ArrayList<>(); installGameList = new ArrayList<>(); concernManager = new ConcernManager(getActivity()); @@ -433,7 +436,7 @@ public class News2Fragment extends BaseFragment implements SwipeRefreshLayout.On // Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch swith) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(swith.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(swith.getFrom())) { if (swith.getPosition() == 1) { if (loadingLayout.getVisibility() == View.VISIBLE) { adapter.addList(0); diff --git a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java index 3df1840f90..916bee2924 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News2FragmentAdapter.java @@ -12,6 +12,8 @@ import android.view.ViewGroup; import android.widget.Toast; import com.gh.base.AppController; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.common.constant.ItemViewType; import com.gh.common.util.ConcernContentUtils; import com.gh.common.util.ConcernUtils; @@ -32,7 +34,6 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.ShareCardActivity; import com.gh.gamecenter.ShareCardPicActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsDigestViewHolder; import com.gh.gamecenter.db.LibaoDao; @@ -43,7 +44,6 @@ import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.ViewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; import com.gh.gamecenter.manager.CommentManager; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.VisitManager; @@ -80,7 +80,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { private News2Fragment fragment; - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List concernList; private List gameIdList; @@ -197,7 +197,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { concernList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(concernList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); @@ -416,7 +416,7 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { concernList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(concernList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); @@ -563,15 +563,14 @@ public class News2FragmentAdapter extends BaseRecyclerAdapter { viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + LibaoEntity entity = null; for (LibaoStatusEntity libaoStatusEntity : libaoStatusList) { if (concernEntity.getId().equals(libaoStatusEntity.getId())) { - AppController.put("libaoEntity", LibaoEntity.createLibaoEntity( - concernEntity, libaoStatusEntity, finalLibaoCode)); + entity = LibaoEntity.createLibaoEntity(concernEntity, libaoStatusEntity, finalLibaoCode); } } skipPosition = viewHolder.getPosition(); - Intent intent = new Intent(mContext, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(资讯:关注[2-4])"); + Intent intent = LibaoDetailActivity.getIntent(mContext, entity, "(资讯:关注[2-4])"); fragment.startActivityForResult(intent, 0x122); } }); diff --git a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java index fcd8d1621b..fe33d9f7b4 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3Fragment.java @@ -2,8 +2,6 @@ package com.gh.gamecenter.news; import android.app.Dialog; import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -15,7 +13,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.ConcernActivity; @@ -40,8 +38,8 @@ import rx.functions.Action1; * Created by khy on 2017/4/7. * 资讯-攻略界面 */ -public class News3Fragment extends BaseFragment implements News3FragmentDialogAdapter.OnStrategyDialogCallBackListener - , SwipeRefreshLayout.OnRefreshListener { +public class News3Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, + OnStrategyDialogCallBackListener { @BindView(R.id.strategy_game_name) TextView mGameName; @@ -74,9 +72,13 @@ public class News3Fragment extends BaseFragment implements News3FragmentDialogAd }; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - init(R.layout.fragment_news3); + protected int getLayoutId() { + return R.layout.fragment_news3; + } + + @Override + protected void initView(View view) { + super.initView(view); mSwipeRefreshLayout.setColorSchemeResources(R.color.theme); mSwipeRefreshLayout.setOnRefreshListener(this); @@ -218,7 +220,7 @@ public class News3Fragment extends BaseFragment implements News3FragmentDialogAd // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 2 && mLoading.getVisibility() == View.VISIBLE) { mStrategyAdapter.addList(0); } diff --git a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java index f572b1aabb..af23821f23 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentAdapter.java @@ -11,11 +11,11 @@ import com.gh.common.util.DataUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -36,7 +36,7 @@ import rx.schedulers.Schedulers; */ public class News3FragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mCallBackListener; + private OnRequestCallBackListener mCallBackListener; private List mNewsList; @@ -44,7 +44,7 @@ public class News3FragmentAdapter extends BaseRecyclerAdapter { private boolean isLoading; private boolean isNetworkError; - public News3FragmentAdapter(Context context, OnCallBackListener callBackListener) { + public News3FragmentAdapter(Context context, OnRequestCallBackListener callBackListener) { super(context); this.mCallBackListener = callBackListener; mNewsList = new ArrayList<>(); diff --git a/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java index f8d7297ea4..2d86d7628e 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News3FragmentDialogAdapter.java @@ -7,7 +7,7 @@ import android.widget.LinearLayout; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.manager.ConcernManager; @@ -75,7 +75,5 @@ public class News3FragmentDialogAdapter extends BaseRecyclerAdapter { private News4Fragment fragment; - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List newsList; @@ -308,7 +308,7 @@ public class News4FragmentAdapter extends BaseRecyclerAdapter { if (response.size() != 0) { newsList.addAll(response); itemCount += response.size(); - if (!fragment.isHidden() && !fragment.isEverpause()) { + if (!fragment.isHidden() && !fragment.isEverPause()) { notifyItemRangeInserted(newsList.size() - response.size(), response.size()); } else { notifyDataSetChanged(); diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java deleted file mode 100644 index 1fbaf4c524..0000000000 --- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java +++ /dev/null @@ -1,199 +0,0 @@ -package com.gh.gamecenter.news; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.view.ViewPager; -import android.util.DisplayMetrics; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.gh.base.HomeFragment; -import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.MainActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.FragmentAdapter; -import com.gh.gamecenter.eventbus.EBUISwitch; - -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.util.ArrayList; -import java.util.List; - - -/** - * Created by khy on 2016/6/29. - * 资讯Fragment - */ -public class NewsFragment extends HomeFragment implements View.OnClickListener, ViewPager.OnPageChangeListener { - - public final static String EB_NEWSFRAGMENT_TAG = "NewsFragment"; - private View mNewsSlidebarLine; - private ViewPager mNewsVP; - private LinearLayout.LayoutParams lparams; - private TextView mNewsZixun; - private TextView mNewsGuanzhu; - private TextView mNewsGonglve; - private TextView mNewsYuanchuang; - private int width; - private int currentItem; - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - initView(); - - List list = new ArrayList<>(); - list.add(new News1Fragment()); - list.add(new News2Fragment()); - list.add(new News3Fragment()); - list.add(new News4Fragment()); - mNewsVP.setAdapter(new FragmentAdapter(getChildFragmentManager(), list)); - mNewsVP.addOnPageChangeListener(this); - - currentItem = 0; - if (savedInstanceState != null) { - currentItem = savedInstanceState.getInt("currentItem"); - } - - mNewsVP.setCurrentItem(currentItem); - - DisplayMetrics outMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); - width = outMetrics.widthPixels / 4; - lparams = new LinearLayout.LayoutParams(width / 2, - DisplayUtils.dip2px(getActivity(), 2)); - lparams.leftMargin = (int) (width * (currentItem + 0.25f)); - mNewsSlidebarLine.setLayoutParams(lparams); - - view.postDelayed(new Runnable() { - @Override - public void run() { - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mNewsVP.getCurrentItem())); - } - }, 100); - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt("currentItem", currentItem); - } - - @Override - public void onClick(View v) { - super.onClick(v); - if (v == mNewsZixun) { - mNewsVP.setCurrentItem(0); - } else if (v == mNewsGuanzhu) { - mNewsVP.setCurrentItem(1); - } else if (v == mNewsGonglve) { - mNewsVP.setCurrentItem(2); - } else if (v == mNewsYuanchuang) { - mNewsVP.setCurrentItem(3); - } - } - - private void initView() { - ((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_news_slidebar, null)); - ((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_page, null)); - - mNewsSlidebarLine = view.findViewById(R.id.slidebar_line); - mNewsVP = (ViewPager) view.findViewById(R.id.page_vp_content); - mNewsZixun = (TextView) view.findViewById(R.id.news_zixun_tv); - mNewsGuanzhu = (TextView) view.findViewById(R.id.news_guanzhu_tv); - mNewsGonglve = (TextView) view.findViewById(R.id.news_gonglve_tv); - mNewsYuanchuang = (TextView) view.findViewById(R.id.news_yuanchuang_tv); - mNewsZixun.setOnClickListener(this); - mNewsGuanzhu.setOnClickListener(this); - mNewsGonglve.setOnClickListener(this); - mNewsYuanchuang.setOnClickListener(this); - mNewsZixun.setSelected(true); - } - - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - if (positionOffset != 0) { - lparams.leftMargin = (int) (width * (position + positionOffset + 0.25f)); - mNewsSlidebarLine.setLayoutParams(lparams); - } else { - if (currentItem != mNewsVP.getCurrentItem()) { - currentItem = mNewsVP.getCurrentItem(); - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, currentItem)); - } - } - } - - @Override - public void onPageSelected(int position) { - if (position == 0) { - mNewsZixun.setSelected(true); - mNewsGuanzhu.setSelected(false); - mNewsGonglve.setSelected(false); - mNewsYuanchuang.setSelected(false); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "1", "资讯"); - } else if (position == 1) { - mNewsZixun.setSelected(false); - mNewsGuanzhu.setSelected(true); - mNewsGonglve.setSelected(false); - mNewsYuanchuang.setSelected(false); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "2", "攻略"); - } else if (position == 2) { - mNewsZixun.setSelected(false); - mNewsGuanzhu.setSelected(false); - mNewsGonglve.setSelected(true); - mNewsYuanchuang.setSelected(false); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "3", "原创"); - } else if (position == 3) { - mNewsZixun.setSelected(false); - mNewsGuanzhu.setSelected(false); - mNewsGonglve.setSelected(false); - mNewsYuanchuang.setSelected(true); - - DataCollectionUtils.uploadPosition(getActivity(), "资讯", "4", "关注"); - } - } - - @Override - public void onPageScrollStateChanged(int i) { - - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBUISwitch busNine) { - if (MainActivity.EB_MAINACTIVITY_TAG.equals(busNine.getFrom())) { - if (busNine.getPosition() == 1) { - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mNewsVP.getCurrentItem())); - } - } - } - - @Override - public void onHiddenChanged(boolean hidden) { - super.onHiddenChanged(hidden); - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - List list = getChildFragmentManager().getFragments(); - if (list != null) { - if (hidden) { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.hide(fragment); - } - } else { - for (Fragment fragment : getChildFragmentManager().getFragments()) { - transaction.show(fragment); - } - } - } - transaction.commit(); - } - -} - diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java new file mode 100644 index 0000000000..4466d0956d --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/news/NewsWrapperFragment.java @@ -0,0 +1,53 @@ +package com.gh.gamecenter.news; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.View; + +import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment; +import com.gh.gamecenter.R; +import com.gh.gamecenter.fragment.NewsFragment; +import com.gh.gamecenter.fragment.SearchToolbarFragment; + +import java.util.ArrayList; + + +/** + * Created by khy on 2016/6/29. + * 资讯Fragment + */ +public class NewsWrapperFragment extends BaseFragment implements SearchBarHint { + + public final static String EB_NEWSFRAGMENT_TAG = "NewsWrapperFragment"; + + private SearchToolbarFragment mSearchToolbarFragment; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mSearchToolbarFragment = new SearchToolbarFragment(); + } + + @Override + protected int getLayoutId() { + return R.layout.fragment_wrapper_toolbar; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + getChildFragmentManager().beginTransaction() + .replace(R.id.wrapper_toolbar, mSearchToolbarFragment) + .replace(R.id.wrapper_main_content, new NewsFragment()).commitAllowingStateLoss(); + } + + @Override + public void setHint(ArrayList hintList) { + if (mSearchToolbarFragment != null) { + mSearchToolbarFragment.setHint(hintList); + } + } + +} + diff --git a/app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java b/app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java new file mode 100644 index 0000000000..4064544380 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/news/OnStrategyDialogCallBackListener.java @@ -0,0 +1,7 @@ +package com.gh.gamecenter.news; + +import com.gh.gamecenter.db.info.ConcernInfo; + +public interface OnStrategyDialogCallBackListener { + void selectPosition(int position, ConcernInfo concernInfo); +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index edd8ba8e57..4f3544d2b5 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -45,7 +45,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; import com.gh.gamecenter.ViewImageActivity; import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.NewsDetailCommentListViewHolder; import com.gh.gamecenter.db.VoteDao; import com.gh.gamecenter.db.info.VoteInfo; @@ -54,8 +54,8 @@ import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.NewsDetailEntity; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.gamedetail.GameDetailTopViewHolder; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.adapter.viewholder.GameDetailTopViewHolder; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -83,7 +83,7 @@ import rx.schedulers.Schedulers; */ public class NewsDetailAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mListener; + private OnRequestCallBackListener mListener; private List mCommentEntityList; private GameEntity mGameEntity; @@ -103,7 +103,7 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { private VoteDao mVoteDao; private int defaultTextZoom = 85; - public NewsDetailAdapter(Context context, OnCallBackListener listener, String entrance) { + public NewsDetailAdapter(Context context, OnRequestCallBackListener listener, String entrance) { super(context); mListener = listener; mEntrance = entrance; diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java index b5ac44d713..59a668e88f 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java @@ -1,24 +1,22 @@ package com.gh.gamecenter.newsdetail; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2016/11/28. */ -public class NewsDetailCommentViewHolder extends RecyclerView.ViewHolder { +public class NewsDetailCommentViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.newsdetail_item_comment) public TextView commentTv; public NewsDetailCommentViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java index b6d2d9a863..312ed76d2a 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragment.java @@ -8,7 +8,7 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; import com.gh.download.DataWatcher; @@ -64,12 +64,15 @@ public class ConcernFragment extends BaseFragment { } }; + @Override + protected int getLayoutId() { + return R.layout.fm_concern; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_concern); - reuse_nodata_skip.setVisibility(View.GONE); reuse_nodata_skip_tv_hint.setText("暂无关注"); reuse_nodata_skip_tv_btn.setText("查看精品推荐"); @@ -89,7 +92,7 @@ public class ConcernFragment extends BaseFragment { @Override public void onResume() { - if (isEverpause) { + if (isEverPause) { for (GameEntity entity : adapter.getGameList()) { entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); } diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java index 51380c16f4..bbc7e293ce 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java @@ -19,7 +19,7 @@ import com.gh.common.util.ImageUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java index 988a3b72b8..8f42bf3bf8 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragment.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.SwipeLayout; @@ -77,12 +77,15 @@ public class InstallFragment extends BaseFragment implements InstallFragmentAdap } } + @Override + protected int getLayoutId() { + return R.layout.fm_install; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_install); - reuse_nodata_skip.setVisibility(View.GONE); reuse_nodata_skip_tv_hint.setText("暂无游戏"); reuse_nodata_skip_tv_btn.setText("查看精品推荐"); @@ -102,7 +105,7 @@ public class InstallFragment extends BaseFragment implements InstallFragmentAdap @Override public void onResume() { - if (isEverpause) { + if (isEverPause) { for (GameEntity entity : adapter.getGameList()) { entity.setEntryMap(DownloadManager.getInstance(getActivity()).getEntryMap(entity.getName())); } diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java index 770c02410b..c63412218a 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java @@ -34,7 +34,7 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.ChooseReceiverActivity; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalSwipeViewHolder; import com.gh.gamecenter.db.info.ConcernInfo; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java index 5817643d3e..be6191004f 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java @@ -13,7 +13,7 @@ import android.view.ViewTreeObserver; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; @@ -24,7 +24,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -33,7 +33,7 @@ import java.util.ArrayList; import butterknife.BindView; -public class SearchGameDetailFragment extends BaseFragment implements OnCallBackListener { +public class SearchGameDetailFragment extends BaseFragment implements OnRequestCallBackListener { @BindView(R.id.search_detail) RecyclerView search_detail; @@ -66,13 +66,15 @@ public class SearchGameDetailFragment extends BaseFragment implements OnCallBack } }; + @Override + protected int getLayoutId() { + return R.layout.fm_search; + } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_search); - final LinearLayout reuse_none_data = (LinearLayout) view.findViewById(R.id.reuse_none_data); TextView skip_tv = new TextView(getContext()); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DisplayUtils.dip2px(getContext(), 140) diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java index 6ef591191f..faebe9ab18 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -19,12 +19,12 @@ import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -39,7 +39,7 @@ import rx.schedulers.Schedulers; class SearchGameDetailFragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List gameList; private ArrayMap> locationMap; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java index e977bb71c0..69224520ff 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java @@ -13,7 +13,7 @@ import android.view.ViewTreeObserver; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.VerticalItemDecoration; @@ -24,7 +24,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -33,7 +33,7 @@ import java.util.ArrayList; import butterknife.BindView; -public class SearchGameListFragment extends BaseFragment implements OnCallBackListener { +public class SearchGameListFragment extends BaseFragment implements OnRequestCallBackListener { @BindView(R.id.search_detail) RecyclerView search_detail; @@ -63,12 +63,15 @@ public class SearchGameListFragment extends BaseFragment implements OnCallBackLi } }; + @Override + protected int getLayoutId() { + return R.layout.fm_search; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fm_search); - final LinearLayout reuse_none_data = (LinearLayout) view.findViewById(R.id.reuse_none_data); TextView skip_tv = new TextView(getContext()); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DisplayUtils.dip2px(getContext(), 140) diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java index ae82f49894..4e1a30daf5 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -19,14 +19,14 @@ import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadDialog; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -41,7 +41,7 @@ import rx.schedulers.Schedulers; class SearchGameListFragmentAdapter extends BaseRecyclerAdapter { - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private SearchHistoryDao dao; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java index 16c1f95a2d..90ec0114a0 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java @@ -2,15 +2,14 @@ package com.gh.gamecenter.search; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DialogUtils; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; @@ -25,12 +24,11 @@ import java.util.ArrayList; import java.util.List; import butterknife.BindView; -import butterknife.ButterKnife; import butterknife.OnClick; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -public class SearchHistoryFragment extends Fragment { +public class SearchHistoryFragment extends BaseFragment { @BindView(R.id.search_hot_tv) TextView mSearchHotTv; @@ -40,7 +38,6 @@ public class SearchHistoryFragment extends Fragment { RecyclerView mSearchHotRv; @BindView(R.id.search_history_rv) RecyclerView mSearchHistoryRv; - private View view; private SearchHistoryDao dao; private List mHistorylist; @@ -51,12 +48,14 @@ public class SearchHistoryFragment extends Fragment { private boolean isDestroy; + @Override + protected int getLayoutId() { + return R.layout.fm_search_history; + } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - view = View.inflate(getActivity(), R.layout.fm_search_history, null); - ButterKnife.bind(this, view); isDestroy = false; mHotlist = new ArrayList<>(); @@ -137,16 +136,6 @@ public class SearchHistoryFragment extends Fragment { }); } - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - if (container != null) { - container.removeView(view); - } - return view; - } - @Override public void onDestroyView() { super.onDestroyView(); diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java index 453b19a806..893d5b8024 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java @@ -15,7 +15,7 @@ import android.widget.TextView; import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java index d3d43260a9..776c198df2 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.java @@ -26,14 +26,14 @@ import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SubjectActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder; import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; @@ -54,7 +54,7 @@ import static android.R.attr.name; public class SubjectAdapter extends BaseRecyclerAdapter { - private OnCallBackListener mOnCallBackListener; + private OnRequestCallBackListener mOnRequestCallBackListener; private List mSubjectList; @@ -72,10 +72,10 @@ public class SubjectAdapter extends BaseRecyclerAdapter { private boolean mIsOrder; private boolean mIsLoaded; - public SubjectAdapter(Context context, OnCallBackListener listener, String type, String id + public SubjectAdapter(Context context, OnRequestCallBackListener listener, String type, String id , String name, String entrance, String order, String tagType, boolean isOrder) { super(context); - this.mOnCallBackListener = listener; + this.mOnRequestCallBackListener = listener; this.mType = type; this.mId = id; this.mName = name; @@ -133,11 +133,11 @@ public class SubjectAdapter extends BaseRecyclerAdapter { initLocationMap(); - if (mOnCallBackListener != null) { + if (mOnRequestCallBackListener != null) { if (mSubjectList.size() == 0) { - mOnCallBackListener.loadEmpty(); + mOnRequestCallBackListener.loadEmpty(); } else { - mOnCallBackListener.loadDone(); + mOnRequestCallBackListener.loadDone(); } } @@ -149,8 +149,8 @@ public class SubjectAdapter extends BaseRecyclerAdapter { mIsLoaded = true; if (page == 1) { - if (mOnCallBackListener != null) { - mOnCallBackListener.loadError(); + if (mOnRequestCallBackListener != null) { + mOnRequestCallBackListener.loadError(); } } else { Toast.makeText(mContext, "加载失败,请检查网络状态", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java index 8b655a3a8f..6c773311c4 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.java @@ -10,7 +10,7 @@ import android.view.View; import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.EntranceUtils; @@ -26,7 +26,7 @@ import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.news.NewsFragment; +import com.gh.gamecenter.news.NewsWrapperFragment; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -95,6 +95,11 @@ public class SubjectFragment extends BaseFragment { return fragment; } + @Override + protected int getLayoutId() { + return R.layout.fragment_subject; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -103,10 +108,10 @@ public class SubjectFragment extends BaseFragment { mName = arguments.getString("name"); mIsOrder = arguments.getBoolean("order"); mType = arguments.getString("type"); + //TODO ????? order 是 boolean mOrder = arguments.getString("order"); mTagType = arguments.getString("tagType"); mEntrance = arguments.getString(EntranceUtils.KEY_ENTRANCE); - init(R.layout.fragment_subject); reuse_no_connection.setOnClickListener(new View.OnClickListener() { @Override @@ -178,19 +183,19 @@ public class SubjectFragment extends BaseFragment { @Override public void onResume() { super.onResume(); - if (isEverpause) { + if (isEverPause) { for (GameEntity entity : adapter.getSubjectList()) { entity.setEntryMap(DownloadManager.getInstance(getContext()).getEntryMap(entity.getName())); } } - isEverpause = false; + isEverPause = false; DownloadManager.getInstance(getContext()).addObserver(dataWatcher); } @Override public void onPause() { super.onPause(); - isEverpause = true; + isEverPause = true; DownloadManager.getInstance(getContext()).removeObserver(dataWatcher); } @@ -283,7 +288,7 @@ public class SubjectFragment extends BaseFragment { // 资讯Fragment界面切换事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBUISwitch busNine) { - if (NewsFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { + if (NewsWrapperFragment.EB_NEWSFRAGMENT_TAG.equals(busNine.getFrom())) { if (busNine.getPosition() == 0) { if (subject_pb_loading.getVisibility() == View.VISIBLE) { adapter.initList(1); diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java b/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java index ddacc145ae..5cbf1817f7 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectTileFragment.java @@ -17,7 +17,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.gh.base.BaseFragment; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DisplayUtils; import com.gh.common.util.StringUtils; import com.gh.gamecenter.R; @@ -99,11 +99,14 @@ public class SubjectTileFragment extends BaseFragment implements SubjectTypeAdap } } + @Override + protected int getLayoutId() { + return R.layout.fragment_subject_tiled; + } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - init(R.layout.fragment_subject_tiled); Bundle arguments = getArguments(); mActionBarTitle = (TextView) getActivity().findViewById(R.id.actionbar_tv_title); diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java index 74b9c5f0a5..ac4389097a 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.suggest; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/4/1. */ -public class SelectGameViewHolder extends RecyclerView.ViewHolder { +public class SelectGameViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.game_icon) public SimpleDraweeView gameIcon; @@ -22,6 +21,5 @@ public class SelectGameViewHolder extends RecyclerView.ViewHolder { public SelectGameViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java index 390e338657..233a0e9541 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java @@ -11,7 +11,7 @@ import android.view.ViewGroup; import com.gh.common.util.Utils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java index 47f58bde11..0a2666036f 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.suggest; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import com.facebook.drawee.view.SimpleDraweeView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/31. */ -public class SuggestPicViewHolder extends RecyclerView.ViewHolder { +public class SuggestPicViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.pic_item_icon) public SimpleDraweeView icon; @@ -22,6 +21,5 @@ public class SuggestPicViewHolder extends RecyclerView.ViewHolder { public SuggestPicViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java index 3dc588eaaa..b64fe24293 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java @@ -11,9 +11,9 @@ import android.widget.ProgressBar; import com.gh.common.util.BitmapUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.retrofit.*; import java.io.File; @@ -29,7 +29,7 @@ import rx.android.schedulers.*; */ public class SuggestSelectGameAdapter extends BaseRecyclerAdapter { - private OnCallBackListener listener; + private OnRequestCallBackListener listener; private List apkList; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java index e4c4e4775c..8589fedab7 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeAdapter.java @@ -9,7 +9,7 @@ import android.view.ViewGroup; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; -import com.gh.gamecenter.adapter.BaseRecyclerAdapter; +import com.gh.base.adapter.BaseRecyclerAdapter; /** * Created by khy on 2017/3/31. diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java index 0dd0f5204f..0a3cbd7870 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestTypeViewHolder.java @@ -1,19 +1,18 @@ package com.gh.gamecenter.suggest; -import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import com.gh.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; import butterknife.BindView; -import butterknife.ButterKnife; /** * Created by khy on 2017/3/31. */ -public class SuggestTypeViewHolder extends RecyclerView.ViewHolder { +public class SuggestTypeViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.suggest_type_icon) public ImageView icon; @@ -22,6 +21,5 @@ public class SuggestTypeViewHolder extends RecyclerView.ViewHolder { public SuggestTypeViewHolder(View itemView) { super(itemView); - ButterKnife.bind(this, itemView); } } diff --git a/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java b/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java index fbc62defb1..cba995b85d 100644 --- a/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java +++ b/app/src/main/java/com/gh/gamecenter/wenda/WenDaFragment.java @@ -1,21 +1,27 @@ -package com.gh.gamecenter.wenda; - -import com.gh.base.BaseFragment; -import com.gh.gamecenter.eventbus.EBNetworkState; - -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -/** - * Created by khy on 2017/4/5. - */ -public class WenDaFragment extends BaseFragment { - - //连接上网络事件 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBNetworkState busNetworkState) { - if (busNetworkState.isNetworkConnected()) { - - } - } -} +//package com.gh.gamecenter.wenda; +// +//import com.gh.base.fragment.BaseFragment; +//import com.gh.gamecenter.eventbus.EBNetworkState; +// +//import org.greenrobot.eventbus.Subscribe; +//import org.greenrobot.eventbus.ThreadMode; +// +///** +// * Created by khy on 2017/4/5. +// */ +//public class WenDaFragment extends BaseFragment { +// +// //连接上网络事件 +// @Subscribe(threadMode = ThreadMode.MAIN) +// public void onEventMainThread(EBNetworkState busNetworkState) { +// if (busNetworkState.isNetworkConnected()) { +// +// } +// } +// +// @Override +// protected int getLayoutId() { +// return 0; +// } +// +//} diff --git a/app/src/main/res/drawable/selector_ic_game.xml b/app/src/main/res/drawable/selector_ic_game.xml new file mode 100644 index 0000000000..66ed99c36d --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_game.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_ic_message.xml b/app/src/main/res/drawable/selector_ic_message.xml new file mode 100644 index 0000000000..f5eafa020f --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_message.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_ic_news.xml b/app/src/main/res/drawable/selector_ic_news.xml new file mode 100644 index 0000000000..087dc331c8 --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_news.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_ic_user.xml b/app/src/main/res/drawable/selector_ic_user.xml new file mode 100644 index 0000000000..e461a4ace1 --- /dev/null +++ b/app/src/main/res/drawable/selector_ic_user.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_libao.xml b/app/src/main/res/layout/activity_libao.xml index a0e2dfb1e2..ecf17def08 100644 --- a/app/src/main/res/layout/activity_libao.xml +++ b/app/src/main/res/layout/activity_libao.xml @@ -68,7 +68,7 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" > - - - + diff --git a/app/src/main/res/layout/fragment_game.xml b/app/src/main/res/layout/fragment_game.xml index 19728dde75..52ca0cbcb3 100644 --- a/app/src/main/res/layout/fragment_game.xml +++ b/app/src/main/res/layout/fragment_game.xml @@ -3,15 +3,19 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" > + + + android:layout_height = "match_parent" + android:layout_below = "@+id/home_actionbar" > + android:layout_height = "wrap_content" /> + - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/fragment_main.xml similarity index 76% rename from app/src/main/res/layout/activity_main.xml rename to app/src/main/res/layout/fragment_main.xml index 2bf2e2e948..13894d43ca 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -2,20 +2,20 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" > - + android:layout_above = "@id/lightgame_tab_container" /> - - + android:src = "@drawable/selector_ic_game" /> - - + + - + android:src = "@drawable/selector_ic_news" /> - + - - + android:src = "@drawable/selector_ic_message" /> - + - - - + android:src = "@drawable/selector_ic_user" /> - + diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml index e48d4ab602..e6963c2fb1 100644 --- a/app/src/main/res/layout/fragment_message.xml +++ b/app/src/main/res/layout/fragment_message.xml @@ -7,12 +7,12 @@ - - - - + diff --git a/app/src/main/res/layout/fragment_news.xml b/app/src/main/res/layout/fragment_news.xml new file mode 100644 index 0000000000..c19595ca6e --- /dev/null +++ b/app/src/main/res/layout/fragment_news.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_news_slidebar.xml b/app/src/main/res/layout/fragment_news_slidebar.xml deleted file mode 100644 index b5c3499321..0000000000 --- a/app/src/main/res/layout/fragment_news_slidebar.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_page.xml b/app/src/main/res/layout/fragment_page.xml deleted file mode 100644 index 07d7c8856a..0000000000 --- a/app/src/main/res/layout/fragment_page.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_toolbar.xml b/app/src/main/res/layout/fragment_toolbar.xml new file mode 100644 index 0000000000..fd642c1410 --- /dev/null +++ b/app/src/main/res/layout/fragment_toolbar.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_wrapper_toolbar.xml b/app/src/main/res/layout/fragment_wrapper_toolbar.xml new file mode 100644 index 0000000000..426052332d --- /dev/null +++ b/app/src/main/res/layout/fragment_wrapper_toolbar.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/game_viewpager_item.xml b/app/src/main/res/layout/game_viewpager_item.xml index ed85df3471..f4897f94fb 100644 --- a/app/src/main/res/layout/game_viewpager_item.xml +++ b/app/src/main/res/layout/game_viewpager_item.xml @@ -1,11 +1,20 @@ - + android:layout_height = "wrap_content" + android:orientation = "vertical" + app:fractionValue = "0.65625" + app:layout_heightPercent = "65.625%" + app:measureBy = "width" > + - + + android:layout_height = "wrap_content" + app:fractionValue = "0.4375" + app:measureBy = "width" > + android:layout_gravity = "bottom|right" + android:gravity = "center" + android:orientation = "horizontal" + android:paddingBottom = "6dp" + android:paddingLeft = "10dp" + android:paddingRight = "10dp" /> - + - + + android:layout_height = "wrap_content" + android:layout_gravity = "bottom" + app:fractionValue = "0.21875" + app:measureBy = "width" > + android:textSize = "14sp" /> + android:paddingTop = "2dp" /> - + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/gamedetail_body.xml b/app/src/main/res/layout/gamedetail_body.xml index 85b556e455..5cbbd1104b 100644 --- a/app/src/main/res/layout/gamedetail_body.xml +++ b/app/src/main/res/layout/gamedetail_body.xml @@ -100,7 +100,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 9ca90332c4..b0adb442b3 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -8,7 +8,7 @@ 9dp - 48dp + 55dp 72dp diff --git a/build.gradle b/build.gradle index 8de45112f6..e4578ef189 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { maven { url "https://dl.bintray.com/thelasterstar/maven/" } //weiboSDK } dependencies { - classpath 'com.android.tools.build:gradle:2.3.1' + classpath 'com.android.tools.build:gradle:2.3.3' // for ndk-build experimental // classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha5' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' diff --git a/libraries/EventBus/libs/EventBus-2.4.0.jar b/libraries/EventBus/libs/EventBus-2.4.0.jar deleted file mode 100644 index 106ed5b53d..0000000000 Binary files a/libraries/EventBus/libs/EventBus-2.4.0.jar and /dev/null differ diff --git a/libraries/EventBus/src/main/AndroidManifest.xml b/libraries/EventBus/src/main/AndroidManifest.xml deleted file mode 100644 index 4df1b5b2fd..0000000000 --- a/libraries/EventBus/src/main/AndroidManifest.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/libraries/EventBus/build.gradle b/libraries/LGLibrary/build.gradle similarity index 69% rename from libraries/EventBus/build.gradle rename to libraries/LGLibrary/build.gradle index 89d074a4f1..cc778bafa7 100644 --- a/libraries/EventBus/build.gradle +++ b/libraries/LGLibrary/build.gradle @@ -2,6 +2,9 @@ apply plugin: 'com.android.library' dependencies { compile fileTree(dir: 'libs', exclude: 'android-support-*.jar', include: '*.jar') + provided libs.supportV4 + provided libs.supportAppCompat + provided libs.supportRecyclerView } android { diff --git a/libraries/EventBus/proguard-library.txt b/libraries/LGLibrary/proguard-library.txt similarity index 63% rename from libraries/EventBus/proguard-library.txt rename to libraries/LGLibrary/proguard-library.txt index 44a1304068..f2fe1559a2 100644 --- a/libraries/EventBus/proguard-library.txt +++ b/libraries/LGLibrary/proguard-library.txt @@ -18,21 +18,3 @@ #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} - --keep class de.greenrobot.event.** {*;} --keepclassmembers class ** { - public void onEvent*(**); - void onEvent*(**); -} - --keepattributes *Annotation* -#-keepclassmembers class ** { -# @org.greenrobot.eventbus.Subscribe ; -#} --keep enum de.greenrobot.event.ThreadMode { *; } - -# Only required if you use AsyncExecutor --keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { - (java.lang.Throwable); -} - diff --git a/libraries/LGLibrary/src/main/AndroidManifest.xml b/libraries/LGLibrary/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..269e0bc84d --- /dev/null +++ b/libraries/LGLibrary/src/main/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java b/libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java new file mode 100755 index 0000000000..b852e5a473 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/adapter/BaseFragmentPagerAdapter.java @@ -0,0 +1,53 @@ +/** + * project: OPlay + *

+ *

+ * ======================================================================== + * amend date amend user amend reason + * 2013-3-5 CsHeng + */ + +package com.lightgame.adapter; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; + +import java.util.List; + +/** + * 通用Fragment Page Adapter + * + * @author CsHeng + * @date 2013-3-8 + */ +public class BaseFragmentPagerAdapter extends FragmentPagerAdapter { + + List mFragments; + + // nested fragment should pass getChildFragmentManager() + private BaseFragmentPagerAdapter(FragmentManager fm, List fragments) { + super(fm); + mFragments = fragments; + } + + /** + * @param fm Pass getSupportFragmentManager() or Nested Fragment Should Pass getChildFragmentManager() + * @param fragments + * @return + */ + public static BaseFragmentPagerAdapter newInstance(FragmentManager fm, List fragments) { + return new BaseFragmentPagerAdapter(fm, fragments); + } + + @Override + public Fragment getItem(int position) { + return mFragments.get(position); + } + + @Override + public int getCount() { + return mFragments.size(); + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java new file mode 100644 index 0000000000..0deb12be25 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/IllegalAttachException.java @@ -0,0 +1,23 @@ +package com.lightgame.listeners; + +/** + * Fragment Attach 到Activity时若不满足条件则抛出 + * Created by csheng on 15-9-29. + */ +public class IllegalAttachException extends RuntimeException { + + public IllegalAttachException() { + } + + public IllegalAttachException(String detailMessage) { + super(detailMessage); + } + + public IllegalAttachException(String detailMessage, Throwable throwable) { + super(detailMessage, throwable); + } + + public IllegalAttachException(Throwable throwable) { + super(throwable); + } +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java new file mode 100755 index 0000000000..60d1894405 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBackPressedListener.java @@ -0,0 +1,9 @@ +package com.lightgame.listeners; + +/** + * Forward activity onBackPressed() events to fragment + * (If nested fragments need this, just forward again) + */ +public interface OnBackPressedListener { + public boolean onHandleBackPressed(); +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java new file mode 100644 index 0000000000..b845c84dc0 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/OnBrowserActionListener.java @@ -0,0 +1,13 @@ +package com.lightgame.listeners; + +/** + * @author CsHeng + * @Date 14-10-16 + * @Time 下午9:11 + */ +public interface OnBrowserActionListener { + public void onRotateImage(); + + public void onSaveImage(); +} + diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java new file mode 100755 index 0000000000..81b205a531 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/listeners/UpdateableFragment.java @@ -0,0 +1,12 @@ +package com.lightgame.listeners; + +import java.util.List; + +/** + * @author: CsHeng (csheng1204[at]gmail[dot]com) + * Date: 13-12-24 + * Time: 下午2:52 + */ +public interface UpdateableFragment { + public void onFragmentNeedsUpdate(List listData); +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java new file mode 100644 index 0000000000..5a3afd29ae --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableImageView.java @@ -0,0 +1,42 @@ +package com.lightgame.view; + +import android.content.Context; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; +import android.widget.Checkable; + +public class CheckableImageView extends AppCompatImageView implements Checkable { + + private boolean mChecked; + private static final int[] CHECKED_STATE_SET = { + android.R.attr.state_checked + }; + + public CheckableImageView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public int[] onCreateDrawableState(int extraSpace) { + final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); + if (isChecked()) { + mergeDrawableStates(drawableState, CHECKED_STATE_SET); + } + return drawableState; + } + + public void toggle() { + setChecked(!mChecked); + } + + public boolean isChecked() { + return mChecked; + } + + public void setChecked(boolean checked) { + if (mChecked != checked) { + mChecked = checked; + refreshDrawableState(); + } + } +} \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java new file mode 100644 index 0000000000..07edc46f66 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/CheckableLinearLayout.java @@ -0,0 +1,57 @@ +package com.lightgame.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Checkable; +import android.widget.LinearLayout; + +public class CheckableLinearLayout extends LinearLayout implements Checkable { + + private static final int[] CHECKED_STATE_SET = {android.R.attr.state_checked}; + + private boolean mChecked = false; + + public CheckableLinearLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public boolean isChecked() { + return mChecked; + } + + public void setChecked(boolean b) { + if (b != mChecked) { + mChecked = b; + refreshDrawableState(); + setChildChecked(this, b); + } + } + + private void setChildChecked(ViewGroup vg, boolean checked) { + for (int i = 0, size = vg.getChildCount(); i < size; i++) { + final View child = vg.getChildAt(i); + if (child instanceof Checkable) { + ((Checkable) child).setChecked(checked); + } + if (child instanceof ViewGroup) { + setChildChecked((ViewGroup) child, checked); + } + } + } + + public void toggle() { + setChecked(!mChecked); + } + + @Override + public int[] onCreateDrawableState(int extraSpace) { + final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); + if (isChecked()) { + mergeDrawableStates(drawableState, CHECKED_STATE_SET); + } + return drawableState; + } + +} \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java new file mode 100644 index 0000000000..df8c4d0aad --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/DoubleTapTextView.java @@ -0,0 +1,69 @@ +package com.lightgame.view; + +import android.content.Context; +import android.support.v7.widget.AppCompatTextView; +import android.util.AttributeSet; +import android.view.GestureDetector; +import android.view.MotionEvent; + +/** + * @author CsHeng + * @Date 14-10-29 + * @Time 下午3:16 + */ +public class DoubleTapTextView extends AppCompatTextView { + + private OnDoubleTapListener mOnDoubleTapListener; + private GestureDetector mGestureDetector; + + public DoubleTapTextView(Context context) { + super(context); + mGestureDetector = new GestureDetector(getContext(), new GestureListener()); + } + + public DoubleTapTextView(Context context, AttributeSet attrs) { + super(context, attrs); + mGestureDetector = new GestureDetector(getContext(), new GestureListener()); + } + + public DoubleTapTextView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + mGestureDetector = new GestureDetector(getContext(), new GestureListener()); + } + + public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener) { + mOnDoubleTapListener = onDoubleTapListener; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return mGestureDetector.onTouchEvent(event); + } + + private class GestureListener extends GestureDetector.SimpleOnGestureListener { + + @Override + public boolean onDown(MotionEvent e) { + return true; + } + + @Override + public boolean onDoubleTap(MotionEvent e) { + if (mOnDoubleTapListener != null) { + return mOnDoubleTapListener.onDoubleTap(); + } + return false; + } + } + + /** + * @author CsHeng + * @Date 14-10-29 + * @Time 下午3:15 + */ + public interface OnDoubleTapListener { + boolean onDoubleTap(); + } + +} + diff --git a/app/src/main/java/com/gh/common/view/NoScrollableViewPager.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/NoScrollableViewPager.java similarity index 70% rename from app/src/main/java/com/gh/common/view/NoScrollableViewPager.java rename to libraries/LGLibrary/src/main/java/com/lightgame/view/NoScrollableViewPager.java index 0218c116bd..2aa022f254 100644 --- a/app/src/main/java/com/gh/common/view/NoScrollableViewPager.java +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/NoScrollableViewPager.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.lightgame.view; import android.content.Context; import android.support.v4.view.ViewPager; @@ -11,30 +11,30 @@ import android.view.MotionEvent; */ public class NoScrollableViewPager extends ViewPager { - private boolean isScrollable; + private boolean mIsScrollable; public NoScrollableViewPager(Context context) { super(context); - isScrollable = true; + mIsScrollable = true; } public NoScrollableViewPager(Context context, AttributeSet attrs) { super(context, attrs); - isScrollable = true; - + mIsScrollable = true; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { - return isScrollable && super.onInterceptTouchEvent(ev); + return mIsScrollable && super.onInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent ev) { - return isScrollable && super.onTouchEvent(ev); + return mIsScrollable && super.onTouchEvent(ev); } public void setScrollable(boolean scrollable) { - isScrollable = scrollable; + mIsScrollable = scrollable; } + } diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java new file mode 100755 index 0000000000..ba99a7028e --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/AspectRatioImageView.java @@ -0,0 +1,73 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * 按照宽度适配,高度保持比例即可 + * + * @author CsHeng + * @date 2013-3-13 + */ +public class AspectRatioImageView extends AppCompatImageView { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public AspectRatioImageView(Context context) { + super(context); + } + + public AspectRatioImageView(Context context, AttributeSet attrs) { + super(context, attrs); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mMeasureByHeight = enumV != 0; + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + a.recycle(); + } + + public AspectRatioImageView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mMeasureByHeight = enumV != 0; + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + Drawable drawable = getDrawable(); + if (drawable != null) { + if (mMeasureByHeight) { + int height = MeasureSpec.getSize(heightMeasureSpec); + int dih = drawable.getIntrinsicHeight(); + if (dih > 0) { + int width = height * drawable.getIntrinsicWidth() / dih; + setMeasuredDimension(width, height); + } else { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } else { + int width = MeasureSpec.getSize(widthMeasureSpec); + int diw = drawable.getIntrinsicWidth(); + if (diw > 0) { + int height = width * drawable.getIntrinsicHeight() / diw; + setMeasuredDimension(width, height); + } else { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } + } else { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + + } +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java new file mode 100755 index 0000000000..24ffe3901e --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedDrawable.java @@ -0,0 +1,366 @@ +package com.lightgame.view.imageview; + +import android.content.res.ColorStateList; +import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.PixelFormat; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.util.Log; +import android.widget.ImageView.ScaleType; + +@SuppressWarnings("UnusedDeclaration") +public class RoundedDrawable extends Drawable { + + public static final String TAG = "RoundedDrawable"; + public static final int DEFAULT_BORDER_COLOR = Color.BLACK; + private ColorStateList mBorderColor = ColorStateList.valueOf(DEFAULT_BORDER_COLOR); + private final RectF mBounds = new RectF(); + private final RectF mDrawableRect = new RectF(); + private final RectF mBitmapRect = new RectF(); + private final BitmapShader mBitmapShader; + private final Paint mBitmapPaint; + private final int mBitmapWidth; + private final int mBitmapHeight; + private final RectF mBorderRect = new RectF(); + private final Paint mBorderPaint; + private final Matrix mShaderMatrix = new Matrix(); + private float mCornerRadius = 0; + private boolean mOval = false; + private float mBorderWidth = 0; + private ScaleType mScaleType = ScaleType.FIT_CENTER; + + public RoundedDrawable(Bitmap bitmap) { + + mBitmapWidth = bitmap.getWidth(); + mBitmapHeight = bitmap.getHeight(); + mBitmapRect.set(0, 0, mBitmapWidth, mBitmapHeight); + + mBitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); + mBitmapShader.setLocalMatrix(mShaderMatrix); + + mBitmapPaint = new Paint(); + mBitmapPaint.setStyle(Paint.Style.FILL); + mBitmapPaint.setAntiAlias(true); + mBitmapPaint.setShader(mBitmapShader); + + mBorderPaint = new Paint(); + mBorderPaint.setStyle(Paint.Style.STROKE); + mBorderPaint.setAntiAlias(true); + mBorderPaint.setColor(mBorderColor.getColorForState(getState(), DEFAULT_BORDER_COLOR)); + mBorderPaint.setStrokeWidth(mBorderWidth); + } + + public static RoundedDrawable fromBitmap(Bitmap bitmap) { + if (bitmap != null) { + return new RoundedDrawable(bitmap); + } else { + return null; + } + } + + public static Drawable fromDrawable(Drawable drawable) { + if (drawable != null) { + if (drawable instanceof RoundedDrawable) { + // just return if it's already a RoundedDrawable + return drawable; + } else if (drawable instanceof LayerDrawable) { + LayerDrawable ld = (LayerDrawable) drawable; + int num = ld.getNumberOfLayers(); + + // loop through layers to and change to RoundedDrawables if possible + for (int i = 0; i < num; i++) { + Drawable d = ld.getDrawable(i); + ld.setDrawableByLayerId(ld.getId(i), fromDrawable(d)); + } + return ld; + } + + // try to get a bitmap from the drawable and + Bitmap bm = drawableToBitmap(drawable); + if (bm != null) { + return new RoundedDrawable(bm); + } else { + Log.w(TAG, "Failed to create bitmap from drawable!"); + } + } + return drawable; + } + + public static Bitmap drawableToBitmap(Drawable drawable) { + if (drawable instanceof BitmapDrawable) { + return ((BitmapDrawable) drawable).getBitmap(); + } + + Bitmap bitmap; + int width = Math.max(drawable.getIntrinsicWidth(), 1); + int height = Math.max(drawable.getIntrinsicHeight(), 1); + try { + bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + } catch (Exception e) { + e.printStackTrace(); + bitmap = null; + } + + return bitmap; + } + + private void updateShaderMatrix() { + float scale; + float dx; + float dy; + + switch (mScaleType) { + case CENTER: + mBorderRect.set(mBounds); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + + mShaderMatrix.set(null); + mShaderMatrix.setTranslate((int) ((mBorderRect.width() - mBitmapWidth) * 0.5f + 0.5f), + (int) ((mBorderRect.height() - mBitmapHeight) * 0.5f + 0.5f)); + break; + + case CENTER_CROP: + mBorderRect.set(mBounds); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + + mShaderMatrix.set(null); + + dx = 0; + dy = 0; + + if (mBitmapWidth * mBorderRect.height() > mBorderRect.width() * mBitmapHeight) { + scale = mBorderRect.height() / (float) mBitmapHeight; + dx = (mBorderRect.width() - mBitmapWidth * scale) * 0.5f; + } else { + scale = mBorderRect.width() / (float) mBitmapWidth; + dy = (mBorderRect.height() - mBitmapHeight * scale) * 0.5f; + } + + mShaderMatrix.setScale(scale, scale); + mShaderMatrix.postTranslate((int) (dx + 0.5f) + mBorderWidth, + (int) (dy + 0.5f) + mBorderWidth); + break; + + case CENTER_INSIDE: + mShaderMatrix.set(null); + + if (mBitmapWidth <= mBounds.width() && mBitmapHeight <= mBounds.height()) { + scale = 1.0f; + } else { + scale = Math.min(mBounds.width() / (float) mBitmapWidth, + mBounds.height() / (float) mBitmapHeight); + } + + dx = (int) ((mBounds.width() - mBitmapWidth * scale) * 0.5f + 0.5f); + dy = (int) ((mBounds.height() - mBitmapHeight * scale) * 0.5f + 0.5f); + + mShaderMatrix.setScale(scale, scale); + mShaderMatrix.postTranslate(dx, dy); + + mBorderRect.set(mBitmapRect); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + default: + case FIT_CENTER: + mBorderRect.set(mBitmapRect); + mShaderMatrix.setRectToRect(mBitmapRect, mBounds, Matrix.ScaleToFit.CENTER); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + case FIT_END: + mBorderRect.set(mBitmapRect); + mShaderMatrix.setRectToRect(mBitmapRect, mBounds, Matrix.ScaleToFit.END); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + case FIT_START: + mBorderRect.set(mBitmapRect); + mShaderMatrix.setRectToRect(mBitmapRect, mBounds, Matrix.ScaleToFit.START); + mShaderMatrix.mapRect(mBorderRect); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + + case FIT_XY: + mBorderRect.set(mBounds); + mBorderRect.inset((mBorderWidth) / 2, (mBorderWidth) / 2); + mShaderMatrix.set(null); + mShaderMatrix.setRectToRect(mBitmapRect, mBorderRect, Matrix.ScaleToFit.FILL); + break; + } + + mDrawableRect.set(mBorderRect); + mBitmapShader.setLocalMatrix(mShaderMatrix); + } + + @Override + public void draw(Canvas canvas) { + + if (mOval) { + if (mBorderWidth > 0) { + canvas.drawOval(mDrawableRect, mBitmapPaint); + canvas.drawOval(mBorderRect, mBorderPaint); + } else { + canvas.drawOval(mDrawableRect, mBitmapPaint); + } + } else { + if (mBorderWidth > 0) { + canvas.drawRoundRect(mDrawableRect, Math.max(mCornerRadius, 0), + Math.max(mCornerRadius, 0), mBitmapPaint); + canvas.drawRoundRect(mBorderRect, mCornerRadius, mCornerRadius, mBorderPaint); + } else { + canvas.drawRoundRect(mDrawableRect, mCornerRadius, mCornerRadius, mBitmapPaint); + } + } + } + + @Override + public void setDither(boolean dither) { + mBitmapPaint.setDither(dither); + invalidateSelf(); + } + + @Override + public void setFilterBitmap(boolean filter) { + mBitmapPaint.setFilterBitmap(filter); + invalidateSelf(); + } + + @Override + public void setAlpha(int alpha) { + mBitmapPaint.setAlpha(alpha); + invalidateSelf(); + } + + @Override + public void setColorFilter(ColorFilter cf) { + mBitmapPaint.setColorFilter(cf); + invalidateSelf(); + } + + @Override + public boolean isStateful() { + return mBorderColor.isStateful(); + } + + @Override + public int getOpacity() { + return PixelFormat.TRANSLUCENT; + } + + @Override + protected boolean onStateChange(int[] state) { + int newColor = mBorderColor.getColorForState(state, 0); + if (mBorderPaint.getColor() != newColor) { + mBorderPaint.setColor(newColor); + return true; + } else { + return super.onStateChange(state); + } + } + + @Override + protected void onBoundsChange(Rect bounds) { + super.onBoundsChange(bounds); + + mBounds.set(bounds); + + updateShaderMatrix(); + } + + @Override + public int getIntrinsicWidth() { + return mBitmapWidth; + } + + @Override + public int getIntrinsicHeight() { + return mBitmapHeight; + } + + public float getCornerRadius() { + return mCornerRadius; + } + + public RoundedDrawable setCornerRadius(float radius) { + mCornerRadius = radius; + return this; + } + + public float getBorderWidth() { + return mBorderWidth; + } + + public RoundedDrawable setBorderWidth(int width) { + mBorderWidth = width; + mBorderPaint.setStrokeWidth(mBorderWidth); + return this; + } + + public int getBorderColor() { + return mBorderColor.getDefaultColor(); + } + + public RoundedDrawable setBorderColor(int color) { + return setBorderColors(ColorStateList.valueOf(color)); + } + + public ColorStateList getBorderColors() { + return mBorderColor; + } + + public RoundedDrawable setBorderColors(ColorStateList colors) { + mBorderColor = colors != null ? colors : ColorStateList.valueOf(0); + mBorderPaint.setColor(mBorderColor.getColorForState(getState(), DEFAULT_BORDER_COLOR)); + return this; + } + + public boolean isOval() { + return mOval; + } + + public RoundedDrawable setOval(boolean oval) { + mOval = oval; + return this; + } + + public ScaleType getScaleType() { + return mScaleType; + } + + public RoundedDrawable setScaleType(ScaleType scaleType) { + if (scaleType == null) { + scaleType = ScaleType.FIT_CENTER; + } + if (mScaleType != scaleType) { + mScaleType = scaleType; + updateShaderMatrix(); + } + return this; + } + + public Bitmap toBitmap() { + return drawableToBitmap(this); + } +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java new file mode 100755 index 0000000000..a74e174dbd --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedImageView.java @@ -0,0 +1,323 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.net.Uri; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; +import android.util.Log; + +import com.lightgame.R; + + +@SuppressWarnings("UnusedDeclaration") +public class RoundedImageView extends AppCompatImageView { + + public static final String TAG = "RoundedImageView"; + public static final int DEFAULT_RADIUS = 0; + private int mCornerRadius = DEFAULT_RADIUS; + public static final int DEFAULT_BORDER_WIDTH = 0; + private int mBorderWidth = DEFAULT_BORDER_WIDTH; + private static final ScaleType[] SCALE_TYPES = { + ScaleType.MATRIX, + ScaleType.FIT_XY, + ScaleType.FIT_START, + ScaleType.FIT_CENTER, + ScaleType.FIT_END, + ScaleType.CENTER, + ScaleType.CENTER_CROP, + ScaleType.CENTER_INSIDE + }; + private ColorStateList mBorderColor = + ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + private boolean mOval = false; + private boolean mRoundBackground = false; + + private int mResource; + private Drawable mDrawable; + private Drawable mBackgroundDrawable; + + private ScaleType mScaleType; + + public RoundedImageView(Context context) { + super(context); + } + + public RoundedImageView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public RoundedImageView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundedImageView, defStyle, 0); + + int index = a.getInt(R.styleable.RoundedImageView_android_scaleType, -1); + if (index >= 0) { + setScaleType(SCALE_TYPES[index]); + } else { + // default scaletype to FIT_CENTER + setScaleType(ScaleType.FIT_CENTER); + } + + mCornerRadius = a.getDimensionPixelSize(R.styleable.RoundedImageView_corner_radius, -1); + mBorderWidth = a.getDimensionPixelSize(R.styleable.RoundedImageView_border_width, -1); + + // don't allow negative values for radius and border + if (mCornerRadius < 0) { + mCornerRadius = DEFAULT_RADIUS; + } + if (mBorderWidth < 0) { + mBorderWidth = DEFAULT_BORDER_WIDTH; + } + + mBorderColor = a.getColorStateList(R.styleable.RoundedImageView_border_color); + if (mBorderColor == null) { + mBorderColor = ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + } + + mRoundBackground = a.getBoolean(R.styleable.RoundedImageView_round_background, false); + mOval = a.getBoolean(R.styleable.RoundedImageView_is_oval, false); + + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + + a.recycle(); + } + + @Override + public void setImageResource(int resId) { + if (mResource != resId) { + mResource = resId; + mDrawable = resolveResource(); + updateDrawableAttrs(); + super.setImageDrawable(mDrawable); + } + } + + @Override + public void setImageURI(Uri uri) { + super.setImageURI(uri); + setImageDrawable(getDrawable()); + } @Override + protected void drawableStateChanged() { + super.drawableStateChanged(); + invalidate(); + } + + @Override + public void setImageDrawable(Drawable drawable) { + mResource = 0; + mDrawable = RoundedDrawable.fromDrawable(drawable); + updateDrawableAttrs(); + super.setImageDrawable(mDrawable); + } + + @Override + public void setImageBitmap(Bitmap bm) { + mResource = 0; + mDrawable = RoundedDrawable.fromBitmap(bm); + updateDrawableAttrs(); + super.setImageDrawable(mDrawable); + } /** + * Return the current scale type in use by this ImageView. + * + * @attr ref android.R.styleable#ImageView_scaleType + * @see ScaleType + */ + @Override + public ScaleType getScaleType() { + return mScaleType; + } + + private Drawable resolveResource() { + Resources rsrc = getResources(); + if (rsrc == null) { + return null; + } + + Drawable d = null; + + if (mResource != 0) { + try { + d = rsrc.getDrawable(mResource); + } catch (Exception e) { + Log.w(TAG, "Unable to find resource: " + mResource, e); + // Don't try again. + mResource = 0; + } + } + return RoundedDrawable.fromDrawable(d); + } + + @Override + public void setBackground(Drawable background) { + setBackgroundDrawable(background); + } /** + * Controls how the image should be resized or moved to match the size + * of this ImageView. + * + * @param scaleType The desired scaling mode. + * @attr ref android.R.styleable#ImageView_scaleType + */ + @Override + public void setScaleType(ScaleType scaleType) { + if (scaleType == null) { + throw new NullPointerException(); + } + + if (mScaleType != scaleType) { + mScaleType = scaleType; + + switch (scaleType) { + case CENTER: + case CENTER_CROP: + case CENTER_INSIDE: + case FIT_CENTER: + case FIT_START: + case FIT_END: + case FIT_XY: + super.setScaleType(ScaleType.FIT_XY); + break; + default: + super.setScaleType(scaleType); + break; + } + + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + invalidate(); + } + } + + @Override + @Deprecated + public void setBackgroundDrawable(Drawable background) { + mBackgroundDrawable = RoundedDrawable.fromDrawable(background); + updateBackgroundDrawableAttrs(); + super.setBackgroundDrawable(mBackgroundDrawable); + } + + private void updateDrawableAttrs() { + updateAttrs(mDrawable, false); + } + + private void updateBackgroundDrawableAttrs() { + updateAttrs(mBackgroundDrawable, true); + } + + private void updateAttrs(Drawable drawable, boolean background) { + if (drawable == null) { + return; + } + + if (drawable instanceof RoundedDrawable) { + ((RoundedDrawable) drawable) + .setScaleType(mScaleType) + .setCornerRadius(background && !mRoundBackground ? 0 : mCornerRadius) + .setBorderWidth(background && !mRoundBackground ? 0 : mBorderWidth) + .setBorderColors(mBorderColor) + .setOval(mOval); + } else if (drawable instanceof LayerDrawable) { + // loop through layers to and set drawable attrs + LayerDrawable ld = ((LayerDrawable) drawable); + int layers = ld.getNumberOfLayers(); + for (int i = 0; i < layers; i++) { + updateAttrs(ld.getDrawable(i), background); + } + } + } + + public int getCornerRadius() { + return mCornerRadius; + } + + public void setCornerRadius(int radius) { + if (mCornerRadius == radius) { + return; + } + + mCornerRadius = radius; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + } + + public int getBorderWidth() { + return mBorderWidth; + } + + public void setBorderWidth(int width) { + if (mBorderWidth == width) { + return; + } + + mBorderWidth = width; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + invalidate(); + } + + public int getBorderColor() { + return mBorderColor.getDefaultColor(); + } + + public void setBorderColor(int color) { + setBorderColors(ColorStateList.valueOf(color)); + } + + public ColorStateList getBorderColors() { + return mBorderColor; + } + + public void setBorderColors(ColorStateList colors) { + if (mBorderColor.equals(colors)) { + return; + } + + mBorderColor = + (colors != null) ? colors : ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + if (mBorderWidth > 0) { + invalidate(); + } + } + + public boolean isOval() { + return mOval; + } + + public void setOval(boolean oval) { + mOval = oval; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(); + invalidate(); + } + + public boolean isRoundBackground() { + return mRoundBackground; + } + + public void setRoundBackground(boolean roundBackground) { + if (mRoundBackground == roundBackground) { + return; + } + + mRoundBackground = roundBackground; + updateBackgroundDrawableAttrs(); + invalidate(); + } + + + + + + + + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java new file mode 100644 index 0000000000..efabe2c00c --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/RoundedTransformationBuilder.java @@ -0,0 +1,121 @@ +/* +* Copyright (C) 2015 Vincent Mi +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package com.lightgame.view.imageview; + +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.util.DisplayMetrics; +import android.util.TypedValue; +import android.widget.ImageView; + +public final class RoundedTransformationBuilder { + + //private final Resources mResources; + private final DisplayMetrics mDisplayMetrics; + + private float mCornerRadius = 0; + private boolean mOval = false; + private float mBorderWidth = 0; + private ColorStateList mBorderColor = + ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); + private ImageView.ScaleType mScaleType = ImageView.ScaleType.FIT_CENTER; + + public RoundedTransformationBuilder() { + mDisplayMetrics = Resources.getSystem().getDisplayMetrics(); + } + + public RoundedTransformationBuilder scaleType(ImageView.ScaleType scaleType) { + mScaleType = scaleType; + return this; + } + + /** + * set corner radius in px + */ + public RoundedTransformationBuilder cornerRadius(float radiusPx) { + mCornerRadius = radiusPx; + return this; + } + + /** + * set corner radius in dip + */ + public RoundedTransformationBuilder cornerRadiusDp(float radiusDp) { + mCornerRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, radiusDp, mDisplayMetrics); + return this; + } + + /** + * set border width in px + */ + public RoundedTransformationBuilder borderWidth(float widthPx) { + mBorderWidth = widthPx; + return this; + } + + /** + * set border width in dip + */ + public RoundedTransformationBuilder borderWidthDp(float widthDp) { + mBorderWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, widthDp, mDisplayMetrics); + return this; + } + + + /** + * set border color + */ + public RoundedTransformationBuilder borderColor(int color) { + mBorderColor = ColorStateList.valueOf(color); + return this; + } + + public RoundedTransformationBuilder borderColor(ColorStateList colors) { + mBorderColor = colors; + return this; + } + + public RoundedTransformationBuilder oval(boolean oval) { + mOval = oval; + return this; + } + +// public Transformation build() { +// return new Transformation() { +// @Override public Bitmap transform(Bitmap source) { +// Bitmap transformed = RoundedDrawable.fromBitmap(source) +// .setScaleType(mScaleType) +// .setCornerRadius(mCornerRadius) +// .setBorderWidth(mBorderWidth) +// .setBorderColor(mBorderColor) +// .setOval(mOval) +// .toBitmap(); +// if (!source.equals(transformed)) { +// source.recycle(); +// } +// return transformed; +// } +// +// @Override public String key() { +// return "r:" + mCornerRadius +// + "b:" + mBorderWidth +// + "c:" + mBorderColor +// + "o:" + mOval; +// } +// }; +// } +} \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java new file mode 100755 index 0000000000..4bdd7b2e47 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleImageView.java @@ -0,0 +1,47 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.support.v7.widget.AppCompatImageView; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * 按照百分比来保持View的大小,可选以width或者height做参考系 + * + * @author CsHeng + * @date 2013-3-14 + */ +public class ScaleImageView extends AppCompatImageView { + + private boolean mMeasureByHeight = false; // default width + + private float mFraction = 1f;// default square + + public ScaleImageView(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + width = (int) (height * mFraction); + } else { + height = (int) (width * mFraction); + } + setMeasuredDimension(width, height); + + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java new file mode 100755 index 0000000000..dc7dc1a0b3 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/imageview/ScaleRoundedImageView.java @@ -0,0 +1,47 @@ +package com.lightgame.view.imageview; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-26 + * Time: 下午12:54 + * To change this template use File | Settings | File Templates. + */ +public class ScaleRoundedImageView extends RoundedImageView { + + private boolean mMeasureByHeight = false; // default width + + private float mFraction = 1f;// default square + + public ScaleRoundedImageView(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + +} + + diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java new file mode 100755 index 0000000000..aec369e112 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleFrameLayout.java @@ -0,0 +1,50 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午4:38 + * To change this template use File | Settings | File Templates. + */ +public class ScaleFrameLayout extends FrameLayout { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public ScaleFrameLayout(Context context) { + super(context); + } + + public ScaleFrameLayout(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java new file mode 100755 index 0000000000..dd4ef8be93 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleLinearLayout.java @@ -0,0 +1,51 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.widget.LinearLayout; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午12:31 + * To change this template use File | Settings | File Templates. + */ +public class ScaleLinearLayout extends LinearLayout { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public ScaleLinearLayout(Context context) { + super(context); + } + + public ScaleLinearLayout(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java new file mode 100755 index 0000000000..8e2d29cb3a --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleRelativeLayout.java @@ -0,0 +1,50 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.widget.RelativeLayout; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午4:38 + * To change this template use File | Settings | File Templates. + */ +public class ScaleRelativeLayout extends RelativeLayout { + + private boolean mMeasureByHeight = false; // default width + private float mFraction = 1f;// default square + + public ScaleRelativeLayout(Context context) { + super(context); + } + + public ScaleRelativeLayout(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mFraction = a.getFloat(R.styleable.ScaleView_fractionValue, mFraction); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mFraction), height); + } else { + setMeasuredDimension(width, (int) (width * mFraction)); + } + } + +} diff --git a/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java new file mode 100644 index 0000000000..e76d014a47 --- /dev/null +++ b/libraries/LGLibrary/src/main/java/com/lightgame/view/scale/ScaleViewPager.java @@ -0,0 +1,51 @@ +package com.lightgame.view.scale; + +import android.content.Context; +import android.content.res.TypedArray; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; + +import com.lightgame.R; + + +/** + * Created with IntelliJ IDEA. + * User: CsHeng + * Date: 13-3-15 + * Time: 下午4:38 + * To change this template use File | Settings | File Templates. + */ +public class ScaleViewPager extends ViewPager { + + private boolean mMeasureByHeight = false; // default width + private float mScale = 1f;// default square + + public ScaleViewPager(Context context) { + super(context); + } + + public ScaleViewPager(Context context, AttributeSet set) { + super(context, set); + TypedArray a = context.obtainStyledAttributes(set, R.styleable.ScaleView); + int enumV = a.getInt(R.styleable.ScaleView_measureBy, 0); + mScale = a.getFloat(R.styleable.ScaleView_fractionValue, mScale); + if (enumV != 0) { + mMeasureByHeight = true; + } + a.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = MeasureSpec.getSize(widthMeasureSpec); + int height = MeasureSpec.getSize(heightMeasureSpec); + if (mMeasureByHeight) { + setMeasuredDimension((int) (height * mScale), height); + } else { + setMeasuredDimension(width, (int) (width * mScale)); + } + + } + +} diff --git a/libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml b/libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml new file mode 100644 index 0000000000..ae0ab99f67 --- /dev/null +++ b/libraries/LGLibrary/src/main/res/values/lightgame_attrs.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libraries/LGLibrary/src/main/res/values/lightgame_ids.xml b/libraries/LGLibrary/src/main/res/values/lightgame_ids.xml new file mode 100644 index 0000000000..430479cb2c --- /dev/null +++ b/libraries/LGLibrary/src/main/res/values/lightgame_ids.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index aad892d527..db9e7de06e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,5 @@ include ':app' -include ':libraries:EventBus' +include ':libraries:LGLibrary' include ':libraries:MiPush' include ':libraries:MTA' include ':libraries:QQShare'