191 lines
7.3 KiB
Java
191 lines
7.3 KiB
Java
package cy.agorise.crystalwallet.fragments;
|
|
|
|
import android.arch.lifecycle.LiveData;
|
|
import android.arch.lifecycle.Observer;
|
|
import android.arch.lifecycle.ViewModelProviders;
|
|
import android.content.Intent;
|
|
import android.content.res.Configuration;
|
|
import android.content.res.Resources;
|
|
import android.os.Bundle;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.v4.app.Fragment;
|
|
import android.util.DisplayMetrics;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.ArrayAdapter;
|
|
import android.widget.Button;
|
|
import android.widget.Spinner;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import com.thekhaeng.pushdownanim.PushDownAnim;
|
|
import com.vincent.filepicker.Constant;
|
|
import com.vincent.filepicker.activity.AudioPickActivity;
|
|
import com.vincent.filepicker.filter.entity.AudioFile;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Currency;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Locale;
|
|
|
|
import butterknife.BindView;
|
|
import butterknife.ButterKnife;
|
|
import butterknife.OnClick;
|
|
import butterknife.OnItemSelected;
|
|
import cy.agorise.crystalwallet.R;
|
|
import cy.agorise.crystalwallet.dao.CrystalDatabase;
|
|
import cy.agorise.crystalwallet.enums.Language;
|
|
import cy.agorise.crystalwallet.models.AccountSeed;
|
|
import cy.agorise.crystalwallet.models.CryptoNetAccount;
|
|
import cy.agorise.crystalwallet.models.GeneralSetting;
|
|
import cy.agorise.crystalwallet.models.GrapheneAccount;
|
|
import cy.agorise.crystalwallet.models.GrapheneAccountInfo;
|
|
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequestListener;
|
|
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequests;
|
|
import cy.agorise.crystalwallet.requestmanagers.ValidateBitsharesLTMUpgradeRequest;
|
|
import cy.agorise.crystalwallet.viewmodels.GeneralSettingListViewModel;
|
|
import cy.agorise.crystalwallet.views.TimeZoneAdapter;
|
|
|
|
import static android.app.Activity.RESULT_OK;
|
|
import static com.vincent.filepicker.activity.AudioPickActivity.IS_NEED_RECORDER;
|
|
|
|
|
|
/**
|
|
* Created by xd on 12/28/17.
|
|
*/
|
|
|
|
public class BitsharesSettingsFragment extends Fragment {
|
|
|
|
private GeneralSettingListViewModel generalSettingListViewModel;
|
|
private LiveData<List<GeneralSetting>> generalSettingListLiveData;
|
|
|
|
@BindView (R.id.tvUpgradeToLtm)
|
|
TextView tvUpgradeToLtm;
|
|
@BindView (R.id.btnUpgradeToLtm)
|
|
Button btnUpgradeToLtm;
|
|
@BindView (R.id.tvAlreadyLtm)
|
|
TextView tvAlreadyLtm;
|
|
|
|
CryptoNetAccount cryptoNetAccount;
|
|
GrapheneAccountInfo grapheneAccountInfo;
|
|
GrapheneAccount grapheneAccount;
|
|
|
|
|
|
|
|
|
|
public BitsharesSettingsFragment() {
|
|
if (getArguments() != null) {
|
|
long cryptoNetAcountId = getArguments().getLong("CRYPTO_NET_ACCOUNT_ID", -1);
|
|
|
|
if (cryptoNetAcountId > -1) {
|
|
this.cryptoNetAccount = CrystalDatabase.getAppDatabase(getContext()).cryptoNetAccountDao().getById(cryptoNetAcountId);
|
|
this.grapheneAccountInfo = CrystalDatabase.getAppDatabase(getContext()).grapheneAccountInfoDao().getByAccountId(this.cryptoNetAccount.getId());
|
|
this.grapheneAccount = new GrapheneAccount(this.cryptoNetAccount);
|
|
this.grapheneAccount.loadInfo(this.grapheneAccountInfo);
|
|
}
|
|
}
|
|
// Required empty public constructor
|
|
}
|
|
|
|
public static BitsharesSettingsFragment newInstance(long cryptoNetAccountId) {
|
|
BitsharesSettingsFragment fragment = new BitsharesSettingsFragment();
|
|
Bundle args = new Bundle();
|
|
fragment.setArguments(args);
|
|
|
|
if (cryptoNetAccountId > -1){
|
|
fragment.cryptoNetAccount = CrystalDatabase.getAppDatabase(fragment.getContext()).cryptoNetAccountDao().getById(cryptoNetAccountId);
|
|
fragment.grapheneAccountInfo = CrystalDatabase.getAppDatabase(fragment.getContext()).grapheneAccountInfoDao().getByAccountId(fragment.cryptoNetAccount.getId());
|
|
fragment.grapheneAccount = new GrapheneAccount(fragment.cryptoNetAccount);
|
|
fragment.grapheneAccount.loadInfo(fragment.grapheneAccountInfo);
|
|
}
|
|
|
|
return fragment;
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
}
|
|
|
|
@Override
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
Bundle savedInstanceState) {
|
|
// Inflate the layout for this fragment
|
|
View v = inflater.inflate(R.layout.fragment_bitshares_settings, container, false);
|
|
ButterKnife.bind(this, v);
|
|
|
|
/*
|
|
* Integration of library with button efects
|
|
* */
|
|
PushDownAnim.setPushDownAnimTo(btnUpgradeToLtm)
|
|
.setOnClickListener( new View.OnClickListener(){
|
|
@Override
|
|
public void onClick( View view ){
|
|
upgradeAccountToLtm();
|
|
}
|
|
} );
|
|
|
|
initAlreadyLtm();
|
|
|
|
return v;
|
|
}
|
|
|
|
@OnClick (R.id.btnUpgradeToLtm)
|
|
public void upgradeAccountToLtm(){
|
|
final ValidateBitsharesLTMUpgradeRequest request = new ValidateBitsharesLTMUpgradeRequest(this.getContext(),this.grapheneAccount);
|
|
|
|
request.setListener(new CryptoNetInfoRequestListener() {
|
|
@Override
|
|
public void onCarryOut() {
|
|
getActivity().runOnUiThread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
Toast toast;
|
|
|
|
switch (request.getStatus()){
|
|
case SUCCEEDED:
|
|
tvUpgradeToLtm.setVisibility(View.GONE);
|
|
btnUpgradeToLtm.setVisibility(View.GONE);
|
|
tvAlreadyLtm.setVisibility(View.VISIBLE);
|
|
break;
|
|
case NO_INTERNET:
|
|
case NO_SERVER_CONNECTION:
|
|
toast = Toast.makeText(getContext(), "There was an error connecting to the server. Please try again.", Toast.LENGTH_SHORT);
|
|
toast.show();
|
|
break;
|
|
case NO_FUNDS:
|
|
toast = Toast.makeText(getContext(), "Not enough funds to make the upgrade.", Toast.LENGTH_SHORT);
|
|
toast.show();
|
|
break;
|
|
case NO_ASSET_INFO_DB:
|
|
case NO_ASSET_INFO:
|
|
case PETITION_FAILED:
|
|
default:
|
|
toast = Toast.makeText(getContext(), "There was an error with the request. Please try again.", Toast.LENGTH_SHORT);
|
|
toast.show();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
CryptoNetInfoRequests.getInstance().addRequest(request);
|
|
}
|
|
|
|
public void initAlreadyLtm(){
|
|
if (this.grapheneAccount.getUpgradedToLtm()){
|
|
tvUpgradeToLtm.setVisibility(View.GONE);
|
|
btnUpgradeToLtm.setVisibility(View.GONE);
|
|
tvAlreadyLtm.setVisibility(View.VISIBLE);
|
|
} else {
|
|
tvUpgradeToLtm.setVisibility(View.VISIBLE);
|
|
btnUpgradeToLtm.setVisibility(View.VISIBLE);
|
|
tvAlreadyLtm.setVisibility(View.GONE);
|
|
}
|
|
}
|
|
}
|