Commit 027c5d47 by sikang

UPDATE

parent 72748b4f
...@@ -10,7 +10,8 @@ android { ...@@ -10,7 +10,8 @@ android {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk { ndk {
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' //百度活体 在armeabi平台下性能很差,建议使用armeabi-v7a
abiFilters 'armeabi-v7a'//,'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
} }
} }
buildTypes { buildTypes {
...@@ -37,6 +38,10 @@ android { ...@@ -37,6 +38,10 @@ android {
} }
} }
repositories {
mavenCentral()
}
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
...@@ -101,8 +106,6 @@ dependencies { ...@@ -101,8 +106,6 @@ dependencies {
api 'com.google.firebase:firebase-messaging:17.3.2' api 'com.google.firebase:firebase-messaging:17.3.2'
//firebase remoteConfig //firebase remoteConfig
api 'com.google.firebase:firebase-config:16.0.0' api 'com.google.firebase:firebase-config:16.0.0'
//firebase dynamicLinks
// api 'com.google.firebase:firebase-dynamic-links:16.1.2'
//camerakit //camerakit
api 'com.wonderkiln:camerakit:0.13.1' api 'com.wonderkiln:camerakit:0.13.1'
...@@ -112,6 +115,10 @@ dependencies { ...@@ -112,6 +115,10 @@ dependencies {
api 'com.google.android.gms:play-services-auth:15.0.1' api 'com.google.android.gms:play-services-auth:15.0.1'
api 'com.google.android.gms:play-services-auth-api-phone:15.0.1' api 'com.google.android.gms:play-services-auth-api-phone:15.0.1'
//AppsFlyer
// api 'com.appsflyer:af-android-sdk:4+@aar'
// api 'com.android.installreferrer:installreferrer:1.0'
//zendesk //zendesk
api group: 'com.zendesk', name: 'support', version: '2.1.1' api group: 'com.zendesk', name: 'support', version: '2.1.1'
......
...@@ -77,7 +77,9 @@ ...@@ -77,7 +77,9 @@
####混淆保护自己项目的部分代码以及引用的第三方jar包library-end#### ####混淆保护自己项目的部分代码以及引用的第三方jar包library-end####
#AppsFlyer
-dontwarn com.android.installreferrer
-keep class com.appsflyer.** { *; }
#保持 native 方法不被混淆 #保持 native 方法不被混淆
-keepclasseswithmembernames class * { -keepclasseswithmembernames class * {
......
...@@ -133,6 +133,27 @@ ...@@ -133,6 +133,27 @@
android:name=".mvp.ui.activity.RefreshDeskListActivity" android:name=".mvp.ui.activity.RefreshDeskListActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<!--拍照-->
<activity
android:name=".mvp.ui.activity.TakePhotoActivity"
android:screenOrientation="portrait" />
<receiver
android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver
android:name=".broadcast.InstallReferrerReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<!-- 具备短信默认应用条件 1 --> <!-- 具备短信默认应用条件 1 -->
<activity android:name="tech.starwin.service.sms.SmsActivity"> <activity android:name="tech.starwin.service.sms.SmsActivity">
......
...@@ -17,6 +17,7 @@ import com.scwang.smartrefresh.layout.footer.ClassicsFooter; ...@@ -17,6 +17,7 @@ import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader; import com.scwang.smartrefresh.layout.header.ClassicsHeader;
import com.tencent.bugly.crashreport.CrashReport; import com.tencent.bugly.crashreport.CrashReport;
import cn.fraudmetrix.octopus.aspirit.main.OctopusManager; import cn.fraudmetrix.octopus.aspirit.main.OctopusManager;
import tech.starwin.network.Gateway; import tech.starwin.network.Gateway;
import tech.starwin.utils.FireBaseHelper; import tech.starwin.utils.FireBaseHelper;
...@@ -33,11 +34,11 @@ import static com.facebook.accountkit.internal.AccountKitController.getApplicati ...@@ -33,11 +34,11 @@ import static com.facebook.accountkit.internal.AccountKitController.getApplicati
* 配置 BaseLibrary * 配置 BaseLibrary
*/ */
public class LibConfig { public class LibConfig {
private static boolean useDefaulLoginMode = true;//请求出现登录时是否使用默认的响应方式(跳转登录界面)
/** /**
* BuildConfig 数据 * BuildConfig 数据
*/ */
private static Context CONTEXT; private static Application CONTEXT;
public static boolean DEBUG; public static boolean DEBUG;
public static String APPLICATION_ID; public static String APPLICATION_ID;
public static String BUILD_TYPE; public static String BUILD_TYPE;
...@@ -64,6 +65,7 @@ public class LibConfig { ...@@ -64,6 +65,7 @@ public class LibConfig {
public static String ZENDESK_OAUTH_CLIENT_ID; public static String ZENDESK_OAUTH_CLIENT_ID;
public static String TONGDUN_PARENT_CODE; public static String TONGDUN_PARENT_CODE;
public static String TONGDUN_PARENT_KEY; public static String TONGDUN_PARENT_KEY;
public static String AF_DEV_KEY;
public static String LANGUAGE = "en"; public static String LANGUAGE = "en";
public static int HARVESTER_PORT;// public static int HARVESTER_PORT;//
public static int LOADING_ICON;//loading图标 public static int LOADING_ICON;//loading图标
...@@ -91,12 +93,7 @@ public class LibConfig { ...@@ -91,12 +93,7 @@ public class LibConfig {
//init FireBase RemoteConfig //init FireBase RemoteConfig
//RemoteConfig //RemoteConfig
FirebaseRemoteConfig.getInstance().setConfigSettings( initFirebaseRemoteConfig();
new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(LibConfig.DEBUG)
.build()
);
FireBaseHelper.fetchRemoteConfig();
//init SharePreferences //init SharePreferences
PreferencesManager.get().init(application); PreferencesManager.get().init(application);
...@@ -109,23 +106,81 @@ public class LibConfig { ...@@ -109,23 +106,81 @@ public class LibConfig {
CrashReport.initCrashReport(getApplicationContext(), BUGLY_APP_ID, DEBUG); CrashReport.initCrashReport(getApplicationContext(), BUGLY_APP_ID, DEBUG);
} }
//init zendesk initZendesk(application);
initTD();
// initAppsFLyer(application);
}
}
/**
* init FirebaseRemoteConfig
*/
private static void initFirebaseRemoteConfig() {
FirebaseRemoteConfig.getInstance().setConfigSettings(
new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(LibConfig.DEBUG)
.build()
);
FireBaseHelper.fetchRemoteConfig();
}
/**
* init zendesk
*/
private static void initZendesk(Application application) {
Zendesk.INSTANCE.init(application, ZENDESK_URL, ZENDESK_APP_ID, ZENDESK_OAUTH_CLIENT_ID); Zendesk.INSTANCE.init(application, ZENDESK_URL, ZENDESK_APP_ID, ZENDESK_OAUTH_CLIENT_ID);
Support.INSTANCE.init(Zendesk.INSTANCE); Support.INSTANCE.init(Zendesk.INSTANCE);
Zendesk.INSTANCE.setIdentity(new AnonymousIdentity());//匿名身份 Zendesk.INSTANCE.setIdentity(new AnonymousIdentity());//匿名身份
}
//同盾 /**
* init 同盾
*/
private static void initTD() {
OctopusManager.getInstance().init(CONTEXT, TONGDUN_PARENT_CODE, TONGDUN_PARENT_KEY); OctopusManager.getInstance().init(CONTEXT, TONGDUN_PARENT_CODE, TONGDUN_PARENT_KEY);
OctopusManager.getInstance().setPrimaryColorResId(MAIN_COLOR); OctopusManager.getInstance().setPrimaryColorResId(MAIN_COLOR);
OctopusManager.getInstance().setTitleColorResId(R.color.white); OctopusManager.getInstance().setTitleColorResId(R.color.white);
OctopusManager.getInstance().setShowWarnDialog(true); OctopusManager.getInstance().setShowWarnDialog(true);
OctopusManager.getInstance().setStatusBarBg(MAIN_COLOR); OctopusManager.getInstance().setStatusBarBg(MAIN_COLOR);
}
} }
/** /**
* init AppsFLyer
*/
// private static void initAppsFLyer(Application application) {
// AppsFlyerConversionListener conversionDataListener =
// new AppsFlyerConversionListener() {
// @Override
// public void onInstallConversionDataLoaded(Map<String, String> map) {
//
// }
//
// @Override
// public void onInstallConversionFailure(String s) {
//
// }
//
// @Override
// public void onAppOpenAttribution(Map<String, String> map) {
//
// }
//
// @Override
// public void onAttributionFailure(String s) {
//
// }
// };
// AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionDataListener, getApplicationContext());
// AppsFlyerLib.getInstance().startTracking(application);
// }
/**
* 用于在Base 中 实现Butterknife.bind()的功能 * 用于在Base 中 实现Butterknife.bind()的功能
* *
* @param binder 实现 ButterKnifeBinder.bindView() 方法,在其中做Butterknife.bind() ,功能 * @param binder 实现 ButterKnifeBinder.bindView() 方法,在其中做Butterknife.bind() ,功能
...@@ -175,4 +230,15 @@ public class LibConfig { ...@@ -175,4 +230,15 @@ public class LibConfig {
}); });
} }
/**
* 清除默认的登录失效响应
*/
public static void clearDefaultLoginMode() {
useDefaulLoginMode = false;
}
public static boolean isDefaultLoginMode() {
return useDefaulLoginMode;
}
} }
...@@ -18,6 +18,7 @@ import android.view.ViewGroup; ...@@ -18,6 +18,7 @@ import android.view.ViewGroup;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.google.firebase.messaging.RemoteMessage; import com.google.firebase.messaging.RemoteMessage;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import com.trello.rxlifecycle2.LifecycleTransformer; import com.trello.rxlifecycle2.LifecycleTransformer;
import com.trello.rxlifecycle2.RxLifecycle; import com.trello.rxlifecycle2.RxLifecycle;
...@@ -34,6 +35,7 @@ import tech.starwin.utils.context_utils.AppLanguageUtils; ...@@ -34,6 +35,7 @@ import tech.starwin.utils.context_utils.AppLanguageUtils;
import tech.starwin.utils.PresenterHoler; import tech.starwin.utils.PresenterHoler;
import tech.starwin.utils.context_utils.FragmentLauncher; import tech.starwin.utils.context_utils.FragmentLauncher;
import tech.starwin.utils.ui_utils.DialogFactory; import tech.starwin.utils.ui_utils.DialogFactory;
import tech.starwin.utils.ui_utils.QMUIHelper;
import tech.starwin.widget.ProgressDialog; import tech.starwin.widget.ProgressDialog;
/** /**
...@@ -187,9 +189,13 @@ public abstract class BaseActivity extends AppCompatActivity implements IView { ...@@ -187,9 +189,13 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
private void initRootLayout() { private void initRootLayout() {
setContentView(R.layout.base_activity_root); setContentView(R.layout.base_activity_root);
rootLayout = findViewById(R.id.root_layout); rootLayout = findViewById(R.id.root_layout);
//是否使用沉浸式状态栏
if (useTransparentStatusBar()) {
QMUIStatusBarHelper.translucent(this);
}
//判断是否要显示TopBar //判断是否要显示TopBar
if (useTopBar()) { if (useTopBar()) {
mTopBar = LayoutInflater.from(this).inflate(R.layout.base_topbar, rootLayout, true).findViewById(R.id.layout_topbar); mTopBar = QMUIHelper.insertTopBar(rootLayout, useTransparentStatusBar());
if (mTopBar != null) if (mTopBar != null)
initTopBar(mTopBar); initTopBar(mTopBar);
} }
...@@ -206,12 +212,9 @@ public abstract class BaseActivity extends AppCompatActivity implements IView { ...@@ -206,12 +212,9 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
} else { } else {
LayoutInflater.from(this).inflate(bindLayout(), rootLayout, true); LayoutInflater.from(this).inflate(bindLayout(), rootLayout, true);
} }
}
unBinder = LibConfig.bindView(this, rootLayout); unBinder = LibConfig.bindView(this, rootLayout);
initView(); initView();
} else {
throw new RuntimeException("找不到布局文件 bindLayout() -> " + bindLayout());
}
} }
/** /**
...@@ -233,18 +236,26 @@ public abstract class BaseActivity extends AppCompatActivity implements IView { ...@@ -233,18 +236,26 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
} }
/** /**
* 是否使用沉浸式状态栏,默认使用
*/
public boolean useTransparentStatusBar() {
return true;
}
/**
* 是否使用侧滑 * 是否使用侧滑
*/ */
public int bindDrawerLayout() { public int bindDrawerLayout() {
return 0; return 0;
} }
/** /**
* 初始化TopBar,需要自定义TopBar样式时重写 * 初始化TopBar,需要自定义TopBar样式时重写
* 默认TopBar只包含一个BackButton 和 Titile * 默认TopBar只包含一个BackButton 和 Titile
*/ */
protected void initTopBar(QMUITopBar topBar) { protected void initTopBar(QMUITopBar topBar) {
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() { topBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
finish(); finish();
......
...@@ -33,7 +33,12 @@ public abstract class BaseApplication extends MultiDexApplication { ...@@ -33,7 +33,12 @@ public abstract class BaseApplication extends MultiDexApplication {
LibConfig.initLib(this); LibConfig.initLib(this);
} }
/**
* before onCreate()
* */
public abstract void initLibCnofig(); public abstract void initLibCnofig();
public abstract void afterOnCreate();
} }
...@@ -11,6 +11,7 @@ import android.view.LayoutInflater; ...@@ -11,6 +11,7 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import com.trello.rxlifecycle2.LifecycleTransformer; import com.trello.rxlifecycle2.LifecycleTransformer;
import com.trello.rxlifecycle2.RxLifecycle; import com.trello.rxlifecycle2.RxLifecycle;
...@@ -24,6 +25,7 @@ import tech.starwin.R; ...@@ -24,6 +25,7 @@ import tech.starwin.R;
import tech.starwin.mvp.IView; import tech.starwin.mvp.IView;
import tech.starwin.utils.PresenterHoler; import tech.starwin.utils.PresenterHoler;
import tech.starwin.utils.ui_utils.DialogFactory; import tech.starwin.utils.ui_utils.DialogFactory;
import tech.starwin.utils.ui_utils.QMUIHelper;
import tech.starwin.widget.ProgressDialog; import tech.starwin.widget.ProgressDialog;
import tech.starwin.utils.ui_utils.UIHelper; import tech.starwin.utils.ui_utils.UIHelper;
...@@ -76,8 +78,13 @@ public abstract class BaseFragment extends Fragment implements IView { ...@@ -76,8 +78,13 @@ public abstract class BaseFragment extends Fragment implements IView {
unBinder = LibConfig.bindView(this, mContentView); unBinder = LibConfig.bindView(this, mContentView);
} else { } else {
mContentView = (ViewGroup) LayoutInflater.from(getActivity()).inflate(R.layout.base_activity_root, null); mContentView = (ViewGroup) LayoutInflater.from(getActivity()).inflate(R.layout.base_activity_root, null);
//是否使用沉浸式状态栏
if (useTransparentStatusBar()) {
QMUIStatusBarHelper.translucent(getActivity());
}
//判断是否要显示TopBar
if (useTopBar()) { if (useTopBar()) {
mTopBar = LayoutInflater.from(getActivity()).inflate(R.layout.base_topbar, mContentView, true).findViewById(R.id.layout_topbar); mTopBar = QMUIHelper.insertTopBar(mContentView, useTransparentStatusBar());
if (mTopBar != null) if (mTopBar != null)
initTopBar(mTopBar); initTopBar(mTopBar);
} }
...@@ -109,6 +116,13 @@ public abstract class BaseFragment extends Fragment implements IView { ...@@ -109,6 +116,13 @@ public abstract class BaseFragment extends Fragment implements IView {
} }
/** /**
* 是否使用沉浸式状态栏,默认不使用
*/
public boolean useTransparentStatusBar() {
return false;
}
/**
* 初始化TopBar,需要自定义TopBar样式时重写 * 初始化TopBar,需要自定义TopBar样式时重写
* 默认TopBar只包含一个BackButton 和 Titile * 默认TopBar只包含一个BackButton 和 Titile
*/ */
......
package tech.starwin.broadcast;
/**
* Created by SiKang on 2018/11/16.
*/
public enum ActionEnum {
LOGIN_INVALID("action.login.invalid");
private String action;
ActionEnum(String action) {
this.action = action;
}
public String value() {
return action;
}
}
...@@ -85,13 +85,16 @@ public abstract class HttpObserver<T> implements Observer<T> { ...@@ -85,13 +85,16 @@ public abstract class HttpObserver<T> implements Observer<T> {
LoginManager.get().tokenInvalid(); LoginManager.get().tokenInvalid();
return true; return true;
case 403: case 403:
// TODO 短信发送失败 // 短信发送失败
onError(Error.SERVER_ERROR, LibConfig.getContext().getString(R.string.show_not_login_yet));
return true; return true;
case 409: case 409:
// TODO 版本更新 // 版本更新
onError(Error.SERVER_ERROR, "need update");
return true; return true;
case 412: case 412:
// TODO 参数缺失 // 参数缺失
onError(Error.SERVER_ERROR, "params missing");
return true; return true;
case 404: case 404:
case 500: case 500:
......
...@@ -358,9 +358,9 @@ public class UserPresenter extends BasePresenter<UserApi> { ...@@ -358,9 +358,9 @@ public class UserPresenter extends BasePresenter<UserApi> {
} }
/** /**
* 获取客户自定义配置 * 客户服务热线、公司介绍
*/ */
public void getCustomerConfig(String action) { public void getCustomerMsg(String action) {
handleRequest(action, apiService.display()); handleRequest(action, apiService.display());
} }
......
package tech.starwin.mvp.ui.activity;
import android.content.Context;
import com.qmuiteam.qmui.widget.QMUITopBar;
import tech.starwin.R;
import tech.starwin.base.BaseActivity;
import tech.starwin.utils.context_utils.ActivityJumper;
/**
* Created by SiKang on 2018/11/17.
*/
public class RepaymentGuideActivity extends BaseActivity {
public static void start(Context context) {
new ActivityJumper.Builder(context, RepaymentGuideActivity.class).build().start();
}
@Override
protected void initTopBar(QMUITopBar topBar) {
super.initTopBar(topBar);
topBar.setTitle(R.string.text_title_repaymentraiders);
}
@Override
public int bindLayout() {
return R.layout.activity_repayment_guide;
}
@Override
public void initView() {
}
@Override
public void onHttpSuccess(String action, Object result) {
}
}
package tech.starwin.mvp.ui.activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.support.annotation.DrawableRes;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import com.wonderkiln.camerakit.CameraKitError;
import com.wonderkiln.camerakit.CameraKitEvent;
import com.wonderkiln.camerakit.CameraKitEventListener;
import com.wonderkiln.camerakit.CameraKitImage;
import com.wonderkiln.camerakit.CameraKitVideo;
import com.wonderkiln.camerakit.CameraView;
import java.io.File;
import tech.starwin.R;
import tech.starwin.base.BaseActivity;
import tech.starwin.impl.OnEventClickListener;
import tech.starwin.utils.BitmapUtils;
import tech.starwin.utils.FileUtils;
import tech.starwin.utils.context_utils.ActivityJumper;
import tech.starwin.utils.context_utils.EasyActivityResult;
import tech.starwin.utils.ui_utils.UIHelper;
/**
* Created by SiKang on 2018/9/25.
*/
public class TakePhotoActivity extends BaseActivity {
public enum PhotoType {
KTP,
WORK_CARD
}
public static void startForResult(FragmentActivity activity, int requestCode, PhotoType type, @DrawableRes int previewMask, @DrawableRes int shootBtnImg, EasyActivityResult.OnResultListener result) {
Intent intent = new ActivityJumper.Builder(activity, TakePhotoActivity.class)
.put("photo_type", type.name())
.put("preview_mask", previewMask)
.put("shoot_btn_img", shootBtnImg)
.toIntent();
new EasyActivityResult(activity).startForResult(intent, requestCode, result);
}
ImageView btnCapture;
ImageView maskImv;
Button mbtnCancel;
CameraView cameraView;
public static String KTP_IMAGE = "ktp_img.jpg";
private static final int PHOTO_FILE_SIZE_MAX = 2 * 1024 * 1024;
final int BITMAP_MAX_SQUARE_SIZE = 3920;
@Override
public int bindLayout() {
return R.layout.activity_take_photo;
}
@Override
public void initView() {
btnCapture = findViewById(R.id.button_shoot);
mbtnCancel = findViewById(R.id.button_cancel);
cameraView = findViewById(R.id.cameraView);
maskImv = findViewById(R.id.activity_takephoto_mask_imv);
int mask = getIntent().getIntExtra("preview_mask", 0);
int btnImg = getIntent().getIntExtra("shoot_btn_img", 0);
if (mask != 0) {
maskImv.setImageResource(mask);
}
if (btnImg != 0) {
btnCapture.setImageResource(btnImg);
}
String type = getIntent().getStringExtra("photo_type");
if (TextUtils.equals(type, PhotoType.KTP.name())) {
findViewById(R.id.imageview_id_frame).setVisibility(View.VISIBLE);
}
UIHelper.bindClickListener(new OnEventClickListener() {
@Override
public void onEventClick(View v) {
if (v.getId() == R.id.button_shoot) {
cameraView.captureImage();
} else if (v.getId() == R.id.button_cancel) {
setResult(RESULT_CANCELED);
finish();
}
}
}, mbtnCancel, btnCapture);
//拍照监听
cameraView.addCameraKitListener(new CameraKitEventListener() {
@Override
public void onEvent(CameraKitEvent cameraKitEvent) {
}
@Override
public void onError(CameraKitError cameraKitError) {
}
@Override
public void onImage(CameraKitImage cameraKitImage) {
Bitmap bitmap = BitmapUtils.getBitmapWithMaxLimit(cameraKitImage.getJpeg(), BITMAP_MAX_SQUARE_SIZE, PHOTO_FILE_SIZE_MAX);
File image = FileUtils.getImageFile(getApplicationContext(), KTP_IMAGE);
if (!image.exists()) {
image.mkdir();
}
BitmapUtils.saveBitmapToSDCard(BitmapUtils.getHorizontalPhoto(bitmap), image, 80);
Intent intent = new Intent();
intent.putExtra("image_path", image.getAbsolutePath());
setResult(RESULT_OK, intent);
finish();
}
@Override
public void onVideo(CameraKitVideo cameraKitVideo) {
}
});
}
@Override
protected void onStart() {
super.onStart();
cameraView.start();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onStop() {
super.onStop();
cameraView.stop();
}
@Override
public void onHttpSuccess(String action, Object result) {
}
}
...@@ -91,16 +91,16 @@ public class RegionFragment extends BaseFragment { ...@@ -91,16 +91,16 @@ public class RegionFragment extends BaseFragment {
//设置标题 //设置标题
switch (regionBean.getLevel()) { switch (regionBean.getLevel()) {
case RegionLevel.PROVINCE: case RegionLevel.PROVINCE:
topBar.setTitle(R.string.textview_personal_info_province_of_residence); topBar.setTitle(R.string.text_personal_info_province_of_residence);
break; break;
case RegionLevel.CITY: case RegionLevel.CITY:
topBar.setTitle(R.string.textview_personal_info_city_of_residence); topBar.setTitle(R.string.text_personal_info_city_of_residence);
break; break;
case RegionLevel.DISTRICT: case RegionLevel.DISTRICT:
topBar.setTitle(R.string.textview_personal_info_street_of_residence); topBar.setTitle(R.string.text_personal_info_street_of_residence);
break; break;
case RegionLevel.AREA: case RegionLevel.AREA:
topBar.setTitle(R.string.textview_personal_info_area_of_residence); topBar.setTitle(R.string.text_personal_info_area_of_residence);
break; break;
} }
//获取地区列表 //获取地区列表
......
...@@ -13,13 +13,17 @@ import com.facebook.accountkit.ui.AccountKitActivity; ...@@ -13,13 +13,17 @@ import com.facebook.accountkit.ui.AccountKitActivity;
import com.facebook.accountkit.ui.AccountKitConfiguration; import com.facebook.accountkit.ui.AccountKitConfiguration;
import com.facebook.accountkit.ui.LoginType; import com.facebook.accountkit.ui.LoginType;
import org.greenrobot.eventbus.EventBus;
import java.util.List; import java.util.List;
import tech.starwin.LibConfig; import tech.starwin.LibConfig;
import tech.starwin.broadcast.ActionEnum;
import tech.starwin.mvp.beans.TokenInfoBean; import tech.starwin.mvp.beans.TokenInfoBean;
import tech.starwin.mvp.beans.UserBean; import tech.starwin.mvp.beans.UserBean;
import tech.starwin.utils.context_utils.EasyActivityResult; import tech.starwin.utils.context_utils.EasyActivityResult;
import tech.starwin.utils.context_utils.ActivityJumper; import tech.starwin.utils.context_utils.ActivityJumper;
import tech.starwin.utils.event_bus.EventSender;
/** /**
* Created by SiKang on 2018/9/19. * Created by SiKang on 2018/9/19.
...@@ -52,6 +56,10 @@ public class LoginManager { ...@@ -52,6 +56,10 @@ public class LoginManager {
//清除登录状态 //清除登录状态
PreferencesManager.get().clearLoginInfo(); PreferencesManager.get().clearLoginInfo();
tokenInfo = null; tokenInfo = null;
//广播通知
LibConfig.getContext().sendBroadcast(new Intent(ActionEnum.LOGIN_INVALID.value()));
if (LibConfig.isDefaultLoginMode()) {
//跳转登录界面 //跳转登录界面
if (isActionSupport(LibConfig.getContext(), LibConfig.LOGIN_ACTIVITY_ACTION)) { if (isActionSupport(LibConfig.getContext(), LibConfig.LOGIN_ACTIVITY_ACTION)) {
new ActivityJumper.Builder(LibConfig.getContext(), LibConfig.LOGIN_ACTIVITY_ACTION) new ActivityJumper.Builder(LibConfig.getContext(), LibConfig.LOGIN_ACTIVITY_ACTION)
...@@ -60,6 +68,7 @@ public class LoginManager { ...@@ -60,6 +68,7 @@ public class LoginManager {
LogUtils.e(TAG, "找不到LoginActivity,请在build.gradle中配置正确的 ‘LOGIN_ACTIVITY_ACTION’ "); LogUtils.e(TAG, "找不到LoginActivity,请在build.gradle中配置正确的 ‘LOGIN_ACTIVITY_ACTION’ ");
} }
} }
}
/** /**
...@@ -72,7 +81,6 @@ public class LoginManager { ...@@ -72,7 +81,6 @@ public class LoginManager {
LoginType.PHONE, LoginType.PHONE,
AccountKitActivity.ResponseType.CODE); // or .ResponseType.TOKEN AccountKitActivity.ResponseType.CODE); // or .ResponseType.TOKEN
intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build()); intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build());
new EasyActivityResult(activity).startForResult(intent, 0, new EasyActivityResult.OnResultListener() { new EasyActivityResult(activity).startForResult(intent, 0, new EasyActivityResult.OnResultListener() {
@Override @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onActivityResult(int requestCode, int resultCode, Intent data) {
......
...@@ -8,6 +8,13 @@ import android.view.View; ...@@ -8,6 +8,13 @@ import android.view.View;
* Created by SiKang on 2018/10/22. * Created by SiKang on 2018/10/22.
*/ */
public class AnimatorGenerator { public class AnimatorGenerator {
public static final String ANIM_SCALE_X="scaleX";
public static final String ANIM_SCALE_Y="scaleY";
public static final String ANIM_ROTATION="rotation";
public static final String ANIM_TRANSLATION_X="translationX";
public static final String ANIM_TRANSLATION_Y="translationY";
public static final String ANIM_ALPHA="alpha";
public static ObjectAnimator createScaleXAnimator(View view, long duration, float... values) { public static ObjectAnimator createScaleXAnimator(View view, long duration, float... values) {
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "scaleX", values); ObjectAnimator animator = ObjectAnimator.ofFloat(view, "scaleX", values);
...@@ -39,7 +46,6 @@ public class AnimatorGenerator { ...@@ -39,7 +46,6 @@ public class AnimatorGenerator {
return animator; return animator;
} }
/** /**
* 开关动画 * 开关动画
* 将打开动画参数取反序作为还原动作 * 将打开动画参数取反序作为还原动作
......
...@@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit; ...@@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer; import io.reactivex.functions.Consumer;
import tech.starwin.R;
import tech.starwin.base.RecyclerViewHolder; import tech.starwin.base.RecyclerViewHolder;
...@@ -78,6 +79,10 @@ public class DialogFactory { ...@@ -78,6 +79,10 @@ public class DialogFactory {
/** /**
* 创建一个带有文本提示和两个含义相对按钮的对话框 * 创建一个带有文本提示和两个含义相对按钮的对话框
*/ */
public static Dialog createYesOrNoDialog(Context context,String msg, final OnYesOrNoListener onYesOrNoListener) {
return createYesOrNoDialog(context, "Tip", msg, context.getString(R.string.text_sure), context.getString(R.string.text_cancel), onYesOrNoListener);
}
public static Dialog createYesOrNoDialog(Context context, String title, String msg, String yesBtnText, String noBtnText, final OnYesOrNoListener onYesOrNoListener) { public static Dialog createYesOrNoDialog(Context context, String title, String msg, String yesBtnText, String noBtnText, final OnYesOrNoListener onYesOrNoListener) {
final Dialog dialog = new QMUIDialog.MessageDialogBuilder(context) final Dialog dialog = new QMUIDialog.MessageDialogBuilder(context)
.setTitle(title) .setTitle(title)
...@@ -95,7 +100,6 @@ public class DialogFactory { ...@@ -95,7 +100,6 @@ public class DialogFactory {
} }
}) })
.create(); .create();
return dialog; return dialog;
} }
......
...@@ -9,12 +9,16 @@ import android.graphics.drawable.Drawable; ...@@ -9,12 +9,16 @@ import android.graphics.drawable.Drawable;
import android.support.annotation.DrawableRes; import android.support.annotation.DrawableRes;
import android.support.annotation.StringRes; import android.support.annotation.StringRes;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.qmuiteam.qmui.widget.QMUITabSegment; import com.qmuiteam.qmui.widget.QMUITabSegment;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView; import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView;
import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView; import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView;
...@@ -27,6 +31,7 @@ import tech.starwin.widget.PageStateLayout; ...@@ -27,6 +31,7 @@ import tech.starwin.widget.PageStateLayout;
* QMUI辅助类 * QMUI辅助类
*/ */
public class QMUIHelper { public class QMUIHelper {
private static TopbarCustomizer topbarCustomizer;
/** /**
* 重新设置topbarimagebutton的图片尺寸 * 重新设置topbarimagebutton的图片尺寸
...@@ -142,4 +147,43 @@ public class QMUIHelper { ...@@ -142,4 +147,43 @@ public class QMUIHelper {
itemWithChevron.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON); itemWithChevron.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_CHEVRON);
return itemWithChevron; return itemWithChevron;
} }
/**
* 向一个ViewGroup 插入一个TopBar
*/
public static QMUITopBar insertTopBar(ViewGroup viewGroup, boolean isTransParentStatusBar) {
ViewGroup titleGroup = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.base_topbar, viewGroup, true).findViewById(R.id.layout_title);
QMUITopBar topBar = titleGroup.findViewById(R.id.layout_topbar);
//如果开启沉浸式状态栏,则获取状态栏高度,并将Top扩大相应的高度
if (isTransParentStatusBar) {
View statusBar = titleGroup.findViewById(R.id.layout_statusbar);
statusBar.setVisibility(View.VISIBLE);
ViewGroup.LayoutParams layoutParams = statusBar.getLayoutParams();
layoutParams.height = QMUIStatusBarHelper.getStatusbarHeight(viewGroup.getContext());
statusBar.setLayoutParams(layoutParams);
}
if (topbarCustomizer != null) {
topbarCustomizer.madeTopBar(titleGroup, topBar);
}
return topBar;
}
public static void setTopbarCustomizer(TopbarCustomizer customizer) {
topbarCustomizer = customizer;
}
/**
* TopBar默认样式定制
*/
public interface TopbarCustomizer {
/**
* @param titleGroup 包含 TopBar 的Title模块,在使用沉浸式状态栏时,会在TopBar上方填充对应的高度
* @param topBar
*/
void madeTopBar(ViewGroup titleGroup, QMUITopBar topBar);
}
} }
...@@ -25,6 +25,7 @@ import android.text.TextUtils; ...@@ -25,6 +25,7 @@ import android.text.TextUtils;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
...@@ -33,10 +34,14 @@ import android.widget.EditText; ...@@ -33,10 +34,14 @@ import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.ObservableEmitter; import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe; import io.reactivex.ObservableOnSubscribe;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import tech.starwin.R;
import tech.starwin.utils.BitmapUtils; import tech.starwin.utils.BitmapUtils;
import tech.starwin.widget.PageStateLayout; import tech.starwin.widget.PageStateLayout;
...@@ -131,6 +136,16 @@ public class UIHelper { ...@@ -131,6 +136,16 @@ public class UIHelper {
} }
/** /**
* 显示View
*/
public static void showFirst(View view, View... views) {
view.setVisibility(View.VISIBLE);
for (View v : views) {
v.setVisibility(View.GONE);
}
}
/**
* 隐藏View * 隐藏View
*/ */
public static void hideViews(View view, View... views) { public static void hideViews(View view, View... views) {
......
...@@ -7,6 +7,7 @@ import android.support.annotation.NonNull; ...@@ -7,6 +7,7 @@ import android.support.annotation.NonNull;
import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
import tech.starwin.LibConfig;
import tech.starwin.utils.ui_utils.DialogFactory; import tech.starwin.utils.ui_utils.DialogFactory;
...@@ -22,7 +23,12 @@ public class ProgressDialog { ...@@ -22,7 +23,12 @@ public class ProgressDialog {
public ProgressDialog(@NonNull Context context) { public ProgressDialog(@NonNull Context context) {
this.context = context; this.context = context;
//如果配置了icon,使用icon加载动画,否则用默认动画
if (LibConfig.LOADING_ICON != 0) {
this.loadingDialog = new LoadingDialog(context); this.loadingDialog = new LoadingDialog(context);
} else {
this.loadingDialog = DialogFactory.createTipDialog(context, QMUITipDialog.Builder.ICON_TYPE_LOADING, "Loading");
}
} }
public ProgressDialog(@NonNull Dialog loadingDialog) { public ProgressDialog(@NonNull Dialog loadingDialog) {
......
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/face_tb" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_wrong" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/face_tc" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_wrong" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/face_tf" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_wrong" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/face_right"/>
<item>
<bitmap android:src="@drawable/frame_right" android:gravity="right|bottom"/>
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/id_right" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_right" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/id_wrong_left" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_wrong" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/id_wrong_middle" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_wrong" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/id_wrong_right" />
<item>
<bitmap
android:gravity="right|bottom"
android:src="@drawable/frame_wrong" />
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="5dp" />
<stroke
android:width="1dp"
android:color="@color/checked_color" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/checked_color" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<corners android:radius="5dp" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_repaymentGuide_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
\ No newline at end of file
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/containerImg"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg">
<com.wonderkiln.camerakit.CameraView
android:id="@+id/cameraView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:focusableInTouchMode="true" />
<LinearLayout
android:id="@+id/imageview_id_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<View
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:background="#e0000000" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.qmuiteam.qmui.widget.QMUIVerticalTextView
android:id="@+id/verticalTextView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_margin="@dimen/x_20"
android:paddingBottom="@dimen/x_50"
android:paddingTop="@dimen/x_50"
android:text="@string/take_ktp_tip_footer"
android:textColor="@color/white" />
<ImageView
android:id="@+id/activity_takephoto_mask_imv"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:focusableInTouchMode="false" />
<com.qmuiteam.qmui.widget.QMUIVerticalTextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="@dimen/x_20"
android:paddingBottom="@dimen/x_50"
android:paddingTop="@dimen/x_50"
android:text="@string/take_ktp_tip_header"
android:textColor="@color/white" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:background="#e0000000" />
</LinearLayout>
</FrameLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="110dp"
android:background="@color/gray_bg">
<ImageView
android:id="@+id/button_shoot"
android:layout_width="@dimen/x_200"
android:layout_height="@dimen/x_200"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:rotation="90" />
<Button
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="18dp"
android:background="@null"
android:rotation="90.0"
android:text="@string/text_cancel" />
</RelativeLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/main_color"
android:orientation="vertical">
<TextView
android:id="@+id/layout_statusbar"
android:layout_width="match_parent"
android:layout_height="@dimen/x_40"
android:visibility="gone" />
<com.qmuiteam.qmui.widget.QMUITopBar xmlns:android="http://schemas.android.com/apk/res/android" <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/layout_topbar" android:id="@+id/layout_topbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/x_150" /> android:layout_height="@dimen/x_150" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/shape_rectangle_navy_solid"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="12dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="12dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/img_face_right"
android:textColor="@color/qmui_config_color_gray_3" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center"
android:text="@string/must_be_ownself"
android:textColor="@color/qmui_config_color_gray_3" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center"
android:text="@string/face_instruction"
android:textColor="@color/qmui_config_color_gray_3" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/face_tooc" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/too_close"
android:textColor="@color/qmui_config_color_gray_3" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/face_toof" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/too_far"
android:textColor="@color/qmui_config_color_gray_3" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/face_toob" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/too_bright"
android:textColor="@color/qmui_config_color_gray_3" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/dialog_facePhoto_ok_btn"
style="@style/main_color_roundBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="@string/button_ok" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_rectangle_navy_solid"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:text="@string/take_id_photo_header_right"
android:textColor="@color/main_color"
android:textSize="@dimen/x_45" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/img_id_right" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:text="@string/take_id_photo_wrong"
android:textColor="@color/main_color" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/id_wrong_left" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="@string/take_id_photo_wrong_left"
android:textColor="@color/main_color" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/id_wrong_middle" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="@string/take_id_photo_wrong_middle"
android:textColor="@color/main_color" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/id_wrong_right" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="@string/take_id_photo_wrong_right"
android:textColor="@color/main_color" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/dialog_idPhoto_ok_btn"
style="@style/main_color_roundBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="@string/btn_continue" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ 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="match_parent"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingBottom="20dp"
android:paddingLeft="14dp"
android:paddingRight="14dp"
android:paddingTop="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_ktp_alert"
android:layout_width="270dp"
android:layout_height="150dp"
android:scaleType="center"
android:src="@drawable/id_right" />
<TextView
android:id="@+id/tv_ktp_alert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:gravity="center"
android:text="@string/text_shoot_work_card_front"
android:textColor="@color/main_color" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:gravity="center"
android:text="@string/text_shoot_photo_clear_tips"
android:textColor="@color/main_color" />
<Button
android:id="@+id/dialog_takeWorkPhoto_ok_btn"
style="@style/main_color_roundBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24dp"
android:text="@string/text_button_start_taking_photos" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ 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="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/x_50"
android:paddingRight="@dimen/x_50">
<TextView
android:id="@+id/item_repaymentGuide_title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/x_80"
android:textColor="@color/qmui_config_color_gray_4"
android:textSize="@dimen/x_50" />
<TextView
android:id="@+id/item_repaymentGuide_detail_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/x_50"
android:textColor="@color/qmui_config_color_gray_8"
android:textSize="@dimen/x_30" />
</LinearLayout>
\ No newline at end of file
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<color name="colorAccent">#FF4081</color> <color name="colorAccent">#FF4081</color>
<!--背景灰--> <!--背景灰-->
<color name="white_alpha50">#80FFFFFF</color>
<color name="white_alpha30">#4DFFFFFF</color>
<color name="white_alpha10">#1AFFFFFF</color>
<color name="translateColor">#00000000</color> <color name="translateColor">#00000000</color>
<color name="gray_bg">#F7F7F7</color> <color name="gray_bg">#F7F7F7</color>
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</style> </style>
<style name="span_text"> <style name="span_text">
<item name="android:textSize">14sp</item> <item name="android:textSize">@dimen/x_42</item>
<item name="android:textColor">@color/qmui_config_color_gray_1</item> <item name="android:textColor">@color/qmui_config_color_gray_1</item>
<item name="android:gravity">center_vertical</item> <item name="android:gravity">center_vertical</item>
<item name="android:background">@color/translateColor</item> <item name="android:background">@color/translateColor</item>
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
<style name="gray_line"> <style name="gray_line">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/x_3</item> <item name="android:layout_height">@dimen/x_3</item>
<item name="android:background">@color/qmui_config_color_gray_9</item> <item name="android:background">@color/gray_bg</item>
</style> </style>
<!--行标题--> <!--行标题-->
...@@ -141,6 +141,7 @@ ...@@ -141,6 +141,7 @@
<!--行标题--> <!--行标题-->
<style name="span_title3" parent="span_title"> <style name="span_title3" parent="span_title">
<item name="android:textSize">13sp</item> <item name="android:textSize">13sp</item>
<item name="android:textColor">@color/qmui_config_color_gray_8</item>
</style> </style>
<!--主色调按钮--> <!--主色调按钮-->
......
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 to comment