SubwayTooter-Android-App/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java

122 lines
4.3 KiB
Java

package jp.juggler.subwaytooter;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CompoundButton;
import android.widget.Spinner;
import android.widget.Switch;
public class ActAppSetting extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener, AdapterView.OnItemSelectedListener {
public static void open( Context context ){
context.startActivity( new Intent( context, ActAppSetting.class ) );
}
SharedPreferences pref;
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
App1.setActivityTheme(this,false);
initUI();
pref = Pref.pref( this );
loadUIFromData();
}
Switch swDontConfirmBeforeCloseColumn;
Switch swPriorLocalURL;
Switch swDisableFastScroller;
Spinner spBackButtonAction;
Spinner spUITheme;
static final int BACK_ASK_ALWAYS =0;
static final int BACK_CLOSE_COLUMN =1;
static final int BACK_OPEN_COLUMN_LIST =2;
static final int BACK_EXIT_APP =3;
private void initUI(){
setContentView( R.layout.act_app_setting );
swDontConfirmBeforeCloseColumn = (Switch) findViewById( R.id.swDontConfirmBeforeCloseColumn );
swDontConfirmBeforeCloseColumn.setOnCheckedChangeListener( this );
swPriorLocalURL = (Switch) findViewById( R.id.swPriorLocalURL );
swPriorLocalURL.setOnCheckedChangeListener( this );
swDisableFastScroller = (Switch) findViewById( R.id.swDisableFastScroller );
swDisableFastScroller.setOnCheckedChangeListener( this );
{
String[] caption_list = new String[ 4 ];
caption_list[ 0 ] = getString( R.string.ask_always );
caption_list[ 1 ] = getString( R.string.close_column );
caption_list[ 2 ] = getString( R.string.open_column_list );
caption_list[ 3 ] = getString( R.string.app_exit );
ArrayAdapter< String > adapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, caption_list );
adapter.setDropDownViewResource( R.layout.lv_spinner_dropdown );
spBackButtonAction = (Spinner) findViewById( R.id.spBackButtonAction );
spBackButtonAction.setAdapter( adapter );
spBackButtonAction.setOnItemSelectedListener( this );
}
{
String[] caption_list = new String[ 2 ];
caption_list[ 0 ] = getString( R.string.theme_light );
caption_list[ 1 ] = getString( R.string.theme_dark );
ArrayAdapter< String > adapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, caption_list );
adapter.setDropDownViewResource( R.layout.lv_spinner_dropdown );
spUITheme = (Spinner) findViewById( R.id.spUITheme );
spUITheme.setAdapter( adapter );
spUITheme.setOnItemSelectedListener( this );
}
}
boolean load_busy;
private void loadUIFromData(){
load_busy =true;
swDontConfirmBeforeCloseColumn.setChecked( pref.getBoolean( Pref.KEY_DONT_CONFIRM_BEFORE_CLOSE_COLUMN, false ) );
swPriorLocalURL.setChecked( pref.getBoolean( Pref.KEY_PRIOR_LOCAL_URL, false ) );
swDisableFastScroller.setChecked( pref.getBoolean( Pref.KEY_DISABLE_FAST_SCROLLER, false ) );
spBackButtonAction.setSelection( pref.getInt(Pref.KEY_BACK_BUTTON_ACTION,0) );
spUITheme.setSelection( pref.getInt(Pref.KEY_UI_THEME,0) );
load_busy = false;
}
private void saveUIToData(){
if(load_busy) return;
pref.edit()
.putBoolean( Pref.KEY_DONT_CONFIRM_BEFORE_CLOSE_COLUMN, swDontConfirmBeforeCloseColumn.isChecked() )
.putBoolean( Pref.KEY_PRIOR_LOCAL_URL, swPriorLocalURL.isChecked() )
.putBoolean( Pref.KEY_DISABLE_FAST_SCROLLER, swDisableFastScroller.isChecked() )
.putInt( Pref.KEY_BACK_BUTTON_ACTION, spBackButtonAction.getSelectedItemPosition() )
.putInt( Pref.KEY_UI_THEME, spUITheme.getSelectedItemPosition() )
.apply();
}
@Override public void onCheckedChanged( CompoundButton buttonView, boolean isChecked ){
saveUIToData();
}
@Override public void onItemSelected( AdapterView< ? > parent, View view, int position, long id ){
saveUIToData();
}
@Override public void onNothingSelected( AdapterView< ? > parent ){
}
}