Commit c350fd94 by mReturn

Merge remote-tracking branch 'remotes/origin/dev'

parents 96f7daac aa85fc68
Showing with 2239 additions and 221 deletions
...@@ -74,13 +74,22 @@ ...@@ -74,13 +74,22 @@
<!-- </provider> --> <!-- </provider> -->
<activity <activity
android:name=".SplashActivity" android:name=".InitializeActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/SplashTheme"> android:theme="@style/SplashTheme">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="launch"
android:host="com.dayu.bigfish"/>
</intent-filter>
</activity> </activity>
<!-- 友盟统计 --> <!-- 友盟统计 -->
...@@ -135,9 +144,9 @@ ...@@ -135,9 +144,9 @@
</intent-filter> </intent-filter>
</receiver> </receiver>
<activity <!--<activity-->
android:name=".InitializeActivity" <!--android:name=".InitializeActivity"-->
android:screenOrientation="portrait" /> <!--android:screenOrientation="portrait" />-->
<activity <activity
android:name=".ui.SettingActivity" android:name=".ui.SettingActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
......
...@@ -5,32 +5,26 @@ import android.annotation.TargetApi; ...@@ -5,32 +5,26 @@ import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.Toast; import android.widget.Toast;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.activity.DataBindingActivity; import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.databinding.ActivityInitializeMainBinding; import com.dayu.bigfish.databinding.ActivityInitializeMainBinding;
import com.dayu.bigfish.ui.MainActivity; import com.dayu.bigfish.ui.MainActivity;
import com.dayu.bigfish.ui.ManagerActivity;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
import com.dayu.managercenter.data.Spu;
import com.dayu.managercenter.ui.activity.ServiceStationActivity;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.activity.SmsLoginActivity; import com.dayu.usercenter.ui.activity.SmsLoginActivity;
import com.dayu.utils.AppUtils; import com.dayu.utils.AppUtils;
import com.dayu.utils.LogUtils; import com.dayu.utils.LogUtils;
import com.dayu.utils.MPermissionUtils; import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.SPUtils; import com.dayu.utils.SPUtils;
import com.dayu.utils.StationManager;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.hyphenate.EMCallBack; import com.hyphenate.EMCallBack;
import com.hyphenate.chat.EMClient; import com.hyphenate.chat.EMClient;
import com.megvii.idcardlib.util.Constant;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -49,7 +43,17 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -49,7 +43,17 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
} }
@Override @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void initView() { public void initView() {
if (!isTaskRoot()) {
finish();
return;
}
if (Constants.IS_DEBUG){ if (Constants.IS_DEBUG){
AppUtils.initEnv(); AppUtils.initEnv();
}else { }else {
...@@ -64,8 +68,9 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -64,8 +68,9 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() { MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() {
@Override @Override
public void onPermissionGranted() { public void onPermissionGranted() {
Observable.timer(1000, TimeUnit.MILLISECONDS) Observable.timer(600, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
// .subscribe(aLong -> {});
.subscribe(aLong -> doJump()); .subscribe(aLong -> doJump());
} }
......
...@@ -16,6 +16,7 @@ import com.dayu.bigfish.ui.service.LocationService; ...@@ -16,6 +16,7 @@ import com.dayu.bigfish.ui.service.LocationService;
import com.dayu.bigfish.utils.HxManager; import com.dayu.bigfish.utils.HxManager;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.AppReturnFrontEvent;
import com.dayu.livemodule.LiveUtils; import com.dayu.livemodule.LiveUtils;
import com.dayu.location.base.LocationUtils; import com.dayu.location.base.LocationUtils;
import com.dayu.order.greendao.GreenDaoManager; import com.dayu.order.greendao.GreenDaoManager;
...@@ -46,6 +47,7 @@ import org.android.agoo.huawei.HuaWeiRegister; ...@@ -46,6 +47,7 @@ import org.android.agoo.huawei.HuaWeiRegister;
import org.android.agoo.oppo.OppoRegister; import org.android.agoo.oppo.OppoRegister;
import org.android.agoo.vivo.VivoRegister; import org.android.agoo.vivo.VivoRegister;
import org.android.agoo.xiaomi.MiPushRegistar; import org.android.agoo.xiaomi.MiPushRegistar;
import org.greenrobot.eventbus.EventBus;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.Field; import java.lang.reflect.Field;
...@@ -127,7 +129,7 @@ public class MyApplication extends BaseApplication { ...@@ -127,7 +129,7 @@ public class MyApplication extends BaseApplication {
// UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, null); // UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, null);
// UMConfigure.init(this,"599a41697f2c743210000990","Channel ID", // UMConfigure.init(this,"599a41697f2c743210000990","Channel ID",
// UMConfigure.DEVICE_TYPE_PHONE,"78d43fa94358512f9d00acf9b50f7474"); // UMConfigure.DEVICE_TYPE_PHONE,"78d43fa94358512f9d00acf9b50f7474");
UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE,"78d43fa94358512f9d00acf9b50f7474"); UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "78d43fa94358512f9d00acf9b50f7474");
UMConfigure.setLogEnabled(true); UMConfigure.setLogEnabled(true);
UMConfigure.setEncryptEnabled(true); UMConfigure.setEncryptEnabled(true);
MobclickAgent.setScenarioType(mContext, EScenarioType.E_UM_NORMAL); MobclickAgent.setScenarioType(mContext, EScenarioType.E_UM_NORMAL);
...@@ -145,17 +147,17 @@ public class MyApplication extends BaseApplication { ...@@ -145,17 +147,17 @@ public class MyApplication extends BaseApplication {
@Override @Override
public void dealWithCustomAction(Context context, UMessage msg) { public void dealWithCustomAction(Context context, UMessage msg) {
LogUtils.e("Upush click0: "+ msg.extra.get(Constants.ORDER_ID)+" "+msg.custom + UserManager.getInstance().hasUserInfo()); LogUtils.e("Upush click0: " + msg.extra.get(Constants.ORDER_ID) + " " + msg.custom + UserManager.getInstance().hasUserInfo());
if (Constants.TO_DETAIL.equals(msg.custom) if (Constants.TO_DETAIL.equals(msg.custom)
&& msg.extra.containsKey(Constants.ORDER_ID) && UserManager.getInstance().hasUserInfo()){ && msg.extra.containsKey(Constants.ORDER_ID) && UserManager.getInstance().hasUserInfo()) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, Integer.parseInt(msg.extra.get(Constants.ORDER_ID))); bundle.putInt(Constants.ORDER_ID, Integer.parseInt(msg.extra.get(Constants.ORDER_ID)));
Intent intent = new Intent(mContext,OrderDetailsActivity.class); Intent intent = new Intent(mContext, OrderDetailsActivity.class);
intent.putExtra(Constants.BUNDLE,bundle); intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent); startActivity(intent);
MobclickAgent.onEvent(BaseApplication.getContext(), "push_check_order_detail"); MobclickAgent.onEvent(BaseApplication.getContext(), "push_check_order_detail");
}else { } else {
startActivity(new Intent(mContext,InitializeActivity.class)); startActivity(new Intent(mContext, InitializeActivity.class));
} }
} }
}; };
...@@ -166,17 +168,17 @@ public class MyApplication extends BaseApplication { ...@@ -166,17 +168,17 @@ public class MyApplication extends BaseApplication {
mPushAgent.register(new IUmengRegisterCallback() { mPushAgent.register(new IUmengRegisterCallback() {
@Override @Override
public void onSuccess(String s) { public void onSuccess(String s) {
SPUtils.put(Constants.UMENG_DEVICE_TOKEN,s); SPUtils.put(Constants.UMENG_DEVICE_TOKEN, s);
LogUtils.e("Upush device_token: "+s); LogUtils.e("Upush device_token: " + s);
} }
@Override @Override
public void onFailure(String s, String s1) { public void onFailure(String s, String s1) {
LogUtils.e("Upush init failure: "+s+" "+s1); LogUtils.e("Upush init failure: " + s + " " + s1);
} }
}); });
MiPushRegistar.register(mContext,"2882303761518127164","5201812712164"); MiPushRegistar.register(mContext, "2882303761518127164", "5201812712164");
HuaWeiRegister.register(this); HuaWeiRegister.register(this);
OppoRegister.register(this, "a69IwYs2f8gg48ck000W4c0kc", "425bEd757209c8101bEfE57eba86ddca"); OppoRegister.register(this, "a69IwYs2f8gg48ck000W4c0kc", "425bEd757209c8101bEfE57eba86ddca");
VivoRegister.register(this); VivoRegister.register(this);
...@@ -201,18 +203,29 @@ public class MyApplication extends BaseApplication { ...@@ -201,18 +203,29 @@ public class MyApplication extends BaseApplication {
startLocationService(); startLocationService();
} }
@Override @Override
public void runFrontGround() { public void runFrontGround() {
startLocationService(); startLocationService();
EventBus.getDefault().post(new AppReturnFrontEvent());
} }
long frontTime;
private void startLocationService() { private void startLocationService() {
if (System.currentTimeMillis() - frontTime > 600) {
frontTime = System.currentTimeMillis();
// startService(new Intent(mContext, LocationService.class)); // startService(new Intent(mContext, LocationService.class));
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(new Intent(mContext, LocationService.class)); startForegroundService(new Intent(mContext, LocationService.class));
} else { } else {
startService(new Intent(mContext, LocationService.class)); startService(new Intent(mContext, LocationService.class));
} }
} catch (Exception e) {
e.printStackTrace();
}
}
} }
public static MyApplication getAppContext() { public static MyApplication getAppContext() {
......
package com.dayu.bigfish.presenter.main; package com.dayu.bigfish.presenter.main;
import com.dayu.base.api.protocol.RedPacketBean;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.api.protocol.VersionInfo; import com.dayu.bigfish.api.protocol.VersionInfo;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import java.util.List;
/** /**
* Created by luo on 2016/8/4. * Created by luo on 2016/8/4.
*/ */
...@@ -38,6 +41,8 @@ public interface MainContract { ...@@ -38,6 +41,8 @@ public interface MainContract {
* 隐藏邀请码框 * 隐藏邀请码框
*/ */
void hideInvateCodeView(); void hideInvateCodeView();
void showRedPackets(List<RedPacketBean> datas);
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
......
...@@ -56,6 +56,14 @@ public class MainPresenter extends MainContract.Presenter { ...@@ -56,6 +56,14 @@ public class MainPresenter extends MainContract.Presenter {
getReceiveOrder(Constants.WATING_ORDER, mAccountId, mSiteId, 1, 20); getReceiveOrder(Constants.WATING_ORDER, mAccountId, mSiteId, 1, 20);
// getHxNum(mUser.getHxAccount()); // getHxNum(mUser.getHxAccount());
getUserInfo(Integer.parseInt(mUser.getAccountId())); getUserInfo(Integer.parseInt(mUser.getAccountId()));
getRedPacketData();
}
public void getRedPacketData() {
Api.getService(com.dayu.base.api.APIService.class).getRedPacketList(mAccountId).compose(Api.applySchedulers())
.subscribe(baseObserver((datas->{
mView.showRedPackets(datas);
})));
} }
private void getServiceData() { private void getServiceData() {
......
...@@ -16,6 +16,7 @@ import com.dayu.event.UserInfo; ...@@ -16,6 +16,7 @@ import com.dayu.event.UserInfo;
import com.dayu.usercenter.ui.activity.SmsLoginActivity; import com.dayu.usercenter.ui.activity.SmsLoginActivity;
import com.dayu.utils.AppManager; import com.dayu.utils.AppManager;
import com.dayu.utils.AppUtils; import com.dayu.utils.AppUtils;
import com.dayu.utils.CommonUtils;
import com.dayu.utils.DataCleanManager; import com.dayu.utils.DataCleanManager;
import com.dayu.utils.SPUtils; import com.dayu.utils.SPUtils;
import com.dayu.utils.StationManager; import com.dayu.utils.StationManager;
...@@ -24,6 +25,7 @@ import com.dayu.utils.UserManager; ...@@ -24,6 +25,7 @@ import com.dayu.utils.UserManager;
import com.hyphenate.chat.EMClient; import com.hyphenate.chat.EMClient;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import java.io.File;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
...@@ -150,6 +152,9 @@ public class SettingPresenter extends SettingContract.Presenter { ...@@ -150,6 +152,9 @@ public class SettingPresenter extends SettingContract.Presenter {
}); });
DataCleanManager.deleteFolderFile(Environment.getExternalStorageDirectory() + "/Android/data/com.dayu.bigfish/cache", false); DataCleanManager.deleteFolderFile(Environment.getExternalStorageDirectory() + "/Android/data/com.dayu.bigfish/cache", false);
MobclickAgent.onEvent(MyApplication.getContext(), "sure_clear_cach"); MobclickAgent.onEvent(MyApplication.getContext(), "sure_clear_cach");
File sdDir = Environment.getExternalStorageDirectory();
File dir = new File(sdDir + "/.dayu/");
CommonUtils.deleteFiles(dir);
} }
}); });
MobclickAgent.onEvent(MyApplication.getContext(), "clear_cach"); MobclickAgent.onEvent(MyApplication.getContext(), "clear_cach");
......
...@@ -24,7 +24,6 @@ import com.dayu.utils.SPUtils; ...@@ -24,7 +24,6 @@ import com.dayu.utils.SPUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.dayu.widgets.BadgeView; import com.dayu.widgets.BadgeView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
...@@ -61,7 +60,6 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana ...@@ -61,7 +60,6 @@ public class ManagerActivity extends BaseActivity<ManagerPresenter, ActivityMana
showHideFragment(1, 0); showHideFragment(1, 0);
}); });
doAction(getIntent()); doAction(getIntent());
EventBus.getDefault().register(this);
} }
private void addFragment() { private void addFragment() {
......
package com.dayu.bigfish.ui; package com.dayu.bigfish.ui;
import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat;
import android.support.v4.content.FileProvider;
import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.api.DownloadService; import com.dayu.base.api.DownloadService;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.BuildConfig;
import com.dayu.bigfish.MyApplication; import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R; import com.dayu.bigfish.R;
import com.dayu.bigfish.api.protocol.VersionInfo; import com.dayu.bigfish.api.protocol.VersionInfo;
...@@ -21,14 +16,18 @@ import com.dayu.bigfish.databinding.ActivitySettingBinding; ...@@ -21,14 +16,18 @@ import com.dayu.bigfish.databinding.ActivitySettingBinding;
import com.dayu.bigfish.presenter.setting.SettingContract; import com.dayu.bigfish.presenter.setting.SettingContract;
import com.dayu.bigfish.presenter.setting.SettingPresenter; import com.dayu.bigfish.presenter.setting.SettingPresenter;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.DownloadBean;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.RouterPath;
import com.dayu.utils.AppUtils; import com.dayu.utils.AppUtils;
import com.dayu.utils.UIUtils;
import com.dayu.widgets.ChangeEnvDialog; import com.dayu.widgets.ChangeEnvDialog;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener; import com.dayu.widgets.listener.OnCloseListener;
import com.dayu.widgets.listener.onDownloadListener; import com.dayu.widgets.listener.onDownloadListener;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.Subscribe;
import java.io.File; import java.io.File;
/** /**
...@@ -81,37 +80,18 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett ...@@ -81,37 +80,18 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett
if (confirm) { if (confirm) {
File sdDir = Environment.getExternalStorageDirectory(); File sdDir = Environment.getExternalStorageDirectory();
File file; File file;
file = new File(sdDir + "/dayu/"); file = new File(sdDir + "/.dayu/");
if (!file.exists()) { if (!file.exists()) {
file.mkdirs(); file.mkdirs();
} }
file = new File(file, "dayu" + ".apk"); file = new File(file, "dayu" + ".apk");
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
showToast(R.string.on_download); if (AppUtils.isApkDownloaded(file.getAbsolutePath(), this, info.getVersionCode())) {
initNotification(); // showInstallDialog(info, file);
DownloadService.startUpdateService(mActivity, info.getDownloadUrl(), file.getAbsolutePath(), new onDownloadListener() { AppUtils.installApk(mActivity, file);
@Override
public void onDownloadSuccess(File file) {
//安装apk
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addCategory("android.intent.category.DEFAULT");
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri contentUri = FileProvider.getUriForFile(mActivity, BuildConfig.APPLICATION_ID + ".fileProvider", file);
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
} else { } else {
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); startDownload(info, file);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
startActivity(intent);
}
@Override
public void onDownloadFail() {
showToast(R.string.download_faile);
} }
});
} }
MobclickAgent.onEvent(MyApplication.getContext(), "sure_update_app"); MobclickAgent.onEvent(MyApplication.getContext(), "sure_update_app");
} else { } else {
...@@ -127,13 +107,66 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett ...@@ -127,13 +107,66 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett
dialog.show(); dialog.show();
} }
//安装包已下载,提示安装
private void showInstallDialog(VersionInfo info, File file) {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.new_version_download),
(dialog1, confirm) -> {
if (confirm) {
AppUtils.installApk(mActivity, file);
} else {
startDownload(info, file);
}
});
dialog.setNegativeButton(getString(R.string.re_download))
.setPositiveButton(getString(R.string.install_now));
dialog.show();
}
//开始下载apk文件
private void startDownload(VersionInfo info, File file) {
showToast(R.string.on_download);
initNotification();
DownloadService.startUpdateService(mActivity, info.getDownloadUrl(), file.getAbsolutePath(), new onDownloadListener() {
@Override
public void onDownloadSuccess(File file) {
//安装apk
AppUtils.installApk(mActivity, file);
}
@Override
public void onDownloadFail() {
showToast(R.string.download_faile);
}
});
}
public void initNotification() { public void initNotification() {
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this) builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.wechatimg) .setSmallIcon(R.mipmap.wechatimg)
.setContentTitle(getString(R.string.start_download)) .setContentTitle(getString(R.string.start_download))
.setAutoCancel(true) .setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setVibrate(new long[]{0})
.setDefaults(NotificationCompat.FLAG_ONLY_ALERT_ONCE)
.setSound(null)
.setContentText(getString(R.string.new_version)); .setContentText(getString(R.string.new_version));
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
UIUtils.getPackageName(),
"版本更新",
NotificationManager.IMPORTANCE_DEFAULT
);
builder.setChannelId(UIUtils.getPackageName());
channel.enableVibration(false);
channel.setVibrationPattern(new long[]{0});
channel.enableLights(false);
channel.setSound(null, null);
notificationManager.createNotificationChannel(channel);
}
notificationManager.notify(0, builder.build()); notificationManager.notify(0, builder.build());
} }
...@@ -155,4 +188,20 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett ...@@ -155,4 +188,20 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett
} }
} }
@Subscribe
public void downloadEvent(DownloadBean event) {
int progress = (int) Math.round(event.getBytesReaded() / (double) event.getTotal() * 100);
if (builder == null || notificationManager == null) {
return;
}
builder.setContentInfo(String.valueOf(progress) + "%").setProgress(100, progress, false);
notificationManager.notify(0, builder.build());
if (progress == 100) {
notificationManager.cancel(0);
notificationManager = null;
builder = null;
}
}
} }
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<item>
<bitmap
android:gravity="top"
android:scaleType="centerCrop"
android:src="@drawable/ic_splash"
android:tileMode="disabled" />
</item>
</layer-list>
\ No newline at end of file
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <layout xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout <RelativeLayout
android:visibility="gone"
android:id="@+id/rl_root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#ffffff"> android:background="#ffffff">
...@@ -14,13 +16,51 @@ ...@@ -14,13 +16,51 @@
android:visibility="gone" android:visibility="gone"
/> />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.4"
>
<ImageView
android:id="@+id/iv_logo"
android:layout_width="140dp"
android:layout_height="140dp"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:src="@drawable/icon_app_logo"
android:visibility="visible" />
</RelativeLayout>
<View
android:layout_width="1dp"
android:layout_height="0dp"
android:layout_weight="0.6"
/>
</LinearLayout>
<ImageView <ImageView
android:id="@+id/start_pager_image" android:id="@+id/start_pager_image"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:src="@drawable/ic_splash"
android:scaleType="fitStart"
/>
<TextView
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/common_text_color"
android:textSize="16sp"
android:text="北京大鱼创想科技有限公司"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:background="@mipmap/bg_splash" android:layout_marginBottom="20dp"
android:visibility="visible" /> />
</RelativeLayout> </RelativeLayout>
</layout> </layout>
\ No newline at end of file
<resources> <resources>
<style name="SplashTheme" parent="AppTheme"> <style name="SplashTheme" parent="AppTheme">
<item name="android:windowBackground">@mipmap/bg_splash</item> <!--<item name="android:windowBackground">@mipmap/bg_splash</item>-->
<!--<item name="android:windowBackground">@drawable/ic_splash</item>-->
<item name="android:windowBackground">@drawable/bg_splash_style</item>
<item name="android:windowFullscreen">true</item> <item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item> <item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
......
package com.dayu.base.api; package com.dayu.base.api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.api.protocol.AddressInfoBean; import com.dayu.base.api.protocol.AddressInfoBean;
import com.dayu.base.api.protocol.BaseResponse; import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.base.api.protocol.BankInfoBean;
import com.dayu.base.api.protocol.OpenRedPacketBean;
import com.dayu.base.api.protocol.RedPacketBean;
import com.dayu.base.api.protocol.TreeAddressBean; import com.dayu.base.api.protocol.TreeAddressBean;
import com.dayu.common.Constants; import com.dayu.common.Constants;
...@@ -11,6 +15,7 @@ import java.util.List; ...@@ -11,6 +15,7 @@ import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.MultipartBody; import okhttp3.MultipartBody;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.Multipart; import retrofit2.http.Multipart;
import retrofit2.http.POST; import retrofit2.http.POST;
...@@ -49,6 +54,7 @@ public interface APIService { ...@@ -49,6 +54,7 @@ public interface APIService {
@POST(Constants.UP_PHOTO) @POST(Constants.UP_PHOTO)
Observable<BaseResponse<List<String>>> uploadPhoto( Observable<BaseResponse<List<String>>> uploadPhoto(
@Part MultipartBody.Part part); @Part MultipartBody.Part part);
/** /**
* 上传图片单张. * 上传图片单张.
* *
...@@ -85,10 +91,11 @@ public interface APIService { ...@@ -85,10 +91,11 @@ public interface APIService {
/** /**
* 地址(省市区)信息 * 地址(省市区)信息
*
* @param parednId -1.查询省份数据 * @param parednId -1.查询省份数据
* @return * @return
*/ */
@GET(Constants.API_7300+"/geography/tree/{parentId}") @GET(Constants.API_7300 + "/geography/tree/{parentId}")
Observable<BaseResponse<List<TreeAddressBean>>> getTreeAddress(@Path("parentId") int parednId); Observable<BaseResponse<List<TreeAddressBean>>> getTreeAddress(@Path("parentId") int parednId);
/** /**
...@@ -98,4 +105,37 @@ public interface APIService { ...@@ -98,4 +105,37 @@ public interface APIService {
*/ */
@GET(Constants.API_7100 + "/engineerAddress/default/accountId/{accountId}") @GET(Constants.API_7100 + "/engineerAddress/default/accountId/{accountId}")
Observable<BaseResponse<AddressInfoBean>> getAddressInfo(@Path("accountId") int accountId); Observable<BaseResponse<AddressInfoBean>> getAddressInfo(@Path("accountId") int accountId);
/**
* 获取银行信息.
* sourceType 1工程师账号 2小程序用户ID
*
* @return
*/
@GET(Constants.API_7800 + "/payAccountBank/accountId/{accountId}/sourceType/1")
Observable<BaseResponse<BankInfoBean>> getUserBankInfo(@Path("accountId") int accountId);
/**
* 获取红包列表
*
* @return
*/
@GET(Constants.API_7900 + "/activityPrize/raffleList/{accountId}")
Observable<BaseResponse<List<RedPacketBean>>> getRedPacketList(@Path("accountId") int accountId);
/**
* 打开红包
*
* @return
*/
@GET(Constants.API_7900 + "/activityPrize/raffleResult/{activityPrizeId}")
Observable<BaseResponse<OpenRedPacketBean>> openRedPacket(@Path("activityPrizeId") int activityPrizeId);
/**
* 添加分享记录
*
* @return
*/
@POST(Constants.API_7900 + "/shareRecord")
Observable<BaseResponse<Boolean>> addShareRecord(@Body AddShareRecordData data);
} }
package com.dayu.base.api.protocol;
public class AddShareRecordData {
public int operatorId;
public String operatorName;
public String operatorInfo;
public int sourceId;
public int sourceType;
public AddShareRecordData() {
}
public AddShareRecordData(int operatorId, String operatorName, String operatorInfo, int sourceId, int sourceType) {
this.operatorId = operatorId;
this.operatorName = operatorName;
this.operatorInfo = operatorInfo;
this.sourceId = sourceId;
this.sourceType = sourceType;
}
}
package com.dayu.base.api.protocol;
public class BankInfoBean {
/**
* id : 0
* sourceAccountId : 1267
* sourceType : 1
* bankName : aksksks
* bankAccount : 7767664944
* realName : jdjdnn
* identity : null
* createTime : 2020-02-25 14:42:18
* mobile : null
*/
private int id;
private int sourceAccountId;
private int sourceType;
private String bankName;
private String bankAccount;
private String realName;
private Object identity;
private String createTime;
private Object mobile;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getSourceAccountId() {
return sourceAccountId;
}
public void setSourceAccountId(int sourceAccountId) {
this.sourceAccountId = sourceAccountId;
}
public int getSourceType() {
return sourceType;
}
public void setSourceType(int sourceType) {
this.sourceType = sourceType;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBankAccount() {
return bankAccount;
}
public void setBankAccount(String bankAccount) {
this.bankAccount = bankAccount;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public Object getIdentity() {
return identity;
}
public void setIdentity(Object identity) {
this.identity = identity;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public Object getMobile() {
return mobile;
}
public void setMobile(Object mobile) {
this.mobile = mobile;
}
}
package com.dayu.base.api.protocol;
public class OpenRedPacketBean {
/**
* bonusPrice : 0
* prizeUrl : string
* status : 0
*/
private double bonusPrice;
private String prizeUrl;
private int status;
public double getBonusPrice() {
return bonusPrice;
}
public void setBonusPrice(double bonusPrice) {
this.bonusPrice = bonusPrice;
}
public String getPrizeUrl() {
return prizeUrl;
}
public void setPrizeUrl(String prizeUrl) {
this.prizeUrl = prizeUrl;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
package com.dayu.base.api.protocol;
public class RedPacketBean {
/**
* id : 2
* accountId : 1441
* activityType : 1
* activityId : 2
* prizeStatus : 1
* createTime : 2020-07-07 11:54:16
* shotTime : null
* activityTitle : 路哥牛B
*/
private int id;
private int accountId;
private int activityType;
private int activityId;
private int prizeStatus;
private String createTime;
private String shotTime;
private String activityTitle;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
public int getActivityType() {
return activityType;
}
public void setActivityType(int activityType) {
this.activityType = activityType;
}
public int getActivityId() {
return activityId;
}
public void setActivityId(int activityId) {
this.activityId = activityId;
}
public int getPrizeStatus() {
return prizeStatus;
}
public void setPrizeStatus(int prizeStatus) {
this.prizeStatus = prizeStatus;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getShotTime() {
return shotTime;
}
public void setShotTime(String shotTime) {
this.shotTime = shotTime;
}
public String getActivityTitle() {
return activityTitle;
}
public void setActivityTitle(String activityTitle) {
this.activityTitle = activityTitle;
}
}
package com.dayu.base.ui.activity; package com.dayu.base.ui.activity;
import android.app.NotificationManager;
import android.content.Intent; import android.content.Intent;
import android.databinding.ViewDataBinding; import android.databinding.ViewDataBinding;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.text.TextUtils;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.cjt2325.cameralibrary.util.LogUtil;
import com.dayu.base.api.APIService;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.api.protocol.BankInfoBean;
import com.dayu.base.api.protocol.OpenRedPacketBean;
import com.dayu.base.api.protocol.RedPacketBean;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.BaseConstant; import com.dayu.common.BaseConstant;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.AppReturnFrontEvent;
import com.dayu.event.GetRedPacketDataEvent;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
import com.dayu.utils.AppManager; import com.dayu.utils.AppManager;
import com.dayu.utils.ProgressUtil; import com.dayu.utils.ProgressUtil;
...@@ -17,9 +29,14 @@ import com.dayu.utils.TUtil; ...@@ -17,9 +29,14 @@ import com.dayu.utils.TUtil;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.RedPacketsDialog;
import com.hyphenate.chat.EMClient; import com.hyphenate.chat.EMClient;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
import java.util.List;
/** /**
...@@ -32,6 +49,9 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi ...@@ -32,6 +49,9 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi
private boolean isDialogShow = false; private boolean isDialogShow = false;
protected int mUserId; protected int mUserId;
protected UserInfo mUserInfo; protected UserInfo mUserInfo;
protected static NotificationManager notificationManager;
protected static NotificationCompat.Builder builder;
@Override @Override
protected void initPresenter() { protected void initPresenter() {
...@@ -52,10 +72,16 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi ...@@ -52,10 +72,16 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi
*/ */
public abstract void setPresenter(); public abstract void setPresenter();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
EventBus.getDefault().unregister(this);
if (mPresenter != null) { if (mPresenter != null) {
mPresenter.onDetached(); mPresenter.onDetached();
} }
...@@ -136,6 +162,49 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi ...@@ -136,6 +162,49 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi
return getIntent().getBundleExtra(Constants.BUNDLE); return getIntent().getBundleExtra(Constants.BUNDLE);
} }
public void showRedPackDialog(List<RedPacketBean> list) {
if (list != null && list.size() > 0) {
RedPacketsDialog redPacketsDialog = RedPacketsDialog.getInstance();
redPacketsDialog.show(this, list, 0, new RedPacketsDialog.onItemClickListener() {
@Override
public void onOpenClick(int actyId) {
openRedPacket(redPacketsDialog, actyId);
}
});
}
}
@Override
public void onResume() {
super.onResume();
}
@SuppressWarnings("unchecked")
protected void openRedPacket(RedPacketsDialog redPacketsDialog, int actyId) {
showDialog();
Api.getService(APIService.class).openRedPacket(actyId).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(openData -> {
OpenRedPacketBean openBean = (OpenRedPacketBean) openData;
if (openBean != null) {
showDialog();
Api.getService(APIService.class).getUserBankInfo(mUserId).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(data -> {
BankInfoBean bankInfoBean = (BankInfoBean) data;
if (data == null || TextUtils.isEmpty(((BankInfoBean) data).getBankAccount())) {
redPacketsDialog.openSuccess(false, openBean);
} else {
redPacketsDialog.openSuccess(true, openBean);
}
}, responeThrowable -> redPacketsDialog.openSuccess(false, openBean)));
} else {
showToast("打开失败");
}
}));
}
/** /**
* token超时提示重新登录. * token超时提示重新登录.
*/ */
...@@ -161,9 +230,54 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi ...@@ -161,9 +230,54 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi
isDialogShow = true; isDialogShow = true;
} }
protected void initUser(){ protected void initUser() {
UserInfo info = UserManager.getInstance().getUser(); UserInfo info = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(info.getAccountId()); mUserId = Integer.parseInt(info.getAccountId());
mUserInfo = info; mUserInfo = info;
} }
long frontTime;
@Subscribe
public void onAppFront(AppReturnFrontEvent event) {
if (System.currentTimeMillis()-frontTime > 600){
frontTime = System.currentTimeMillis();
LogUtil.e("app_front 000" );
getRedPacketsData();
}
}
@Subscribe
public void getRedPacketEvent(GetRedPacketDataEvent event) {
getRedPacketsData(event.force);
}
protected void getRedPacketsData() {
getRedPacketsData(false);
}
@SuppressWarnings("unchecked")
protected void getRedPacketsData(boolean force) {
LogUtil.e("app_front " + this.getLocalClassName() + " " + AppManager.getInstance().currentActivity().getLocalClassName());
if (!force && !this.getLocalClassName().equals(AppManager.getInstance().currentActivity().getLocalClassName()))
return;
if (force && !this.getLocalClassName().contains("MainActivity"))
return;
initUser();
Api.getService(com.dayu.base.api.APIService.class).getRedPacketList(mUserId).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver((datas -> {
List<RedPacketBean> redPacketBeanList = (List<RedPacketBean>) datas;
if (redPacketBeanList != null && redPacketBeanList.size() > 0)
showRedPackDialog(redPacketBeanList);
})));
}
@SuppressWarnings("unchecked")
protected void addShareRecord(AddShareRecordData data) {
Api.getService(APIService.class).addShareRecord(data).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver((datas -> {
})));
}
} }
...@@ -5,6 +5,9 @@ import android.databinding.ViewDataBinding; ...@@ -5,6 +5,9 @@ import android.databinding.ViewDataBinding;
import android.os.Bundle; import android.os.Bundle;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.api.APIService;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.BaseConstant; import com.dayu.common.BaseConstant;
...@@ -159,4 +162,10 @@ public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBi ...@@ -159,4 +162,10 @@ public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBi
mUserId = Integer.parseInt(info.getAccountId()); mUserId = Integer.parseInt(info.getAccountId());
mUserInfo = info; mUserInfo = info;
} }
@SuppressWarnings("unchecked")
protected void addShareRecord(AddShareRecordData data) {
Api.getService(APIService.class).addShareRecord(data).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver((datas -> {})));
}
} }
...@@ -29,11 +29,13 @@ public class Constants { ...@@ -29,11 +29,13 @@ public class Constants {
public static final String API_8600 = "/api-mall"; public static final String API_8600 = "/api-mall";
public final static String PATH_EDIT_BANK = "/userCenter/edit_bank";
public final static String PATH_USER_REWARD= "/userCenter/user_reward";
public static final String PROGRAM_PATH = "pages/mallDetail/main?goodsId=gid&userId=uid&type=1"; //小程序路径 public static final String PROGRAM_PATH = "pages/mallDetail/main?goodsId=gid&userId=uid&type=1"; //小程序路径
public static final String LEAEN_PROGRAM_PATH = " /pages/shareVideo/main?type=_type&id="; //课程视频小程序路径
public static final String INVITE_NEW_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareMaster?code="; //邀请新人分享链接 public static final String INVITE_NEW_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareMaster?code="; //邀请新人分享链接
public static final String INVITE_NEW_SHARE_URL_BUSINESS = "http://app.dl.kf.ai/ext/#/merchants?code="; //邀请商家分享链接 public static final String INVITE_NEW_SHARE_URL_BUSINESS = "http://app.dl.kf.ai/ext/#/merchants?code="; //邀请商家分享链接
public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
// public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
/** /**
...@@ -50,7 +52,7 @@ public class Constants { ...@@ -50,7 +52,7 @@ public class Constants {
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"; // public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video"; // public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
// public static final boolean IS_DEBUG = true; // public static final boolean IS_DEBUG = true;
// public static final boolean CAN_CHANGE_ENV = true; //是否显示切换开发环境菜单 // public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
/** /**
...@@ -66,8 +68,9 @@ public class Constants { ...@@ -66,8 +68,9 @@ public class Constants {
// public static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop"; // public static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"; // public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=test/video"; // public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=test/video";
// public static final boolean IS_DEBUG = true; // public static final boolean IS_DEBUG = false;
// public static final boolean CAN_CHANGE_ENV = false; //是否显示切换开发环境菜单 // public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
/** /**
...@@ -84,7 +87,8 @@ public class Constants { ...@@ -84,7 +87,8 @@ public class Constants {
public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"; public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video"; public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
public static final boolean IS_DEBUG = false; public static final boolean IS_DEBUG = false;
public static final boolean CAN_CHANGE_ENV = false; //是否显示切换开发环境菜单 public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
/** /**
* 统一配置. * 统一配置.
...@@ -151,7 +155,7 @@ public class Constants { ...@@ -151,7 +155,7 @@ public class Constants {
public final static String COMMITE_LOCAITON = " /api-user/" + "/engineerPathParticle"; public final static String COMMITE_LOCAITON = " /api-user/" + "/engineerPathParticle";
public final static String AppLogoUrl = " https://dayuoss.oss-cn-beijing.aliyuncs.com/saas/151508298725_.pic_hd.jpg"; public final static String AppLogoUrl = "https://dayuoss.oss-cn-beijing.aliyuncs.com/saas/151508298725_.pic_hd.jpg";
/***********************其他配置**********************************/ /***********************其他配置**********************************/
......
package com.dayu.event;
public class AppReturnFrontEvent {
}
package com.dayu.event;
public class GetRedPacketDataEvent {
public boolean force = false;
public GetRedPacketDataEvent() {
}
public GetRedPacketDataEvent(boolean force) {
this.force = force;
}
}
package com.dayu.utils; package com.dayu.utils;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.support.v4.content.FileProvider;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import com.cjt2325.cameralibrary.util.LogUtil;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.hyphenate.chat.EMClient; import com.hyphenate.chat.EMClient;
import java.io.File;
/** /**
* Created by luofan on 2017/11/7. * Created by luofan on 2017/11/7.
*/ */
...@@ -45,12 +57,82 @@ public class AppUtils { ...@@ -45,12 +57,82 @@ public class AppUtils {
} }
/**
* 获取当前应用包名
*/
public static String getPackageName() {
try {
PackageInfo packageInfo = BaseApplication.getContext().getPackageManager().getPackageInfo(BaseApplication.getContext().getPackageName(), 0);
String packageName = packageInfo.packageName;
return packageName;
} catch (PackageManager.NameNotFoundException e) {
return "";
}
}
/**
* 判断升级包是否已下载
*
* @param absPath
* @param context
* @param versionNum
*/
public static boolean isApkDownloaded(String absPath, Context context, String versionNum) {
PackageManager pm = context.getPackageManager();
PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath, PackageManager.GET_ACTIVITIES);
if (pkgInfo != null) {
ApplicationInfo appInfo = pkgInfo.applicationInfo;
/* 必须加这两句,不然下面icon获取是default icon而不是应用包的icon */
appInfo.sourceDir = absPath;
appInfo.publicSourceDir = absPath;
String appName = pm.getApplicationLabel(appInfo).toString();// 得到应用名 
String packageName = appInfo.packageName; // 得到包名 
String version = pkgInfo.versionName; // 得到版本信息 
/* icon1和icon2其实是一样的 */
Drawable icon1 = pm.getApplicationIcon(appInfo);// 得到图标信息 
Drawable icon2 = appInfo.loadIcon(pm);
String pkgInfoStr = String.format("PackageName:%s, Vesion: %s, AppName: %s", packageName, version, appName);
LogUtil.e("apkInfo: ", String.format("PkgInfo: %s", pkgInfoStr));
LogUtil.e("apkInfo2: ", getPackageName() + " " + versionNum);
if (getPackageName().equals(packageName) && versionNum.equals(version))
return true;
} else {
LogUtil.e("apkInfo: ", "apk error");
}
return false;
}
/**
* 安装apk
*
* @param mActivity
* @param file
*/
public static void installApk(Activity mActivity, File file) {
LogUtil.e("installApk: " + mActivity + " " + file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addCategory("android.intent.category.DEFAULT");
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri contentUri = FileProvider.getUriForFile(mActivity, "com.dayu.bigfish.fileProvider", file);
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
} else {
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
mActivity.startActivity(intent);
}
public static boolean isReleaseEnv() { public static boolean isReleaseEnv() {
return SPUtils.get("env", Constants.ENVIROMENT).equals("release"); return SPUtils.get("env", Constants.ENVIROMENT).equals("release");
} }
public static boolean isDevEnv() { public static boolean isDevEnv() {
return SPUtils.get("env", Constants.ENVIROMENT).equals("debug"); return SPUtils.get("env", Constants.ENVIROMENT).equals("debug");
} }
public static boolean isUatEnv() { public static boolean isUatEnv() {
return SPUtils.get("env", Constants.ENVIROMENT).equals("uat"); return SPUtils.get("env", Constants.ENVIROMENT).equals("uat");
} }
...@@ -59,7 +141,7 @@ public class AppUtils { ...@@ -59,7 +141,7 @@ public class AppUtils {
* 切换到dev环境 * 切换到dev环境
*/ */
public static void changeToDevEnv() { public static void changeToDevEnv() {
SPUtils.put("env","debug"); SPUtils.put("env", "debug");
Constants.ENVIROMENT = "debug"; Constants.ENVIROMENT = "debug";
Constants.BASE_URL = "http://47.94.101.239:3112"; Constants.BASE_URL = "http://47.94.101.239:3112";
Constants.WEB_SOP = "http://47.94.101.239:9004/#/sop"; Constants.WEB_SOP = "http://47.94.101.239:9004/#/sop";
...@@ -74,7 +156,7 @@ public class AppUtils { ...@@ -74,7 +156,7 @@ public class AppUtils {
* 切换到uat环境 * 切换到uat环境
*/ */
public static void changeToUatEnv() { public static void changeToUatEnv() {
SPUtils.put("env","uat"); SPUtils.put("env", "uat");
Constants.ENVIROMENT = "uat"; Constants.ENVIROMENT = "uat";
Constants.BASE_URL = "http://47.95.223.6:3112"; Constants.BASE_URL = "http://47.95.223.6:3112";
Constants.WEB_SOP = "http://47.95.223.6:9004/#/sop"; Constants.WEB_SOP = "http://47.95.223.6:9004/#/sop";
...@@ -89,7 +171,7 @@ public class AppUtils { ...@@ -89,7 +171,7 @@ public class AppUtils {
* 切换到release环境 * 切换到release环境
*/ */
public static void changeToReleaseEnv() { public static void changeToReleaseEnv() {
SPUtils.put("env","release"); SPUtils.put("env", "release");
Constants.ENVIROMENT = "release"; Constants.ENVIROMENT = "release";
Constants.BASE_URL = "https://mobile.kf.ai"; Constants.BASE_URL = "https://mobile.kf.ai";
Constants.WEB_SOP = "https://sop.kf.ai/#/sop"; Constants.WEB_SOP = "https://sop.kf.ai/#/sop";
...@@ -103,7 +185,7 @@ public class AppUtils { ...@@ -103,7 +185,7 @@ public class AppUtils {
/** /**
* 退出登录 * 退出登录
*/ */
public static void exitApp(){ public static void exitApp() {
EMClient.getInstance().logout(true); EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo(); UserManager.getInstance().clearUserInfo();
AppManager.getInstance().finishAllActivity(); AppManager.getInstance().finishAllActivity();
...@@ -114,8 +196,8 @@ public class AppUtils { ...@@ -114,8 +196,8 @@ public class AppUtils {
* 初始化开发环境 * 初始化开发环境
*/ */
public static void initEnv() { public static void initEnv() {
String env = (String) SPUtils.get("env",Constants.ENVIROMENT); String env = (String) SPUtils.get("env", Constants.ENVIROMENT);
switch (env){ switch (env) {
case "debug": case "debug":
changeToDevEnv(); changeToDevEnv();
break; break;
......
package com.dayu.utils;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Environment;
import android.view.View;
import java.io.File;
import java.io.FileOutputStream;
public class BitmapUtils {
/**
* 布局转bitmap
* @param view
* @return
*/
public static Bitmap getBitmap(View view) {
//获取view的长宽
int width = view.getMeasuredWidth();
int height = view.getMeasuredHeight();
//若传入的view长或宽为小于等于0,则返回,不生成图片
if (width <=0 || height<=0) {
return null;
}
//生成一个ARGB8888的bitmap,宽度和高度为传入view的宽高
Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
if (bm == null) {
return null;
}
//根据bitmap生成一个画布
Canvas canvas = new Canvas(bm);
//注意:这里是解决图片透明度问题,给底色上白色,若存储时保存的为png格式的图,则无需此步骤
canvas.drawColor(Color.WHITE);
//手动将这个视图渲染到指定的画布上
view.draw(canvas);
return bm;
}
/**
* 保存bitmap到本地
* @param bmp
*/
public static File saveBitmap2Local(Bitmap bmp,String name) {
if (bmp == null)
return null;
// 判断是否可以对SDcard进行操作
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { // 获取SDCard指定目录下
String dir = Environment.getExternalStorageDirectory() + "/dayu/imgs";
File dirFile = new File(dir);
if (!dirFile.exists()) {
dirFile.mkdirs();
}
File file = new File(dir, name);
if (file.exists())
return file;
// file.delete();
try {
FileOutputStream out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
return file;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
...@@ -5,6 +5,7 @@ import android.content.ClipData; ...@@ -5,6 +5,7 @@ import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap;
import android.media.MediaMetadataRetriever; import android.media.MediaMetadataRetriever;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -21,9 +22,9 @@ import com.umeng.socialize.UMShareListener; ...@@ -21,9 +22,9 @@ import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage; import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMMin; import com.umeng.socialize.media.UMMin;
import com.umeng.socialize.media.UMVideo;
import com.umeng.socialize.media.UMWeb; import com.umeng.socialize.media.UMWeb;
import java.io.File;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -295,19 +296,39 @@ public class CommonUtils { ...@@ -295,19 +296,39 @@ public class CommonUtils {
// .setCallback(callBack).share(); // .setCallback(callBack).share();
} }
/** /**
* 微信(朋友圈)分享链接(包含标题内容) * 分享链接(包含标题内容)
*/ */
public static void shareWxVideo(Activity activity, String videoUrl, String imgUrl, String title, public static void shareUrl(Activity activity, String url, String imgUrl, String title,
String description, UMShareListener callBack) { String description, SHARE_MEDIA platform, UMShareListener callBack) {
UMVideo video = new UMVideo(videoUrl);
video.setTitle(title);//视频的标题 UMWeb web = new UMWeb(url);
video.setDescription(description);//视频的描述 web.setTitle(title);
new ShareAction(activity).withMedia(video) if (TextUtils.isEmpty(imgUrl)) {
.setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE) web.setThumb(new UMImage(activity, Constants.AppLogoUrl));
.setCallback(callBack).open(); } else {
// .setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE) web.setThumb(new UMImage(activity, imgUrl));
// .setCallback(callBack).share(); // ToastUtils.showShortToast("img: "+imgUrl);
}
web.setDescription(description);
new ShareAction(activity).withMedia(web)
.setPlatform(platform)
.setCallback(callBack).share();
}
/**
* 分享图片
*/
public static void shareImg(Activity activity, File bitmap, SHARE_MEDIA platform, UMShareListener callBack) {
UMImage image = new UMImage(activity, bitmap);//bitmap文件
image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图
image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享
image.compressFormat = Bitmap.CompressFormat.PNG;//用户分享透明背景的图片可以设置这种方式,但是qq好友,微信朋友圈,不支持透明背景图片,会变成黑色
new ShareAction(activity).withMedia(image)
.setPlatform(platform)
.setCallback(callBack).share();
} }
...@@ -316,18 +337,29 @@ public class CommonUtils { ...@@ -316,18 +337,29 @@ public class CommonUtils {
**/ **/
public static void shareProgram(Activity activity, String imgUrl, String title, String description, public static void shareProgram(Activity activity, String imgUrl, String title, String description,
int uid, int gid, SHARE_MEDIA platform, UMShareListener callBack) { int uid, int gid, SHARE_MEDIA platform, UMShareListener callBack) {
String path = Constants.PROGRAM_PATH.replace("uid", uid + "").replace("gid", gid + "");
shareProgramPath(activity, imgUrl, title, description, path, platform, callBack);
}
public static void shareProgramPath(Activity activity, String imgUrl, String title, String description,
String path, SHARE_MEDIA platform, UMShareListener callBack) {
MobclickAgent.onEvent(activity, "share"); MobclickAgent.onEvent(activity, "share");
//兼容低版本的网页链接 //兼容低版本的网页链接
String mUrl = "http://www.kf.ai/"; String mUrl = "http://www.kf.ai/";
UMMin umMin = new UMMin(mUrl); UMMin umMin = new UMMin(mUrl);
// 小程序消息封面图片 // 小程序消息封面图片
if (TextUtils.isEmpty(imgUrl)) {
umMin.setThumb(new UMImage(activity, Constants.AppLogoUrl));
} else {
umMin.setThumb(new UMImage(activity, imgUrl)); umMin.setThumb(new UMImage(activity, imgUrl));
}
// 小程序消息title // 小程序消息title
umMin.setTitle(title); umMin.setTitle(title);
// 小程序消息描述 // 小程序消息描述
umMin.setDescription(description); umMin.setDescription(description);
//小程序页面路径 //小程序页面路径
umMin.setPath(Constants.PROGRAM_PATH.replace("uid", uid + "").replace("gid", gid + "")); umMin.setPath(path);
// 小程序原始id,在微信平台查询 // 小程序原始id,在微信平台查询
umMin.setUserName("gh_0e5cd0cdbf46"); umMin.setUserName("gh_0e5cd0cdbf46");
if ("uat".equals(Constants.ENVIROMENT)) if ("uat".equals(Constants.ENVIROMENT))
...@@ -360,4 +392,33 @@ public class CommonUtils { ...@@ -360,4 +392,33 @@ public class CommonUtils {
} }
} }
} }
/**
* 获取视频第一帧图片
*
* @param url
* @return
*/
public static String getVideoImg(String url) {
if (TextUtils.isEmpty(url))
return "";
return url.replace("http:", "https:") + "?x-oss-process=video/snapshot,t_0,f_jpg,ar_auto";
}
/**
* 删除文件夹下所有文件
* @param dir
*/
public static void deleteFiles(File dir){
if (dir == null || !dir.exists() || !dir.isDirectory())
return;
for (File file : dir.listFiles()) {
if (file.isFile())
file.delete(); // 删除所有文件
else if (file.isDirectory())
deleteFiles(file); // 递规的方式删除文件夹
}
dir.delete();// 删除目录本身
}
} }
...@@ -78,7 +78,7 @@ public class NetworkConnectChangedReceiver extends BroadcastReceiver { ...@@ -78,7 +78,7 @@ public class NetworkConnectChangedReceiver extends BroadcastReceiver {
} }
} else { } else {
ToastUtils.showShortToast(BaseApplication.getContext().getString(R.string.net_not_connect)); // ToastUtils.showShortToast(BaseApplication.getContext().getString(R.string.net_not_connect));
} }
} }
} }
......
...@@ -154,7 +154,7 @@ public class ToastUtils { ...@@ -154,7 +154,7 @@ public class ToastUtils {
* @param text 文本 * @param text 文本
*/ */
public static void showShortToast(CharSequence text) { public static void showShortToast(CharSequence text) {
showToast(text, Toast.LENGTH_SHORT); showToastSafe(text, Toast.LENGTH_SHORT);
} }
/** /**
...@@ -192,7 +192,7 @@ public class ToastUtils { ...@@ -192,7 +192,7 @@ public class ToastUtils {
* @param text 文本 * @param text 文本
*/ */
public static void showLongToast(CharSequence text) { public static void showLongToast(CharSequence text) {
showToast(text, Toast.LENGTH_LONG); showToastSafe(text, Toast.LENGTH_LONG);
} }
/** /**
...@@ -231,7 +231,8 @@ public class ToastUtils { ...@@ -231,7 +231,8 @@ public class ToastUtils {
* @param duration 显示时长 * @param duration 显示时长
*/ */
private static void showToast(@StringRes int resId, int duration) { private static void showToast(@StringRes int resId, int duration) {
showToast(UIUtils.getContext().getResources().getText(resId).toString(), duration); // showToast(UIUtils.getContext().getResources().getText(resId).toString(), duration);
showToastSafe(UIUtils.getContext().getResources().getText(resId).toString(), duration);
} }
/** /**
...@@ -242,7 +243,8 @@ public class ToastUtils { ...@@ -242,7 +243,8 @@ public class ToastUtils {
* @param args 参数 * @param args 参数
*/ */
private static void showToast(@StringRes int resId, int duration, Object... args) { private static void showToast(@StringRes int resId, int duration, Object... args) {
showToast(String.format(UIUtils.getContext().getResources().getString(resId), args), duration); // showToast(String.format(UIUtils.getContext().getResources().getString(resId), args), duration);
showToastSafe(String.format(UIUtils.getContext().getResources().getString(resId), args), duration);
} }
/** /**
...@@ -253,7 +255,8 @@ public class ToastUtils { ...@@ -253,7 +255,8 @@ public class ToastUtils {
* @param args 参数 * @param args 参数
*/ */
private static void showToast(String format, int duration, Object... args) { private static void showToast(String format, int duration, Object... args) {
showToast(String.format(format, args), duration); // showToast(String.format(format, args), duration);
showToastSafe(String.format(format, args), duration);
} }
/** /**
...@@ -272,6 +275,20 @@ public class ToastUtils { ...@@ -272,6 +275,20 @@ public class ToastUtils {
} }
sToast.show(); sToast.show();
} }
/**
* 安全的显示吐司
*
* @param text 文本
* @param duration 显示时长
*/
private static void showToastSafe(CharSequence text, int duration) {
sHandler.post(new Runnable() {
@Override
public void run() {
showToast(text,duration);
}
});
}
/** /**
* 取消吐司显示 * 取消吐司显示
......
...@@ -4,6 +4,7 @@ import android.text.TextUtils; ...@@ -4,6 +4,7 @@ import android.text.TextUtils;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
import com.dayu.widgets.RedPacketsDialog;
import com.google.gson.Gson; import com.google.gson.Gson;
/** /**
...@@ -56,6 +57,9 @@ public class UserManager { ...@@ -56,6 +57,9 @@ public class UserManager {
SPUtils.remove("USER_INFO"); SPUtils.remove("USER_INFO");
SPUtils.remove("token"); SPUtils.remove("token");
SPUtils.remove("USER_IDENTITY"); SPUtils.remove("USER_IDENTITY");
SPUtils.remove("bank_addr_info");
RedPacketsDialog.reset();
} }
/** /**
......
...@@ -6,8 +6,6 @@ import android.os.Handler; ...@@ -6,8 +6,6 @@ import android.os.Handler;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.view.Surface; import android.view.Surface;
import java.io.IOException;
import cn.jzvd.JZMediaInterface; import cn.jzvd.JZMediaInterface;
import cn.jzvd.Jzvd; import cn.jzvd.Jzvd;
import tv.danmaku.ijk.media.player.IMediaPlayer; import tv.danmaku.ijk.media.player.IMediaPlayer;
...@@ -51,12 +49,14 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa ...@@ -51,12 +49,14 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1);
//使用opensles把文件从java层拷贝到native层 //使用opensles把文件从java层拷贝到native层
if (ijkMediaPlayer != null)
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
//视频格式 //视频格式
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
//跳帧处理(-1~120)。CPU处理慢时,进行跳帧处理,保证音视频同步 //跳帧处理(-1~120)。CPU处理慢时,进行跳帧处理,保证音视频同步
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
//0为一进入就播放,1为进入时不播放 //0为一进入就播放,1为进入时不播放
if (ijkMediaPlayer != null)
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
////域名检测 ////域名检测
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0);
...@@ -92,7 +92,7 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa ...@@ -92,7 +92,7 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
ijkMediaPlayer.prepareAsync(); ijkMediaPlayer.prepareAsync();
ijkMediaPlayer.setSurface(new Surface(jzvd.textureView.getSurfaceTexture())); ijkMediaPlayer.setSurface(new Surface(jzvd.textureView.getSurfaceTexture()));
} catch (IOException e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
}); });
......
package com.dayu.widgets;
import android.app.Activity;
import android.app.Dialog;
import android.media.MediaPlayer;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LinearInterpolator;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.badoo.mobile.util.WeakHandler;
import com.dayu.base.api.protocol.OpenRedPacketBean;
import com.dayu.base.api.protocol.RedPacketBean;
import com.dayu.baselibrary.R;
import com.dayu.common.Constants;
import com.dayu.utils.GlideImageLoader;
import java.util.List;
public class RedPacketsDialog {
private TextView tvName;
private TextView tvMoney;
private ImageView ivIcon;
private ImageView ivOpen;
private ImageButton ibClose;
private Dialog mDialog;
private Button btnOperate;
private boolean hasBankIfno;
private Activity context;
private List<RedPacketBean> redPacketList;
private int index;
WeakHandler weakHandler = new WeakHandler();
boolean isShowing;
Animation rotateAnimation;
public static RedPacketsDialog instance;
public static RedPacketsDialog getInstance() {
if (instance == null) {
instance = new RedPacketsDialog();
}
return instance;
}
public static void reset() {
instance = null;
}
public void show(final Activity activity, List<RedPacketBean> redPacketList, int pos, onItemClickListener listener) {
index = pos;
if (isShowing || redPacketList.size() <= index)
return;
this.redPacketList = redPacketList;
context = activity;
initDialog();
if (redPacketList.size() > index)
tvMoney.setText(redPacketList.get(index).getActivityTitle());
ivIcon.setImageResource(R.drawable.icon_app_logo);
ivOpen.setVisibility(View.VISIBLE);
btnOperate.setVisibility(View.GONE);
mDialog.show();
isShowing = true;
rotateAnimation = AnimationUtils.loadAnimation(activity, R.anim.rotate_anim);
LinearInterpolator lin = new LinearInterpolator();
rotateAnimation.setInterpolator(lin);
setListener(listener);
// ivIcon.setOnClickListener(view -> playAudio());
}
private void setListener(onItemClickListener listener) {
ibClose.setOnClickListener(view -> {
mDialog.dismiss();
isShowing = false;
if (ivOpen.getVisibility() == View.GONE) {
weakHandler.postDelayed(() -> {
show(context, redPacketList, index, listener);
}, 500);
} else {
index = 0;
}
});
ivOpen.setOnClickListener(view -> {
if (listener != null && redPacketList.size() > index)
listener.onOpenClick(redPacketList.get(index).getId());
// ivOpen.startAnimation(rotateAnimation);
});
btnOperate.setOnClickListener(view -> {
if (hasBankIfno) {
ARouter.getInstance().build(Constants.PATH_USER_REWARD).withInt("type", 4).navigation();
} else {
ARouter.getInstance().build(Constants.PATH_EDIT_BANK).navigation();
}
mDialog.dismiss();
isShowing = false;
if (ivOpen.getVisibility() == View.GONE)
weakHandler.postDelayed(() -> {
show(context, redPacketList, index, listener);
}, 500);
});
}
private void initDialog() {
View mView = View.inflate(context, R.layout.dialog_red_packets, null);
tvName = mView.findViewById(R.id.tv_name);
tvMoney = mView.findViewById(R.id.tv_money);
ivIcon = mView.findViewById(R.id.iv_icon);
ivOpen = mView.findViewById(R.id.iv_open);
ibClose = mView.findViewById(R.id.ib_close);
btnOperate = mView.findViewById(R.id.btn_operate);
mDialog = new Dialog(context, R.style.CustomDialog);
mDialog.setContentView(mView);
Window window = mDialog.getWindow();
WindowManager.LayoutParams wl = window.getAttributes();
wl.width = ViewGroup.LayoutParams.MATCH_PARENT;
wl.height = ViewGroup.LayoutParams.WRAP_CONTENT;
wl.gravity = Gravity.CENTER;
mDialog.onWindowAttributesChanged(wl);
mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
}
public void openSuccess(boolean hasBankIfno, OpenRedPacketBean data) {
if (tvMoney != null) {
ivOpen.clearAnimation();
playAudio();
this.hasBankIfno = hasBankIfno;
if (data.getStatus() == 1) {
tvMoney.setText("中奖金额" + data.getBonusPrice() + "元");
} else {
tvMoney.setText("很可惜,您未中奖");
}
GlideImageLoader.load(context, ivIcon, data.getPrizeUrl(), R.drawable.icon_app_logo);
tvMoney.setVisibility(View.VISIBLE);
ivOpen.setVisibility(View.GONE);
btnOperate.setVisibility(View.VISIBLE);
btnOperate.setText(hasBankIfno ? "去查看" : "去提现");
index += 1;
}
}
private void playAudio() {
if (context != null) {
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.red_packets);
mediaPlayer.setVolume(1.0f, 1.0f);
mediaPlayer.start();
}
}
public interface onItemClickListener {
void onOpenClick(int actyId);
}
}
package com.dayu.widgets;
import android.app.Activity;
import android.app.Dialog;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.dayu.baselibrary.R;
public class WechatShareDialog {
public static WechatShareDialog instance;
public static WechatShareDialog getInstance(){
if (instance == null){
instance = new WechatShareDialog();
}
return instance;
}
public void showBottomDialog(final Activity activity,onItemClickListener listener) {
View mView = View.inflate(activity, R.layout.dialog_wechat_share , null);
TextView tvCancle = mView.findViewById(R.id.tv_cancle);
LinearLayout llWx = mView.findViewById(R.id.ll_wechat);
LinearLayout llCircle = mView.findViewById(R.id.ll_circle);
Dialog mDialog = new Dialog(activity, R.style.CustomDialog);
mDialog.setContentView(mView);
Window window = mDialog.getWindow();
WindowManager.LayoutParams wl = window.getAttributes();
wl.width = ViewGroup.LayoutParams.MATCH_PARENT;
wl.height = ViewGroup.LayoutParams.WRAP_CONTENT;
wl.gravity = Gravity.BOTTOM;
mDialog.onWindowAttributesChanged(wl);
mDialog.show();
mDialog.setCanceledOnTouchOutside(true);
mDialog.setCancelable(true);
tvCancle.setOnClickListener(view -> mDialog.dismiss());
llWx.setOnClickListener(view -> {
if (listener != null){
listener.onClick(0);
}
mDialog.dismiss();
});
llCircle.setOnClickListener(view -> {
if (listener != null){
listener.onClick(1);
}
mDialog.dismiss();
});
}
public interface onItemClickListener {
void onClick(int pos);
}
}
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="359"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:repeatCount="10000">
</rotate>
</rotate>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp"/>
<solid android:color="#d8b983"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
>
<LinearLayout
android:id="@+id/ll_bg"
android:layout_width="320dp"
android:layout_height="430dp"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:background="@drawable/ic_red_packets_bg"
>
<ImageView
android:id="@+id/iv_icon"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:src="@drawable/icon_app_logo"
/>
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="#d8b983"
android:text="大鱼云服"
android:layout_marginTop="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textColor="#d8b983"
android:text="给您送了一个红包"
android:layout_marginTop="10dp"
/>
<TextView
android:id="@+id/tv_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="21sp"
android:textColor="#d8b983"
android:text=""
android:layout_marginTop="10dp"
/>
<View
android:layout_width="1dp"
android:layout_height="0dp"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/iv_open"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/ic_red_packet_open"
android:layout_marginBottom="105dp"
/>
</LinearLayout>
<ImageButton
android:background="@color/transparent"
android:id="@+id/ib_close"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/ic_red_packet_close"
android:layout_alignLeft="@+id/ll_bg"
android:layout_alignTop="@+id/ll_bg"
/>
<Button
android:visibility="gone"
android:id="@+id/btn_operate"
style="@style/btn_common"
android:background="@drawable/red_packet_react"
android:width="120dp"
android:text="去提现"
android:height="40dp"
android:layout_alignBottom="@+id/ll_bg"
android:layout_centerHorizontal="true"
android:layout_marginBottom="130dp"
/>
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color_fa"
android:orientation="horizontal"
android:paddingTop="20dp"
android:paddingBottom="20dp">
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
/>
<LinearLayout
android:id="@+id/ll_wechat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:src="@drawable/umeng_socialize_wechat" />
<TextView
style="@style/common_text_style"
android:text="微信"
/>
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="2"
/>
<LinearLayout
android:id="@+id/ll_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:src="@drawable/umeng_socialize_wxcircle" />
<TextView
style="@style/common_text_style"
android:text="朋友圈"
/>
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
/>
</LinearLayout>
<TextView
android:id="@+id/tv_cancle"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/white"
android:gravity="center"
android:text="取消分享"
android:textColor="@color/common_text_color"
android:textSize="15sp" />
</LinearLayout>
\ No newline at end of file
...@@ -515,6 +515,9 @@ ...@@ -515,6 +515,9 @@
<string name="go_download">去安装</string> <string name="go_download">去安装</string>
<string name="download_faile">下载失败</string> <string name="download_faile">下载失败</string>
<string name="have_new_version">有新版本</string> <string name="have_new_version">有新版本</string>
<string name="new_version_download">新版本安装包已下载,是否安装?</string>
<string name="install_now">马上安装</string>
<string name="re_download">重新下载</string>
<string name="next_again">下次再说</string> <string name="next_again">下次再说</string>
<string name="need_upglude">立刻升级</string> <string name="need_upglude">立刻升级</string>
<string name="start_download">开始下载</string> <string name="start_download">开始下载</string>
...@@ -934,6 +937,7 @@ C) åœ¨ç”²æ–¹ä½¿ç”¨å¤§é±¼å¹³å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„ä¸šåŠ¡æ•°æ®ï¼Œå®¢æˆ·æ•°æ ...@@ -934,6 +937,7 @@ C) åœ¨ç”²æ–¹ä½¿ç”¨å¤§é±¼å¹³å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„ä¸šåŠ¡æ•°æ®ï¼Œå®¢æˆ·æ•°æ
<string name="user_bank_account">银行账号:</string> <string name="user_bank_account">银行账号:</string>
<string name="user_bank_account_hint">请输入银行账号</string> <string name="user_bank_account_hint">请输入银行账号</string>
<string name="user_bank_holer">开户人姓名:</string> <string name="user_bank_holer">开户人姓名:</string>
<string name="fill_bank_notice">完善银行卡信息后,您的所有收入和奖励将会在下个月1号由平台提现到此卡上</string>
<string name="user_bank_holer_hint">请输入开户人姓名</string> <string name="user_bank_holer_hint">请输入开户人姓名</string>
<string name="user_addr_info">快递地址信息</string> <string name="user_addr_info">快递地址信息</string>
<string name="user_receiver_addr">收件地址:</string> <string name="user_receiver_addr">收件地址:</string>
......
...@@ -5,8 +5,8 @@ buildscript { ...@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "27.0.3" ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 17 ext.min_sdk_version = 17
ext.target_sdk_version = 26 ext.target_sdk_version = 26
ext.version_code = 257 ext.version_code = 259
ext.verson_name = "2.5.7" ext.verson_name = "2.5.9"
ext.gradle_version = '3.1.4' ext.gradle_version = '3.1.4'
ext.isReleaseMinify = false ext.isReleaseMinify = false
ext.isDebugMinify = false ext.isDebugMinify = false
......
...@@ -31,10 +31,14 @@ public class LearnAdapter extends CoreAdapter<CommonLearnBean, ItemCommonLearnBi ...@@ -31,10 +31,14 @@ public class LearnAdapter extends CoreAdapter<CommonLearnBean, ItemCommonLearnBi
protected void onBind(ItemCommonLearnBinding holder, CommonLearnBean item, int position) { protected void onBind(ItemCommonLearnBinding holder, CommonLearnBean item, int position) {
super.onBind(holder, item, position); super.onBind(holder, item, position);
holder.tvTitle.setText(item.getName()); holder.tvTitle.setText(item.getName());
holder.tvLooks.setText(item.getLearners() + ""); holder.tvLooks.setText((item.getLearners()+item.getShareWatchs()) + "");
holder.tvLike.setText(item.getPoints() + ""); holder.tvLike.setText(item.getPoints() + "");
holder.tvShares.setText(item.getShares()+"");
holder.tvDate.setText("发布时间 " + CommonUtils.getYearData(item.getCreateTime())); holder.tvDate.setText("发布时间 " + CommonUtils.getYearData(item.getCreateTime()));
holder.ibShare.setOnClickListener(view -> mPresenter.shareVideo(item)); holder.ibShare.setOnClickListener(view -> mPresenter.shareVideo(item));
holder.tvShares.setOnClickListener(view -> mPresenter.shareVideo(item));
holder.ivLike.setOnClickListener(view -> mPresenter.likeVideo(item));
holder.tvLike.setOnClickListener(view -> mPresenter.likeVideo(item));
if (type == 2) { if (type == 2) {
holder.tvProgress.setVisibility(View.VISIBLE); holder.tvProgress.setVisibility(View.VISIBLE);
holder.tvProgress.setText(mContext.getString(R.string.learn_progress) + item.getProgressPercentage() + "%"); holder.tvProgress.setText(mContext.getString(R.string.learn_progress) + item.getProgressPercentage() + "%");
......
...@@ -48,6 +48,25 @@ public class CommonLearnBean { ...@@ -48,6 +48,25 @@ public class CommonLearnBean {
private int pointStatus; private int pointStatus;
private int firstUrl; private int firstUrl;
private boolean showCover = true; private boolean showCover = true;
private int shares;
private int shareWatchs;
public int getShareWatchs() {
return shareWatchs;
}
public void setShareWatchs(int shareWatchs) {
this.shareWatchs = shareWatchs;
}
public int getShares() {
return shares;
}
public void setShares(int shares) {
this.shares = shares;
}
public boolean isShowCover() { public boolean isShowCover() {
return showCover; return showCover;
......
...@@ -39,6 +39,25 @@ public class CourseDeatilBean implements Serializable { ...@@ -39,6 +39,25 @@ public class CourseDeatilBean implements Serializable {
private int status; private int status;
private int type; private int type;
private String url; private String url;
private int shares;
private int shareWatchs;
public int getShareWatchs() {
return shareWatchs;
}
public void setShareWatchs(int shareWatchs) {
this.shareWatchs = shareWatchs;
}
public int getShares() {
return shares;
}
public void setShares(int shares) {
this.shares = shares;
}
public String getBrief() { public String getBrief() {
return brief; return brief;
......
...@@ -54,6 +54,24 @@ public class LiveBackVideosBean implements Serializable { ...@@ -54,6 +54,24 @@ public class LiveBackVideosBean implements Serializable {
private String liveErrMsg; private String liveErrMsg;
private String liveStreamPic; private String liveStreamPic;
private int pointStatus; private int pointStatus;
private int shares;
private int shareWatchs;
public int getShareWatchs() {
return shareWatchs;
}
public void setShareWatchs(int shareWatchs) {
this.shareWatchs = shareWatchs;
}
public int getShares() {
return shares;
}
public void setShares(int shares) {
this.shares = shares;
}
public int getPointStatus() { public int getPointStatus() {
return pointStatus; return pointStatus;
......
...@@ -7,6 +7,7 @@ import com.dayu.learncenter.api.bean.CommonLearnBean; ...@@ -7,6 +7,7 @@ import com.dayu.learncenter.api.bean.CommonLearnBean;
public interface CommonLearnContract { public interface CommonLearnContract {
interface View extends BaseView { interface View extends BaseView {
void shareVideo(CommonLearnBean item); void shareVideo(CommonLearnBean item);
void likeVideo(CommonLearnBean item);
} }
abstract class Presenter extends BaseListPresenter<View> { abstract class Presenter extends BaseListPresenter<View> {
......
...@@ -12,18 +12,12 @@ import com.dayu.learncenter.api.LearnService; ...@@ -12,18 +12,12 @@ import com.dayu.learncenter.api.LearnService;
import com.dayu.learncenter.api.bean.CommonLearnBean; import com.dayu.learncenter.api.bean.CommonLearnBean;
import com.dayu.learncenter.api.data.StudyCourseData; import com.dayu.learncenter.api.data.StudyCourseData;
import com.dayu.learncenter.event.RefreshLeanTabEvent; import com.dayu.learncenter.event.RefreshLeanTabEvent;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.HashMap;
import cn.jzvd.JzvdStd; import cn.jzvd.JzvdStd;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
public class CommonLearnPresenter extends CommonLearnContract.Presenter { public class CommonLearnPresenter extends CommonLearnContract.Presenter {
...@@ -103,4 +97,7 @@ public class CommonLearnPresenter extends CommonLearnContract.Presenter { ...@@ -103,4 +97,7 @@ public class CommonLearnPresenter extends CommonLearnContract.Presenter {
public void shareVideo(CommonLearnBean item) { public void shareVideo(CommonLearnBean item) {
mView.shareVideo(item); mView.shareVideo(item);
} }
public void likeVideo(CommonLearnBean item) {
mView.likeVideo(item);
}
} }
package com.dayu.learncenter.presenter.pubcourse; package com.dayu.learncenter.presenter.pubcourse;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import com.dayu.learncenter.api.bean.CourseDeatilBean; import com.dayu.learncenter.api.bean.CourseDeatilBean;
...@@ -8,6 +7,8 @@ import com.dayu.learncenter.api.bean.CourseDeatilBean; ...@@ -8,6 +7,8 @@ import com.dayu.learncenter.api.bean.CourseDeatilBean;
public interface PubCourseContract { public interface PubCourseContract {
interface View extends BaseView { interface View extends BaseView {
void setDetailData(CourseDeatilBean data); void setDetailData(CourseDeatilBean data);
void pubSuccess();
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
......
...@@ -2,7 +2,6 @@ package com.dayu.learncenter.presenter.pubcourse; ...@@ -2,7 +2,6 @@ package com.dayu.learncenter.presenter.pubcourse;
import android.text.TextUtils; import android.text.TextUtils;
import com.cjt2325.cameralibrary.util.LogUtil;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.base.api.BaseApiFactory; import com.dayu.base.api.BaseApiFactory;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
...@@ -11,7 +10,6 @@ import com.dayu.learncenter.api.LearnService; ...@@ -11,7 +10,6 @@ import com.dayu.learncenter.api.LearnService;
import com.dayu.learncenter.api.data.EditCourseData; import com.dayu.learncenter.api.data.EditCourseData;
import com.dayu.learncenter.api.data.PubCourseData; import com.dayu.learncenter.api.data.PubCourseData;
import com.dayu.learncenter.event.CourseModifyEvent; import com.dayu.learncenter.event.CourseModifyEvent;
import com.dayu.learncenter.event.CoursePubEvent;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
...@@ -67,7 +65,7 @@ public class PubCoursePresenter extends PubCourseContract.Presenter { ...@@ -67,7 +65,7 @@ public class PubCoursePresenter extends PubCourseContract.Presenter {
if (videoPath.startsWith("http")) if (videoPath.startsWith("http"))
videoUrl = videoPath; videoUrl = videoPath;
if (TextUtils.isEmpty(videoUrl)) { if (TextUtils.isEmpty(videoUrl)) {
mPubData.courseTimes = CommonUtils.getVideoLength(videoPath); mEditData.courseTimes = CommonUtils.getVideoLength(videoPath);
try { try {
uploadVideo(videoPath,true); uploadVideo(videoPath,true);
...@@ -105,8 +103,7 @@ public class PubCoursePresenter extends PubCourseContract.Presenter { ...@@ -105,8 +103,7 @@ public class PubCoursePresenter extends PubCourseContract.Presenter {
.subscribe(baseObserver(success -> { .subscribe(baseObserver(success -> {
if (success) { if (success) {
ToastUtils.showShortToast(R.string.pub_course_success); ToastUtils.showShortToast(R.string.pub_course_success);
mView.dumpBack(); mView.pubSuccess();
EventBus.getDefault().post(new CoursePubEvent());
} else { } else {
ToastUtils.showShortToast(R.string.pub_course_fail); ToastUtils.showShortToast(R.string.pub_course_fail);
} }
......
...@@ -8,6 +8,7 @@ import android.view.View; ...@@ -8,6 +8,7 @@ import android.view.View;
import com.badoo.mobile.util.WeakHandler; import com.badoo.mobile.util.WeakHandler;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.api.protocol.CommentBean; import com.dayu.base.api.protocol.CommentBean;
import com.dayu.base.api.protocol.CommentPostData; import com.dayu.base.api.protocol.CommentPostData;
import com.dayu.base.api.protocol.CommentReplyData; import com.dayu.base.api.protocol.CommentReplyData;
...@@ -25,8 +26,10 @@ import com.dayu.utils.ProgressUtil; ...@@ -25,8 +26,10 @@ import com.dayu.utils.ProgressUtil;
import com.dayu.widgets.JZMediaIjk; import com.dayu.widgets.JZMediaIjk;
import com.dayu.widgets.KeyboardStateObserver; import com.dayu.widgets.KeyboardStateObserver;
import com.dayu.widgets.MyJzvdStd; import com.dayu.widgets.MyJzvdStd;
import com.dayu.widgets.WechatShareDialog;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -64,6 +67,7 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity ...@@ -64,6 +67,7 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
mBind.titleBack.setOnClickListener(v -> dumpBack()); mBind.titleBack.setOnClickListener(v -> dumpBack());
mBind.ivLike.setOnClickListener(v -> pointVideo()); mBind.ivLike.setOnClickListener(v -> pointVideo());
mBind.ibShare.setOnClickListener(v -> shareVideo()); mBind.ibShare.setOnClickListener(v -> shareVideo());
mBind.tvShares.setOnClickListener(v -> shareVideo());
courseId = getBundle().getInt(Constants.ID, 0); courseId = getBundle().getInt(Constants.ID, 0);
showDialog(); showDialog();
initData(); initData();
...@@ -101,6 +105,7 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity ...@@ -101,6 +105,7 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
pointNum += 1; pointNum += 1;
mBind.tvLike.setText(pointNum + ""); mBind.tvLike.setText(pointNum + "");
mBind.ivLike.setImageResource(R.drawable.icon_like_red); mBind.ivLike.setImageResource(R.drawable.icon_like_red);
getRedPacketsData();
} }
isPointed = !isPointed; isPointed = !isPointed;
} }
...@@ -125,8 +130,9 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity ...@@ -125,8 +130,9 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
mBind.jzVideo.setUp(data.getUrl(), "", JzvdStd.SCREEN_NORMAL, JZMediaIjk.class); mBind.jzVideo.setUp(data.getUrl(), "", JzvdStd.SCREEN_NORMAL, JZMediaIjk.class);
CommonUtils.setVideoThumb(mActivity, mBind.jzVideo, data.getUrl()); CommonUtils.setVideoThumb(mActivity, mBind.jzVideo, data.getUrl());
steVideoListener(); steVideoListener();
mBind.tvLooks.setText(data.getLearners() + ""); mBind.tvLooks.setText((data.getLearners() + +data.getShareWatchs())+"");
mBind.tvLike.setText(pointNum + ""); mBind.tvLike.setText(pointNum + "");
mBind.tvShares.setText(data.getShares()+"");
if (data.getCoursePointsVO() != null && data.getCoursePointsVO().getPointStatus() == 1) { if (data.getCoursePointsVO() != null && data.getCoursePointsVO().getPointStatus() == 1) {
mBind.ivLike.setImageResource(R.drawable.icon_like_red); mBind.ivLike.setImageResource(R.drawable.icon_like_red);
isPointed = true; isPointed = true;
...@@ -225,6 +231,10 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity ...@@ -225,6 +231,10 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
//发送 //发送
mBind.btnSend.setOnClickListener(v -> { mBind.btnSend.setOnClickListener(v -> {
if (courseDetail == null){
initData();
return;
}
MobclickAgent.onEvent(mActivity, "leaveMessage_learningClass"); MobclickAgent.onEvent(mActivity, "leaveMessage_learningClass");
String content = mBind.edtComment.getText().toString(); String content = mBind.edtComment.getText().toString();
if (TextUtils.isEmpty(content)) return; if (TextUtils.isEmpty(content)) return;
...@@ -311,7 +321,20 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity ...@@ -311,7 +321,20 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
public void shareVideo() { public void shareVideo() {
if (courseDetail != null){ if (courseDetail != null){
String url = Constants.VIDEO_SHARE_URL.replace("_type","course")+courseDetail.getId(); String url = Constants.VIDEO_SHARE_URL.replace("_type","course")+courseDetail.getId();
CommonUtils.shareWxUrl(mActivity,url,"",courseDetail.getName(),courseDetail.getBrief(),null); WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> {
if (pos == 0){
String path = Constants.LEAEN_PROGRAM_PATH.replace("_type","course")+courseDetail.getId();
CommonUtils.shareProgramPath(mActivity, CommonUtils.getVideoImg(courseDetail.getUrl()), courseDetail.getName(), courseDetail.getBrief(),path, SHARE_MEDIA.WEIXIN, null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"微信",courseDetail.getId(),1);
addShareRecord(data);
}else {
CommonUtils.shareUrl(mActivity,url,CommonUtils.getVideoImg(courseDetail.getUrl()),courseDetail.getName(),courseDetail.getBrief(),SHARE_MEDIA.WEIXIN_CIRCLE,null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"朋友圈",courseDetail.getId(),1);
addShareRecord(data);
}
});
} }
} }
......
...@@ -170,6 +170,11 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit ...@@ -170,6 +170,11 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
} }
} }
@Override
public void pubSuccess() {
}
//选中视频弹框 //选中视频弹框
private void showVideoDailog() { private void showVideoDailog() {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
......
...@@ -34,6 +34,8 @@ import okhttp3.RequestBody; ...@@ -34,6 +34,8 @@ import okhttp3.RequestBody;
public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityPrepareLiveBinding> { public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityPrepareLiveBinding> {
String title; String title;
String coverUrl;
// String coverUrl = "http://dl.kf.ai/test/sp/mobile/android/business/checkApply/b94acfc43e8bd295d95193177c9e12c2.jpg?x-oss-process=style/nowatermark";
@Override @Override
public void setPresenter() { public void setPresenter() {
...@@ -54,7 +56,7 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP ...@@ -54,7 +56,7 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP
}); });
mBind.btnConfirm.setOnClickListener(v->{ mBind.btnConfirm.setOnClickListener(v->{
title = mBind.edtTitle.getText().toString().trim(); title = mBind.edtTitle.getText().toString().trim();
if (TextUtils.isEmpty(TCUserMgr.getInstance().getCoverPic())){ if (TextUtils.isEmpty(coverUrl)){
showToast("请上传封面"); showToast("请上传封面");
}else if (TextUtils.isEmpty(title)){ }else if (TextUtils.isEmpty(title)){
showToast("请输入标题"); showToast("请输入标题");
...@@ -70,9 +72,9 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP ...@@ -70,9 +72,9 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP
* 初始化封面图 * 初始化封面图
*/ */
private void initCover() { private void initCover() {
String strCover = TCUserMgr.getInstance().getCoverPic(); // String strCover = TCUserMgr.getInstance().getCoverPic();
if (!TextUtils.isEmpty(strCover)) { if (!TextUtils.isEmpty(coverUrl)) {
GlideImageLoader.load(this,mBind.ivCover,strCover,R.drawable.publish_background); GlideImageLoader.load(this,mBind.ivCover,coverUrl,R.drawable.publish_background);
// mBind.tvTips.setVisibility(View.GONE); // mBind.tvTips.setVisibility(View.GONE);
} else { } else {
mBind.ivCover.setImageResource(com.dayu.livemodule.R.drawable.publish_background); mBind.ivCover.setImageResource(com.dayu.livemodule.R.drawable.publish_background);
...@@ -104,6 +106,7 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP ...@@ -104,6 +106,7 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP
showDialog(); showDialog();
BaseApiFactory.uploadPhoto(body,"nowatermark").subscribe(mPresenter.baseObserver(list -> { BaseApiFactory.uploadPhoto(body,"nowatermark").subscribe(mPresenter.baseObserver(list -> {
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
coverUrl = list.get(0);
TCUserMgr.getInstance().setCoverPic(list.get(0), null); TCUserMgr.getInstance().setCoverPic(list.get(0), null);
initCover(); initCover();
} else { } else {
......
...@@ -3,24 +3,21 @@ package com.dayu.learncenter.ui.activity; ...@@ -3,24 +3,21 @@ package com.dayu.learncenter.ui.activity;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.activity.CameraActivity; import com.dayu.base.ui.activity.CameraActivity;
import com.dayu.base.ui.presenter.SImplePresenter;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.GetRedPacketDataEvent;
import com.dayu.learncenter.R; import com.dayu.learncenter.R;
import com.dayu.learncenter.api.bean.CourseDeatilBean; import com.dayu.learncenter.api.bean.CourseDeatilBean;
import com.dayu.learncenter.api.data.PubCourseData; import com.dayu.learncenter.api.data.PubCourseData;
import com.dayu.learncenter.databinding.ActivityPubCourseBinding; import com.dayu.learncenter.databinding.ActivityPubCourseBinding;
import com.dayu.learncenter.event.CoursePubEvent;
import com.dayu.learncenter.presenter.pubcourse.PubCourseContract; import com.dayu.learncenter.presenter.pubcourse.PubCourseContract;
import com.dayu.learncenter.presenter.pubcourse.PubCoursePresenter; import com.dayu.learncenter.presenter.pubcourse.PubCoursePresenter;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.MPermissionUtils; import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.MediaChooseUtils; import com.dayu.utils.MediaChooseUtils;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
...@@ -30,6 +27,8 @@ import com.luck.picture.lib.config.PictureConfig; ...@@ -30,6 +27,8 @@ import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia; import com.luck.picture.lib.entity.LocalMedia;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -220,4 +219,11 @@ public class PubCourseActivity extends BaseActivity<PubCoursePresenter, Activity ...@@ -220,4 +219,11 @@ public class PubCourseActivity extends BaseActivity<PubCoursePresenter, Activity
} }
@Override
public void pubSuccess() {
finish();
EventBus.getDefault().post(new CoursePubEvent());
EventBus.getDefault().post(new GetRedPacketDataEvent(true));
}
} }
...@@ -7,11 +7,15 @@ import android.text.TextUtils; ...@@ -7,11 +7,15 @@ import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.common.MyTextWatcher; import com.dayu.common.MyTextWatcher;
import com.dayu.event.GetRedPacketDataEvent;
import com.dayu.learncenter.R; import com.dayu.learncenter.R;
import com.dayu.learncenter.adapter.LearnAdapter; import com.dayu.learncenter.adapter.LearnAdapter;
import com.dayu.learncenter.api.LearnService;
import com.dayu.learncenter.api.bean.CommonLearnBean; import com.dayu.learncenter.api.bean.CommonLearnBean;
import com.dayu.learncenter.databinding.FragmentCommonLearnBinding; import com.dayu.learncenter.databinding.FragmentCommonLearnBinding;
import com.dayu.learncenter.event.CourseModifyEvent; import com.dayu.learncenter.event.CourseModifyEvent;
...@@ -21,6 +25,10 @@ import com.dayu.learncenter.presenter.common_learn.CommonLearnPresenter; ...@@ -21,6 +25,10 @@ import com.dayu.learncenter.presenter.common_learn.CommonLearnPresenter;
import com.dayu.learncenter.ui.activity.CourseDetailActivity; import com.dayu.learncenter.ui.activity.CourseDetailActivity;
import com.dayu.learncenter.ui.activity.EditCourseActivity; import com.dayu.learncenter.ui.activity.EditCourseActivity;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.LogUtils;
import com.dayu.widgets.WechatShareDialog;
import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.bean.SHARE_MEDIA;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
...@@ -31,6 +39,7 @@ import cn.jzvd.JzvdStd; ...@@ -31,6 +39,7 @@ import cn.jzvd.JzvdStd;
public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, FragmentCommonLearnBinding> public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, FragmentCommonLearnBinding>
implements CommonLearnContract.View { implements CommonLearnContract.View {
private int type; //1.全部 2.已学习 3.已发布 private int type; //1.全部 2.已学习 3.已发布
LearnAdapter mAdapter;
public static CommonLearnFragment newInstance(int type) { public static CommonLearnFragment newInstance(int type) {
...@@ -55,11 +64,13 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag ...@@ -55,11 +64,13 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag
@Override @Override
protected void lazyLoad() { protected void lazyLoad() {
super.lazyLoad(); super.lazyLoad();
if (mPresenter != null)
mPresenter.refresh(); mPresenter.refresh();
} }
@Override @Override
public void initView() { public void initView() {
initUser();
Bundle bundle = getArguments(); Bundle bundle = getArguments();
type = bundle.getInt("type"); type = bundle.getInt("type");
mPresenter.setType(type); mPresenter.setType(type);
...@@ -106,7 +117,7 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag ...@@ -106,7 +117,7 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag
} }
private void setAdapter() { private void setAdapter() {
LearnAdapter mAdapter = new LearnAdapter(true, type); mAdapter = new LearnAdapter(true, type);
mAdapter.setViewType(R.layout.item_common_learn); mAdapter.setViewType(R.layout.item_common_learn);
mAdapter.setPresenter(mPresenter); mAdapter.setPresenter(mPresenter);
mBind.recyclerView.setAdapter(mAdapter); mBind.recyclerView.setAdapter(mAdapter);
...@@ -165,7 +176,40 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag ...@@ -165,7 +176,40 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag
@Override @Override
public void shareVideo(CommonLearnBean item) { public void shareVideo(CommonLearnBean item) {
String url = Constants.VIDEO_SHARE_URL.replace("_type","course")+item.getId(); String url = Constants.VIDEO_SHARE_URL.replace("_type", "course") + item.getId();
CommonUtils.shareWxUrl(mActivity,url,"",item.getName(),item.getBrief(),null); WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> {
if (pos == 0) {
String path = Constants.LEAEN_PROGRAM_PATH.replace("_type","course")+item.getId();
CommonUtils.shareProgramPath(mActivity, CommonUtils.getVideoImg(item.getUrl()), item.getName(), item.getBrief(),path, SHARE_MEDIA.WEIXIN, null);
AddShareRecordData data = new AddShareRecordData(mUserId, mUserInfo.getAccountName(),
"微信", item.getId(), 1);
addShareRecord(data);
} else {
String imgUrl = CommonUtils.getVideoImg(item.getUrl());
LogUtils.e("shareImg: "+imgUrl);
CommonUtils.shareUrl(mActivity, url,imgUrl , item.getName(), item.getBrief(), SHARE_MEDIA.WEIXIN_CIRCLE, null);
AddShareRecordData data = new AddShareRecordData(mUserId, mUserInfo.getAccountName(),
"朋友圈", item.getId(), 1);
addShareRecord(data);
}
});
}
@Override
public void likeVideo(CommonLearnBean item) {
showDialog();
int type = item.getPointStatus() == 1 ? 2 : 1;
if (type == 1)
MobclickAgent.onEvent(mActivity, "like_learningClass");
Api.getService(LearnService.class).pointCourse(item.getId(), mUserId, type).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(success -> {
if (success && mAdapter != null) {
item.setPoints(type == 1 ? item.getPoints() + 1 : item.getPoints() - 1);
if (type == 1)
EventBus.getDefault().post(new GetRedPacketDataEvent());
item.setPointStatus(type);
mAdapter.notifyDataSetChanged();
}
}));
} }
} }
...@@ -149,8 +149,19 @@ public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHom ...@@ -149,8 +149,19 @@ public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHom
for (int i = 0; i < mBind.tabLearn.getTabCount(); i++) { for (int i = 0; i < mBind.tabLearn.getTabCount(); i++) {
TextView tv = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabtext); TextView tv = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabtext);
TextView tvIcon = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabicon); TextView tvIcon = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabicon);
tv.setText(tabNum[i] + "");
tvIcon.setText(tabDesc[i]); tvIcon.setText(tabDesc[i]);
int count = tabNum[i];
tv.setText(count+"");
tv.setTextSize(28);
if (count>999){
tv.setTextSize(24);
}
if (count>9999){
tv.setTextSize(20);
}
if (count>99999){
tv.setTextSize(16);
}
} }
} }
} }
......
...@@ -8,6 +8,7 @@ import android.widget.ImageView; ...@@ -8,6 +8,7 @@ import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.base.ui.presenter.SImplePresenter; import com.dayu.base.ui.presenter.SImplePresenter;
import com.dayu.common.Constants; import com.dayu.common.Constants;
...@@ -25,6 +26,8 @@ import com.dayu.livemodule.xiaozhibo.main.videolist.utils.TCVideoListMgr; ...@@ -25,6 +26,8 @@ import com.dayu.livemodule.xiaozhibo.main.videolist.utils.TCVideoListMgr;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader; import com.dayu.utils.GlideImageLoader;
import com.dayu.widgets.TextDialog; import com.dayu.widgets.TextDialog;
import com.dayu.widgets.WechatShareDialog;
import com.umeng.socialize.bean.SHARE_MEDIA;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
...@@ -171,12 +174,14 @@ public class LiveListFragment extends BaseFragment<SImplePresenter, FragmentLive ...@@ -171,12 +174,14 @@ public class LiveListFragment extends BaseFragment<SImplePresenter, FragmentLive
ImageView ivLike = helper.getView(R.id.iv_like); ImageView ivLike = helper.getView(R.id.iv_like);
ivLike.setImageResource(item.getPointStatus() == 1 ? R.drawable.icon_like_red : R.drawable.icon_like_gray); ivLike.setImageResource(item.getPointStatus() == 1 ? R.drawable.icon_like_red : R.drawable.icon_like_gray);
helper.setText(R.id.tv_title, item.getTitle()); helper.setText(R.id.tv_title, item.getTitle());
helper.setText(R.id.tv_looks, item.getPlayBackNum() + ""); helper.setText(R.id.tv_looks, (item.getPlayBackNum()+item.getShareWatchs()) + "");
helper.setText(R.id.tv_like, item.getPointNum() + ""); helper.setText(R.id.tv_like, item.getPointNum() + "");
helper.setText(R.id.tv_shares, item.getShares() + "");
ivLike.setOnClickListener(v -> pointBackVideo(item)); ivLike.setOnClickListener(v -> pointBackVideo(item));
helper.setOnClickListener(R.id.ib_share, v ->shareBackVideo(item)); helper.setOnClickListener(R.id.ib_share, v ->shareBackVideo(item));
helper.setOnClickListener(R.id.tv_shares, v ->shareBackVideo(item));
ImageView ivCover = helper.getView(R.id.iv_cover); ImageView ivCover = helper.getView(R.id.iv_cover);
GlideImageLoader.load(mActivity, ivCover, item.getLiveStreamPic(), R.drawable.icon_video_default); GlideImageLoader.load(mActivity, ivCover, item.getLiveStreamPic(), R.drawable.icon_video_default);
ivCover.setOnClickListener(v->{ ivCover.setOnClickListener(v->{
...@@ -246,7 +251,20 @@ public class LiveListFragment extends BaseFragment<SImplePresenter, FragmentLive ...@@ -246,7 +251,20 @@ public class LiveListFragment extends BaseFragment<SImplePresenter, FragmentLive
//分享回放视频 //分享回放视频
private void shareBackVideo(LiveBackVideosBean item) { private void shareBackVideo(LiveBackVideosBean item) {
String url = Constants.VIDEO_SHARE_URL.replace("_type", "live") + item.getId(); String url = Constants.VIDEO_SHARE_URL.replace("_type", "live") + item.getId();
CommonUtils.shareWxUrl(mActivity, url, item.getLiveStreamPic(), item.getTitle(), " ", null); WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> {
if (pos == 0){
String path = Constants.LEAEN_PROGRAM_PATH.replace("_type","live")+item.getId();
CommonUtils.shareProgramPath(mActivity, item.getLiveStreamPic(), item.getTitle(), "",path, SHARE_MEDIA.WEIXIN, null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"微信",item.getId(),3);
addShareRecord(data);
}else {
CommonUtils.shareUrl(mActivity,url,item.getLiveStreamPic(),item.getTitle(),"",SHARE_MEDIA.WEIXIN_CIRCLE,null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"朋友圈",item.getId(),3);
addShareRecord(data);
}
});
} }
@Subscribe @Subscribe
......
...@@ -28,6 +28,14 @@ ...@@ -28,6 +28,14 @@
android:id="@+id/title_back" android:id="@+id/title_back"
style="@style/title_image_back" /> style="@style/title_image_back" />
<ImageButton
android:id="@+id/ib_share"
android:layout_width="40dp"
android:layout_alignParentRight="true"
android:background="@color/transparent"
android:layout_height="match_parent"
android:src="@drawable/icon_share_gray" />
<ImageView <ImageView
style="@style/card_line" style="@style/card_line"
android:layout_alignParentBottom="true" /> android:layout_alignParentBottom="true" />
...@@ -144,11 +152,17 @@ ...@@ -144,11 +152,17 @@
android:gravity="center" android:gravity="center"
android:text="0" /> android:text="0" />
<ImageButton <ImageButton
android:id="@+id/ib_share" android:layout_width="35dp"
android:layout_width="40dp"
android:background="@color/transparent" android:background="@color/transparent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:src="@drawable/icon_share_gray" /> android:src="@drawable/icon_share_gray" />
<TextView
android:id="@+id/tv_shares"
style="@style/common_text_style"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingRight="10dp"
android:text="0" />
</LinearLayout> </LinearLayout>
......
...@@ -95,23 +95,32 @@ ...@@ -95,23 +95,32 @@
<ImageView <ImageView
android:id="@+id/iv_like" android:id="@+id/iv_like"
android:layout_width="18dp" android:layout_width="18dp"
android:layout_height="18dp" android:layout_height="match_parent"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:src="@drawable/icon_like_gray" /> android:src="@drawable/icon_like_gray" />
<TextView <TextView
android:id="@+id/tv_like" android:id="@+id/tv_like"
style="@style/common_text_style" style="@style/common_text_style"
android:layout_marginLeft="5dp" android:layout_height="match_parent"
android:layout_marginRight="10dp" android:gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingRight="10dp"
android:text="0" /> android:text="0" />
<ImageButton <ImageButton
android:id="@+id/ib_share" android:id="@+id/ib_share"
android:layout_width="40dp" android:layout_width="35dp"
android:background="@color/transparent" android:background="@color/transparent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:src="@drawable/icon_share_gray" /> android:src="@drawable/icon_share_gray" />
<TextView
android:id="@+id/tv_shares"
style="@style/common_text_style"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingRight="10dp"
android:text="0" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -96,10 +96,17 @@ ...@@ -96,10 +96,17 @@
<ImageButton <ImageButton
android:id="@+id/ib_share" android:id="@+id/ib_share"
android:layout_width="40dp" android:layout_width="35dp"
android:background="@color/transparent" android:background="@color/transparent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:src="@drawable/icon_share_gray" /> android:src="@drawable/icon_share_gray" />
<TextView
android:id="@+id/tv_shares"
style="@style/common_text_style"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingRight="10dp"
android:text="0" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.livemodule" >
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- IMSDK 权限 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!--<uses-permission android:name="android.permission.SET_DEBUG_APP" />-->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<application
android:usesCleartextTraffic="true"
android:largeHeap="true"
>
<activity
android:name=".xiaozhibo.login.TCLoginActivity"
android:screenOrientation="portrait"
android:theme="@style/LoginTheme" />
<activity
android:name=".xiaozhibo.login.TCRegisterActivity"
android:screenOrientation="portrait"
android:theme="@style/RegisterTheme" />
<activity
android:name=".xiaozhibo.main.TCMainActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"/>
<activity
android:name=".xiaozhibo.anchor.prepare.TCAnchorPrepareActivity"
android:screenOrientation="portrait" />
<activity
android:name=".xiaozhibo.audience.TCAudienceActivity"
android:screenOrientation="landscape"
android:theme="@style/PlayerTheme"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".xiaozhibo.playback.TCPlaybackActivity"
android:screenOrientation="portrait"
android:theme="@style/PlayerTheme"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".xiaozhibo.anchor.TCCameraAnchorActivity"
android:screenOrientation="landscape"
android:theme="@style/PlayerTheme"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".xiaozhibo.anchor.screen.TCScreenAnchorActivity"
android:theme="@style/RecordActivityTheme"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing"
android:launchMode="singleTask">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service
android:name=".xiaozhibo.anchor.screen.TCScreenRecordService"
android:enabled="true"
android:exported="false">
</service>
<activity android:name="com.tencent.rtmp.video.TXScreenCapture$TXScreenCaptureAssistantActivity" android:theme="@android:style/Theme.Translucent" />
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.dayu.bigfish.fileProvider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
<uses-library
android:name="com.google.android.maps"
android:required="false" />
<uses-library android:name="android.test.runner" />
<service
android:name="com.tencent.imsdk.session.remote.SessionService"
android:process=":network" />
<service
android:name="com.tencent.imsdk.session.remote.AssistService"
android:process=":network" />
<service
android:name="com.tencent.imsdk.session.remote.KeepAliveJobService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:process=":network" />
<receiver android:name="com.tencent.imsdk.session.SessionBroadcastReceiver" >
<intent-filter>
<action android:name="com.tencent.imsdk.session.boot" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="com.tencent.qcloud.qal.TASK_REMOVED" />
</intent-filter>
</receiver>
</application>
</manifest>
...@@ -2928,6 +2928,58 @@ public class MLVBLiveRoomImpl extends MLVBLiveRoom implements HttpRequests.Heart ...@@ -2928,6 +2928,58 @@ public class MLVBLiveRoomImpl extends MLVBLiveRoom implements HttpRequests.Heart
++layerIndex; ++layerIndex;
} }
// // 画布
// {
// JSONObject layoutParam = new JSONObject();
// layoutParam.put("image_layer", 1);
// layoutParam.put("input_type", 3);
// layoutParam.put("image_width", 540);
// layoutParam.put("image_height", 960);
//
// JSONObject canvasStream = new JSONObject();
// canvasStream.put("input_stream_id", mMainStreamId);
// canvasStream.put("layout_params", layoutParam);
//
// inputStreamList.put(canvasStream);
// }
//
// // mainStream
// {
// JSONObject layoutParam = new JSONObject();
// layoutParam.put("image_layer", 2);
// if (mSubStreamIds.size()>0){
// layoutParam.put("image_width", 540);
// layoutParam.put("image_height", 480);
// }else {
// layoutParam.put("image_width", 540);
// layoutParam.put("image_height", 960);
// }
// layoutParam.put("location_x", 0);
// layoutParam.put("location_y", 0);
//
// JSONObject mainStream = new JSONObject();
// mainStream.put("input_stream_id", mMainStreamId);
// mainStream.put("layout_params", layoutParam);
//
// inputStreamList.put(mainStream);
// }
//
// for (String item : mSubStreamIds) {
// JSONObject layoutParam = new JSONObject();
// layoutParam.put("image_layer", 3);
// layoutParam.put("image_width", 540);
// layoutParam.put("image_height", 480);
// layoutParam.put("location_x", 0);
// layoutParam.put("location_y", 480);
//
// JSONObject mainStream = new JSONObject();
// mainStream.put("input_stream_id", item);
// mainStream.put("layout_params", layoutParam);
//
// inputStreamList.put(mainStream);
// }
// para // para
JSONObject para = new JSONObject(); JSONObject para = new JSONObject();
para.put("app_id", ""); para.put("app_id", "");
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -2,8 +2,6 @@ package com.dayu.order.presenter.orderdoing; ...@@ -2,8 +2,6 @@ package com.dayu.order.presenter.orderdoing;
import android.databinding.ObservableField; import android.databinding.ObservableField;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.Constants; import com.dayu.common.Constants;
...@@ -51,7 +49,6 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -51,7 +49,6 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
private int mSiteId; private int mSiteId;
private int mState; private int mState;
private int mPage; private int mPage;
private Handler mHandler;
@Override @Override
public void onAttached() { public void onAttached() {
...@@ -66,11 +63,11 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -66,11 +63,11 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
if (mView instanceof OrderThreeTabFragment) { if (mView instanceof OrderThreeTabFragment) {
mView.showDialog(); mView.showDialog();
getErrorOrder(); getErrorOrder();
}else if (mView instanceof OrderDoneFragment){ } else if (mView instanceof OrderDoneFragment) {
mPage = 1; mPage = 1;
getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE); getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE);
// getDoneOrders(); // getDoneOrders();
}else { } else {
mPage = 1; mPage = 1;
getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE); getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE);
} }
...@@ -78,10 +75,10 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -78,10 +75,10 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
@Override @Override
public void loadMore() { public void loadMore() {
if (mView instanceof OrderDoneFragment){ if (mView instanceof OrderDoneFragment) {
getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE); getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE);
// getDoneOrders(); // getDoneOrders();
}else { } else {
getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE); getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE);
} }
} }
...@@ -197,8 +194,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -197,8 +194,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
manager.registerLicenseManager(licenseManager); manager.registerLicenseManager(licenseManager);
manager.takeLicenseFromNetwork(uuid); manager.takeLicenseFromNetwork(uuid);
if (licenseManager.checkCachedLicense() < 0) { if (licenseManager.checkCachedLicense() < 0) {
mHandler = new Handler(Looper.getMainLooper()); ToastUtils.showShortToast(getString(com.dayu.order.R.string.accredit_error));
mHandler.post(() -> ToastUtils.showShortToast(getString(com.dayu.order.R.string.accredit_error)));
} else { } else {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putSerializable(OrderConstant.ORDERS, order); bundle.putSerializable(OrderConstant.ORDERS, order);
...@@ -210,6 +206,5 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -210,6 +206,5 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
@Override @Override
public void onDetached() { public void onDetached() {
super.onDetached(); super.onDetached();
mHandler = null;
} }
} }
...@@ -9,7 +9,6 @@ import com.alibaba.android.arouter.facade.annotation.Route; ...@@ -9,7 +9,6 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.order.R; import com.dayu.order.R;
import com.dayu.order.api.protocol.OrderDetail; import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.databinding.ActivityOrderDetailsBinding; import com.dayu.order.databinding.ActivityOrderDetailsBinding;
import com.dayu.order.presenter.orderdetail.OrderDetailContract; import com.dayu.order.presenter.orderdetail.OrderDetailContract;
import com.dayu.order.presenter.orderdetail.OrderDetailPresenter; import com.dayu.order.presenter.orderdetail.OrderDetailPresenter;
...@@ -22,7 +21,6 @@ import com.dayu.provider.event.RefreshDetailEvent; ...@@ -22,7 +21,6 @@ import com.dayu.provider.event.RefreshDetailEvent;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.RouterPath;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
...@@ -56,7 +54,6 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act ...@@ -56,7 +54,6 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act
@Override @Override
public void initView() { public void initView() {
mBind.titleBack.setOnClickListener(v -> dumpBack()); mBind.titleBack.setOnClickListener(v -> dumpBack());
EventBus.getDefault().register(this);
} }
@Override @Override
......
...@@ -165,7 +165,7 @@ public class PdfWebViewActivity extends DataBindingActivity<ActivityWebviewBindi ...@@ -165,7 +165,7 @@ public class PdfWebViewActivity extends DataBindingActivity<ActivityWebviewBindi
// 允许漫游时下载 // 允许漫游时下载
request.setAllowedOverRoaming(true); request.setAllowedOverRoaming(true);
// 允许下载的网路类型 // 允许下载的网路类型
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI|DownloadManager.Request.NETWORK_MOBILE);
// 设置下载文件保存的路径和文件名 // 设置下载文件保存的路径和文件名
String fileName = URLUtil.guessFileName(url, contentDisposition, mimeType); String fileName = URLUtil.guessFileName(url, contentDisposition, mimeType);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
......
...@@ -9,10 +9,8 @@ import android.view.LayoutInflater; ...@@ -9,10 +9,8 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.ui.adapter.FragmentAdapter; import com.dayu.base.ui.adapter.FragmentAdapter;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.order.R; import com.dayu.order.R;
import com.dayu.order.api.protocol.Tab; import com.dayu.order.api.protocol.Tab;
import com.dayu.order.common.TabNumEvent; import com.dayu.order.common.TabNumEvent;
...@@ -20,9 +18,7 @@ import com.dayu.order.databinding.FragmentOrderHomeBinding; ...@@ -20,9 +18,7 @@ import com.dayu.order.databinding.FragmentOrderHomeBinding;
import com.dayu.order.presenter.homeorder.HomeOrderContract; import com.dayu.order.presenter.homeorder.HomeOrderContract;
import com.dayu.order.presenter.homeorder.HomeOrderPresenter; import com.dayu.order.presenter.homeorder.HomeOrderPresenter;
import com.dayu.provider.event.RefreshTab; import com.dayu.provider.event.RefreshTab;
import com.dayu.provider.router.RouterPath;
import com.dayu.utils.TabLayoutUtils; import com.dayu.utils.TabLayoutUtils;
import com.dayu.utils.UserManager;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
...@@ -145,8 +141,7 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment ...@@ -145,8 +141,7 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment
public void setTabNum(Tab tab, int myTabIndex) { public void setTabNum(Tab tab, int myTabIndex) {
// String[] tabNum = new String[]{"tab.getReservation() + "", tab.getPendingservice() + "", // String[] tabNum = new String[]{"tab.getReservation() + "", tab.getPendingservice() + "",
// tab.getError() + "", tab.getCanceled() + ""}; // tab.getError() + "", tab.getCanceled() + ""};
String[] tabNum = new String[]{tab.getWaits() + "",tab.getReservation() + "", tab.getPendingservice() + "", int[] tabNum = new int[]{tab.getWaits() ,tab.getReservation(), tab.getPendingservice() ,tab.getComplete()};
tab.getComplete() + ""};
EventBus.getDefault().post(new TabNumEvent(tab.getPendingservice()+tab.getWaits()+tab.getReservation())); EventBus.getDefault().post(new TabNumEvent(tab.getPendingservice()+tab.getWaits()+tab.getReservation()));
if (isFirstAddTab) { if (isFirstAddTab) {
mBind.tbHome.removeAllTabs(); mBind.tbHome.removeAllTabs();
...@@ -159,8 +154,19 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment ...@@ -159,8 +154,19 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment
for (int i = 0; i < mBind.tbHome.getTabCount(); i++) { for (int i = 0; i < mBind.tbHome.getTabCount(); i++) {
TextView tv = mBind.tbHome.getTabAt(i).getCustomView().findViewById(R.id.tabtext); TextView tv = mBind.tbHome.getTabAt(i).getCustomView().findViewById(R.id.tabtext);
TextView tvIcon = mBind.tbHome.getTabAt(i).getCustomView().findViewById(R.id.tabicon); TextView tvIcon = mBind.tbHome.getTabAt(i).getCustomView().findViewById(R.id.tabicon);
tv.setText(tabNum[i]);
tvIcon.setText(tabDesc[i]); tvIcon.setText(tabDesc[i]);
int count = tabNum[i];
tv.setText(count+"");
tv.setTextSize(28);
if (count>999){
tv.setTextSize(24);
}
if (count>9999){
tv.setTextSize(20);
}
if (count>99999){
tv.setTextSize(16);
}
} }
if (myTabIndex != -1) { if (myTabIndex != -1) {
mBind.vpHome.setCurrentItem(myTabIndex); mBind.vpHome.setCurrentItem(myTabIndex);
...@@ -175,7 +181,7 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment ...@@ -175,7 +181,7 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment
* @param number tab标签上的数字(更新频繁) * @param number tab标签上的数字(更新频繁)
* @param iconID tab标签数字下的状态说明(1.0版本默认4种状态) * @param iconID tab标签数字下的状态说明(1.0版本默认4种状态)
*/ */
private View CreatTab(int index,String number, String iconID) { private View CreatTab(int index,int number, String iconID) {
View newtab = LayoutInflater.from(mActivity).inflate(R.layout.activity_home_tab, null); View newtab = LayoutInflater.from(mActivity).inflate(R.layout.activity_home_tab, null);
TextView textView_number = newtab.findViewById(R.id.tabtext); TextView textView_number = newtab.findViewById(R.id.tabtext);
AssetManager mgr = mActivity.getAssets(); AssetManager mgr = mActivity.getAssets();
...@@ -186,7 +192,7 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment ...@@ -186,7 +192,7 @@ public class HomeOrderFragment extends BaseFragment<HomeOrderPresenter, Fragment
textView_number.setTextColor(getResources().getColor(R.color.cl_tab_read)); textView_number.setTextColor(getResources().getColor(R.color.cl_tab_read));
} }
textView_number.setTypeface(tf); textView_number.setTypeface(tf);
textView_number.setText(number); textView_number.setText(number+"");
TextView textView = newtab.findViewById(R.id.tabicon); TextView textView = newtab.findViewById(R.id.tabicon);
textView.setText(iconID); textView.setText(iconID);
return newtab; return newtab;
......
...@@ -14,6 +14,8 @@ import com.dayu.base.api.protocol.CommentReplyData; ...@@ -14,6 +14,8 @@ import com.dayu.base.api.protocol.CommentReplyData;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
...@@ -131,4 +133,7 @@ public interface SaleService { ...@@ -131,4 +133,7 @@ public interface SaleService {
*/ */
@POST(Constants.API_7400 + "/leaveMessage/goods/engineer") @POST(Constants.API_7400 + "/leaveMessage/goods/engineer")
Observable<BaseResponse<Boolean>> addCommentReply(@Body CommentReplyData data); Observable<BaseResponse<Boolean>> addCommentReply(@Body CommentReplyData data);
@GET("/api-third/WXUser/getWxQrCode")
Call<ResponseBody> createWxUrl(@Query("path") String path, @Query("width") int width);
} }
...@@ -44,6 +44,7 @@ public class ProductListBean implements Serializable { ...@@ -44,6 +44,7 @@ public class ProductListBean implements Serializable {
private String goodsModel; private String goodsModel;
private String pn; private String pn;
private double price; private double price;
private double marketPrice;
private double salesPrice; private double salesPrice;
private double customerRebate; private double customerRebate;
private String brief; private String brief;
...@@ -68,6 +69,14 @@ public class ProductListBean implements Serializable { ...@@ -68,6 +69,14 @@ public class ProductListBean implements Serializable {
private Object key; private Object key;
private Object orderBy; private Object orderBy;
public double getMarketPrice() {
return marketPrice;
}
public void setMarketPrice(double marketPrice) {
this.marketPrice = marketPrice;
}
public int getId() { public int getId() {
return id; return id;
} }
......
package com.bigfish.salecenter.ui.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Paint;
import com.badoo.mobile.util.WeakHandler;
import com.bigfish.salecenter.R;
import com.bigfish.salecenter.api.SaleService;
import com.bigfish.salecenter.databinding.ActivityPosterShareBinding;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.presenter.SImplePresenter;
import com.dayu.common.Constants;
import com.dayu.utils.BitmapUtils;
import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.ToastUtils;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import java.io.File;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class PosterShareActivity extends BaseActivity<SImplePresenter, ActivityPosterShareBinding> {
int mId;
String mFrom = "";
WeakHandler weakHandler = new WeakHandler();
@Override
public void setPresenter() {
}
@Override
public int getLayoutId() {
return R.layout.activity_poster_share;
}
public static void launch(Context context, int id, String title, String imgUrl,String from, double price,double marketPrice) {
Intent intent = new Intent(context, PosterShareActivity.class);
intent.putExtra("id", id);
intent.putExtra("img", imgUrl);
intent.putExtra("title", title);
intent.putExtra("from", from);
intent.putExtra("price", price);
intent.putExtra("price2", marketPrice);
context.startActivity(intent);
}
@Override
public void initView() {
initUser();
mId = getIntent().getIntExtra("id", 0);
mFrom = getIntent().getStringExtra("from");
String imgUrl = getIntent().getStringExtra("img");
String title = getIntent().getStringExtra("title");
double price = getIntent().getDoubleExtra("price", 0);
double marketPrice = getIntent().getDoubleExtra("price2", 0);
mBind.tvPrice.setText("¥" + Double.valueOf(price).intValue());
mBind.tvPrice2.setText("¥" + Double.valueOf(marketPrice).intValue());
mBind.tvPrice2.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
mBind.tvTitle.setText(title);
GlideImageLoader.load(this, mBind.ivProduct, imgUrl, R.drawable.icon_img_default);
// GlideImageLoader.loadNoDeal(this,mBind.ivQr,imgUrl,R.drawable.icon_img_default);
mBind.titleBack.setOnClickListener(v -> finish());
mBind.btnShare.setOnClickListener(v -> {
showDialog();
saveAndShare();
});
initData();
}
private void saveAndShare() {
String[] mPerArr = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
Observable.timer(200, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
Bitmap bitmap = BitmapUtils.getBitmap(mBind.llPoster);
File file = BitmapUtils.saveBitmap2Local(bitmap, "poster"+
Constants.ENVIROMENT + mFrom + mUserId+ mId + ".png");
if (file != null) {
CommonUtils.shareImg(PosterShareActivity.this, file, SHARE_MEDIA.WEIXIN_CIRCLE, null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"朋友圈",mId,2);
addShareRecord(data);
}else {
showToast("保存失败");
}
weakHandler.postDelayed(() -> {
hideDialog();
},200);
});
}
@Override
public void onPermissionDenied() {
ToastUtils.showShortToast(R.string.request_permission_failure);
}
});
}
private void initData() {
showDialog();
String path = "pages/mallDetail/main?goodsId=" + mId + "&userId=" + mUserId + "&type=2";
Call<ResponseBody> call = Api.getService(SaleService.class).createWxUrl(path, 470);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
hideDialog();
try {
InputStream is = response.body().byteStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
is.close();
mBind.ivQr.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
ToastUtils.showShortToast(R.string.error_unknow);
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
hideDialog();
ToastUtils.showShortToast(R.string.error_unknow);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
}
...@@ -4,6 +4,7 @@ import android.content.res.AssetManager; ...@@ -4,6 +4,7 @@ import android.content.res.AssetManager;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.TabLayout; import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
...@@ -11,17 +12,15 @@ import android.widget.TextView; ...@@ -11,17 +12,15 @@ import android.widget.TextView;
import com.bigfish.salecenter.R; import com.bigfish.salecenter.R;
import com.bigfish.salecenter.databinding.FragmentHomeSaleBinding; import com.bigfish.salecenter.databinding.FragmentHomeSaleBinding;
import com.bigfish.salecenter.event.RefreshSaleTab; import com.bigfish.salecenter.event.RefreshSaleTab;
import com.dayu.event.SaleTabNumEvent;
import com.bigfish.salecenter.model.SaleTab; import com.bigfish.salecenter.model.SaleTab;
import com.bigfish.salecenter.presenter.homesale.HomeSaleContract; import com.bigfish.salecenter.presenter.homesale.HomeSaleContract;
import com.bigfish.salecenter.presenter.homesale.HomeSalePresenter; import com.bigfish.salecenter.presenter.homesale.HomeSalePresenter;
import com.dayu.base.ui.adapter.FragmentAdapter; import com.dayu.base.ui.adapter.FragmentAdapter;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.event.SaleTabNumEvent;
import com.dayu.utils.TabLayoutUtils; import com.dayu.utils.TabLayoutUtils;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import android.support.v4.app.Fragment;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
...@@ -121,7 +120,7 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo ...@@ -121,7 +120,7 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo
public void setTabNum(SaleTab tab, int myTabIndex) { public void setTabNum(SaleTab tab, int myTabIndex) {
// EventBus.getDefault().post(new SaleTabNumEvent(tab.products+tab.collect+tab.inSale+tab.saleDone)); // EventBus.getDefault().post(new SaleTabNumEvent(tab.products+tab.collect+tab.inSale+tab.saleDone));
EventBus.getDefault().post(new SaleTabNumEvent(tab.inSale)); EventBus.getDefault().post(new SaleTabNumEvent(tab.inSale));
String[] tabNum = new String[]{tab.products + "", tab.collect + "", tab.inSale + "", tab.saleDone + ""}; int[] tabNum = new int[]{tab.products, tab.collect, tab.inSale, tab.saleDone};
if (isFirstAddTab) { if (isFirstAddTab) {
mBind.tbSale.removeAllTabs(); mBind.tbSale.removeAllTabs();
mBind.tbSale.addTab(mBind.tbSale.newTab().setCustomView(CreatTab(0,tabNum[0], tabDesc[0]))); mBind.tbSale.addTab(mBind.tbSale.newTab().setCustomView(CreatTab(0,tabNum[0], tabDesc[0])));
...@@ -133,8 +132,19 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo ...@@ -133,8 +132,19 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo
for (int i = 0; i < mBind.tbSale.getTabCount(); i++) { for (int i = 0; i < mBind.tbSale.getTabCount(); i++) {
TextView tv = mBind.tbSale.getTabAt(i).getCustomView().findViewById(R.id.tabtext); TextView tv = mBind.tbSale.getTabAt(i).getCustomView().findViewById(R.id.tabtext);
TextView tvIcon = mBind.tbSale.getTabAt(i).getCustomView().findViewById(R.id.tabicon); TextView tvIcon = mBind.tbSale.getTabAt(i).getCustomView().findViewById(R.id.tabicon);
tv.setText(tabNum[i]);
tvIcon.setText(tabDesc[i]); tvIcon.setText(tabDesc[i]);
int count = tabNum[i];
tv.setText(count+"");
tv.setTextSize(28);
if (count>999){
tv.setTextSize(24);
}
if (count>9999){
tv.setTextSize(20);
}
if (count>99999){
tv.setTextSize(16);
}
} }
if (myTabIndex != -1) { if (myTabIndex != -1) {
mBind.vpSale.setCurrentItem(myTabIndex); mBind.vpSale.setCurrentItem(myTabIndex);
...@@ -143,7 +153,7 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo ...@@ -143,7 +153,7 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo
} }
} }
private View CreatTab(int index,String number, String iconID) { private View CreatTab(int index,int number, String iconID) {
View newtab = LayoutInflater.from(mActivity).inflate(R.layout.layout_sale_tab, null); View newtab = LayoutInflater.from(mActivity).inflate(R.layout.layout_sale_tab, null);
TextView textView_number = newtab.findViewById(R.id.tabtext); TextView textView_number = newtab.findViewById(R.id.tabtext);
AssetManager mgr = mActivity.getAssets(); AssetManager mgr = mActivity.getAssets();
...@@ -152,7 +162,7 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo ...@@ -152,7 +162,7 @@ public class HomeSaleFragment extends BaseFragment<HomeSalePresenter, FragmentHo
} }
Typeface tf = Typeface.createFromAsset(mgr, "fonts/DIN Alternate Bold.ttf"); Typeface tf = Typeface.createFromAsset(mgr, "fonts/DIN Alternate Bold.ttf");
textView_number.setTypeface(tf); textView_number.setTypeface(tf);
textView_number.setText(number); textView_number.setText(number+"");
TextView textView = newtab.findViewById(R.id.tabicon); TextView textView = newtab.findViewById(R.id.tabicon);
textView.setText(iconID); textView.setText(iconID);
return newtab; return newtab;
......
package com.bigfish.salecenter.ui.fragment; package com.bigfish.salecenter.ui.fragment;
import android.content.Intent;
import android.graphics.Paint; import android.graphics.Paint;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.bigfish.salecenter.R; import com.bigfish.salecenter.R;
import com.bigfish.salecenter.api.SaleService;
import com.bigfish.salecenter.databinding.FragmentProductInstructionBinding; import com.bigfish.salecenter.databinding.FragmentProductInstructionBinding;
import com.bigfish.salecenter.model.ProductDetailBean; import com.bigfish.salecenter.model.ProductDetailBean;
import com.bigfish.salecenter.model.ProductListBean; import com.bigfish.salecenter.ui.activity.PosterShareActivity;
import com.dayu.base.api.Api; import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.activity.ImgGalleryActivty; import com.dayu.base.ui.activity.ImgGalleryActivty;
import com.dayu.base.ui.activity.PreviewActivty;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.base.ui.presenter.SImplePresenter; import com.dayu.base.ui.presenter.SImplePresenter;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.utils.BannerImgLoader; import com.dayu.utils.BannerImgLoader;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager; import com.dayu.widgets.WechatShareDialog;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.bean.SHARE_MEDIA;
import com.youth.banner.BannerConfig; import com.youth.banner.BannerConfig;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
/** /**
* Created by mReturn * Created by mReturn
...@@ -52,8 +45,7 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr ...@@ -52,8 +45,7 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr
@Override @Override
public void initView() { public void initView() {
UserInfo userInfo = UserManager.getInstance().getUser(); initUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
if (getArguments() != null) { if (getArguments() != null) {
mDetail = (ProductDetailBean) getArguments().getSerializable("data"); mDetail = (ProductDetailBean) getArguments().getSerializable("data");
} }
...@@ -81,8 +73,19 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr ...@@ -81,8 +73,19 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr
// //
// ); // );
if (mDetail != null){ if (mDetail != null){
WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> {
if (pos == 0){
CommonUtils.shareProgram(mActivity,mDetail.getFirstUrl(),mDetail.getGoodsModel(), CommonUtils.shareProgram(mActivity,mDetail.getFirstUrl(),mDetail.getGoodsModel(),
mDetail.getBrief(),mUserId,mDetail.getId(),SHARE_MEDIA.WEIXIN,null); mDetail.getBrief(),mUserId,mDetail.getId(),SHARE_MEDIA.WEIXIN,null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"微信",mDetail.getId(),2);
addShareRecord(data);
}else {
PosterShareActivity.launch(mActivity,mDetail.getId(),mDetail.getGoodsModel()
,mDetail.getFirstUrl(),"pdetail",mDetail.getPrice(),mDetail.getMarketPrice());
}
});
MobclickAgent.onEvent(mActivity,"share_goods"); MobclickAgent.onEvent(mActivity,"share_goods");
} }
} }
......
package com.bigfish.salecenter.ui.fragment; package com.bigfish.salecenter.ui.fragment;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import com.bigfish.salecenter.R; import com.bigfish.salecenter.R;
import com.bigfish.salecenter.adapter.SaleProductAdapter; import com.bigfish.salecenter.adapter.SaleProductAdapter;
...@@ -18,12 +16,15 @@ import com.bigfish.salecenter.event.RefreshSaleTab; ...@@ -18,12 +16,15 @@ import com.bigfish.salecenter.event.RefreshSaleTab;
import com.bigfish.salecenter.model.ProductListBean; import com.bigfish.salecenter.model.ProductListBean;
import com.bigfish.salecenter.presenter.saleproduct.SaleProductContract; import com.bigfish.salecenter.presenter.saleproduct.SaleProductContract;
import com.bigfish.salecenter.presenter.saleproduct.SaleProductPresent; import com.bigfish.salecenter.presenter.saleproduct.SaleProductPresent;
import com.bigfish.salecenter.ui.activity.PosterShareActivity;
import com.bigfish.salecenter.ui.activity.ProductDetailActivity; import com.bigfish.salecenter.ui.activity.ProductDetailActivity;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.MyTextWatcher; import com.dayu.common.MyTextWatcher;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import com.dayu.widgets.WechatShareDialog;
import com.dayu.widgets.listener.OnItemClickListener; import com.dayu.widgets.listener.OnItemClickListener;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.bean.SHARE_MEDIA;
...@@ -69,6 +70,7 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme ...@@ -69,6 +70,7 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme
@Override @Override
public void initView() { public void initView() {
initUser();
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
Bundle bundle = getArguments(); Bundle bundle = getArguments();
type = bundle.getInt("type"); type = bundle.getInt("type");
...@@ -186,8 +188,19 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme ...@@ -186,8 +188,19 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme
@Override @Override
public void share(ProductListBean item) { public void share(ProductListBean item) {
MobclickAgent.onEvent(mActivity,"share_goods"); MobclickAgent.onEvent(mActivity,"share_goods");
WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> {
if (pos == 0){
CommonUtils.shareProgram(mActivity,item.getFirstUrl(),item.getGoodsModel(), CommonUtils.shareProgram(mActivity,item.getFirstUrl(),item.getGoodsModel(),
item.getBrief(),mUserId,item.getId(),SHARE_MEDIA.WEIXIN,null); item.getBrief(),mUserId,item.getId(),SHARE_MEDIA.WEIXIN,null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"微信",item.getId(),2);
addShareRecord(data);
}else {
PosterShareActivity.launch(mActivity,item.getId(),item.getGoodsModel()
,item.getFirstUrl(),"product",item.getPrice(),item.getMarketPrice());
}
});
} }
@Override @Override
......
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
<activity android:name=".ui.activity.SaleOrderDetailActivity" <activity android:name=".ui.activity.SaleOrderDetailActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
/> />
<activity android:name=".ui.activity.PosterShareActivity"
android:screenOrientation="portrait"
/>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_fa">
<RelativeLayout
android:id="@+id/rl_title"
style="@style/title">
<TextView
style="@style/text_title"
android:text="分享" />
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back" />
<ImageView
style="@style/card_line"
android:layout_alignParentBottom="true" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_poster"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/rl_title"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@color/white"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingTop="20dp"
android:paddingRight="20dp"
android:paddingBottom="70dp">
<ImageView
android:id="@+id/iv_product"
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_height="180dp" />
<TextView
android:id="@+id/tv_title"
style="@style/common_text_style"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:textSize="16sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="15dp"
android:gravity="center_vertical"
>
<TextView
style="@style/common_text_style"
android:layout_gravity="center_horizontal"
android:textColor="@color/text_common_blue"
android:text="厂家直销价:"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_price"
style="@style/common_text_style"
android:layout_gravity="center_horizontal"
android:textColor="@color/text_common_blue"
android:layout_marginLeft="5dp"
android:textSize="15sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
/>
<TextView
style="@style/common_text_style"
android:layout_gravity="center_horizontal"
android:textColor="@color/color_69"
android:text="市场售价:"
/>
<TextView
android:id="@+id/tv_price2"
android:layout_marginLeft="5dp"
style="@style/common_text_style"
android:layout_gravity="center_horizontal"
android:textColor="@color/color_69"
/>
</LinearLayout>
<ImageView
android:id="@+id/iv_qr"
android:layout_width="130dp"
android:layout_height="130dp"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter" />
</LinearLayout>
<Button
android:id="@+id/btn_share"
android:layout_width="match_parent"
android:layout_height="43dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:background="@drawable/btn_blue_commom"
android:gravity="center"
android:text="保存海报,分享到朋友圈"
android:textColor="@color/white" />
</RelativeLayout>
</layout>
\ No newline at end of file
package com.dayu.usercenter.presenter.homeuser; package com.dayu.usercenter.presenter.homeuser;
import com.dayu.base.api.protocol.AddressInfoBean;
import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView; import com.dayu.common.BaseView;
import com.dayu.usercenter.data.protocol.EngineerInfo; import com.dayu.usercenter.data.protocol.EngineerInfo;
import com.dayu.usercenter.data.protocol.OrderRecord; import com.dayu.usercenter.data.protocol.OrderRecord;
import com.dayu.usercenter.data.protocol.TodayAchievement; import com.dayu.usercenter.data.protocol.TodayAchievement;
import com.dayu.usercenter.model.bean.UserBankInfoBean;
import com.dayu.usercenter.model.bean.UserIncomeBean; import com.dayu.usercenter.model.bean.UserIncomeBean;
import java.util.List; import java.util.List;
...@@ -16,6 +18,10 @@ import java.util.List; ...@@ -16,6 +18,10 @@ import java.util.List;
public interface HomeUserContract { public interface HomeUserContract {
interface View extends BaseView { interface View extends BaseView {
void getBankInfoSuccess(UserBankInfoBean info);
void getAddrInfoSuccess(AddressInfoBean info);
void getPersonalInfoSuccess(EngineerInfo info); void getPersonalInfoSuccess(EngineerInfo info);
void getAchievementSuccess(TodayAchievement achievement); void getAchievementSuccess(TodayAchievement achievement);
......
...@@ -3,6 +3,7 @@ package com.dayu.usercenter.presenter.homeuser; ...@@ -3,6 +3,7 @@ package com.dayu.usercenter.presenter.homeuser;
import android.databinding.ObservableField; import android.databinding.ObservableField;
import android.os.Bundle; import android.os.Bundle;
import com.dayu.base.api.APIService;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.usercenter.api.UserApiFactory; import com.dayu.usercenter.api.UserApiFactory;
...@@ -46,11 +47,28 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { ...@@ -46,11 +47,28 @@ public class HomeUserPresenter extends HomeUserContract.Presenter {
getRecordInfo(); getRecordInfo();
getIncomData(); getIncomData();
getWechtData(); getWechtData();
getBankInfo();
getAddrInfo();
} }
public void getBankInfo() {
Api.getService(UserService2.class).getUserBankInfo(mUid).compose(Api.applySchedulers())
.subscribe(baseObserver(data -> {
mView.getBankInfoSuccess(data);
},responeThrowable -> {mView.getBankInfoSuccess(null);}
));
}
public void getAddrInfo() {
Api.getService(APIService.class).getAddressInfo(mUid).compose(Api.applySchedulers())
.subscribe(baseObserver(data -> {
mView.getAddrInfoSuccess(data);
},responeThrowable -> {mView.getAddrInfoSuccess(null);}
));
}
public void getUserInfo() { public void getUserInfo() {
UserApiFactory.getEngineerInfo(mUid).subscribe(baseObserver(data ->{ UserApiFactory.getEngineerInfo(mUid).subscribe(baseObserver(data -> {
mInviteCode = data.getInvitationCode(); mInviteCode = data.getInvitationCode();
mView.getPersonalInfoSuccess(data); mView.getPersonalInfoSuccess(data);
} }
...@@ -65,12 +83,12 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { ...@@ -65,12 +83,12 @@ public class HomeUserPresenter extends HomeUserContract.Presenter {
private void getIncomData() { private void getIncomData() {
Api.getService(UserService2.class).getIncoms(mUid).compose(Api.applySchedulers()) Api.getService(UserService2.class).getIncoms(mUid).compose(Api.applySchedulers())
.subscribe(baseObserver(data->mView.setIncomData(data))); .subscribe(baseObserver(data -> mView.setIncomData(data)));
} }
private void getWechtData() { private void getWechtData() {
Api.getService(UserService2.class).getServiceWechat().compose(Api.applySchedulers()) Api.getService(UserService2.class).getServiceWechat().compose(Api.applySchedulers())
.subscribe(baseObserver(wechats->mView.setWechatData(wechats))); .subscribe(baseObserver(wechats -> mView.setWechatData(wechats)));
} }
@Override @Override
...@@ -99,19 +117,20 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { ...@@ -99,19 +117,20 @@ public class HomeUserPresenter extends HomeUserContract.Presenter {
public void dumpToInvate() { public void dumpToInvate() {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString(Constants.INVITE_CODE,mInviteCode); bundle.putString(Constants.INVITE_CODE, mInviteCode);
bundle.putInt(Constants.TYPE,2); bundle.putInt(Constants.TYPE, 2);
mView.startActivity(InvateNewActivity.class,bundle); mView.startActivity(InvateNewActivity.class, bundle);
} }
public void toInviteRecord() { public void toInviteRecord() {
mView.startActivity(InviteRecordActivity.class); mView.startActivity(InviteRecordActivity.class);
} }
public void invateProvider() { public void invateProvider() {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString(Constants.INVITE_CODE,mInviteCode); bundle.putString(Constants.INVITE_CODE, mInviteCode);
bundle.putInt(Constants.TYPE,1); bundle.putInt(Constants.TYPE, 1);
mView.startActivity(InvateNewActivity.class,bundle); mView.startActivity(InvateNewActivity.class, bundle);
} }
public void dumpToCacheRecord() { public void dumpToCacheRecord() {
...@@ -121,13 +140,14 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { ...@@ -121,13 +140,14 @@ public class HomeUserPresenter extends HomeUserContract.Presenter {
public void toCommonRecord(int type) { public void toCommonRecord(int type) {
mView.toCommonRecord(type); mView.toCommonRecord(type);
} }
public void copy(String str) { public void copy(String str) {
mView.copyWechat(str); mView.copyWechat(str);
} }
public void dial(String str) { public void dial(String str) {
CommonUtils.dialPhone(str); CommonUtils.dialPhone(str);
} }
} }
...@@ -18,7 +18,6 @@ import com.dayu.usercenter.presenter.pwlogin.PwLoginPresenter; ...@@ -18,7 +18,6 @@ import com.dayu.usercenter.presenter.pwlogin.PwLoginPresenter;
import com.dayu.widgets.CustomDialog; import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener; import com.dayu.widgets.listener.OnCloseListener;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
/** /**
...@@ -36,7 +35,6 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo ...@@ -36,7 +35,6 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
@Override @Override
public void initView() { public void initView() {
EventBus.getDefault().register(this);
mBind.toolbar.setNavigationOnClickListener(v -> startActvityAndFinish(SmsLoginActivity.class)); mBind.toolbar.setNavigationOnClickListener(v -> startActvityAndFinish(SmsLoginActivity.class));
mBind.showPwd.setOnClickListener(v -> { mBind.showPwd.setOnClickListener(v -> {
if (mPwdState == 1) { if (mPwdState == 1) {
...@@ -113,6 +111,5 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo ...@@ -113,6 +111,5 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
EventBus.getDefault().unregister(this);
} }
} }
...@@ -9,7 +9,6 @@ import android.view.View; ...@@ -9,7 +9,6 @@ import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.common.BaseApplication; import com.dayu.common.BaseApplication;
import com.dayu.common.BaseConstant; import com.dayu.common.BaseConstant;
import com.dayu.common.Constants; import com.dayu.common.Constants;
...@@ -21,9 +20,7 @@ import com.dayu.usercenter.event.RegisterSuccessEvent; ...@@ -21,9 +20,7 @@ import com.dayu.usercenter.event.RegisterSuccessEvent;
import com.dayu.usercenter.presenter.smslogin.SmsLoginContract; import com.dayu.usercenter.presenter.smslogin.SmsLoginContract;
import com.dayu.usercenter.presenter.smslogin.SmsLoginPresenter; import com.dayu.usercenter.presenter.smslogin.SmsLoginPresenter;
import com.dayu.utils.AppUtils; import com.dayu.utils.AppUtils;
import com.dayu.utils.TimeCountUtil;
import com.dayu.utils.TimeCountUtil2; import com.dayu.utils.TimeCountUtil2;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils; import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsUserAccountMatcher; import com.dayu.utils.UtilsUserAccountMatcher;
import com.dayu.widgets.ChangeEnvDialog; import com.dayu.widgets.ChangeEnvDialog;
...@@ -31,7 +28,6 @@ import com.dayu.widgets.CustomDialog; ...@@ -31,7 +28,6 @@ import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener; import com.dayu.widgets.listener.OnCloseListener;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
...@@ -49,7 +45,6 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms ...@@ -49,7 +45,6 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms
@Override @Override
public void initView() { public void initView() {
EventBus.getDefault().register(this);
String versionCode = AppUtils.getPackageNum(); String versionCode = AppUtils.getPackageNum();
if (Constants.ENVIROMENT.equals("debug")) { if (Constants.ENVIROMENT.equals("debug")) {
mBind.environment.setText(String.format(getString(R.string.enviroment_debug), versionCode)); mBind.environment.setText(String.format(getString(R.string.enviroment_debug), versionCode));
...@@ -145,7 +140,6 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms ...@@ -145,7 +140,6 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
EventBus.getDefault().unregister(this);
} }
......
...@@ -4,6 +4,8 @@ import android.content.Context; ...@@ -4,6 +4,8 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
...@@ -22,11 +24,16 @@ import java.util.List; ...@@ -22,11 +24,16 @@ import java.util.List;
* Created by mReturn * Created by mReturn
* on 2020/2/15 * on 2020/2/15
**/ **/
public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityCommonRecordBinding> {
@Route(path = Constants.PATH_USER_REWARD)
public class CommonRecordActivity extends BaseActivity<SImplePresenter, ActivityCommonRecordBinding> {
int mType; //1.销售奖励 2.服务业绩 3.邀请奖励 4.平台奖励 int mType; //1.销售奖励 2.服务业绩 3.邀请奖励 4.平台奖励
int page = 1; int page = 1;
BaseQuickAdapter<CommonRecordListBean, BaseViewHolder> mAdapter; BaseQuickAdapter<CommonRecordListBean, BaseViewHolder> mAdapter;
List<CommonRecordListBean> mDatas = new ArrayList<>(); List<CommonRecordListBean> mDatas = new ArrayList<>();
@Autowired(name = "type")
int routerType;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -37,17 +44,22 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC ...@@ -37,17 +44,22 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC
public void setPresenter() { public void setPresenter() {
} }
public static void launch(Context context,int type){ public static void launch(Context context, int type) {
Intent intent = new Intent(context,CommonRecordActivity.class); Intent intent = new Intent(context, CommonRecordActivity.class);
intent.putExtra("type",type); intent.putExtra("type", type);
context.startActivity(intent); context.startActivity(intent);
} }
@Override @Override
public void initView() { public void initView() {
initUser(); initUser();
mType = getIntent().getIntExtra("type",0); if (getIntent().hasExtra("type")){
mBind.receivingBack.setOnClickListener(v->dumpBack()); mType = getIntent().getIntExtra("type", 0);
}else{
mType = routerType;
}
mBind.receivingBack.setOnClickListener(v -> dumpBack());
initTopView(); initTopView();
initData(); initData();
mBind.refreshLayout.setEnableLoadMore(false); mBind.refreshLayout.setEnableLoadMore(false);
...@@ -64,7 +76,7 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC ...@@ -64,7 +76,7 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC
} }
private void initTopView() { private void initTopView() {
switch (mType){ switch (mType) {
case 1: case 1:
mBind.tvTitle.setText(R.string.user_sale_record); mBind.tvTitle.setText(R.string.user_sale_record);
mBind.tvCountDesc.setText(R.string.record_done_sale); mBind.tvCountDesc.setText(R.string.record_done_sale);
...@@ -100,8 +112,8 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC ...@@ -100,8 +112,8 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC
//奖励明细 //奖励明细
private void getDetailData() { private void getDetailData() {
Api.getService(UserService2.class).getCommonRecordList(mUserId,1,mType, page, Constants.PAGESIZE).compose(Api.applySchedulers()) Api.getService(UserService2.class).getCommonRecordList(mUserId, 1, mType, page, Constants.PAGESIZE).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(data ->{ .subscribe(mPresenter.baseObserver(data -> {
mBind.refreshLayout.finishRefresh(); mBind.refreshLayout.finishRefresh();
mBind.refreshLayout.finishLoadMore(); mBind.refreshLayout.finishLoadMore();
if (page == 1) { if (page == 1) {
...@@ -118,16 +130,19 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC ...@@ -118,16 +130,19 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC
} }
private void setAdapter() { private void setAdapter() {
if (mAdapter != null){ if (mAdapter != null) {
mAdapter.notifyDataSetChanged(); mAdapter.notifyDataSetChanged();
}else{ } else {
mAdapter = new BaseQuickAdapter<CommonRecordListBean, BaseViewHolder>(R.layout.item_record_common, mDatas) { mAdapter = new BaseQuickAdapter<CommonRecordListBean, BaseViewHolder>(R.layout.item_record_common, mDatas) {
@Override @Override
protected void convert(BaseViewHolder helper, CommonRecordListBean item) { protected void convert(BaseViewHolder helper, CommonRecordListBean item) {
helper.setText(R.id.tv_item1, item.getRewardPrice()+""); helper.setText(R.id.tv_item1, item.getRewardPrice() + "");
if (mType == 4){
helper.setText(R.id.tv_item2, item.getRewardItem());
}else {
helper.setText(R.id.tv_item2, item.getProviderName()); helper.setText(R.id.tv_item2, item.getProviderName());
}
helper.setText(R.id.tv_item3, item.getCreateTime()); helper.setText(R.id.tv_item3, item.getCreateTime());
} }
}; };
......
...@@ -4,21 +4,22 @@ import android.text.Editable; ...@@ -4,21 +4,22 @@ import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.EditText; import android.widget.EditText;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.presenter.SImplePresenter; import com.dayu.base.ui.presenter.SImplePresenter;
import com.dayu.common.Constants;
import com.dayu.common.MyTextWatcher; import com.dayu.common.MyTextWatcher;
import com.dayu.event.UserInfo;
import com.dayu.usercenter.R; import com.dayu.usercenter.R;
import com.dayu.usercenter.api.UserService2; import com.dayu.usercenter.api.UserService2;
import com.dayu.usercenter.databinding.ActivityEditBankBinding; import com.dayu.usercenter.databinding.ActivityEditBankBinding;
import com.dayu.usercenter.event.EditBankEvent; import com.dayu.usercenter.event.EditBankEvent;
import com.dayu.usercenter.model.EditBankData; import com.dayu.usercenter.model.EditBankData;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
@Route(path = Constants.PATH_EDIT_BANK)
public class EditBankActivity extends BaseActivity<SImplePresenter, ActivityEditBankBinding> { public class EditBankActivity extends BaseActivity<SImplePresenter, ActivityEditBankBinding> {
private String bankName; private String bankName;
private String bankAccount; private String bankAccount;
......
package com.dayu.usercenter.ui.activity2;
public class TestSplashActivity {
}
...@@ -21,10 +21,8 @@ import com.dayu.usercenter.ui.activity.PersonInfoActivity; ...@@ -21,10 +21,8 @@ import com.dayu.usercenter.ui.activity.PersonInfoActivity;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.UserManager; import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
...@@ -46,7 +44,6 @@ public class UserInfoActivity extends BaseActivity<UserInfoPresenter, ActivityUs ...@@ -46,7 +44,6 @@ public class UserInfoActivity extends BaseActivity<UserInfoPresenter, ActivityUs
@Override @Override
public void initView() { public void initView() {
EventBus.getDefault().register(this);
setUserRule2(globelRate+"%"); setUserRule2(globelRate+"%");
mBind.rlUser.setOnClickListener(view -> startActivity(PersonInfoActivity.class)); mBind.rlUser.setOnClickListener(view -> startActivity(PersonInfoActivity.class));
mBind.rlBank.setOnClickListener(view -> startActivity(EditBankActivity.class)); mBind.rlBank.setOnClickListener(view -> startActivity(EditBankActivity.class));
...@@ -122,7 +119,6 @@ public class UserInfoActivity extends BaseActivity<UserInfoPresenter, ActivityUs ...@@ -122,7 +119,6 @@ public class UserInfoActivity extends BaseActivity<UserInfoPresenter, ActivityUs
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
EventBus.getDefault().unregister(this);
} }
@Subscribe @Subscribe
......
...@@ -12,6 +12,7 @@ import android.widget.ImageView; ...@@ -12,6 +12,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.api.protocol.AddressInfoBean;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
...@@ -25,11 +26,13 @@ import com.dayu.usercenter.data.protocol.TodayAchievement; ...@@ -25,11 +26,13 @@ import com.dayu.usercenter.data.protocol.TodayAchievement;
import com.dayu.usercenter.databinding.FragmentHomeUserBinding; import com.dayu.usercenter.databinding.FragmentHomeUserBinding;
import com.dayu.usercenter.event.RefreshUserInfoEvent; import com.dayu.usercenter.event.RefreshUserInfoEvent;
import com.dayu.usercenter.event.RefreshUserRecordEvent; import com.dayu.usercenter.event.RefreshUserRecordEvent;
import com.dayu.usercenter.model.bean.UserBankInfoBean;
import com.dayu.usercenter.model.bean.UserIncomeBean; import com.dayu.usercenter.model.bean.UserIncomeBean;
import com.dayu.usercenter.presenter.homeuser.HomeUserContract; import com.dayu.usercenter.presenter.homeuser.HomeUserContract;
import com.dayu.usercenter.presenter.homeuser.HomeUserPresenter; import com.dayu.usercenter.presenter.homeuser.HomeUserPresenter;
import com.dayu.usercenter.ui.activity.WithdrawalsActivity; import com.dayu.usercenter.ui.activity.WithdrawalsActivity;
import com.dayu.usercenter.ui.activity2.CommonRecordActivity; import com.dayu.usercenter.ui.activity2.CommonRecordActivity;
import com.dayu.usercenter.ui.activity2.UserInfoActivity;
import com.dayu.utils.CommonUtils; import com.dayu.utils.CommonUtils;
import com.dayu.utils.ProgressUtil; import com.dayu.utils.ProgressUtil;
import com.dayu.utils.SPUtils; import com.dayu.utils.SPUtils;
...@@ -94,6 +97,43 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo ...@@ -94,6 +97,43 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
} }
@Override @Override
public void getBankInfoSuccess(UserBankInfoBean info) {
if (info == null || TextUtils.isEmpty(info.getBankAccount())){
if (TextUtils.isEmpty((String) SPUtils.get("bank_addr_info",""))){
showBankAddrDialog();
SPUtils.put("bank_addr_info","showed");
}
}
}
@Override
public void getAddrInfoSuccess(AddressInfoBean info) {
if (info == null || TextUtils.isEmpty(info.getAddress())){
if (TextUtils.isEmpty((String) SPUtils.get("bank_addr_info",""))){
showBankAddrDialog();
SPUtils.put("bank_addr_info","showed");
}
}
}
private void showBankAddrDialog() {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog,
"请尽快填写您的银行卡信息和快递信息,以免影响您的提现和接单。"
, (dialog1, confirm) -> {
if (confirm) {
Intent intent = new Intent(mActivity, UserInfoActivity.class);
startActivity(intent);
dialog1.dismiss();
}
dialog1.dismiss();
});
dialog.setTitle("提示")
.setNegativeButton(mActivity.getString(R.string.cancle))
.setPositiveButton("去填写");
dialog.show();
}
@Override
public void getPersonalInfoSuccess(EngineerInfo info) { public void getPersonalInfoSuccess(EngineerInfo info) {
// mBind.tvStartLive.setVisibility(View.VISIBLE); // mBind.tvStartLive.setVisibility(View.VISIBLE);
mBind.tvStartLive.setVisibility(info.getLiveStatus() == 1?View.VISIBLE:View.GONE); mBind.tvStartLive.setVisibility(info.getLiveStatus() == 1?View.VISIBLE:View.GONE);
......
...@@ -101,6 +101,9 @@ ...@@ -101,6 +101,9 @@
<activity <activity
android:name=".ui.activity2.InviteRecordActivity" android:name=".ui.activity2.InviteRecordActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".ui.activity2.TestRecordActivity"
android:screenOrientation="portrait" />
</application> </application>
</manifest> </manifest>
...@@ -75,6 +75,11 @@ ...@@ -75,6 +75,11 @@
style="@style/edt_user_edit" style="@style/edt_user_edit"
/> />
</LinearLayout> </LinearLayout>
<TextView
style="@style/common_text_style"
android:textColor="@color/common_red"
android:layout_margin="15dp"
android:text="@string/fill_bank_notice" />
<View <View
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
...@@ -67,7 +67,6 @@ ...@@ -67,7 +67,6 @@
</LinearLayout> </LinearLayout>
<com.github.mikephil.charting.charts.BarChart <com.github.mikephil.charting.charts.BarChart
android:visibility="gone"
android:id="@+id/bar_chart" android:id="@+id/bar_chart"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="300dp" /> android:layout_height="300dp" />
......
...@@ -35,12 +35,12 @@ ...@@ -35,12 +35,12 @@
<string name="sale_record_rule4_3">的佣金。(佣金含依法代扣代缴个人劳务收入所得税费和支付手续费等)</string> <string name="sale_record_rule4_3">的佣金。(佣金含依法代扣代缴个人劳务收入所得税费和支付手续费等)</string>
<string name="invate_user_title">邀请新人有奖</string> <string name="invate_user_title">邀请新人有奖</string>
<string name="invate_reward_rule">奖励规则:</string> <string name="invate_reward_rule">奖励规则:</string>
<string name="invate_reward_rule1">1、成功邀请一名新人注册大鱼师傅APP, 被邀请人的销售奖励/服务收入的5%给您。</string> <string name="invate_reward_rule1">1、成功邀请一名新人注册大鱼师傅APP, 被邀请人的前十单销售奖励/服务收入的5%给您。</string>
<string name="invate_reward_rule2">2、请务必提醒被邀请人在注册APP时准确输入您的【专属邀请码】;如果输入错误或忘记输入,系统无法识别并记账。</string> <string name="invate_reward_rule2">2、请务必提醒被邀请人在注册APP时准确输入您的【专属邀请码】;如果输入错误或忘记输入,系统无法识别并记账。</string>
<string name="remember_your_invate_code">请牢记您的专属邀请码:</string> <string name="remember_your_invate_code">请牢记您的专属邀请码:</string>
<string name="forward_invate_now">马上转发\n【大鱼师傅APP】注册链接</string> <string name="forward_invate_now">马上转发\n【大鱼师傅APP】注册链接</string>
<string name="invate_provider_title">推荐商家有奖</string> <string name="invate_provider_title">推荐商家有奖</string>
<string name="invate_provider_rule1">1、推荐成功注册大鱼商家,该商家前十单销售奖励/服务工费的10%都归您。</string> <string name="invate_provider_rule1">1、推荐成功注册大鱼商家,该商家前十单销售奖励/服务工费的5%都归您。</string>
<string name="invate_provider_rule2">2、请务必提醒商家注册时准确输入您的【专属邀请码】;如果输入错误或忘记输入,系统无法识别并记账。</string> <string name="invate_provider_rule2">2、请务必提醒商家注册时准确输入您的【专属邀请码】;如果输入错误或忘记输入,系统无法识别并记账。</string>
<string name="forward_provider_now">马上转发\n【大鱼商家APP】注册链接</string> <string name="forward_provider_now">马上转发\n【大鱼商家APP】注册链接</string>
<string name="share_finish">分享结束</string> <string name="share_finish">分享结束</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment