crystal-wallet-android/app/src/main/java/cy/agorise/crystalwallet/activities/SettingsActivity.java

158 lines
4.4 KiB
Java

package cy.agorise.crystalwallet.activities;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.ImageView;
import android.widget.TextView;
import com.sjaramillo10.animatedtablayout.AnimatedTabLayout;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import cy.agorise.crystalwallet.R;
import cy.agorise.crystalwallet.fragments.BackupsSettingsFragment;
import cy.agorise.crystalwallet.fragments.GeneralSettingsFragment;
import cy.agorise.crystalwallet.fragments.SecuritySettingsFragment;
/**
* Created by seven on 12/28/17.
*
*/
public class SettingsActivity extends AppCompatActivity{
@BindView(R.id.ivGoBack)
public ImageView ivGoBack;
@BindView(R.id.tabLayout)
public AnimatedTabLayout tabLayout;
@BindView(R.id.pager)
public ViewPager mPager;
public SettingsPagerAdapter settingsPagerAdapter;
@BindView(R.id.surface_view)
public SurfaceView mSurfaceView;
@BindView(R.id.tvBuildVersion)
public TextView tvBuildVersion;
private SecuritySettingsFragment securitySettingsFragment;
/*
* For the window animation
* */
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
ButterKnife.bind(this);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// Appbar animation
mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
//Log.d(TAG,"surfaceCreated");
mediaPlayer = MediaPlayer.create(SettingsActivity.this, R.raw.appbar_background);
mediaPlayer.setDisplay(mSurfaceView.getHolder());
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
//Log.d(TAG,"surfaceChanged");
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
//Log.d(TAG,"surfaceDestroyed");
}
});
settingsPagerAdapter = new SettingsPagerAdapter(getSupportFragmentManager());
mPager.setAdapter(settingsPagerAdapter);
tabLayout.setupWithViewPager(mPager);
}
private class SettingsPagerAdapter extends FragmentStatePagerAdapter {
SettingsPagerAdapter(FragmentManager fm) {
super(fm);
}
int[] tabTitles = {R.string.general, R.string.security, R.string.backups,
R.string.accounts};
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new GeneralSettingsFragment();
case 1:
securitySettingsFragment = new SecuritySettingsFragment();
return securitySettingsFragment;
case 2:
return new BackupsSettingsFragment();
//case 3:
// return new AccountsSettingsFragment();
}
return null; //new OnConstructionFragment();
}
@Override
public CharSequence getPageTitle(int position) {
return getString(tabTitles[position]);
}
@Override
public int getCount() {
return 3;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//Release the media player
if(mediaPlayer != null){
mediaPlayer.release();
mediaPlayer = null;
}
}
@OnClick(R.id.ivGoBack)
public void goBack(){
onBackPressed();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (this.securitySettingsFragment != null){
this.securitySettingsFragment.onNewIntent(intent);
}
}
}