消费记录

This commit is contained in:
18401019693 2023-10-20 15:31:52 +08:00
parent 4ff1089549
commit dff84a30e4
31 changed files with 1223 additions and 14 deletions

View File

@ -141,6 +141,12 @@
<activity
android:name=".activity.HomepageRankingActivity"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.MyArnActivity"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.DiamondExchangeActivity"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.HomeScreenActivity"
android:windowSoftInputMode="stateHidden|adjustResize" />
@ -149,10 +155,10 @@
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.message.CallVideoActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/>
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.message.CallAudioActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/>
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity

View File

@ -0,0 +1,58 @@
package com.shayu.onetoone.activity;
import android.graphics.Color;
import android.os.Bundle;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.DiamondExchangeAdapter;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import java.util.List;
@Route(path = RouteManager.ACTIVITY_DIAMOND_EXCHANGE)
public class DiamondExchangeActivity extends AbsOTOActivity {
private RecyclerView diamondExchangeList;
private DiamondExchangeAdapter exchangeAdapter;
@Override
protected int getLayoutId() {
return R.layout.activity_diamond_exchange;
}
@Override
protected void main(Bundle savedInstanceState) {
initView();
initData();
}
private void initView() {
diamondExchangeList = findViewById(R.id.diamond_exchange_list);
diamondExchangeList.addItemDecoration(new ItemDecoration(mContext, Color.parseColor("#ffffff"), 10, 2));
diamondExchangeList.setLayoutManager(new GridLayoutManager(mContext, 3));
exchangeAdapter = new DiamondExchangeAdapter();
diamondExchangeList.setAdapter(exchangeAdapter);
}
private void initData() {
OTONetManager.getInstance(mContext).getExchangeList("yuanbao", new HttpCallback<List<ExchangeModel>>() {
@Override
public void onSuccess(List<ExchangeModel> data) {
exchangeAdapter.addData(data);
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}

View File

@ -0,0 +1,90 @@
package com.shayu.onetoone.activity;
import android.os.Bundle;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.MyArnAdapter;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.bean.FriendAppMoneySumModel;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.List;
@Route(path = RouteManager.ACTIVITY_MY_ARN)
public class MyArnActivity extends AbsOTOActivity {
private TextView todayEarnings, cumulativeIncome;
private MyArnAdapter myArnAdapter;
private RecyclerView myArnList;
@Override
protected int getLayoutId() {
return R.layout.activity_my_arnings;
}
@Override
protected void main(Bundle savedInstanceState) {
initView();
initData();
}
private void initView() {
todayEarnings = findViewById(R.id.today_earnings);
cumulativeIncome = findViewById(R.id.cumulative_income);
myArnList = findViewById(R.id.my_arn_list);
myArnList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
myArnAdapter = new MyArnAdapter();
myArnList.setAdapter(myArnAdapter);
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.my_arn_back), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
finish();
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.diamond_star_coins), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RouteManager.forwardActivity(RouteManager.ACTIVITY_DIAMOND_EXCHANGE);
}
});
}
private void initData() {
OTONetManager.getInstance(mContext).getFriendAppMoneySum(new HttpCallback<FriendAppMoneySumModel>() {
@Override
public void onSuccess(FriendAppMoneySumModel data) {
todayEarnings.setText(data.getToday());
cumulativeIncome.setText(data.getSum());
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
OTONetManager.getInstance(mContext).getFriendAppMoneyLogModel("3", "1", new HttpCallback<List<FriendAppMoneyLogModel>>() {
@Override
public void onSuccess(List<FriendAppMoneyLogModel> data) {
myArnAdapter.showData(data);
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}

View File

@ -3,7 +3,6 @@ package com.shayu.onetoone.activity.fragments;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Outline;
import android.os.Bundle;
import android.text.TextUtils;
@ -39,7 +38,6 @@ import com.shayu.onetoone.view.CustomMyViewHolder;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.GoogleBean;
import com.yunbao.common.bean.LevelBean;
@ -446,8 +444,9 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
Log.i("tsa", url);
// RewardActivity.forward(mContext, url);
} else if (bean.getId() == 4) {
url = HtmlConfig.SHOP + "?t=" + Math.random() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
WebViewActivity.forward(mContext, url, false);
// url = HtmlConfig.SHOP + "?t=" + Math.random() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
// WebViewActivity.forward(mContext, url, false);
RouteManager.forwardActivity(RouteManager.ACTIVITY_MY_ARN);
} else if (bean.getId() == 3) {//我的等级
Constants.myIntoIndex = 2;
Constants.isTitle = false;
@ -538,7 +537,7 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
* 设置
*/
private void forwardSetting() {
// mContext.startActivity(new Intent(mContext, SettingActivity.class));
// mContext.startActivity(new Intent(mContext, SettingActivity.class));
}
/**

View File

@ -0,0 +1,42 @@
package com.shayu.onetoone.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.view.DiamondExchangeViewHolder;
import java.util.ArrayList;
import java.util.List;
public class DiamondExchangeAdapter extends RecyclerView.Adapter {
private List<ExchangeModel> exchangeModels = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View bodyView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_diamond_exchange_item_holder, parent, false);
return new DiamondExchangeViewHolder(bodyView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
DiamondExchangeViewHolder exchangeViewHolder = (DiamondExchangeViewHolder) holder;
exchangeViewHolder.showData(exchangeModels.get(position));
}
@Override
public int getItemCount() {
return exchangeModels.size();
}
public void addData(List<ExchangeModel> mExchangeModels) {
exchangeModels.clear();
exchangeModels.addAll(mExchangeModels);
}
}

View File

@ -0,0 +1,43 @@
package com.shayu.onetoone.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.view.MyArnViewHolder;
import java.util.ArrayList;
import java.util.List;
public class MyArnAdapter extends RecyclerView.Adapter {
private List<FriendAppMoneyLogModel> friendAppMoneyLogModels = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View bodyView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_my_arn_item_holder, parent, false);
return new MyArnViewHolder(bodyView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
MyArnViewHolder arnViewHolder = (MyArnViewHolder) holder;
arnViewHolder.setData(friendAppMoneyLogModels.get(position));
}
@Override
public int getItemCount() {
return friendAppMoneyLogModels.size();
}
public void showData(List<FriendAppMoneyLogModel> mFriendAppMoneyLogModels) {
friendAppMoneyLogModels.clear();
friendAppMoneyLogModels.addAll(mFriendAppMoneyLogModels);
notifyDataSetChanged();
}
}

View File

@ -0,0 +1,52 @@
package com.shayu.onetoone.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class ExchangeModel extends BaseModel {
@SerializedName("top")
private String top;
@SerializedName("name")
private String name;
@SerializedName("title")
private String title;
@SerializedName("num")
private int num;
public String getTop() {
return top;
}
public ExchangeModel setTop(String top) {
this.top = top;
return this;
}
public String getName() {
return name;
}
public ExchangeModel setName(String name) {
this.name = name;
return this;
}
public String getTitle() {
return title;
}
public ExchangeModel setTitle(String title) {
this.title = title;
return this;
}
public int getNum() {
return num;
}
public ExchangeModel setNum(int num) {
this.num = num;
return this;
}
}

View File

@ -0,0 +1,140 @@
package com.shayu.onetoone.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class FriendAppMoneyLogModel extends BaseModel {
@SerializedName("id")
private String id;
@SerializedName("uid")
private String uid;
@SerializedName("income")
private String income;
@SerializedName("before_money")
private String beforeMoney;
@SerializedName("money")
private String money;
@SerializedName("after_money")
private String afterMoney;
@SerializedName("memo")
private String memo;
@SerializedName("type")
private String type;
@SerializedName("currency_type")
private String currencyType;
@SerializedName("service_id")
private String serviceId;
@SerializedName("create_time")
private String createTime;
@SerializedName("tuid")
private String tuid;
public String getId() {
return id;
}
public FriendAppMoneyLogModel setId(String id) {
this.id = id;
return this;
}
public String getUid() {
return uid;
}
public FriendAppMoneyLogModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getIncome() {
return income;
}
public FriendAppMoneyLogModel setIncome(String income) {
this.income = income;
return this;
}
public String getBeforeMoney() {
return beforeMoney;
}
public FriendAppMoneyLogModel setBeforeMoney(String beforeMoney) {
this.beforeMoney = beforeMoney;
return this;
}
public String getMoney() {
return money;
}
public FriendAppMoneyLogModel setMoney(String money) {
this.money = money;
return this;
}
public String getAfterMoney() {
return afterMoney;
}
public FriendAppMoneyLogModel setAfterMoney(String afterMoney) {
this.afterMoney = afterMoney;
return this;
}
public String getMemo() {
return memo;
}
public FriendAppMoneyLogModel setMemo(String memo) {
this.memo = memo;
return this;
}
public String getType() {
return type;
}
public FriendAppMoneyLogModel setType(String type) {
this.type = type;
return this;
}
public String getCurrencyType() {
return currencyType;
}
public FriendAppMoneyLogModel setCurrencyType(String currencyType) {
this.currencyType = currencyType;
return this;
}
public String getServiceId() {
return serviceId;
}
public FriendAppMoneyLogModel setServiceId(String serviceId) {
this.serviceId = serviceId;
return this;
}
public String getCreateTime() {
return createTime;
}
public FriendAppMoneyLogModel setCreateTime(String createTime) {
this.createTime = createTime;
return this;
}
public String getTuid() {
return tuid;
}
public FriendAppMoneyLogModel setTuid(String tuid) {
this.tuid = tuid;
return this;
}
}

View File

@ -0,0 +1,30 @@
package com.shayu.onetoone.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class FriendAppMoneySumModel extends BaseModel {
@SerializedName("today")
private String today;
@SerializedName("sum")
private String sum;
public String getToday() {
return today;
}
public FriendAppMoneySumModel setToday(String today) {
this.today = today;
return this;
}
public String getSum() {
return sum;
}
public FriendAppMoneySumModel setSum(String sum) {
this.sum = sum;
return this;
}
}

View File

@ -6,8 +6,10 @@ import android.util.Log;
import com.alibaba.fastjson.JSONObject;
import com.shayu.onetoone.bean.AvatarBean;
import com.shayu.onetoone.bean.CustomBean;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.bean.FriendAppMoneySumModel;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.GreetBean;
import com.shayu.onetoone.bean.HomeItemBean;
@ -30,11 +32,8 @@ import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.MD5Util;
import com.yunbao.faceunity.entity.PropBean;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
@ -45,7 +44,6 @@ import io.rong.imlib.model.UserInfo;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Query;
/**
* 网络管理类 使用参考{@link com.yunbao.common.http.live.LiveNetManager}
@ -848,5 +846,84 @@ public class OTONetManager {
}).isDisposed();
}
/**
* @param currencyType 1星币 2砖石 3社交新币种
* @param income 1收入 2支出
*/
public void getFriendAppMoneyLogModel(String currencyType, String income, HttpCallback<List<FriendAppMoneyLogModel>> callback) {
API.get().otoApi(mContext).
getFriendAppMoneyLogModel(currencyType, income)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<FriendAppMoneyLogModel>>>() {
@Override
public void accept(ResponseModel<List<FriendAppMoneyLogModel>> listResponseModel) throws Exception {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
public void getFriendAppMoneySum(HttpCallback<FriendAppMoneySumModel> callback) {
API.get().otoApi(mContext).
getFriendAppMoneySum()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<FriendAppMoneySumModel>>() {
@Override
public void accept(ResponseModel<FriendAppMoneySumModel> friendAppMoneySumModelResponseModel) throws Exception {
if (friendAppMoneySumModelResponseModel.getData().getCode() == 0) {
callback.onSuccess(friendAppMoneySumModelResponseModel.getData().getInfo());
} else {
callback.onError(friendAppMoneySumModelResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
/**
*
* @param type coin砖石 yuanbao 星币
* @param callback
*/
public void getExchangeList(String type, HttpCallback<List<ExchangeModel>> callback) {
API.get().otoApi(mContext).
getExchangeList(type)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<ExchangeModel>>>() {
@Override
public void accept(ResponseModel<List<ExchangeModel>> listResponseModel) throws Exception {
if (listResponseModel.getData().getCode() == 0) {
callback.onSuccess(listResponseModel.getData().getInfo());
} else {
callback.onError(listResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
}
}
}).isDisposed();
}
}

View File

@ -15,6 +15,8 @@ public class RouteManager {
public static final String ACTIVITY_LOGIN = "/activity/LoginActivity";
public static final String ACTIVITY_WEB_VIEW = "/activity/WebViewActivity";
public static final String ACTIVITY_HOME_RANK = "/activity/HomepageRankingActivity";
public static final String ACTIVITY_MY_ARN = "/activity/MyAarningsActivity";
public static final String ACTIVITY_DIAMOND_EXCHANGE = "/activity/DiamondExchangeActivity";
public static final String ACTIVITY_HOME_SEARCH = "/activity/HomeSearchActivity";
public static final String ACTIVITY_HOME_SCREEN = "/activity/HomeScreenActivity";
public static final String ACTIVITY_CALL_VIDEO = "/activity/CallVideoActivity";

View File

@ -1,8 +1,10 @@
package com.shayu.onetoone.network;
import com.shayu.onetoone.bean.AvatarBean;
import com.shayu.onetoone.bean.CustomBean;
import com.shayu.onetoone.bean.ExchangeModel;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import com.shayu.onetoone.bean.FriendAppMoneySumModel;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.GreetBean;
import com.shayu.onetoone.bean.HomeItemBean;
@ -16,7 +18,6 @@ import com.shayu.onetoone.bean.SystemMessageBean;
import com.shayu.onetoone.bean.TargetUserInfoBean;
import com.shayu.onetoone.bean.UserBean;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.UserAvatarSelectBean;
import com.yunbao.common.http.ResponseModel;
@ -212,6 +213,30 @@ public interface OneToOneApi {
@Field("labels") String avatar
);
/**
* 获取记录
*/
@GET("/api/public/?service=Friendappmoney.logs")
Observable<ResponseModel<List<FriendAppMoneyLogModel>>> getFriendAppMoneyLogModel(
@Query("currency_type") String currencyType,
@Query("income") String income
);
/**
* 获取记录 统计
*/
@GET("/api/public/?service=Friendappmoney.sum")
Observable<ResponseModel<FriendAppMoneySumModel>> getFriendAppMoneySum(
);
/**
* 兑换表
*/
@GET("/api/public/?service=Friendappmoney.exchangeList")
Observable<ResponseModel<List<ExchangeModel>>> getExchangeList(
@Query("type") String type
);
}

View File

@ -0,0 +1,28 @@
package com.shayu.onetoone.view;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.ExchangeModel;
public class DiamondExchangeViewHolder extends RecyclerView.ViewHolder {
private LinearLayout diamondExchangeBtn;
private TextView fullConversion, coins, goldCoin;
public DiamondExchangeViewHolder(@NonNull View itemView) {
super(itemView);
diamondExchangeBtn = itemView.findViewById(R.id.diamond_exchange_btn);
fullConversion = itemView.findViewById(R.id.full_conversion);
coins = itemView.findViewById(R.id.coins);
goldCoin = itemView.findViewById(R.id.gold_coin);
}
public void showData(ExchangeModel model) {
}
}

View File

@ -0,0 +1,41 @@
package com.shayu.onetoone.view;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.FriendAppMoneyLogModel;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyArnViewHolder extends RecyclerView.ViewHolder {
private TextView memoName, createTime, money;
public MyArnViewHolder(@NonNull View itemView) {
super(itemView);
memoName = itemView.findViewById(R.id.memo_name);
createTime = itemView.findViewById(R.id.create_time);
money = itemView.findViewById(R.id.money);
}
public void setData(FriendAppMoneyLogModel model) {
StringBuilder builder = new StringBuilder();
builder.append("+")
.append(model.getMoney());
memoName.setText(model.getMemo());
money.setText(builder.toString());
createTime.setText(getDateStr(new Date(Long.parseLong(model.getCreateTime())*1000), null));
}
public String getDateStr(Date date, String format) {
if (format == null || format.isEmpty()) {
format = "yyyy-MM-dd HH:mm";
}
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background_diamond_exchange_select" android:state_selected="true" />
<item android:drawable="@drawable/background_diamond_exchange_unselect" android:state_selected="false" />
</selector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#9A7CE3" />
<corners android:radius="24dp" />
</shape>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#A279E4" />
<corners android:radius="23dp" />
</shape>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#A279E4" />
<corners android:radius="23dp" />
</shape>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#E1E1E1" />
<corners android:radius="24dp" />
</shape>

View File

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="match_parent"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/my_arnings_exchange_star"
android:textColor="#333333"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_marginEnd="16dp"
android:text="@string/my_arnings_exchange_record"
android:textColor="#444"
android:textSize="14sp" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="79dp"
android:layout_marginStart="16dp"
android:layout_marginTop="33dp"
android:layout_marginEnd="16dp"
android:background="@mipmap/background_exchange_star_top">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="18dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_arnings_total_convertibility"
android:textColor="@color/white"
android:textSize="10sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<TextView
android:id="@+id/total_convertibility"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxWidth="180dp"
android:singleLine="true"
android:text="1000"
android:textColor="@color/white"
android:textSize="22sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="3dp"
android:text="@string/my_arnings_gold_coin"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<androidx.cardview.widget.CardView
android:layout_width="54dp"
android:layout_height="21dp"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="14dp"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:maxWidth="40dp"
android:singleLine="true"
android:text="@string/my_arnings_toggle"
android:textColor="#AE78E7"
android:textSize="12sp" />
<ImageView
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="5dp"
android:src="@mipmap/iocn_exchange_star_toggle" />
</FrameLayout>
</androidx.cardview.widget.CardView>
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/diamond_exchange_list"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_marginTop="29dp" />
<EditText
android:layout_width="match_parent"
android:layout_height="47dp"
android:layout_marginStart="34dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="34dp"
android:background="@drawable/input_diamond_exchange"
android:gravity="center"
android:hint="@string/diamond_exchange_input_hint"
android:inputType="numberDecimal"
android:singleLine="true"
android:textColorHint="#999999"
android:textSize="14sp" />
</LinearLayout>
<Button
android:layout_width="180dp"
android:layout_height="47dp"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginBottom="62dp"
android:background="@drawable/button_diamond_exchange"
android:gravity="center"
android:text="@string/diamond_exchange_immediate_exchange"
android:textColor="@color/white"
android:textSize="14sp" />
</FrameLayout>

View File

@ -0,0 +1,267 @@
<?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="match_parent"
android:background="@mipmap/background_my_arnings"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="45dp">
<ImageView
android:id="@+id/my_arn_back"
android:layout_width="21dp"
android:layout_height="27dp"
android:layout_marginStart="16dp"
android:padding="5dp"
android:src="@mipmap/icon_my_arn_back" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="@string/my_arnings"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_marginEnd="16dp"
android:text="@string/my_arnings_reward_description"
android:textColor="@color/white"
android:textSize="12sp" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="17dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_arnings_total_amount_available_for_withdrawal"
android:textColor="#EAEAEA"
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1000"
android:textColor="@color/white"
android:textSize="18sp" />
<ImageView
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginStart="3dp"
android:src="@mipmap/icon_arn_coin" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="≈"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:text="$ 10"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="17dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_arnings_today_earnings"
android:textColor="#EAEAEA"
android:textSize="14sp" />
<TextView
android:id="@+id/today_earnings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:ellipsize="end"
android:maxWidth="100dp"
android:singleLine="true"
android:text="1000000000"
android:textColor="@color/white"
android:textSize="18sp" />
<ImageView
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginStart="3dp"
android:src="@mipmap/icon_arn_coin" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_arnings_cumulative_income"
android:textColor="#EAEAEA"
android:textSize="14sp" />
<TextView
android:id="@+id/cumulative_income"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:ellipsize="end"
android:maxWidth="100dp"
android:singleLine="true"
android:text="10000"
android:textColor="@color/white"
android:textSize="18sp" />
<ImageView
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginStart="3dp"
android:src="@mipmap/icon_arn_coin" />
</LinearLayout>
<androidx.cardview.widget.CardView
android:layout_width="67dp"
android:layout_height="19dp"
android:layout_gravity="end"
android:layout_marginTop="10dp"
android:visibility="invisible"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/my_arnings_settlement_record"
android:textColor="#333333"
android:textSize="10sp" />
</androidx.cardview.widget.CardView>
</LinearLayout>
</FrameLayout>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="end"
android:layout_marginStart="17dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="17dp"
android:layout_marginBottom="3dp"
android:layout_weight="1"
app:cardCornerRadius="14dp"
app:cardElevation="0dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_arn_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.cardview.widget.CardView>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:layout_marginBottom="10dp"
android:gravity="bottom">
<TextView
android:id="@+id/diamond_star_coins"
android:layout_width="151dp"
android:layout_height="42dp"
android:layout_gravity="bottom"
android:layout_marginBottom="2dp"
android:background="@drawable/button_my_arn_exchange"
android:ellipsize="end"
android:gravity="center"
android:padding="10dp"
android:paddingEnd="10dp"
android:singleLine="true"
android:text="@string/my_arnings_exchange_for_diamond_star_coins"
android:textColor="#A279E4"
android:textSize="14sp" />
<LinearLayout
android:layout_width="151dp"
android:layout_height="42dp"
android:layout_gravity="end"
android:background="@drawable/button_my_arn_exchange2"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:singleLine="true"
android:text="@string/my_arnings_incentive_withdrawal"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:singleLine="true"
android:text="@string/my_arnings_incentive_withdrawal_minimum"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
</LinearLayout>

View File

@ -0,0 +1,42 @@
<?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:id="@+id/diamond_exchange_btn"
android:layout_width="match_parent"
android:layout_height="92dp"
android:background="@drawable/bg_diamond_exchange_btn"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/full_conversion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/diamond_exchange_full_conversion"
android:textColor="#C274EC"
android:textSize="14sp" />
<TextView
android:id="@+id/coins"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/diamond_exchange_full_conversion"
android:textColor="#C274EC"
android:textSize="14sp" />
<TextView
android:id="@+id/gold_coin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/diamond_exchange_full_conversion"
android:textColor="#C274EC"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/memo_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:layout_marginTop="10dp"
android:ellipsize="end"
android:maxWidth="170dp"
android:singleLine="true"
android:text="收到×××的×××禮物"
android:textColor="#333333"
android:textSize="14sp" />
<TextView
android:id="@+id/create_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:layout_marginTop="10dp"
android:ellipsize="end"
android:maxWidth="170dp"
android:singleLine="true"
android:text="2023-08-10 15:30"
android:textColor="#ACA9A9"
android:textSize="10sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="19dp"
android:gravity="center_vertical">
<ImageView
android:layout_width="14dp"
android:layout_height="14dp"
android:src="@mipmap/icon_arn_coin" />
<TextView
android:id="@+id/money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxWidth="100dp"
android:singleLine="true"
android:text="+1111111110.5"
android:textColor="#333333"
android:textSize="16sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="bottom"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:background="#80999999" />
</FrameLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

View File

@ -13,5 +13,22 @@
<string name="greet_upload_img">Upload a picture (not required)</string>
<string name="greet_clear_config">Clear Settings</string>
<string name="greet_save_config">Save Settings</string>
<string name="my_arnings">我的收益</string>
<string name="my_arnings_reward_description">獎勵說明</string>
<string name="my_arnings_total_amount_available_for_withdrawal">可提現總額</string>
<string name="my_arnings_today_earnings">今日收益:</string>
<string name="my_arnings_settlement_record">結算記錄</string>
<string name="my_arnings_cumulative_income">累計收益:</string>
<string name="my_arnings_exchange_for_diamond_star_coins">兌換鑽石/星幣</string>
<string name="my_arnings_incentive_withdrawal">獎勵提現</string>
<string name="my_arnings_incentive_withdrawal_minimum">(最低$ %s)</string>
<string name="my_arnings_exchange_star">兌換星幣</string>
<string name="my_arnings_exchange_record">兌換記錄</string>
<string name="my_arnings_total_convertibility">可兌換總額</string>
<string name="my_arnings_gold_coin">金幣</string>
<string name="my_arnings_toggle">切換</string>
<string name="diamond_exchange_input_hint">請輸入需兌換的星幣金額</string>
<string name="diamond_exchange_immediate_exchange">立即兌換</string>
<string name="diamond_exchange_full_conversion">全額兌換</string>
</resources>